diff --git a/libavformat/nut.h b/libavformat/nut.h index 88b24e5376..18b688ae60 100644 --- a/libavformat/nut.h +++ b/libavformat/nut.h @@ -105,6 +105,7 @@ typedef struct NUTContext { int64_t max_pts; AVRational *max_pts_tb; int version; + int minor_version; } NUTContext; extern const AVCodecTag ff_nut_subtitle_tags[]; diff --git a/libavformat/nutdec.c b/libavformat/nutdec.c index 26c6f0d3b0..4ee5f4d429 100644 --- a/libavformat/nutdec.c +++ b/libavformat/nutdec.c @@ -233,6 +233,8 @@ static int decode_main_header(NUTContext *nut) return AVERROR(ENOSYS); } nut->version = tmp; + if (nut->version > 3) + nut->minor_version = ffio_read_varlen(bc); GET_V(stream_count, tmp > 0 && tmp <= NUT_MAX_STREAMS); diff --git a/libavformat/nutenc.c b/libavformat/nutenc.c index bee1fbe8c2..107e57b445 100644 --- a/libavformat/nutenc.c +++ b/libavformat/nutenc.c @@ -338,6 +338,8 @@ static void write_mainheader(NUTContext *nut, AVIOContext *bc) int64_t tmp_match; ff_put_v(bc, nut->version = NUT_VERSION); + if (nut->version > 3) + ff_put_v(bc, nut->minor_version); ff_put_v(bc, nut->avf->nb_streams); ff_put_v(bc, nut->max_distance); ff_put_v(bc, nut->time_base_count);