mbox series

[FFmpeg-devel,v12,0/9] DNxUncompressed decoder

Message ID 20241021195721.892544-2-ms+git@mur.at
Headers show
Series DNxUncompressed decoder | expand

Message

martin schitter Oct. 21, 2024, 7:57 p.m. UTC
This is a reworked 11th version of my DNxUncompressed decoder contribution.

I added many new pixel formats and swscale input support variants for all
those payload types that do not need any format specific unpacking.

Most pixel format variants found in the specification are now supported.
Unfortunately I don't have samples to test all of them.
At least all export options supported by DaVinci Resolve should work.

Combined Components and mixed RGB + Alpha content is still not supported.

Please check the code and merge it.
 
Martin



Martin Schitter (9):
  avutil/swscale:  add PIX_FMT_YUV444 and input support
  avutil/swscale: add YUV444_16 and UYVY_16 pixel format and input
    support
  avutil/swscale: add YUV444F16 and UYVYF16 pixel format and input
    support
  avutil/swscale: add YUV444F32 and UYVYF32 pixel format and input
    support
  libavcodec/dnxucdec: DNxUncompressed decoder
  doc: DNxUncompressed Changelog and doc entries
  tests: Fate sample tests for DNxUncompressed
  avformat/mxfdec: Workaround for RGB pc/video level detection.
  swscale/input: color subsampling input support for RGBF32

 Changelog                           |   2 +
 doc/general_contents.texi           |   1 +
 libavcodec/Makefile                 |   1 +
 libavcodec/allcodecs.c              |   1 +
 libavcodec/dnxucdec.c               | 338 +++++++++++++++++++++++++++
 libavformat/mxfdec.c                |  51 +++-
 libavutil/pixdesc.c                 | 153 ++++++++++++
 libavutil/pixfmt.h                  |  22 ++
 libswscale/input.c                  | 348 ++++++++++++++++++++++++++++
 libswscale/utils.c                  |  15 +-
 tests/Makefile                      |   1 +
 tests/fate/dnxuc.mak                |  40 ++++
 tests/ref/fate/dnxuc-cb-rgb-10      |   8 +
 tests/ref/fate/dnxuc-cb-rgb-12      |   8 +
 tests/ref/fate/dnxuc-cb-rgb-8       |   8 +
 tests/ref/fate/dnxuc-cb-rgb-float   |   8 +
 tests/ref/fate/dnxuc-cb-rgb-half    |   8 +
 tests/ref/fate/dnxuc-cb-yuv422-10   |   8 +
 tests/ref/fate/dnxuc-cb-yuv422-12   |   8 +
 tests/ref/fate/dnxuc-cb-yuv422-8    |   8 +
 tests/ref/fate/dnxuc-ramp-rgb-10    |   8 +
 tests/ref/fate/dnxuc-ramp-rgb-12    |   8 +
 tests/ref/fate/dnxuc-ramp-rgb-8     |   8 +
 tests/ref/fate/dnxuc-ramp-rgb-float |   8 +
 tests/ref/fate/dnxuc-ramp-rgb-half  |   8 +
 tests/ref/fate/dnxuc-ramp-yuv422-10 |   8 +
 tests/ref/fate/dnxuc-ramp-yuv422-12 |   8 +
 tests/ref/fate/dnxuc-ramp-yuv422-8  |   8 +
 tests/ref/fate/imgutils             |  26 +++
 tests/ref/fate/mxf-probe-j2k        |   2 +-
 tests/ref/fate/sws-pixdesc-query    |  40 ++++
 31 files changed, 1157 insertions(+), 12 deletions(-)
 create mode 100644 libavcodec/dnxucdec.c
 create mode 100644 tests/fate/dnxuc.mak
 create mode 100644 tests/ref/fate/dnxuc-cb-rgb-10
 create mode 100644 tests/ref/fate/dnxuc-cb-rgb-12
 create mode 100644 tests/ref/fate/dnxuc-cb-rgb-8
 create mode 100644 tests/ref/fate/dnxuc-cb-rgb-float
 create mode 100644 tests/ref/fate/dnxuc-cb-rgb-half
 create mode 100644 tests/ref/fate/dnxuc-cb-yuv422-10
 create mode 100644 tests/ref/fate/dnxuc-cb-yuv422-12
 create mode 100644 tests/ref/fate/dnxuc-cb-yuv422-8
 create mode 100644 tests/ref/fate/dnxuc-ramp-rgb-10
 create mode 100644 tests/ref/fate/dnxuc-ramp-rgb-12
 create mode 100644 tests/ref/fate/dnxuc-ramp-rgb-8
 create mode 100644 tests/ref/fate/dnxuc-ramp-rgb-float
 create mode 100644 tests/ref/fate/dnxuc-ramp-rgb-half
 create mode 100644 tests/ref/fate/dnxuc-ramp-yuv422-10
 create mode 100644 tests/ref/fate/dnxuc-ramp-yuv422-12
 create mode 100644 tests/ref/fate/dnxuc-ramp-yuv422-8