PR #22495 opened by James Almer (jamrial)
URL: https://code.ffmpeg.org/FFmpeg/FFmpeg/pulls/22495
Patch URL: https://code.ffmpeg.org/FFmpeg/FFmpeg/pulls/22495.patch
The specification for H.26{4,5,6} states that start codes are 3 bytes long
except for the first NALU in an AU, and for NALUs of parameter set types, as
checked by ff_cbs_h2645_unit_requires_zero_byte(), which is made available
outside of CBS for this change.
>From a3b102f171c3c293f7f9fd5c5446bf3274d7a208 Mon Sep 17 00:00:00 2001
From: James Almer <[email protected]>
Date: Fri, 13 Mar 2026 11:47:44 -0300
Subject: [PATCH] avcodec/bsf/extract_extradata: write correct length start
codes for h26x
The specification for H.26{4,5,6} states that start codes are 3 bytes long
except
for the first NALU in an AU, and for NALUs of parameter set types, as checked by
ff_cbs_h2645_unit_requires_zero_byte(), which is made available outside of CBS
for this change.
Signed-off-by: James Almer <[email protected]>
---
libavcodec/bsf/extract_extradata.c | 12 ++++++++++--
libavcodec/cbs_h2645.c | 20 +-------------------
libavcodec/cbs_h2645.h | 4 ----
libavcodec/h2645_parse.c | 18 ++++++++++++++++++
libavcodec/h2645_parse.h | 4 ++++
tests/fate/hevc.mak | 2 +-
tests/ref/fate/copy-trac2211-avi | 4 ++--
tests/ref/fate/enhanced-flv-hevc-hdr10 | 4 ++--
tests/ref/fate/enhanced-flv-vvc | 6 +++---
tests/ref/fate/h264-bsf-dts2pts | 6 +++---
tests/ref/fate/h264_mp4toannexb_ticket2991 | 2 +-
tests/ref/fate/h264_mp4toannexb_ticket5927 | 2 +-
tests/ref/fate/h264_mp4toannexb_ticket5927_2 | 2 +-
tests/ref/fate/hevc-bsf-dts2pts-idr | 6 +++---
tests/ref/fate/hevc-bsf-dts2pts-idr-cra | 6 +++---
tests/ref/fate/hxvs-demux | 2 +-
tests/ref/fate/matroska-h264-remux | 4 ++--
tests/ref/fate/segment-mp4-to-ts | 2 +-
tests/ref/fate/ts-small-demux | 2 +-
tests/ref/lavf-fate/h264.mp4 | 4 ++--
tests/ref/lavf-fate/hevc.mp4 | 4 ++--
tests/ref/lavf-fate/vvc.mkv | 4 ++--
tests/ref/lavf-fate/vvc.mp4 | 4 ++--
23 files changed, 66 insertions(+), 58 deletions(-)
diff --git a/libavcodec/bsf/extract_extradata.c
b/libavcodec/bsf/extract_extradata.c
index 1532eb6a7d..e2626f4315 100644
--- a/libavcodec/bsf/extract_extradata.c
+++ b/libavcodec/bsf/extract_extradata.c
@@ -181,6 +181,7 @@ static int extract_extradata_h2645(AVBSFContext *ctx,
AVPacket *pkt,
int extradata_size = 0, filtered_size = 0;
const int *extradata_nal_types;
size_t nb_extradata_nal_types;
+ int extradata_nb_nals = 0, filtered_nb_nals = 0;
int i, has_sps = 0, has_vps = 0, ret = 0;
if (ctx->par_in->codec_id == AV_CODEC_ID_VVC) {
@@ -202,7 +203,8 @@ static int extract_extradata_h2645(AVBSFContext *ctx,
AVPacket *pkt,
for (i = 0; i < s->h2645_pkt.nb_nals; i++) {
H2645NAL *nal = &s->h2645_pkt.nals[i];
if (val_in_array(extradata_nal_types, nb_extradata_nal_types,
nal->type)) {
- extradata_size += nal->raw_size + 3;
+ extradata_size += nal->raw_size + 3 +
+
ff_h2645_unit_requires_zero_byte(ctx->par_in->codec_id, nal->type,
extradata_nb_nals++);
if (ctx->par_in->codec_id == AV_CODEC_ID_VVC) {
if (nal->type == VVC_SPS_NUT) has_sps = 1;
if (nal->type == VVC_VPS_NUT) has_vps = 1;
@@ -213,7 +215,8 @@ static int extract_extradata_h2645(AVBSFContext *ctx,
AVPacket *pkt,
if (nal->type == H264_NAL_SPS) has_sps = 1;
}
} else if (s->remove) {
- filtered_size += nal->raw_size + 3;
+ filtered_size += nal->raw_size + 3 +
+
ff_h2645_unit_requires_zero_byte(ctx->par_in->codec_id, nal->type,
filtered_nb_nals++);
}
}
@@ -246,13 +249,18 @@ static int extract_extradata_h2645(AVBSFContext *ctx,
AVPacket *pkt,
if (s->remove)
bytestream2_init_writer(&pb_filtered_data, filtered_buf->data,
filtered_size);
+ extradata_nb_nals = filtered_nb_nals = 0;
for (i = 0; i < s->h2645_pkt.nb_nals; i++) {
H2645NAL *nal = &s->h2645_pkt.nals[i];
if (val_in_array(extradata_nal_types, nb_extradata_nal_types,
nal->type)) {
+ if (ff_h2645_unit_requires_zero_byte(ctx->par_in->codec_id,
nal->type, extradata_nb_nals++))
+ bytestream2_put_byteu(&pb_extradata, 0); // zero_byte
bytestream2_put_be24u(&pb_extradata, 1); //startcode
bytestream2_put_bufferu(&pb_extradata, nal->raw_data,
nal->raw_size);
} else if (s->remove) {
+ if (ff_h2645_unit_requires_zero_byte(ctx->par_in->codec_id,
nal->type, filtered_nb_nals++))
+ bytestream2_put_byteu(&pb_filtered_data, 0); // zero_byte
bytestream2_put_be24u(&pb_filtered_data, 1); // startcode
bytestream2_put_bufferu(&pb_filtered_data, nal->raw_data,
nal->raw_size);
}
diff --git a/libavcodec/cbs_h2645.c b/libavcodec/cbs_h2645.c
index bcf6144046..61b70f4118 100644
--- a/libavcodec/cbs_h2645.c
+++ b/libavcodec/cbs_h2645.c
@@ -320,24 +320,6 @@ int ff_cbs_h2645_write_slice_data(CodedBitstreamContext
*ctx,
return 0;
}
-int ff_cbs_h2645_unit_requires_zero_byte(enum AVCodecID codec_id,
- CodedBitstreamUnitType type,
- int nal_unit_index)
-{
- // Section B.1.2 in H.264, section B.2.2 in H.265, H.266.
- if (nal_unit_index == 0) {
- // Assume that this is the first NAL unit in an access unit.
- return 1;
- }
- if (codec_id == AV_CODEC_ID_H264)
- return type == H264_NAL_SPS || type == H264_NAL_PPS;
- if (codec_id == AV_CODEC_ID_HEVC)
- return type == HEVC_NAL_VPS || type == HEVC_NAL_SPS || type ==
HEVC_NAL_PPS;
- if (codec_id == AV_CODEC_ID_VVC)
- return type >= VVC_OPI_NUT && type <= VVC_SUFFIX_APS_NUT;
- return 0;
-}
-
int ff_cbs_h2645_assemble_fragment(CodedBitstreamContext *ctx,
CodedBitstreamFragment *frag)
{
@@ -372,7 +354,7 @@ int ff_cbs_h2645_assemble_fragment(CodedBitstreamContext
*ctx,
frag->data_bit_padding = unit->data_bit_padding;
}
- if (ff_cbs_h2645_unit_requires_zero_byte(ctx->codec->codec_id,
unit->type, i)) {
+ if (ff_h2645_unit_requires_zero_byte(ctx->codec->codec_id, unit->type,
i)) {
// zero_byte
data[dp++] = 0;
}
diff --git a/libavcodec/cbs_h2645.h b/libavcodec/cbs_h2645.h
index 2d117ae3e7..4b11845644 100644
--- a/libavcodec/cbs_h2645.h
+++ b/libavcodec/cbs_h2645.h
@@ -63,10 +63,6 @@ int ff_cbs_h2645_write_slice_data(CodedBitstreamContext *ctx,
struct PutBitContext *pbc, const uint8_t
*data,
size_t data_size, int data_bit_start);
-int ff_cbs_h2645_unit_requires_zero_byte(enum AVCodecID codec_id,
- CodedBitstreamUnitType type,
- int nal_unit_index);
-
int ff_cbs_h2645_assemble_fragment(CodedBitstreamContext *ctx,
CodedBitstreamFragment *frag);
diff --git a/libavcodec/h2645_parse.c b/libavcodec/h2645_parse.c
index 659e818393..3c2b3aa889 100644
--- a/libavcodec/h2645_parse.c
+++ b/libavcodec/h2645_parse.c
@@ -664,6 +664,24 @@ int ff_h2645_packet_split(H2645Packet *pkt, const uint8_t
*buf, int length,
return 0;
}
+int ff_h2645_unit_requires_zero_byte(enum AVCodecID codec_id,
+ unsigned int type,
+ int nal_unit_index)
+{
+ // Section B.1.2 in H.264, section B.2.2 in H.265, H.266.
+ if (nal_unit_index == 0) {
+ // Assume that this is the first NAL unit in an access unit.
+ return 1;
+ }
+ if (codec_id == AV_CODEC_ID_H264)
+ return type == H264_NAL_SPS || type == H264_NAL_PPS;
+ if (codec_id == AV_CODEC_ID_HEVC)
+ return type == HEVC_NAL_VPS || type == HEVC_NAL_SPS || type ==
HEVC_NAL_PPS;
+ if (codec_id == AV_CODEC_ID_VVC)
+ return type >= VVC_OPI_NUT && type <= VVC_SUFFIX_APS_NUT;
+ return 0;
+}
+
void ff_h2645_packet_uninit(H2645Packet *pkt)
{
int i;
diff --git a/libavcodec/h2645_parse.h b/libavcodec/h2645_parse.h
index e27ccf7523..0e1e950294 100644
--- a/libavcodec/h2645_parse.h
+++ b/libavcodec/h2645_parse.h
@@ -123,6 +123,10 @@ int ff_h2645_packet_split(H2645Packet *pkt, const uint8_t
*buf, int length,
*/
void ff_h2645_packet_uninit(H2645Packet *pkt);
+int ff_h2645_unit_requires_zero_byte(enum AVCodecID codec_id,
+ unsigned int type,
+ int nal_unit_index);
+
static inline int get_nalsize(int nal_length_size, const uint8_t *buf,
int buf_size, int *buf_index, void *logctx)
{
diff --git a/tests/fate/hevc.mak b/tests/fate/hevc.mak
index 351f188968..bfad2d6419 100644
--- a/tests/fate/hevc.mak
+++ b/tests/fate/hevc.mak
@@ -233,7 +233,7 @@ FATE_HEVC-$(call DEMMUX, HEVC MOV, MOV HEVC, HEVC_PARSER
HEVC_MP4TOANNEXB_BSF EX
fate-hevc-bsf-mp4toannexb: tests/data/hevc-mp4.mov
fate-hevc-bsf-mp4toannexb: CMD = md5 -i $(TARGET_PATH)/tests/data/hevc-mp4.mov
-c:v copy -fflags +bitexact -f hevc
fate-hevc-bsf-mp4toannexb: CMP = oneline
-fate-hevc-bsf-mp4toannexb: REF = 73019329ed7f81c24f9af67c34c640c0
+fate-hevc-bsf-mp4toannexb: REF = 02ed1cee38615f6fa3b7b10d15fca5b4
# Start with IDR, POC < 0 after the second IDR
FATE_HEVC-$(call FRAMECRC, MOV HEVC,, HEVC_PARSER MOV_MUXER DTS2PTS_BSF) +=
fate-hevc-bsf-dts2pts-idr
diff --git a/tests/ref/fate/copy-trac2211-avi b/tests/ref/fate/copy-trac2211-avi
index 06d81e537d..7459b1ec50 100644
--- a/tests/ref/fate/copy-trac2211-avi
+++ b/tests/ref/fate/copy-trac2211-avi
@@ -1,5 +1,5 @@
-0920978f3f8196413c43f0033b55a5b6 *tests/data/fate/copy-trac2211-avi.avi
-1777956 tests/data/fate/copy-trac2211-avi.avi
+ab1e2b88e25a8a65b0010ce9dc761f97 *tests/data/fate/copy-trac2211-avi.avi
+1777958 tests/data/fate/copy-trac2211-avi.avi
#tb 0: 1/14
#media_type 0: video
#codec_id 0: rawvideo
diff --git a/tests/ref/fate/enhanced-flv-hevc-hdr10
b/tests/ref/fate/enhanced-flv-hevc-hdr10
index 525f056d66..77a42ed624 100644
--- a/tests/ref/fate/enhanced-flv-hevc-hdr10
+++ b/tests/ref/fate/enhanced-flv-hevc-hdr10
@@ -1,4 +1,4 @@
-#extradata 0: 111, 0x091d1885
+#extradata 0: 113, 0x298d1887
#tb 0: 1/1000
#media_type 0: video
#codec_id 0: hevc
@@ -17,7 +17,7 @@ best_effort_timestamp=0
best_effort_timestamp_time=0.000000
duration=N/A
duration_time=N/A
-pkt_pos=459
+pkt_pos=461
pkt_size=77718
width=1280
height=720
diff --git a/tests/ref/fate/enhanced-flv-vvc b/tests/ref/fate/enhanced-flv-vvc
index 329728037d..00bf6a3e55 100644
--- a/tests/ref/fate/enhanced-flv-vvc
+++ b/tests/ref/fate/enhanced-flv-vvc
@@ -1,6 +1,6 @@
-b4074094cb8c5152361a9fab71dca9e9 *tests/data/fate/enhanced-flv-vvc.flv
-90620 tests/data/fate/enhanced-flv-vvc.flv
-#extradata 0: 161, 0x98c53408
+bbff94332036f7f611f2530b4f3b0645 *tests/data/fate/enhanced-flv-vvc.flv
+90621 tests/data/fate/enhanced-flv-vvc.flv
+#extradata 0: 162, 0xc8c23409
#tb 0: 1/1000
#media_type 0: video
#codec_id 0: vvc
diff --git a/tests/ref/fate/h264-bsf-dts2pts b/tests/ref/fate/h264-bsf-dts2pts
index f908bb44f5..9a8f1cd18f 100644
--- a/tests/ref/fate/h264-bsf-dts2pts
+++ b/tests/ref/fate/h264-bsf-dts2pts
@@ -1,6 +1,6 @@
-219edd347ce3151f5b5579d300cd7179 *tests/data/fate/h264-bsf-dts2pts.mov
-243937 tests/data/fate/h264-bsf-dts2pts.mov
-#extradata 0: 26, 0x75e2093d
+2c60a8ca0df36f999474b33005496e91 *tests/data/fate/h264-bsf-dts2pts.mov
+243938 tests/data/fate/h264-bsf-dts2pts.mov
+#extradata 0: 27, 0x7cb9093e
#tb 0: 1/1200000
#media_type 0: video
#codec_id 0: h264
diff --git a/tests/ref/fate/h264_mp4toannexb_ticket2991
b/tests/ref/fate/h264_mp4toannexb_ticket2991
index 9a1fbf2f8c..493d057e12 100644
--- a/tests/ref/fate/h264_mp4toannexb_ticket2991
+++ b/tests/ref/fate/h264_mp4toannexb_ticket2991
@@ -1,6 +1,6 @@
b6ff5910928ad0b2a7eec481dcc41594
*tests/data/fate/h264_mp4toannexb_ticket2991.h264
1985815 tests/data/fate/h264_mp4toannexb_ticket2991.h264
-#extradata 0: 47, 0x3a590d55
+#extradata 0: 49, 0x459b0d55
#tb 0: 1/1200000
#media_type 0: video
#codec_id 0: h264
diff --git a/tests/ref/fate/h264_mp4toannexb_ticket5927
b/tests/ref/fate/h264_mp4toannexb_ticket5927
index eb0b5cf283..e65ba8dc1f 100644
--- a/tests/ref/fate/h264_mp4toannexb_ticket5927
+++ b/tests/ref/fate/h264_mp4toannexb_ticket5927
@@ -1,6 +1,6 @@
edddeef7901b2bd8d55625b8105b579f
*tests/data/fate/h264_mp4toannexb_ticket5927.h264
595583 tests/data/fate/h264_mp4toannexb_ticket5927.h264
-#extradata 0: 33, 0x84e308f7
+#extradata 0: 35, 0x8c0208f7
#tb 0: 1/1200000
#media_type 0: video
#codec_id 0: h264
diff --git a/tests/ref/fate/h264_mp4toannexb_ticket5927_2
b/tests/ref/fate/h264_mp4toannexb_ticket5927_2
index 8c3613ee79..7a99faa535 100644
--- a/tests/ref/fate/h264_mp4toannexb_ticket5927_2
+++ b/tests/ref/fate/h264_mp4toannexb_ticket5927_2
@@ -1,6 +1,6 @@
edddeef7901b2bd8d55625b8105b579f
*tests/data/fate/h264_mp4toannexb_ticket5927_2.h264
595583 tests/data/fate/h264_mp4toannexb_ticket5927_2.h264
-#extradata 0: 33, 0x84e308f7
+#extradata 0: 35, 0x8c0208f7
#tb 0: 1/1200000
#media_type 0: video
#codec_id 0: h264
diff --git a/tests/ref/fate/hevc-bsf-dts2pts-idr
b/tests/ref/fate/hevc-bsf-dts2pts-idr
index 9568a5932c..a7a7db85bc 100644
--- a/tests/ref/fate/hevc-bsf-dts2pts-idr
+++ b/tests/ref/fate/hevc-bsf-dts2pts-idr
@@ -1,6 +1,6 @@
-368d177821450241820bf3507d74b35a *tests/data/fate/hevc-bsf-dts2pts-idr.mov
-346603 tests/data/fate/hevc-bsf-dts2pts-idr.mov
-#extradata 0: 699, 0x9c810c10
+20c52f7729b6143ec6498fd5b92fd6ab *tests/data/fate/hevc-bsf-dts2pts-idr.mov
+346606 tests/data/fate/hevc-bsf-dts2pts-idr.mov
+#extradata 0: 702, 0xaf1f0c13
#tb 0: 1/1200000
#media_type 0: video
#codec_id 0: hevc
diff --git a/tests/ref/fate/hevc-bsf-dts2pts-idr-cra
b/tests/ref/fate/hevc-bsf-dts2pts-idr-cra
index 02e9765a26..cdec6aa3fa 100644
--- a/tests/ref/fate/hevc-bsf-dts2pts-idr-cra
+++ b/tests/ref/fate/hevc-bsf-dts2pts-idr-cra
@@ -1,6 +1,6 @@
-07a216d6537502705348fea392d5d73d *tests/data/fate/hevc-bsf-dts2pts-idr-cra.mov
-375266 tests/data/fate/hevc-bsf-dts2pts-idr-cra.mov
-#extradata 0: 648, 0x30a7fa5c
+522a725a0e8ff12050091e8be2016a47 *tests/data/fate/hevc-bsf-dts2pts-idr-cra.mov
+375268 tests/data/fate/hevc-bsf-dts2pts-idr-cra.mov
+#extradata 0: 650, 0x38ebfa5e
#tb 0: 1/1200000
#media_type 0: video
#codec_id 0: hevc
diff --git a/tests/ref/fate/hxvs-demux b/tests/ref/fate/hxvs-demux
index c72628ace7..f8b196e0cc 100644
--- a/tests/ref/fate/hxvs-demux
+++ b/tests/ref/fate/hxvs-demux
@@ -1,4 +1,4 @@
-#extradata 0: 88, 0x61e61071
+#extradata 0: 91, 0x721f1071
#tb 0: 1/1000
#media_type 0: video
#codec_id 0: hevc
diff --git a/tests/ref/fate/matroska-h264-remux
b/tests/ref/fate/matroska-h264-remux
index 6362b6f684..dd82adf92c 100644
--- a/tests/ref/fate/matroska-h264-remux
+++ b/tests/ref/fate/matroska-h264-remux
@@ -1,5 +1,5 @@
-277a08f708965112a7c2fb25d941e68a *tests/data/fate/matroska-h264-remux.matroska
-2036806 tests/data/fate/matroska-h264-remux.matroska
+bfe1da5a2dcaaaaf975b8c4c446984e7 *tests/data/fate/matroska-h264-remux.matroska
+2036807 tests/data/fate/matroska-h264-remux.matroska
#tb 0: 1/25
#media_type 0: video
#codec_id 0: rawvideo
diff --git a/tests/ref/fate/segment-mp4-to-ts b/tests/ref/fate/segment-mp4-to-ts
index 9f3bdf4e1d..b25ab12ca3 100644
--- a/tests/ref/fate/segment-mp4-to-ts
+++ b/tests/ref/fate/segment-mp4-to-ts
@@ -1,4 +1,4 @@
-#extradata 0: 50, 0x4f1b0df9
+#extradata 0: 52, 0x5a8b0df9
#tb 0: 1/90000
#media_type 0: video
#codec_id 0: h264
diff --git a/tests/ref/fate/ts-small-demux b/tests/ref/fate/ts-small-demux
index 7e693df6ad..41e40bdfac 100644
--- a/tests/ref/fate/ts-small-demux
+++ b/tests/ref/fate/ts-small-demux
@@ -72,5 +72,5 @@
packet|codec_type=video|stream_index=0|pts=546000|pts_time=6.066667|dts=546000|d
packet|codec_type=video|stream_index=0|pts=552000|pts_time=6.133333|dts=552000|dts_time=6.133333|duration=6000|duration_time=0.066667|size=16|pos=15604|flags=___|data_hash=CRC32:cca62b67|side_datum/mpegts_stream_id:side_data_type=MPEGTS
Stream ID|side_datum/mpegts_stream_id:id=224
packet|codec_type=video|stream_index=0|pts=558000|pts_time=6.200000|dts=558000|dts_time=6.200000|duration=6000|duration_time=0.066667|size=16|pos=15792|flags=___|data_hash=CRC32:27b943ef|side_datum/mpegts_stream_id:side_data_type=MPEGTS
Stream ID|side_datum/mpegts_stream_id:id=224
packet|codec_type=video|stream_index=0|pts=564000|pts_time=6.266667|dts=564000|dts_time=6.266667|duration=6000|duration_time=0.066667|size=16|pos=16356|flags=___|data_hash=CRC32:f7116111|side_datum/mpegts_stream_id:side_data_type=MPEGTS
Stream ID|side_datum/mpegts_stream_id:id=224
-stream|index=0|codec_name=h264|profile=578|codec_type=video|codec_tag_string=[27][0][0][0]|codec_tag=0x001b|mime_codec_string=avc1.42c00a|width=82|height=144|coded_width=82|coded_height=144|has_b_frames=0|sample_aspect_ratio=1:1|display_aspect_ratio=41:72|pix_fmt=yuv420p|level=10|color_range=unknown|color_space=unknown|color_transfer=unknown|color_primaries=unknown|chroma_location=left|field_order=progressive|is_avc=false|nal_length_size=0|ts_id=1|ts_packetsize=188|id=0x100|r_frame_rate=15/1|avg_frame_rate=15/1|time_base=1/90000|start_pts=126000|start_time=1.400000|duration_ts=444000|duration=4.933333|bit_rate=N/A|max_bit_rate=N/A|bits_per_raw_sample=8|nb_frames=N/A|nb_read_frames=N/A|nb_read_packets=74|extradata_size=35|extradata_hash=CRC32:e62cae27|disposition:default=0|disposition:dub=0|disposition:original=0|disposition:comment=0|disposition:lyrics=0|disposition:karaoke=0|disposition:forced=0|disposition:hearing_impaired=0|disposition:visual_impaired=0|disposition:clean_effects=
0|disposition:attached_pic=0|disposition:timed_thumbnails=0|disposition:non_diegetic=0|disposition:captions=0|disposition:descriptions=0|disposition:metadata=0|disposition:dependent=0|disposition:still_image=0|disposition:multilayer=0
+stream|index=0|codec_name=h264|profile=578|codec_type=video|codec_tag_string=[27][0][0][0]|codec_tag=0x001b|mime_codec_string=avc1.42c00a|width=82|height=144|coded_width=82|coded_height=144|has_b_frames=0|sample_aspect_ratio=1:1|display_aspect_ratio=41:72|pix_fmt=yuv420p|level=10|color_range=unknown|color_space=unknown|color_transfer=unknown|color_primaries=unknown|chroma_location=left|field_order=progressive|is_avc=false|nal_length_size=0|ts_id=1|ts_packetsize=188|id=0x100|r_frame_rate=15/1|avg_frame_rate=15/1|time_base=1/90000|start_pts=126000|start_time=1.400000|duration_ts=444000|duration=4.933333|bit_rate=N/A|max_bit_rate=N/A|bits_per_raw_sample=8|nb_frames=N/A|nb_read_frames=N/A|nb_read_packets=74|extradata_size=37|extradata_hash=CRC32:1d7ffe93|disposition:default=0|disposition:dub=0|disposition:original=0|disposition:comment=0|disposition:lyrics=0|disposition:karaoke=0|disposition:forced=0|disposition:hearing_impaired=0|disposition:visual_impaired=0|disposition:clean_effects=
0|disposition:attached_pic=0|disposition:timed_thumbnails=0|disposition:non_diegetic=0|disposition:captions=0|disposition:descriptions=0|disposition:metadata=0|disposition:dependent=0|disposition:still_image=0|disposition:multilayer=0
format|filename=h264small.ts|nb_streams=1|nb_programs=1|nb_stream_groups=0|format_name=mpegts|start_time=1.400000|duration=4.933333|size=16544|bit_rate=26828|probe_score=50
diff --git a/tests/ref/lavf-fate/h264.mp4 b/tests/ref/lavf-fate/h264.mp4
index a9c3823c2c..2d93d3faee 100644
--- a/tests/ref/lavf-fate/h264.mp4
+++ b/tests/ref/lavf-fate/h264.mp4
@@ -1,3 +1,3 @@
-fe299ea5205b71a48281f917b1256a5d *tests/data/lavf-fate/lavf.h264.mp4
-547928 tests/data/lavf-fate/lavf.h264.mp4
+f491053811da29b9908c62eb8846c98d *tests/data/lavf-fate/lavf.h264.mp4
+547929 tests/data/lavf-fate/lavf.h264.mp4
tests/data/lavf-fate/lavf.h264.mp4 CRC=0x9da2c999
diff --git a/tests/ref/lavf-fate/hevc.mp4 b/tests/ref/lavf-fate/hevc.mp4
index aea5ae8979..1c8915e258 100644
--- a/tests/ref/lavf-fate/hevc.mp4
+++ b/tests/ref/lavf-fate/hevc.mp4
@@ -1,3 +1,3 @@
-37b3a3e84df2350380b05b2af4dc97f5 *tests/data/lavf-fate/lavf.hevc.mp4
-151340 tests/data/lavf-fate/lavf.hevc.mp4
+e75a1eba44865dc2f6e5fa99ce392bb5 *tests/data/lavf-fate/lavf.hevc.mp4
+151342 tests/data/lavf-fate/lavf.hevc.mp4
tests/data/lavf-fate/lavf.hevc.mp4 CRC=0xc0a771de
diff --git a/tests/ref/lavf-fate/vvc.mkv b/tests/ref/lavf-fate/vvc.mkv
index 12936f1f58..a680416541 100644
--- a/tests/ref/lavf-fate/vvc.mkv
+++ b/tests/ref/lavf-fate/vvc.mkv
@@ -1,3 +1,3 @@
-088fe4756b99c28031ba41d1a841a1cb *tests/data/lavf-fate/lavf.vvc.mkv
-16351 tests/data/lavf-fate/lavf.vvc.mkv
+47ae23d78078cd9e3ed7b6f06c818770 *tests/data/lavf-fate/lavf.vvc.mkv
+16353 tests/data/lavf-fate/lavf.vvc.mkv
tests/data/lavf-fate/lavf.vvc.mkv CRC=0x895790b1
diff --git a/tests/ref/lavf-fate/vvc.mp4 b/tests/ref/lavf-fate/vvc.mp4
index b237fe18cb..1a42c7fc37 100644
--- a/tests/ref/lavf-fate/vvc.mp4
+++ b/tests/ref/lavf-fate/vvc.mp4
@@ -1,3 +1,3 @@
-b5d5939890d3246475f990e5ebd58dc8 *tests/data/lavf-fate/lavf.vvc.mp4
-16625 tests/data/lavf-fate/lavf.vvc.mp4
+4497760ca8fa9eb475f4e0d222de2f38 *tests/data/lavf-fate/lavf.vvc.mp4
+16627 tests/data/lavf-fate/lavf.vvc.mp4
tests/data/lavf-fate/lavf.vvc.mp4 CRC=0x895790b1
--
2.52.0
_______________________________________________
ffmpeg-devel mailing list -- [email protected]
To unsubscribe send an email to [email protected]