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

Michael Niedermayer michael at niedermayer.cc
Sun Mar 9 20:08:13 EET 2025


Hi Anders

On Sat, Mar 08, 2025 at 10:00:34PM +0100, Anders Rein wrote:
> This will make it possible to transmit raw video over NUT without losing
> the field order information.
> ---
>  libavformat/nutdec.c | 4 ++++
>  libavformat/nutenc.c | 3 +++
>  2 files changed, 7 insertions(+)
> 
> diff --git a/libavformat/nutdec.c b/libavformat/nutdec.c
> index 34b7e3cb9a..07eff23134 100644
> --- a/libavformat/nutdec.c
> +++ b/libavformat/nutdec.c
> @@ -607,6 +607,10 @@ static int decode_info_header(NUTContext *nut)
>                  continue;
>              }
>  
> +            if (stream_id_plus1 && !strcmp(name, "field_order")) {
> +              sscanf(str_value, "%d", &st->codecpar->field_order);
> +            }
> +

indention is inconsistant, data is not checkecked for validity



>              if (metadata && av_strcasecmp(name, "Uses") &&
>                  av_strcasecmp(name, "Depends") && av_strcasecmp(name, "Replaces")) {
>                  if (event_flags)
> diff --git a/libavformat/nutenc.c b/libavformat/nutenc.c
> index 55efb114c3..0853fecf5c 100644
> --- a/libavformat/nutenc.c
> +++ b/libavformat/nutenc.c
> @@ -566,6 +566,9 @@ static int write_streaminfo(NUTContext *nut, AVIOContext *bc, int stream_id) {
>          else
>              snprintf(buf, sizeof(buf), "%d/%d", st->avg_frame_rate.num, st->avg_frame_rate.den);
>          count += add_info(dyn_bc, "r_frame_rate", buf);
> +
> +        snprintf(buf, sizeof(buf), "%d", st->codecpar->field_order);
> +        count += add_info(dyn_bc, "field_order", buf);

a numeric field order is not well defined. Also if you place this in
streaminfo. Please explain what shall be done if it changes

and it would need an update to fate tests (which break)

--- ./tests/ref/fate/ffmpeg-loopback-decoding	2025-03-03 01:18:34.299595988 +0100
+++ tests/data/fate/ffmpeg-loopback-decoding	2025-03-09 18:59:36.248837197 +0100
@@ -1,5 +1,5 @@
-e4e0e27eb8ed99eedc2458d92401c5e4 *tests/data/fate/ffmpeg-loopback-decoding.nut
-7435259 tests/data/fate/ffmpeg-loopback-decoding.nut
+460c64b2deef77f80c3afe6135c0a464 *tests/data/fate/ffmpeg-loopback-decoding.nut
+7435274 tests/data/fate/ffmpeg-loopback-decoding.nut
 #tb 0: 1/25
 #media_type 0: video
 #codec_id 0: rawvideo


and update to nut.txt (which lists no field_order IIRC)

thx

[...]

-- 
Michael     GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB

I have often repented speaking, but never of holding my tongue.
-- Xenocrates
-------------- 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/20250309/85629428/attachment.sig>


More information about the ffmpeg-devel mailing list