[FFmpeg-devel] [PATCH] tests/fate/image: add a test for half-float dwab compressed stream
Michael Niedermayer
michael at niedermayer.cc
Wed May 7 00:26:10 EEST 2025
On Tue, May 06, 2025 at 06:10:22PM -0300, James Almer wrote:
> On 5/6/2025 5:44 PM, Michael Niedermayer wrote:
> > On Mon, May 05, 2025 at 04:44:06PM -0300, James Almer wrote:
> > > Signed-off-by: James Almer <jamrial at gmail.com>
> > > ---
> > > tests/fate/image.mak | 3 +++
> > > tests/ref/fate/rgb-scanline-dwab-half-float | 6 ++++++
> > > 2 files changed, 9 insertions(+)
> > > create mode 100644 tests/ref/fate/rgb-scanline-dwab-half-float
> > >
> > > diff --git a/tests/fate/image.mak b/tests/fate/image.mak
> > > index 042cf6438f..abf204f69f 100644
> > > --- a/tests/fate/image.mak
> > > +++ b/tests/fate/image.mak
> > > @@ -124,6 +124,9 @@ fate-exr-rgb-scanline-pxr24-float-12x8: CMD = framecrc -i $(TARGET_SAMPLES)/exr/
> > > FATE_EXR += fate-exr-rgba-multiscanline-half-b44
> > > fate-exr-rgba-multiscanline-half-b44: CMD = framecrc -i $(TARGET_SAMPLES)/exr/rgba_multiscanline_half_b44.exr -vf scale -pix_fmt gbrapf32le
> > > +FATE_EXR += fate-rgb-scanline-dwab-half-float
> > > +fate-rgb-scanline-dwab-half-float: CMD = framecrc -i $(TARGET_SAMPLES)/exr/rgb_scanline_dwab_half_float.exr -vf scale -pix_fmt gbrpf32le
> > > +
> > > FATE_EXR += fate-exr-rgb-scanline-float-b44
> > > fate-exr-rgb-scanline-float-b44: CMD = framecrc -i $(TARGET_SAMPLES)/exr/rgb_scanline_float_b44.exr -vf scale -pix_fmt gbrpf32le
> > > diff --git a/tests/ref/fate/rgb-scanline-dwab-half-float b/tests/ref/fate/rgb-scanline-dwab-half-float
> > > new file mode 100644
> > > index 0000000000..a5a1997785
> > > --- /dev/null
> > > +++ b/tests/ref/fate/rgb-scanline-dwab-half-float
> > > @@ -0,0 +1,6 @@
> > > +#tb 0: 1/25
> > > +#media_type 0: video
> > > +#codec_id 0: rawvideo
> > > +#dimensions 0: 512x512
> > > +#sar 0: 1/1
> > > +0, 0, 0, 1, 3145728, 0xbb11b00a
> >
> > differnt result here: (on linux x86-64)
> >
> > --- ./tests/ref/fate/rgb-scanline-dwab-half-float 2025-05-06 22:40:40.017406113 +0200
> > +++ tests/data/fate/rgb-scanline-dwab-half-float 2025-05-06 22:40:53.297513198 +0200
> > @@ -3,4 +3,4 @@
> > #codec_id 0: rawvideo
> > #dimensions 0: 512x512
> > #sar 0: 1/1
> > -0, 0, 0, 1, 3145728, 0xbb11b00a
> > +0, 0, 0, 1, 3145728, 0x2a15f7aa
> > Test rgb-scanline-dwab-half-float failed. Look at tests/data/fate/rgb-scanline-dwab-half-float.err for details.
>
> Yeah, I can reproduce it, and even if i add "sws_flags
> +accurate_rnd+bitexact" i get the same results (0xbb11b00a on Win64,
> 0x2a15f7aa on Linux x86-64). I also get a different hash in both targets if
> i don't rescale to gbrpf32, so the problem is not in swscale.
>
> Neither Valgrind or gcc-usan complain, so I'm not sure what could be
> producing this difference.
float is not bitexact in C, and float on x86 might use old x87 style while
x86-64 might be SSE*/AVX, so if theres any float in the code slight differences
can happen, no idea if half float in this case is affected by this or not
thx
[...]
--
Michael GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB
Its not that you shouldnt use gotos but rather that you should write
readable code and code with gotos often but not always is less readable
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 195 bytes
Desc: not available
URL: <https://ffmpeg.org/pipermail/ffmpeg-devel/attachments/20250506/ea038809/attachment.sig>
More information about the ffmpeg-devel
mailing list