[FFmpeg-devel] [PATCH 2/3] libswscale: add output support for AV_PIX_FMT_GBRAPF32

Mark Reid mindmark at gmail.com
Sun May 3 12:01:21 EEST 2020


On Thu., Apr. 30, 2020, 11:46 a.m. Mark Reid, <mindmark at gmail.com> wrote:

>
>
> On Thu, Apr 30, 2020 at 7:59 AM Michael Niedermayer <michael at niedermayer.cc>
> wrote:
>
>> On Wed, Apr 29, 2020 at 02:49:35PM -0700, Mark Reid wrote:
>> > On Wed, Apr 29, 2020 at 2:22 PM Michael Niedermayer
>> <michael at niedermayer.cc>
>> > wrote:
>> >
>> > > On Wed, Apr 29, 2020 at 11:19:56PM +0200, Michael Niedermayer wrote:
>> > > > On Tue, Apr 28, 2020 at 08:02:34PM -0700, mindmark at gmail.com wrote:
>> > > > > From: Mark Reid <mindmark at gmail.com>
>> > > > >
>> > > > > ---
>> > > > >  libswscale/output.c                      | 82
>> ++++++++++++++++++++++++
>> > > > >  libswscale/slice.c                       | 28 ++++----
>> > > > >  libswscale/swscale_unscaled.c            | 33 ++++++++++
>> > > > >  libswscale/utils.c                       |  8 +--
>> > > > >  tests/ref/fate/filter-pixdesc-gbrapf32be |  1 +
>> > > > >  tests/ref/fate/filter-pixdesc-gbrapf32le |  1 +
>> > > > >  tests/ref/fate/filter-pixdesc-gbrpf32be  |  1 +
>> > > > >  tests/ref/fate/filter-pixdesc-gbrpf32le  |  1 +
>> > > > >  tests/ref/fate/filter-pixfmts-copy       |  4 ++
>> > > > >  tests/ref/fate/filter-pixfmts-crop       |  4 ++
>> > > > >  tests/ref/fate/filter-pixfmts-field      |  4 ++
>> > > > >  tests/ref/fate/filter-pixfmts-fieldorder |  4 ++
>> > > > >  tests/ref/fate/filter-pixfmts-hflip      |  4 ++
>> > > > >  tests/ref/fate/filter-pixfmts-il         |  4 ++
>> > > > >  tests/ref/fate/filter-pixfmts-null       |  4 ++
>> > > > >  tests/ref/fate/filter-pixfmts-scale      |  4 ++
>> > > > >  tests/ref/fate/filter-pixfmts-transpose  |  4 ++
>> > > > >  tests/ref/fate/filter-pixfmts-vflip      |  4 ++
>> > > > >  18 files changed, 180 insertions(+), 15 deletions(-)
>> > > > >  create mode 100644 tests/ref/fate/filter-pixdesc-gbrapf32be
>> > > > >  create mode 100644 tests/ref/fate/filter-pixdesc-gbrapf32le
>> > > > >  create mode 100644 tests/ref/fate/filter-pixdesc-gbrpf32be
>> > > > >  create mode 100644 tests/ref/fate/filter-pixdesc-gbrpf32le
>> > > >
>> > > > Fails on qemu MIPS
>> > > >
>> > > > --- src/tests/ref/fate/filter-pixfmts-scale     2020-04-29
>> > > 22:18:07.326122866 +0200
>> > > > +++ tests/data/fate/filter-pixfmts-scale        2020-04-29
>> > > 23:06:16.167950113 +0200
>> > > > @@ -25,8 +25,8 @@
>> > > >  gbrap12le           bb1ba1c157717db3dd612a76d38a018e
>> > > >  gbrap16be           c72b935a6e57a8e1c37bff08c2db55b1
>> > > >  gbrap16le           13eb0e62b1ac9c1c86c81521eaefab5f
>> > > > -gbrapf32be          e6abe67df7fdd5f5dc5db7d852e50954
>> > > > -gbrapf32le          4d3043b206f7053f7d8d5672f430d680
>> > > > +gbrapf32be          982d646dc5b2dc718c65fa2a439828f5
>> > > > +gbrapf32le          f1ffa56441e29aab5e1fd982337bb8ac
>> > > >  gbrp                dc3387f925f972c61aae7eb23cdc19f0
>> > > >  gbrp10be            0277d4c3a8498d75e2783fb81379e481
>> > > >  gbrp10le            f3d70f8ab845c3c9b8f7452e4a6e285a
>> > > > Test filter-pixfmts-scale failed. Look at
>> > > tests/data/fate/filter-pixfmts-scale.err for details.
>> > > > src/tests/Makefile:254: recipe for target
>> 'fate-filter-pixfmts-scale'
>> > > failed
>> > > > make: *** [fate-filter-pixfmts-scale] Error 1
>> > > > TEST    h264-conformance-frext-pph422i5_panasonic_a
>> > > > TEST    h264-conformance-frext-pph422i6_panasonic_a
>> > > > TEST    h264-conformance-frext-pph422i7_panasonic_a
>> > > > TEST    h264-conformance-hcbp2_hhi_a
>> > > > TEST    h264-conformance-hcmp1_hhi_a
>> > > >
>> > > > I also think for float, tests based on comparission instead of
>> checksums
>> > > > would allow more use of floats in the computations which would
>> > > > differ rounding wise between platforms
>> > >
>> > > and the 2 sws patches would otherwise be ok if they didnt break any
>> tests
>> > >
>> > >
>> > I was worried about the test with float, and tried to limiting the
>> number
>> > of float operations, but guess it's not enough.
>>
>> > I haven't looked yet, but is there anywhere you could point me to doing
>> > a comparison based test?
>>
>> anything float based needs a comparission or luck ...
>> audio tests using "oneoff/stddev" in fate for example
>> checkasm also checks some float code with comparissions
>>
>> not sure how to best integrate this here ...
>>
>> thx
>>
>
> Thanks! I'll check those out. I came up with some other ideas to try too
> that I think might work. Its a tricky problem for sure!
>

lt appears the mips test where only failing on the alpha channel formats.
it seems to because of a planefill function I missed implementing.  I've
fixed it and the same test results work both on mips and x86, so I don't
think this is hardware floating point rounding error.


>
>>
>> [...]
>> --
>> Michael     GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB
>>
>> If you drop bombs on a foreign country and kill a hundred thousand
>> innocent people, expect your government to call the consequence
>> "unprovoked inhuman terrorist attacks" and use it to justify dropping
>> more bombs and killing more people. The technology changed, the idea is
>> old.
>> _______________________________________________
>> ffmpeg-devel mailing list
>> ffmpeg-devel at ffmpeg.org
>> https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
>>
>> To unsubscribe, visit link above, or email
>> ffmpeg-devel-request at ffmpeg.org with subject "unsubscribe".
>
>


More information about the ffmpeg-devel mailing list