[FFmpeg-devel] [PATCH 5/5] avcodec/exr: do not output 32bit floats when a file stores 16bit floats

Michael Niedermayer michael at niedermayer.cc
Fri Jan 10 06:06:14 EET 2025


exr should not do a internal pixel format convert

Sponsored-by: Sovereign Tech Fund
Signed-off-by: Michael Niedermayer <michael at niedermayer.cc>
---
 libavcodec/exr.c                              | 65 ++++++++++++-------
 tests/ref/fate/exr-rgb-b44a-half-negative-4x4 |  2 +-
 .../exr-rgb-scanline-b44-half-float-12x8-l1   |  2 +-
 tests/ref/fate/exr-rgb-scanline-half-b44-12x8 |  2 +-
 tests/ref/fate/exr-rgb-scanline-half-b44-13x9 |  2 +-
 tests/ref/fate/exr-rgb-scanline-half-piz-bw   |  2 +-
 .../ref/fate/exr-rgb-scanline-half-piz-color  |  2 +-
 .../fate/exr-rgb-scanline-half-piz-dw-large   |  2 +-
 .../ref/fate/exr-rgb-scanline-half-piz-dw-t01 |  2 +-
 .../ref/fate/exr-rgb-scanline-half-piz-dw-t08 |  2 +-
 .../fate/exr-rgb-scanline-half-zip-dw-large   |  2 +-
 .../fate/exr-rgb-scanline-pxr24-float-half-l2 |  2 +-
 .../fate/exr-rgb-scanline-pxr24-half-float-l1 |  2 +-
 .../fate/exr-rgb-scanline-raw-half-float-l1   |  2 +-
 .../fate/exr-rgb-scanline-rle-half-float-l1   |  2 +-
 .../fate/exr-rgb-scanline-zip-half-0x0-0xFFFF |  2 +-
 .../fate/exr-rgb-scanline-zip-half-float-l1   |  2 +-
 .../fate/exr-rgb-scanline-zip1-half-float-l1  |  2 +-
 ...b-scanline-zip1-half-float-l1-zero-offsets |  2 +-
 .../fate/exr-rgb-tile-half-float-b44-12x8-l1  |  2 +-
 tests/ref/fate/exr-rgb-tile-half-piz-dw-large |  2 +-
 tests/ref/fate/exr-rgb-tile-half-raw-12x8     |  2 +-
 tests/ref/fate/exr-rgb-tile-half-zip          |  2 +-
 .../ref/fate/exr-rgb-tile-pxr24-float-half-l2 |  2 +-
 .../ref/fate/exr-rgb-tile-pxr24-half-float-l1 |  2 +-
 tests/ref/fate/exr-rgb-tile-raw-half-float-l1 |  2 +-
 tests/ref/fate/exr-rgb-tile-rle-half-float-l1 |  2 +-
 tests/ref/fate/exr-rgb-tile-zip-half-float-l1 |  2 +-
 .../ref/fate/exr-rgb-tile-zip1-half-float-l1  |  2 +-
 .../ref/fate/exr-rgba-multiscanline-half-b44  |  2 +-
 .../exr-rgba-scanline-float-half-b44-12x8-l2  |  2 +-
 .../exr-rgba-scanline-float-half-b44-13x9-l2  |  2 +-
 .../exr-rgba-scanline-float-half-b44a-12x8-l2 |  2 +-
 .../exr-rgba-scanline-float-half-b44a-13x9-l2 |  2 +-
 tests/ref/fate/exr-rgba-zip16-16x32-flag4     |  2 +-
 tests/ref/fate/exr-slice-pxr24                |  2 +-
 tests/ref/fate/exr-slice-raw                  |  2 +-
 tests/ref/fate/exr-slice-rle                  |  2 +-
 tests/ref/fate/exr-slice-zip1                 |  2 +-
 tests/ref/fate/exr-slice-zip16                |  2 +-
 tests/ref/fate/exr-y-scanline-zip-half-12x8   |  2 +-
 tests/ref/fate/exr-y-tile-zip-half-12x8       |  2 +-
 tests/ref/fate/exr-ya-scanline-zip-half-12x8  |  2 +-
 tests/ref/pixfmt/yuv444p10-yuv444p            |  2 +-
 tests/ref/pixfmt/yuv444p12-yuv444p            |  2 +-
 45 files changed, 85 insertions(+), 68 deletions(-)

diff --git a/libavcodec/exr.c b/libavcodec/exr.c
index 4bac0be89b2..7e8020a0ff8 100644
--- a/libavcodec/exr.c
+++ b/libavcodec/exr.c
@@ -1185,7 +1185,7 @@ static int decode_block(AVCodecContext *avctx, void *tdata,
     int line, col = 0;
     uint64_t tile_x, tile_y, tile_level_x, tile_level_y;
     const uint8_t *src;
-    int step = s->desc->flags & AV_PIX_FMT_FLAG_FLOAT ? 4 : 2 * s->desc->nb_components;
+    int step = s->desc->comp[0].step;
     int bxmin = 0, axmax = 0, window_xoffset = 0;
     int window_xmin, window_xmax, window_ymin, window_ymax;
     int data_xoffset, data_yoffset, data_window_offset, xsize, ysize;
@@ -1365,7 +1365,7 @@ static int decode_block(AVCodecContext *avctx, void *tdata,
      if (s->channel_offsets[3] >= 0)
         channel_buffer[3] = src + (td->xsize * s->channel_offsets[3]) + data_window_offset;
 
-    if (s->desc->flags & AV_PIX_FMT_FLAG_FLOAT) {
+    if (s->desc->flags & AV_PIX_FMT_FLAG_PLANAR || s->desc->nb_components == 1 ) {
         /* todo: change this when a floating point pixel format with luma with alpha is implemented */
         int channel_count = s->channel_offsets[3] >= 0 ? 4 : rgb_channel_count;
         if (s->is_luma) {
@@ -1379,19 +1379,20 @@ static int decode_block(AVCodecContext *avctx, void *tdata,
 
             for (i = 0; i < ysize; i++, ptr += p->linesize[plane]) {
                 const uint8_t *src;
-                union av_intfloat32 *ptr_x;
-
-                src = channel_buffer[c];
-                ptr_x = (union av_intfloat32 *)ptr;
-
-                // Zero out the start if xmin is not 0
-                memset(ptr_x, 0, bxmin);
-                ptr_x += window_xoffset;
 
                 if (s->pixel_type == EXR_FLOAT ||
                     s->compression == EXR_DWAA ||
                     s->compression == EXR_DWAB) {
                     // 32-bit
+                    union av_intfloat32 *ptr_x;
+
+                    src = channel_buffer[c];
+                    ptr_x = (union av_intfloat32 *)ptr;
+
+                    // Zero out the start if xmin is not 0
+                    memset(ptr_x, 0, bxmin);
+                    ptr_x += window_xoffset;
+
                     union av_intfloat32 t;
                     if (trc_func && c < 3) {
                         for (x = 0; x < xsize; x++) {
@@ -1412,22 +1413,22 @@ static int decode_block(AVCodecContext *avctx, void *tdata,
                             *ptr_x++ = t;
                         }
                     }
+                    memset(ptr_x, 0, axmax);
                 } else if (s->pixel_type == EXR_HALF) {
+                    src = channel_buffer[c];
+
+                    // Zero out the start if xmin is not 0
+                    memset(ptr, 0, bxmin);
+
                     // 16-bit
-                    if (c < 3 || !trc_func) {
-                        for (x = 0; x < xsize; x++) {
-                            *ptr_x++ = s->gamma_table[bytestream_get_le16(&src)];
-                        }
-                    } else {
-                        for (x = 0; x < xsize; x++) {
-                            ptr_x[0].i = half2float(bytestream_get_le16(&src), &s->h2f_tables);
-                            ptr_x++;
-                        }
+                    for (x = window_xoffset; x < xsize + window_xoffset; x++) {
+                        int v = bytestream_get_le16(&src);
+                        AV_WN16(ptr + x * sizeof(uint16_t), v);
                     }
+                    memset(ptr + x * sizeof(uint16_t), 0, axmax);
                 }
 
                 // Zero out the end if xmax+1 is not w
-                memset(ptr_x, 0, axmax);
                 channel_buffer[c] += td->channel_line_size;
             }
         }
@@ -2053,8 +2054,25 @@ static int decode_frame(AVCodecContext *avctx, AVFrame *picture,
     }
 
     switch (s->pixel_type) {
-    case EXR_FLOAT:
     case EXR_HALF:
+        if (!(s->compression == EXR_DWAA || s->compression == EXR_DWAB)) {
+            if (s->channel_offsets[3] >= 0) {
+                if (!s->is_luma) {
+                    avctx->pix_fmt = AV_PIX_FMT_GBRAPF16;
+                } else {
+                    /* todo: change this when a floating point pixel format with luma with alpha is implemented */
+                    avctx->pix_fmt = AV_PIX_FMT_GBRAPF16;
+                }
+            } else {
+                if (!s->is_luma) {
+                    avctx->pix_fmt = AV_PIX_FMT_GBRPF16;
+                } else {
+                    avctx->pix_fmt = AV_PIX_FMT_GRAYF16;
+                }
+            }
+            break;
+        }
+    case EXR_FLOAT:
         if (s->channel_offsets[3] >= 0) {
             if (!s->is_luma) {
                 avctx->pix_fmt = AV_PIX_FMT_GBRAPF32;
@@ -2139,13 +2157,12 @@ static int decode_frame(AVCodecContext *avctx, AVFrame *picture,
     if (!s->desc)
         return AVERROR_INVALIDDATA;
 
-    if (s->desc->flags & AV_PIX_FMT_FLAG_FLOAT) {
+    if (s->desc->flags & AV_PIX_FMT_FLAG_PLANAR) {
         planes           = s->desc->nb_components;
-        out_line_size    = avctx->width * 4;
     } else {
         planes           = 1;
-        out_line_size    = avctx->width * 2 * s->desc->nb_components;
     }
+    out_line_size    = avctx->width * s->desc->comp[0].step;
 
     if (s->is_tile) {
         nb_blocks = ((s->xdelta + s->tile_attr.xSize - 1) / s->tile_attr.xSize) *
diff --git a/tests/ref/fate/exr-rgb-b44a-half-negative-4x4 b/tests/ref/fate/exr-rgb-b44a-half-negative-4x4
index 82e3f74cd56..62832a7a77e 100644
--- a/tests/ref/fate/exr-rgb-b44a-half-negative-4x4
+++ b/tests/ref/fate/exr-rgb-b44a-half-negative-4x4
@@ -3,4 +3,4 @@
 #codec_id 0: rawvideo
 #dimensions 0: 4x4
 #sar 0: 1/1
-0,          0,          0,        1,      192, 0x5b8e39c0
+0,          0,          0,        1,      192, 0x2b0438a0
diff --git a/tests/ref/fate/exr-rgb-scanline-b44-half-float-12x8-l1 b/tests/ref/fate/exr-rgb-scanline-b44-half-float-12x8-l1
index e900164b8ce..bf08b7702e2 100644
--- a/tests/ref/fate/exr-rgb-scanline-b44-half-float-12x8-l1
+++ b/tests/ref/fate/exr-rgb-scanline-b44-half-float-12x8-l1
@@ -3,4 +3,4 @@
 #codec_id 0: rawvideo
 #dimensions 0: 12x8
 #sar 0: 1/1
-0,          0,          0,        1,     1152, 0x577d5150
+0,          0,          0,        1,     1152, 0xa25c30dd
diff --git a/tests/ref/fate/exr-rgb-scanline-half-b44-12x8 b/tests/ref/fate/exr-rgb-scanline-half-b44-12x8
index 2a63877ab90..c5ed0fbefd1 100644
--- a/tests/ref/fate/exr-rgb-scanline-half-b44-12x8
+++ b/tests/ref/fate/exr-rgb-scanline-half-b44-12x8
@@ -3,4 +3,4 @@
 #codec_id 0: rawvideo
 #dimensions 0: 12x8
 #sar 0: 1/1
-0,          0,          0,        1,     1152, 0xe84d5b9d
+0,          0,          0,        1,     1152, 0xdb43ec2d
diff --git a/tests/ref/fate/exr-rgb-scanline-half-b44-13x9 b/tests/ref/fate/exr-rgb-scanline-half-b44-13x9
index a8136368ef9..2b08b0dbc9f 100644
--- a/tests/ref/fate/exr-rgb-scanline-half-b44-13x9
+++ b/tests/ref/fate/exr-rgb-scanline-half-b44-13x9
@@ -3,4 +3,4 @@
 #codec_id 0: rawvideo
 #dimensions 0: 13x9
 #sar 0: 1/1
-0,          0,          0,        1,     1404, 0x252cc156
+0,          0,          0,        1,     1404, 0x108f51a5
diff --git a/tests/ref/fate/exr-rgb-scanline-half-piz-bw b/tests/ref/fate/exr-rgb-scanline-half-piz-bw
index 8dcab4196e8..4f90e91e7d9 100644
--- a/tests/ref/fate/exr-rgb-scanline-half-piz-bw
+++ b/tests/ref/fate/exr-rgb-scanline-half-piz-bw
@@ -3,4 +3,4 @@
 #codec_id 0: rawvideo
 #dimensions 0: 34x27
 #sar 0: 1/1
-0,          0,          0,        1,    11016, 0x1644e1f9
+0,          0,          0,        1,    11016, 0xa40e4a99
diff --git a/tests/ref/fate/exr-rgb-scanline-half-piz-color b/tests/ref/fate/exr-rgb-scanline-half-piz-color
index 0a7af94d7aa..65bebc8ce3e 100644
--- a/tests/ref/fate/exr-rgb-scanline-half-piz-color
+++ b/tests/ref/fate/exr-rgb-scanline-half-piz-color
@@ -3,4 +3,4 @@
 #codec_id 0: rawvideo
 #dimensions 0: 34x40
 #sar 0: 1/1
-0,          0,          0,        1,    16320, 0xc40939ad
+0,          0,          0,        1,    16320, 0xcb1cce31
diff --git a/tests/ref/fate/exr-rgb-scanline-half-piz-dw-large b/tests/ref/fate/exr-rgb-scanline-half-piz-dw-large
index 811698074a7..6ad531a4c99 100644
--- a/tests/ref/fate/exr-rgb-scanline-half-piz-dw-large
+++ b/tests/ref/fate/exr-rgb-scanline-half-piz-dw-large
@@ -3,4 +3,4 @@
 #codec_id 0: rawvideo
 #dimensions 0: 50x50
 #sar 0: 1/1
-0,          0,          0,        1,    30000, 0xb329ee9c
+0,          0,          0,        1,    30000, 0xef01f54f
diff --git a/tests/ref/fate/exr-rgb-scanline-half-piz-dw-t01 b/tests/ref/fate/exr-rgb-scanline-half-piz-dw-t01
index 6a77d850467..e2a04e420b5 100644
--- a/tests/ref/fate/exr-rgb-scanline-half-piz-dw-t01
+++ b/tests/ref/fate/exr-rgb-scanline-half-piz-dw-t01
@@ -3,4 +3,4 @@
 #codec_id 0: rawvideo
 #dimensions 0: 400x300
 #sar 0: 1/1
-0,          0,          0,        1,  1440000, 0x4800b00b
+0,          0,          0,        1,  1440000, 0x28c78688
diff --git a/tests/ref/fate/exr-rgb-scanline-half-piz-dw-t08 b/tests/ref/fate/exr-rgb-scanline-half-piz-dw-t08
index 7cf760334eb..afadee5995b 100644
--- a/tests/ref/fate/exr-rgb-scanline-half-piz-dw-t08
+++ b/tests/ref/fate/exr-rgb-scanline-half-piz-dw-t08
@@ -3,4 +3,4 @@
 #codec_id 0: rawvideo
 #dimensions 0: 501x401
 #sar 0: 1/1
-0,          0,          0,        1,  2410812, 0x2dd1b00b
+0,          0,          0,        1,  2410812, 0x30fd8688
diff --git a/tests/ref/fate/exr-rgb-scanline-half-zip-dw-large b/tests/ref/fate/exr-rgb-scanline-half-zip-dw-large
index 811698074a7..6ad531a4c99 100644
--- a/tests/ref/fate/exr-rgb-scanline-half-zip-dw-large
+++ b/tests/ref/fate/exr-rgb-scanline-half-zip-dw-large
@@ -3,4 +3,4 @@
 #codec_id 0: rawvideo
 #dimensions 0: 50x50
 #sar 0: 1/1
-0,          0,          0,        1,    30000, 0xb329ee9c
+0,          0,          0,        1,    30000, 0xef01f54f
diff --git a/tests/ref/fate/exr-rgb-scanline-pxr24-float-half-l2 b/tests/ref/fate/exr-rgb-scanline-pxr24-float-half-l2
index 4b50d0fd5e1..b493ffd70e0 100644
--- a/tests/ref/fate/exr-rgb-scanline-pxr24-float-half-l2
+++ b/tests/ref/fate/exr-rgb-scanline-pxr24-float-half-l2
@@ -3,4 +3,4 @@
 #codec_id 0: rawvideo
 #dimensions 0: 12x8
 #sar 0: 1/1
-0,          0,          0,        1,     1536, 0x04e1137d
+0,          0,          0,        1,     1536, 0xff5dd409
diff --git a/tests/ref/fate/exr-rgb-scanline-pxr24-half-float-l1 b/tests/ref/fate/exr-rgb-scanline-pxr24-half-float-l1
index ec431d3d85f..2bd9fb74fb8 100644
--- a/tests/ref/fate/exr-rgb-scanline-pxr24-half-float-l1
+++ b/tests/ref/fate/exr-rgb-scanline-pxr24-half-float-l1
@@ -3,4 +3,4 @@
 #codec_id 0: rawvideo
 #dimensions 0: 12x8
 #sar 0: 1/1
-0,          0,          0,        1,     1152, 0x8f8c4a81
+0,          0,          0,        1,     1152, 0xf8891b1d
diff --git a/tests/ref/fate/exr-rgb-scanline-raw-half-float-l1 b/tests/ref/fate/exr-rgb-scanline-raw-half-float-l1
index ec431d3d85f..2bd9fb74fb8 100644
--- a/tests/ref/fate/exr-rgb-scanline-raw-half-float-l1
+++ b/tests/ref/fate/exr-rgb-scanline-raw-half-float-l1
@@ -3,4 +3,4 @@
 #codec_id 0: rawvideo
 #dimensions 0: 12x8
 #sar 0: 1/1
-0,          0,          0,        1,     1152, 0x8f8c4a81
+0,          0,          0,        1,     1152, 0xf8891b1d
diff --git a/tests/ref/fate/exr-rgb-scanline-rle-half-float-l1 b/tests/ref/fate/exr-rgb-scanline-rle-half-float-l1
index ec431d3d85f..2bd9fb74fb8 100644
--- a/tests/ref/fate/exr-rgb-scanline-rle-half-float-l1
+++ b/tests/ref/fate/exr-rgb-scanline-rle-half-float-l1
@@ -3,4 +3,4 @@
 #codec_id 0: rawvideo
 #dimensions 0: 12x8
 #sar 0: 1/1
-0,          0,          0,        1,     1152, 0x8f8c4a81
+0,          0,          0,        1,     1152, 0xf8891b1d
diff --git a/tests/ref/fate/exr-rgb-scanline-zip-half-0x0-0xFFFF b/tests/ref/fate/exr-rgb-scanline-zip-half-0x0-0xFFFF
index e45a40b498b..97ff83ec133 100644
--- a/tests/ref/fate/exr-rgb-scanline-zip-half-0x0-0xFFFF
+++ b/tests/ref/fate/exr-rgb-scanline-zip-half-0x0-0xFFFF
@@ -3,4 +3,4 @@
 #codec_id 0: rawvideo
 #dimensions 0: 256x256
 #sar 0: 1/1
-0,          0,          0,        1,   786432, 0xce9be2be
+0,          0,          0,        1,   786432, 0xee1d1d63
diff --git a/tests/ref/fate/exr-rgb-scanline-zip-half-float-l1 b/tests/ref/fate/exr-rgb-scanline-zip-half-float-l1
index ec431d3d85f..2bd9fb74fb8 100644
--- a/tests/ref/fate/exr-rgb-scanline-zip-half-float-l1
+++ b/tests/ref/fate/exr-rgb-scanline-zip-half-float-l1
@@ -3,4 +3,4 @@
 #codec_id 0: rawvideo
 #dimensions 0: 12x8
 #sar 0: 1/1
-0,          0,          0,        1,     1152, 0x8f8c4a81
+0,          0,          0,        1,     1152, 0xf8891b1d
diff --git a/tests/ref/fate/exr-rgb-scanline-zip1-half-float-l1 b/tests/ref/fate/exr-rgb-scanline-zip1-half-float-l1
index ec431d3d85f..2bd9fb74fb8 100644
--- a/tests/ref/fate/exr-rgb-scanline-zip1-half-float-l1
+++ b/tests/ref/fate/exr-rgb-scanline-zip1-half-float-l1
@@ -3,4 +3,4 @@
 #codec_id 0: rawvideo
 #dimensions 0: 12x8
 #sar 0: 1/1
-0,          0,          0,        1,     1152, 0x8f8c4a81
+0,          0,          0,        1,     1152, 0xf8891b1d
diff --git a/tests/ref/fate/exr-rgb-scanline-zip1-half-float-l1-zero-offsets b/tests/ref/fate/exr-rgb-scanline-zip1-half-float-l1-zero-offsets
index ec431d3d85f..2bd9fb74fb8 100644
--- a/tests/ref/fate/exr-rgb-scanline-zip1-half-float-l1-zero-offsets
+++ b/tests/ref/fate/exr-rgb-scanline-zip1-half-float-l1-zero-offsets
@@ -3,4 +3,4 @@
 #codec_id 0: rawvideo
 #dimensions 0: 12x8
 #sar 0: 1/1
-0,          0,          0,        1,     1152, 0x8f8c4a81
+0,          0,          0,        1,     1152, 0xf8891b1d
diff --git a/tests/ref/fate/exr-rgb-tile-half-float-b44-12x8-l1 b/tests/ref/fate/exr-rgb-tile-half-float-b44-12x8-l1
index e900164b8ce..bf08b7702e2 100644
--- a/tests/ref/fate/exr-rgb-tile-half-float-b44-12x8-l1
+++ b/tests/ref/fate/exr-rgb-tile-half-float-b44-12x8-l1
@@ -3,4 +3,4 @@
 #codec_id 0: rawvideo
 #dimensions 0: 12x8
 #sar 0: 1/1
-0,          0,          0,        1,     1152, 0x577d5150
+0,          0,          0,        1,     1152, 0xa25c30dd
diff --git a/tests/ref/fate/exr-rgb-tile-half-piz-dw-large b/tests/ref/fate/exr-rgb-tile-half-piz-dw-large
index 811698074a7..196b9b155b7 100644
--- a/tests/ref/fate/exr-rgb-tile-half-piz-dw-large
+++ b/tests/ref/fate/exr-rgb-tile-half-piz-dw-large
@@ -3,4 +3,4 @@
 #codec_id 0: rawvideo
 #dimensions 0: 50x50
 #sar 0: 1/1
-0,          0,          0,        1,    30000, 0xb329ee9c
+0,          0,          0,        1,    30000, 0xa02a541c
diff --git a/tests/ref/fate/exr-rgb-tile-half-raw-12x8 b/tests/ref/fate/exr-rgb-tile-half-raw-12x8
index f2ff3619497..408755e6f0e 100644
--- a/tests/ref/fate/exr-rgb-tile-half-raw-12x8
+++ b/tests/ref/fate/exr-rgb-tile-half-raw-12x8
@@ -3,4 +3,4 @@
 #codec_id 0: rawvideo
 #dimensions 0: 12x8
 #sar 0: 1/1
-0,          0,          0,        1,     1152, 0xd3614640
+0,          0,          0,        1,     1152, 0x8d572027
diff --git a/tests/ref/fate/exr-rgb-tile-half-zip b/tests/ref/fate/exr-rgb-tile-half-zip
index 7cf760334eb..0ad1a47dbeb 100644
--- a/tests/ref/fate/exr-rgb-tile-half-zip
+++ b/tests/ref/fate/exr-rgb-tile-half-zip
@@ -3,4 +3,4 @@
 #codec_id 0: rawvideo
 #dimensions 0: 501x401
 #sar 0: 1/1
-0,          0,          0,        1,  2410812, 0x2dd1b00b
+0,          0,          0,        1,  2410812, 0x0deb5853
diff --git a/tests/ref/fate/exr-rgb-tile-pxr24-float-half-l2 b/tests/ref/fate/exr-rgb-tile-pxr24-float-half-l2
index 4b50d0fd5e1..b493ffd70e0 100644
--- a/tests/ref/fate/exr-rgb-tile-pxr24-float-half-l2
+++ b/tests/ref/fate/exr-rgb-tile-pxr24-float-half-l2
@@ -3,4 +3,4 @@
 #codec_id 0: rawvideo
 #dimensions 0: 12x8
 #sar 0: 1/1
-0,          0,          0,        1,     1536, 0x04e1137d
+0,          0,          0,        1,     1536, 0xff5dd409
diff --git a/tests/ref/fate/exr-rgb-tile-pxr24-half-float-l1 b/tests/ref/fate/exr-rgb-tile-pxr24-half-float-l1
index ec431d3d85f..2bd9fb74fb8 100644
--- a/tests/ref/fate/exr-rgb-tile-pxr24-half-float-l1
+++ b/tests/ref/fate/exr-rgb-tile-pxr24-half-float-l1
@@ -3,4 +3,4 @@
 #codec_id 0: rawvideo
 #dimensions 0: 12x8
 #sar 0: 1/1
-0,          0,          0,        1,     1152, 0x8f8c4a81
+0,          0,          0,        1,     1152, 0xf8891b1d
diff --git a/tests/ref/fate/exr-rgb-tile-raw-half-float-l1 b/tests/ref/fate/exr-rgb-tile-raw-half-float-l1
index ec431d3d85f..2bd9fb74fb8 100644
--- a/tests/ref/fate/exr-rgb-tile-raw-half-float-l1
+++ b/tests/ref/fate/exr-rgb-tile-raw-half-float-l1
@@ -3,4 +3,4 @@
 #codec_id 0: rawvideo
 #dimensions 0: 12x8
 #sar 0: 1/1
-0,          0,          0,        1,     1152, 0x8f8c4a81
+0,          0,          0,        1,     1152, 0xf8891b1d
diff --git a/tests/ref/fate/exr-rgb-tile-rle-half-float-l1 b/tests/ref/fate/exr-rgb-tile-rle-half-float-l1
index ec431d3d85f..2bd9fb74fb8 100644
--- a/tests/ref/fate/exr-rgb-tile-rle-half-float-l1
+++ b/tests/ref/fate/exr-rgb-tile-rle-half-float-l1
@@ -3,4 +3,4 @@
 #codec_id 0: rawvideo
 #dimensions 0: 12x8
 #sar 0: 1/1
-0,          0,          0,        1,     1152, 0x8f8c4a81
+0,          0,          0,        1,     1152, 0xf8891b1d
diff --git a/tests/ref/fate/exr-rgb-tile-zip-half-float-l1 b/tests/ref/fate/exr-rgb-tile-zip-half-float-l1
index ec431d3d85f..2bd9fb74fb8 100644
--- a/tests/ref/fate/exr-rgb-tile-zip-half-float-l1
+++ b/tests/ref/fate/exr-rgb-tile-zip-half-float-l1
@@ -3,4 +3,4 @@
 #codec_id 0: rawvideo
 #dimensions 0: 12x8
 #sar 0: 1/1
-0,          0,          0,        1,     1152, 0x8f8c4a81
+0,          0,          0,        1,     1152, 0xf8891b1d
diff --git a/tests/ref/fate/exr-rgb-tile-zip1-half-float-l1 b/tests/ref/fate/exr-rgb-tile-zip1-half-float-l1
index ec431d3d85f..2bd9fb74fb8 100644
--- a/tests/ref/fate/exr-rgb-tile-zip1-half-float-l1
+++ b/tests/ref/fate/exr-rgb-tile-zip1-half-float-l1
@@ -3,4 +3,4 @@
 #codec_id 0: rawvideo
 #dimensions 0: 12x8
 #sar 0: 1/1
-0,          0,          0,        1,     1152, 0x8f8c4a81
+0,          0,          0,        1,     1152, 0xf8891b1d
diff --git a/tests/ref/fate/exr-rgba-multiscanline-half-b44 b/tests/ref/fate/exr-rgba-multiscanline-half-b44
index 24525b92a7d..6ddd600732e 100644
--- a/tests/ref/fate/exr-rgba-multiscanline-half-b44
+++ b/tests/ref/fate/exr-rgba-multiscanline-half-b44
@@ -3,4 +3,4 @@
 #codec_id 0: rawvideo
 #dimensions 0: 935x251
 #sar 0: 1/1
-0,          0,          0,        1,  3754960, 0x8d9af112
+0,          0,          0,        1,  3754960, 0xb8d01312
diff --git a/tests/ref/fate/exr-rgba-scanline-float-half-b44-12x8-l2 b/tests/ref/fate/exr-rgba-scanline-float-half-b44-12x8-l2
index 825bfafd693..13b89ecc0ca 100644
--- a/tests/ref/fate/exr-rgba-scanline-float-half-b44-12x8-l2
+++ b/tests/ref/fate/exr-rgba-scanline-float-half-b44-12x8-l2
@@ -3,4 +3,4 @@
 #codec_id 0: rawvideo
 #dimensions 0: 12x8
 #sar 0: 9/10
-0,          0,          0,        1,     1536, 0x0fca2ff9
+0,          0,          0,        1,     1536, 0x08f93871
diff --git a/tests/ref/fate/exr-rgba-scanline-float-half-b44-13x9-l2 b/tests/ref/fate/exr-rgba-scanline-float-half-b44-13x9-l2
index ee5579c0395..dedd715a907 100644
--- a/tests/ref/fate/exr-rgba-scanline-float-half-b44-13x9-l2
+++ b/tests/ref/fate/exr-rgba-scanline-float-half-b44-13x9-l2
@@ -3,4 +3,4 @@
 #codec_id 0: rawvideo
 #dimensions 0: 13x9
 #sar 0: 9/10
-0,          0,          0,        1,     1872, 0xf99e750e
+0,          0,          0,        1,     1872, 0x0cc9b33e
diff --git a/tests/ref/fate/exr-rgba-scanline-float-half-b44a-12x8-l2 b/tests/ref/fate/exr-rgba-scanline-float-half-b44a-12x8-l2
index 825bfafd693..13b89ecc0ca 100644
--- a/tests/ref/fate/exr-rgba-scanline-float-half-b44a-12x8-l2
+++ b/tests/ref/fate/exr-rgba-scanline-float-half-b44a-12x8-l2
@@ -3,4 +3,4 @@
 #codec_id 0: rawvideo
 #dimensions 0: 12x8
 #sar 0: 9/10
-0,          0,          0,        1,     1536, 0x0fca2ff9
+0,          0,          0,        1,     1536, 0x08f93871
diff --git a/tests/ref/fate/exr-rgba-scanline-float-half-b44a-13x9-l2 b/tests/ref/fate/exr-rgba-scanline-float-half-b44a-13x9-l2
index ee5579c0395..dedd715a907 100644
--- a/tests/ref/fate/exr-rgba-scanline-float-half-b44a-13x9-l2
+++ b/tests/ref/fate/exr-rgba-scanline-float-half-b44a-13x9-l2
@@ -3,4 +3,4 @@
 #codec_id 0: rawvideo
 #dimensions 0: 13x9
 #sar 0: 9/10
-0,          0,          0,        1,     1872, 0xf99e750e
+0,          0,          0,        1,     1872, 0x0cc9b33e
diff --git a/tests/ref/fate/exr-rgba-zip16-16x32-flag4 b/tests/ref/fate/exr-rgba-zip16-16x32-flag4
index 66ecafc777b..a35753ed5ab 100644
--- a/tests/ref/fate/exr-rgba-zip16-16x32-flag4
+++ b/tests/ref/fate/exr-rgba-zip16-16x32-flag4
@@ -3,4 +3,4 @@
 #codec_id 0: rawvideo
 #dimensions 0: 16x32
 #sar 0: 1/1
-0,          0,          0,        1,     8192, 0x87767180
+0,          0,          0,        1,     8192, 0x508ccf49
diff --git a/tests/ref/fate/exr-slice-pxr24 b/tests/ref/fate/exr-slice-pxr24
index 79dfa546f4a..3ca780d8bd3 100644
--- a/tests/ref/fate/exr-slice-pxr24
+++ b/tests/ref/fate/exr-slice-pxr24
@@ -3,4 +3,4 @@
 #codec_id 0: rawvideo
 #dimensions 0: 800x800
 #sar 0: 1/1
-0,          0,          0,        1,  7680000, 0x98f60162
+0,          0,          0,        1,  7680000, 0xd261d30c
diff --git a/tests/ref/fate/exr-slice-raw b/tests/ref/fate/exr-slice-raw
index 1e7d3825eaf..89598f9f8cd 100644
--- a/tests/ref/fate/exr-slice-raw
+++ b/tests/ref/fate/exr-slice-raw
@@ -3,4 +3,4 @@
 #codec_id 0: rawvideo
 #dimensions 0: 587x675
 #sar 0: 1/1
-0,          0,          0,        1,  6339600, 0xda3e31df
+0,          0,          0,        1,  6339600, 0xeffa4255
diff --git a/tests/ref/fate/exr-slice-rle b/tests/ref/fate/exr-slice-rle
index 1e7d3825eaf..89598f9f8cd 100644
--- a/tests/ref/fate/exr-slice-rle
+++ b/tests/ref/fate/exr-slice-rle
@@ -3,4 +3,4 @@
 #codec_id 0: rawvideo
 #dimensions 0: 587x675
 #sar 0: 1/1
-0,          0,          0,        1,  6339600, 0xda3e31df
+0,          0,          0,        1,  6339600, 0xeffa4255
diff --git a/tests/ref/fate/exr-slice-zip1 b/tests/ref/fate/exr-slice-zip1
index 1e7d3825eaf..89598f9f8cd 100644
--- a/tests/ref/fate/exr-slice-zip1
+++ b/tests/ref/fate/exr-slice-zip1
@@ -3,4 +3,4 @@
 #codec_id 0: rawvideo
 #dimensions 0: 587x675
 #sar 0: 1/1
-0,          0,          0,        1,  6339600, 0xda3e31df
+0,          0,          0,        1,  6339600, 0xeffa4255
diff --git a/tests/ref/fate/exr-slice-zip16 b/tests/ref/fate/exr-slice-zip16
index 1e7d3825eaf..89598f9f8cd 100644
--- a/tests/ref/fate/exr-slice-zip16
+++ b/tests/ref/fate/exr-slice-zip16
@@ -3,4 +3,4 @@
 #codec_id 0: rawvideo
 #dimensions 0: 587x675
 #sar 0: 1/1
-0,          0,          0,        1,  6339600, 0xda3e31df
+0,          0,          0,        1,  6339600, 0xeffa4255
diff --git a/tests/ref/fate/exr-y-scanline-zip-half-12x8 b/tests/ref/fate/exr-y-scanline-zip-half-12x8
index f6ef06a2a05..aed93c7974c 100644
--- a/tests/ref/fate/exr-y-scanline-zip-half-12x8
+++ b/tests/ref/fate/exr-y-scanline-zip-half-12x8
@@ -3,4 +3,4 @@
 #codec_id 0: rawvideo
 #dimensions 0: 12x8
 #sar 0: 1/1
-0,          0,          0,        1,      384, 0x911475c4
+0,          0,          0,        1,      384, 0xb9c5ba92
diff --git a/tests/ref/fate/exr-y-tile-zip-half-12x8 b/tests/ref/fate/exr-y-tile-zip-half-12x8
index f6ef06a2a05..aed93c7974c 100644
--- a/tests/ref/fate/exr-y-tile-zip-half-12x8
+++ b/tests/ref/fate/exr-y-tile-zip-half-12x8
@@ -3,4 +3,4 @@
 #codec_id 0: rawvideo
 #dimensions 0: 12x8
 #sar 0: 1/1
-0,          0,          0,        1,      384, 0x911475c4
+0,          0,          0,        1,      384, 0xb9c5ba92
diff --git a/tests/ref/fate/exr-ya-scanline-zip-half-12x8 b/tests/ref/fate/exr-ya-scanline-zip-half-12x8
index 23e1108ed92..97ea715962f 100644
--- a/tests/ref/fate/exr-ya-scanline-zip-half-12x8
+++ b/tests/ref/fate/exr-ya-scanline-zip-half-12x8
@@ -3,4 +3,4 @@
 #codec_id 0: rawvideo
 #dimensions 0: 12x8
 #sar 0: 1/1
-0,          0,          0,        1,     1536, 0x9473ee5c
+0,          0,          0,        1,     1536, 0x2b457bd2
diff --git a/tests/ref/pixfmt/yuv444p10-yuv444p b/tests/ref/pixfmt/yuv444p10-yuv444p
index fc676f28745..f8adfd79994 100644
--- a/tests/ref/pixfmt/yuv444p10-yuv444p
+++ b/tests/ref/pixfmt/yuv444p10-yuv444p
@@ -1,2 +1,2 @@
-51b33e13d1f9f7f5da849f780262200c *tests/data/pixfmt/yuv444p10-yuv444p.yuv
+6af215bf78cba3fa3e22b85b202e0a2c *tests/data/pixfmt/yuv444p10-yuv444p.yuv
 15206400 tests/data/pixfmt/yuv444p10-yuv444p.yuv
diff --git a/tests/ref/pixfmt/yuv444p12-yuv444p b/tests/ref/pixfmt/yuv444p12-yuv444p
index db5034a25c0..04e8965ddf1 100644
--- a/tests/ref/pixfmt/yuv444p12-yuv444p
+++ b/tests/ref/pixfmt/yuv444p12-yuv444p
@@ -1,2 +1,2 @@
-6b16abfcc822202064351794f08b6db8 *tests/data/pixfmt/yuv444p12-yuv444p.yuv
+3457a9ef6af639e0b1565d01b3e145e5 *tests/data/pixfmt/yuv444p12-yuv444p.yuv
 15206400 tests/data/pixfmt/yuv444p12-yuv444p.yuv
-- 
2.47.0



More information about the ffmpeg-devel mailing list