[FFmpeg-devel] [PATCH] Include field_mode information in NUT stream info

Michael Niedermayer michael at niedermayer.cc
Thu Mar 13 14:16:31 EET 2025


On Mon, Mar 10, 2025 at 11:46:10PM +0100, Anders Rein wrote:
> This will make it possible to transmit raw video over NUT without losing
> the field order information.
> ---
>  libavformat/nut.c                            |  36 ++
>  libavformat/nut.h                            |   3 +
>  libavformat/nutdec.c                         |  12 +
>  libavformat/nutenc.c                         |  11 +
>  tests/ref/fate/ffmpeg-loopback-decoding      |   4 +-
>  tests/ref/fate/ffprobe_compact               |  62 +--
>  tests/ref/fate/ffprobe_csv                   |  62 +--
>  tests/ref/fate/ffprobe_default               |  66 ++--
>  tests/ref/fate/ffprobe_flat                  |  66 ++--
>  tests/ref/fate/ffprobe_ini                   |  66 ++--
>  tests/ref/fate/ffprobe_json                  |  68 ++--
>  tests/ref/fate/ffprobe_xml                   |  64 +--
>  tests/ref/fate/filter-crop                   |   2 +-
>  tests/ref/fate/filter-crop_scale             |   2 +-
>  tests/ref/fate/filter-crop_scale_vflip       |   2 +-
>  tests/ref/fate/filter-crop_vflip             |   2 +-
>  tests/ref/fate/filter-edgedetect             |   2 +-
>  tests/ref/fate/filter-edgedetect-colormix    |   2 +-
>  tests/ref/fate/filter-hue1                   |   2 +-
>  tests/ref/fate/filter-hue2                   |   2 +-
>  tests/ref/fate/filter-hue3                   |   2 +-
>  tests/ref/fate/filter-hue4                   |   2 +-
>  tests/ref/fate/filter-median                 |   2 +-
>  tests/ref/fate/filter-null                   |   2 +-
>  tests/ref/fate/filter-pad                    |   2 +-
>  tests/ref/fate/filter-pixdesc-0bgr           |   2 +-
>  tests/ref/fate/filter-pixdesc-0rgb           |   2 +-
>  tests/ref/fate/filter-pixdesc-abgr           |   2 +-
>  tests/ref/fate/filter-pixdesc-argb           |   2 +-
>  tests/ref/fate/filter-pixdesc-ayuv           |   2 +-
>  tests/ref/fate/filter-pixdesc-ayuv64be       |   2 +-
>  tests/ref/fate/filter-pixdesc-ayuv64le       |   2 +-
>  tests/ref/fate/filter-pixdesc-bgr0           |   2 +-
>  tests/ref/fate/filter-pixdesc-bgr24          |   2 +-
>  tests/ref/fate/filter-pixdesc-bgr444be       |   2 +-
>  tests/ref/fate/filter-pixdesc-bgr444le       |   2 +-
>  tests/ref/fate/filter-pixdesc-bgr48be        |   2 +-
>  tests/ref/fate/filter-pixdesc-bgr48le        |   2 +-
>  tests/ref/fate/filter-pixdesc-bgr4_byte      |   2 +-
>  tests/ref/fate/filter-pixdesc-bgr555be       |   2 +-
>  tests/ref/fate/filter-pixdesc-bgr555le       |   2 +-
>  tests/ref/fate/filter-pixdesc-bgr565be       |   2 +-
>  tests/ref/fate/filter-pixdesc-bgr565le       |   2 +-
>  tests/ref/fate/filter-pixdesc-bgr8           |   2 +-
>  tests/ref/fate/filter-pixdesc-bgra           |   2 +-
>  tests/ref/fate/filter-pixdesc-bgra64be       |   2 +-
>  tests/ref/fate/filter-pixdesc-bgra64le       |   2 +-
>  tests/ref/fate/filter-pixdesc-gbrap          |   2 +-
>  tests/ref/fate/filter-pixdesc-gbrap10be      |   2 +-
>  tests/ref/fate/filter-pixdesc-gbrap10le      |   2 +-
>  tests/ref/fate/filter-pixdesc-gbrap12be      |   2 +-
>  tests/ref/fate/filter-pixdesc-gbrap12le      |   2 +-
>  tests/ref/fate/filter-pixdesc-gbrap14be      |   2 +-
>  tests/ref/fate/filter-pixdesc-gbrap14le      |   2 +-
>  tests/ref/fate/filter-pixdesc-gbrap16be      |   2 +-
>  tests/ref/fate/filter-pixdesc-gbrap16le      |   2 +-
>  tests/ref/fate/filter-pixdesc-gbrapf32be     |   2 +-
>  tests/ref/fate/filter-pixdesc-gbrapf32le     |   2 +-
>  tests/ref/fate/filter-pixdesc-gbrp           |   2 +-
>  tests/ref/fate/filter-pixdesc-gbrp10be       |   2 +-
>  tests/ref/fate/filter-pixdesc-gbrp10le       |   2 +-
>  tests/ref/fate/filter-pixdesc-gbrp12be       |   2 +-
>  tests/ref/fate/filter-pixdesc-gbrp12le       |   2 +-
>  tests/ref/fate/filter-pixdesc-gbrp14be       |   2 +-
>  tests/ref/fate/filter-pixdesc-gbrp14le       |   2 +-
>  tests/ref/fate/filter-pixdesc-gbrp16be       |   2 +-
>  tests/ref/fate/filter-pixdesc-gbrp16le       |   2 +-
>  tests/ref/fate/filter-pixdesc-gbrp9be        |   2 +-
>  tests/ref/fate/filter-pixdesc-gbrp9le        |   2 +-
>  tests/ref/fate/filter-pixdesc-gbrpf32be      |   2 +-
>  tests/ref/fate/filter-pixdesc-gbrpf32le      |   2 +-
>  tests/ref/fate/filter-pixdesc-gray           |   2 +-
>  tests/ref/fate/filter-pixdesc-gray10be       |   2 +-
>  tests/ref/fate/filter-pixdesc-gray10le       |   2 +-
>  tests/ref/fate/filter-pixdesc-gray12be       |   2 +-
>  tests/ref/fate/filter-pixdesc-gray12le       |   2 +-
>  tests/ref/fate/filter-pixdesc-gray14be       |   2 +-
>  tests/ref/fate/filter-pixdesc-gray14le       |   2 +-
>  tests/ref/fate/filter-pixdesc-gray16be       |   2 +-
>  tests/ref/fate/filter-pixdesc-gray16le       |   2 +-
>  tests/ref/fate/filter-pixdesc-gray9be        |   2 +-
>  tests/ref/fate/filter-pixdesc-gray9le        |   2 +-
>  tests/ref/fate/filter-pixdesc-grayf32be      |   2 +-
>  tests/ref/fate/filter-pixdesc-grayf32le      |   2 +-
>  tests/ref/fate/filter-pixdesc-monob          |   2 +-
>  tests/ref/fate/filter-pixdesc-monow          |   2 +-
>  tests/ref/fate/filter-pixdesc-nv12           |   2 +-
>  tests/ref/fate/filter-pixdesc-nv16           |   2 +-
>  tests/ref/fate/filter-pixdesc-nv21           |   2 +-
>  tests/ref/fate/filter-pixdesc-nv24           |   2 +-
>  tests/ref/fate/filter-pixdesc-nv42           |   2 +-
>  tests/ref/fate/filter-pixdesc-p010be         |   2 +-
>  tests/ref/fate/filter-pixdesc-p010le         |   2 +-
>  tests/ref/fate/filter-pixdesc-p012be         |   2 +-
>  tests/ref/fate/filter-pixdesc-p012le         |   2 +-
>  tests/ref/fate/filter-pixdesc-p016be         |   2 +-
>  tests/ref/fate/filter-pixdesc-p016le         |   2 +-
>  tests/ref/fate/filter-pixdesc-p210be         |   2 +-
>  tests/ref/fate/filter-pixdesc-p210le         |   2 +-
>  tests/ref/fate/filter-pixdesc-p212be         |   2 +-
>  tests/ref/fate/filter-pixdesc-p212le         |   2 +-
>  tests/ref/fate/filter-pixdesc-p216be         |   2 +-
>  tests/ref/fate/filter-pixdesc-p216le         |   2 +-
>  tests/ref/fate/filter-pixdesc-p410be         |   2 +-
>  tests/ref/fate/filter-pixdesc-p410le         |   2 +-
>  tests/ref/fate/filter-pixdesc-p412be         |   2 +-
>  tests/ref/fate/filter-pixdesc-p412le         |   2 +-
>  tests/ref/fate/filter-pixdesc-p416be         |   2 +-
>  tests/ref/fate/filter-pixdesc-p416le         |   2 +-
>  tests/ref/fate/filter-pixdesc-rgb0           |   2 +-
>  tests/ref/fate/filter-pixdesc-rgb24          |   2 +-
>  tests/ref/fate/filter-pixdesc-rgb444be       |   2 +-
>  tests/ref/fate/filter-pixdesc-rgb444le       |   2 +-
>  tests/ref/fate/filter-pixdesc-rgb48be        |   2 +-
>  tests/ref/fate/filter-pixdesc-rgb48le        |   2 +-
>  tests/ref/fate/filter-pixdesc-rgb4_byte      |   2 +-
>  tests/ref/fate/filter-pixdesc-rgb555be       |   2 +-
>  tests/ref/fate/filter-pixdesc-rgb555le       |   2 +-
>  tests/ref/fate/filter-pixdesc-rgb565be       |   2 +-
>  tests/ref/fate/filter-pixdesc-rgb565le       |   2 +-
>  tests/ref/fate/filter-pixdesc-rgb8           |   2 +-
>  tests/ref/fate/filter-pixdesc-rgba           |   2 +-
>  tests/ref/fate/filter-pixdesc-rgba64be       |   2 +-
>  tests/ref/fate/filter-pixdesc-rgba64le       |   2 +-
>  tests/ref/fate/filter-pixdesc-uyva           |   2 +-
>  tests/ref/fate/filter-pixdesc-uyvy422        |   2 +-
>  tests/ref/fate/filter-pixdesc-v30xle         |   2 +-
>  tests/ref/fate/filter-pixdesc-vuya           |   2 +-
>  tests/ref/fate/filter-pixdesc-vuyx           |   2 +-
>  tests/ref/fate/filter-pixdesc-vyu444         |   2 +-
>  tests/ref/fate/filter-pixdesc-x2bgr10le      |   2 +-
>  tests/ref/fate/filter-pixdesc-x2rgb10le      |   2 +-
>  tests/ref/fate/filter-pixdesc-xv30le         |   2 +-
>  tests/ref/fate/filter-pixdesc-xv36be         |   2 +-
>  tests/ref/fate/filter-pixdesc-xv36le         |   2 +-
>  tests/ref/fate/filter-pixdesc-xv48be         |   2 +-
>  tests/ref/fate/filter-pixdesc-xv48le         |   2 +-
>  tests/ref/fate/filter-pixdesc-xyz12be        |   2 +-
>  tests/ref/fate/filter-pixdesc-xyz12le        |   2 +-
>  tests/ref/fate/filter-pixdesc-y210le         |   2 +-
>  tests/ref/fate/filter-pixdesc-y212le         |   2 +-
>  tests/ref/fate/filter-pixdesc-y216le         |   2 +-
>  tests/ref/fate/filter-pixdesc-ya16be         |   2 +-
>  tests/ref/fate/filter-pixdesc-ya16le         |   2 +-
>  tests/ref/fate/filter-pixdesc-ya8            |   2 +-
>  tests/ref/fate/filter-pixdesc-yuv410p        |   2 +-
>  tests/ref/fate/filter-pixdesc-yuv411p        |   2 +-
>  tests/ref/fate/filter-pixdesc-yuv420p        |   2 +-
>  tests/ref/fate/filter-pixdesc-yuv420p10be    |   2 +-
>  tests/ref/fate/filter-pixdesc-yuv420p10le    |   2 +-
>  tests/ref/fate/filter-pixdesc-yuv420p12be    |   2 +-
>  tests/ref/fate/filter-pixdesc-yuv420p12le    |   2 +-
>  tests/ref/fate/filter-pixdesc-yuv420p14be    |   2 +-
>  tests/ref/fate/filter-pixdesc-yuv420p14le    |   2 +-
>  tests/ref/fate/filter-pixdesc-yuv420p16be    |   2 +-
>  tests/ref/fate/filter-pixdesc-yuv420p16le    |   2 +-
>  tests/ref/fate/filter-pixdesc-yuv420p9be     |   2 +-
>  tests/ref/fate/filter-pixdesc-yuv420p9le     |   2 +-
>  tests/ref/fate/filter-pixdesc-yuv422p        |   2 +-
>  tests/ref/fate/filter-pixdesc-yuv422p10be    |   2 +-
>  tests/ref/fate/filter-pixdesc-yuv422p10le    |   2 +-
>  tests/ref/fate/filter-pixdesc-yuv422p12be    |   2 +-
>  tests/ref/fate/filter-pixdesc-yuv422p12le    |   2 +-
>  tests/ref/fate/filter-pixdesc-yuv422p14be    |   2 +-
>  tests/ref/fate/filter-pixdesc-yuv422p14le    |   2 +-
>  tests/ref/fate/filter-pixdesc-yuv422p16be    |   2 +-
>  tests/ref/fate/filter-pixdesc-yuv422p16le    |   2 +-
>  tests/ref/fate/filter-pixdesc-yuv422p9be     |   2 +-
>  tests/ref/fate/filter-pixdesc-yuv422p9le     |   2 +-
>  tests/ref/fate/filter-pixdesc-yuv440p        |   2 +-
>  tests/ref/fate/filter-pixdesc-yuv440p10be    |   2 +-
>  tests/ref/fate/filter-pixdesc-yuv440p10le    |   2 +-
>  tests/ref/fate/filter-pixdesc-yuv440p12be    |   2 +-
>  tests/ref/fate/filter-pixdesc-yuv440p12le    |   2 +-
>  tests/ref/fate/filter-pixdesc-yuv444p        |   2 +-
>  tests/ref/fate/filter-pixdesc-yuv444p10be    |   2 +-
>  tests/ref/fate/filter-pixdesc-yuv444p10le    |   2 +-
>  tests/ref/fate/filter-pixdesc-yuv444p12be    |   2 +-
>  tests/ref/fate/filter-pixdesc-yuv444p12le    |   2 +-
>  tests/ref/fate/filter-pixdesc-yuv444p14be    |   2 +-
>  tests/ref/fate/filter-pixdesc-yuv444p14le    |   2 +-
>  tests/ref/fate/filter-pixdesc-yuv444p16be    |   2 +-
>  tests/ref/fate/filter-pixdesc-yuv444p16le    |   2 +-
>  tests/ref/fate/filter-pixdesc-yuv444p9be     |   2 +-
>  tests/ref/fate/filter-pixdesc-yuv444p9le     |   2 +-
>  tests/ref/fate/filter-pixdesc-yuva420p       |   2 +-
>  tests/ref/fate/filter-pixdesc-yuva420p10be   |   2 +-
>  tests/ref/fate/filter-pixdesc-yuva420p10le   |   2 +-
>  tests/ref/fate/filter-pixdesc-yuva420p16be   |   2 +-
>  tests/ref/fate/filter-pixdesc-yuva420p16le   |   2 +-
>  tests/ref/fate/filter-pixdesc-yuva420p9be    |   2 +-
>  tests/ref/fate/filter-pixdesc-yuva420p9le    |   2 +-
>  tests/ref/fate/filter-pixdesc-yuva422p       |   2 +-
>  tests/ref/fate/filter-pixdesc-yuva422p10be   |   2 +-
>  tests/ref/fate/filter-pixdesc-yuva422p10le   |   2 +-
>  tests/ref/fate/filter-pixdesc-yuva422p12be   |   2 +-
>  tests/ref/fate/filter-pixdesc-yuva422p12le   |   2 +-
>  tests/ref/fate/filter-pixdesc-yuva422p16be   |   2 +-
>  tests/ref/fate/filter-pixdesc-yuva422p16le   |   2 +-
>  tests/ref/fate/filter-pixdesc-yuva422p9be    |   2 +-
>  tests/ref/fate/filter-pixdesc-yuva422p9le    |   2 +-
>  tests/ref/fate/filter-pixdesc-yuva444p       |   2 +-
>  tests/ref/fate/filter-pixdesc-yuva444p10be   |   2 +-
>  tests/ref/fate/filter-pixdesc-yuva444p10le   |   2 +-
>  tests/ref/fate/filter-pixdesc-yuva444p12be   |   2 +-
>  tests/ref/fate/filter-pixdesc-yuva444p12le   |   2 +-
>  tests/ref/fate/filter-pixdesc-yuva444p16be   |   2 +-
>  tests/ref/fate/filter-pixdesc-yuva444p16le   |   2 +-
>  tests/ref/fate/filter-pixdesc-yuva444p9be    |   2 +-
>  tests/ref/fate/filter-pixdesc-yuva444p9le    |   2 +-
>  tests/ref/fate/filter-pixdesc-yuvj411p       |   2 +-
>  tests/ref/fate/filter-pixdesc-yuvj420p       |   2 +-
>  tests/ref/fate/filter-pixdesc-yuvj422p       |   2 +-
>  tests/ref/fate/filter-pixdesc-yuvj440p       |   2 +-
>  tests/ref/fate/filter-pixdesc-yuvj444p       |   2 +-
>  tests/ref/fate/filter-pixdesc-yuyv422        |   2 +-
>  tests/ref/fate/filter-pixdesc-yvyu422        |   2 +-
>  tests/ref/fate/filter-pixelize-avg           |   2 +-
>  tests/ref/fate/filter-pixelize-max           |   2 +-
>  tests/ref/fate/filter-pixelize-min           |   2 +-
>  tests/ref/fate/filter-pixfmts-copy           | 386 +++++++++----------
>  tests/ref/fate/filter-pixfmts-crop           | 370 +++++++++---------
>  tests/ref/fate/filter-pixfmts-field          | 386 +++++++++----------
>  tests/ref/fate/filter-pixfmts-fieldmatch     |  10 +-
>  tests/ref/fate/filter-pixfmts-fieldorder     | 312 +++++++--------
>  tests/ref/fate/filter-pixfmts-hflip          | 370 +++++++++---------
>  tests/ref/fate/filter-pixfmts-il             | 384 +++++++++---------
>  tests/ref/fate/filter-pixfmts-lut            | 114 +++---
>  tests/ref/fate/filter-pixfmts-null           | 386 +++++++++----------
>  tests/ref/fate/filter-pixfmts-pad            | 184 ++++-----
>  tests/ref/fate/filter-pixfmts-rotate         |  68 ++--
>  tests/ref/fate/filter-pixfmts-scale          | 386 +++++++++----------
>  tests/ref/fate/filter-pixfmts-swapuv         | 140 +++----
>  tests/ref/fate/filter-pixfmts-transpose      | 296 +++++++-------
>  tests/ref/fate/filter-pixfmts-vflip          | 386 +++++++++----------
>  tests/ref/fate/filter-scale200               |   2 +-
>  tests/ref/fate/filter-scale500               |   2 +-
>  tests/ref/fate/filter-setdar                 |   2 +-
>  tests/ref/fate/filter-setsar                 |   2 +-
>  tests/ref/fate/filter-thumbnail              |   2 +-
>  tests/ref/fate/filter-tile                   |   2 +-
>  tests/ref/fate/filter-vflip                  |   2 +-
>  tests/ref/fate/filter-vflip_crop             |   2 +-
>  tests/ref/fate/filter-vflip_vflip            |   2 +-
>  tests/ref/fate/h264_redundant_pps-side_data  |   4 +-
>  tests/ref/fate/h264_redundant_pps-side_data2 |   4 +-
>  tests/ref/lavf/nut                           |   4 +-
>  tests/ref/seek/lavf-nut                      |  54 +--
>  tests/ref/vsynth/vsynth1-xface               |   4 +-
>  tests/ref/vsynth/vsynth2-xface               |   4 +-
>  tests/ref/vsynth/vsynth3-xface               |   4 +-
>  tests/ref/vsynth/vsynth_lena-xface           |   4 +-
>  252 files changed, 2644 insertions(+), 2570 deletions(-)

Thats a lot of changes

still seems missing somethig:

note, you can post a link to a git branch with the changes if you want to
avoid reposting this patch just for changed fate checksums

--- ./tests/ref/fate/h264_redundant_pps-side_data	2025-03-13 13:04:35.123298001 +0100
+++ tests/data/fate/h264_redundant_pps-side_data	2025-03-13 13:04:43.467367362 +0100
@@ -1,5 +1,5 @@
-c5c73da796e95d387071f78fe6eddecf *tests/data/fate/h264_redundant_pps-side_data.nut
-596178 tests/data/fate/h264_redundant_pps-side_data.nut
+b5cf5373279110fa4f02f22d70d0c0ea *tests/data/fate/h264_redundant_pps-side_data.nut
+596180 tests/data/fate/h264_redundant_pps-side_data.nut
 #extradata 0:       34, 0x851f08e4
 #tb 0: 1/48000
 #media_type 0: video
Test h264_redundant_pps-side_data failed. Look at tests/data/fate/h264_redundant_pps-side_data.err for details.
make: *** [tests/Makefile:311: fate-h264_redundant_pps-side_data] Error 1


[...]
-- 
Michael     GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB

Whats the most studid thing your enemy could do ? Blow himself up
Whats the most studid thing you could do ? Give up your rights and
freedom because your enemy blew himself up.

-------------- 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/20250313/6e3fcfcd/attachment.sig>


More information about the ffmpeg-devel mailing list