* [FFmpeg-devel] [PATCH 00/24] Major library version bump
@ 2024-01-25 13:43 James Almer
2024-01-25 13:43 ` [FFmpeg-devel] [PATCH 01/24] avcodec: remove deprecated FF_API_IDCT_NONE James Almer
` (41 more replies)
0 siblings, 42 replies; 60+ messages in thread
From: James Almer @ 2024-01-25 13:43 UTC (permalink / raw)
To: ffmpeg-devel
As the subject states, this set removes deprecated API scheduled for removal
in the past year, since the last major bump.
After this is committed, it will be open ABI season for a few weeks, but no
longer than a month. So if you want to do some cleaning (like removing avpriv_
functions, or moving field offsets from public strucs around), now is the time.
Of particular interest is the removal of the old channel layout API. This means
decoders, demuxers and filters can now output custom and ambisonic layouts
without worrying the caller may not be aware of them because it only looked at
the old fields.
James Almer (24):
avcodec: remove deprecated FF_API_IDCT_NONE
avcodec: remove deprecated FF_API_SVTAV1_OPTS
avcodec: remove deprecated FF_API_AYUV_CODECID
avcodec: remove deprecated FF_API_VT_OUTPUT_CALLBACK
avcodec: remove deprecated FF_API_AVCODEC_CHROMA_POS
avcodec: remove deprecated FF_API_VT_HWACCEL_CONTEXT
avcodec: remove deprecated FF_API_AVCTX_FRAME_NUMBER
avcodec: remove deprecated FF_CODEC_CRYSTAL_HD
avformat: remove deprecated FF_API_GET_END_PTS
avformat: remove deprecated FF_API_AVIODIRCONTEXT
avformat: remove deprecated FF_API_AVFORMAT_IO_CLOSE
avfilter: remove deprecated FF_API_LIBPLACEBO_OPTS
avutil: remove deprecated FF_API_FIFO_PEEK2
avutil: remove deprecated FF_API_FIFO_OLD_API
avutil: remove deprecated FF_API_XVMC
avutil: remove deprecated FF_API_OLD_CHANNEL_LAYOUT
avutil: remove deprecated FF_API_AV_FOPEN_UTF8
avutil: remove deprecated FF_API_PKT_DURATION
avutil: remove deprecated FF_API_REORDERED_OPAQUE
avutil: remove deprecated FF_API_FRAME_PICTURE_NUMBER
avcodec/version_major: postpone some deprecations until the next bump
avformat/version_major: postpone some deprecations until the next bump
avutil/version_major: postpone some deprecations until the next bump
libs: bump major version for all libraries
configure | 13 -
doc/APIchanges | 2 +-
doc/ffprobe.xsd | 4 -
fftools/ffmpeg_filter.c | 5 -
fftools/ffmpeg_mux_init.c | 21 +-
fftools/ffprobe.c | 12 -
libavcodec/Makefile | 1 -
libavcodec/aac_ac3_parser.c | 6 -
libavcodec/aacdec.c | 2 -
libavcodec/aacdec_common.c | 17 -
libavcodec/aacdec_fixed.c | 1 -
libavcodec/aacdec_template.c | 7 -
libavcodec/aacdectab.h | 4 -
libavcodec/ac3dec.c | 8 -
libavcodec/ac3enc.c | 24 -
libavcodec/ac3enc.h | 3 -
libavcodec/ac3enc_fixed.c | 1 -
libavcodec/ac3enc_float.c | 1 -
libavcodec/alacenc.c | 16 -
libavcodec/allcodecs.c | 10 -
libavcodec/aptxdec.c | 2 -
libavcodec/aptxenc.c | 2 -
libavcodec/audiotoolboxenc.c | 19 -
libavcodec/avcodec.c | 34 -
libavcodec/avcodec.h | 110 ---
libavcodec/codec.h | 7 -
libavcodec/codec_desc.c | 9 -
libavcodec/codec_id.h | 3 -
libavcodec/codec_internal.h | 19 -
libavcodec/codec_par.c | 46 --
libavcodec/codec_par.h | 16 -
libavcodec/crystalhd.c | 826 -------------------
libavcodec/dcadec.c | 12 -
libavcodec/dcaenc.c | 3 -
libavcodec/decode.c | 72 --
libavcodec/diracdec.c | 15 -
libavcodec/dolby_e.c | 7 -
libavcodec/eac3enc.c | 1 -
libavcodec/encode.c | 16 -
libavcodec/g722enc.c | 1 -
libavcodec/get_buffer.c | 6 -
libavcodec/h264_slice.c | 5 -
libavcodec/libcodec2.c | 2 -
libavcodec/libdav1d.c | 22 +-
libavcodec/libfdk-aacdec.c | 8 -
libavcodec/libfdk-aacenc.c | 23 -
libavcodec/libgsmenc.c | 2 -
libavcodec/libmp3lame.c | 1 -
libavcodec/librav1e.c | 13 -
libavcodec/libshine.c | 1 -
libavcodec/libspeexenc.c | 1 -
libavcodec/libsvtav1.c | 48 --
libavcodec/libtwolame.c | 1 -
libavcodec/libuavs3d.c | 6 -
libavcodec/libvpxenc.c | 14 -
libavcodec/libwebpenc_animencoder.c | 13 -
libavcodec/libx264.c | 18 -
libavcodec/libx265.c | 20 -
libavcodec/mlp.c | 9 -
libavcodec/mlp.h | 3 -
libavcodec/mlpdec.c | 9 -
libavcodec/mlpenc.c | 2 -
libavcodec/mpegaudioenc_fixed.c | 1 -
libavcodec/mpegaudioenc_float.c | 1 -
libavcodec/mpegvideo_dec.c | 6 -
libavcodec/nvenc.c | 12 -
libavcodec/nvenc.h | 4 -
libavcodec/options.c | 5 -
libavcodec/options_table.h | 10 -
libavcodec/opusenc.c | 1 -
libavcodec/packet.h | 7 -
libavcodec/pcm-blurayenc.c | 11 -
libavcodec/pcm-dvdenc.c | 2 -
libavcodec/pthread_frame.c | 16 -
libavcodec/ra144enc.c | 1 -
libavcodec/sbcdec.c | 1 -
libavcodec/sbcenc.c | 1 -
libavcodec/utils.c | 25 +-
libavcodec/v408dec.c | 35 +-
libavcodec/v408enc.c | 37 +-
libavcodec/version.h | 2 +-
libavcodec/version_major.h | 21 +-
libavcodec/videotoolbox.c | 31 -
libavcodec/videotoolbox.h | 65 --
libavcodec/vorbis_data.c | 14 -
libavcodec/vorbis_data.h | 3 -
libavcodec/vorbisdec.c | 1 -
libavdevice/alsa_enc.c | 7 -
libavdevice/pulse_audio_enc.c | 7 -
libavdevice/version.h | 2 +-
libavdevice/version_major.h | 2 +-
libavfilter/af_afir.c | 5 -
libavfilter/af_aformat.c | 13 -
libavfilter/af_amerge.c | 6 -
libavfilter/af_aresample.c | 6 -
libavfilter/af_ashowinfo.c | 10 -
libavfilter/af_channelmap.c | 6 -
libavfilter/af_channelsplit.c | 7 -
libavfilter/af_join.c | 6 -
libavfilter/af_ladspa.c | 5 -
libavfilter/af_lv2.c | 5 -
libavfilter/af_pan.c | 6 -
libavfilter/audio.c | 12 -
libavfilter/avfilter.c | 5 -
libavfilter/avfilter.h | 8 -
libavfilter/avfiltergraph.c | 6 -
libavfilter/buffersink.c | 70 +-
libavfilter/buffersink.h | 4 -
libavfilter/buffersrc.c | 51 +-
libavfilter/buffersrc.h | 9 -
libavfilter/f_streamselect.c | 5 -
libavfilter/formats.c | 20 +-
libavfilter/framepool.c | 5 -
libavfilter/tests/formats.c | 3 -
libavfilter/version.h | 2 +-
libavfilter/version_major.h | 4 +-
libavfilter/vf_deshake_opencl.c | 7 -
libavfilter/vf_drawtext.c | 15 -
libavfilter/vf_libplacebo.c | 76 --
libavfilter/vsrc_testsrc.c | 5 -
libavformat/avformat.c | 14 +-
libavformat/avformat.h | 20 -
libavformat/avio.c | 2 -
libavformat/avio.h | 6 -
libavformat/dashenc.c | 5 -
libavformat/demux.c | 19 -
libavformat/demux_utils.c | 20 -
libavformat/dfpwmdec.c | 17 +-
libavformat/dump.c | 25 -
libavformat/fifo.c | 5 -
libavformat/hlsenc.c | 5 -
libavformat/imfdec.c | 5 -
libavformat/mux.c | 23 -
libavformat/mux_utils.c | 10 -
libavformat/nutdec.c | 4 -
libavformat/nutenc.c | 15 -
libavformat/options.c | 12 -
libavformat/pcmdec.c | 20 -
libavformat/segment.c | 5 -
libavformat/tee.c | 5 -
libavformat/version.h | 2 +-
libavformat/version_major.h | 15 +-
libavutil/avutil.h | 13 -
libavutil/channel_layout.c | 184 -----
libavutil/channel_layout.h | 150 ----
libavutil/fifo.c | 219 -----
libavutil/fifo.h | 202 -----
libavutil/file.c | 6 -
libavutil/file.h | 17 -
libavutil/file_open.c | 7 -
libavutil/frame.c | 148 +---
libavutil/frame.h | 61 --
libavutil/opt.c | 112 ---
libavutil/opt.h | 11 -
libavutil/pixdesc.c | 6 -
libavutil/pixfmt.h | 4 -
libavutil/version.h | 26 +-
libpostproc/version.h | 2 +-
libpostproc/version_major.h | 2 +-
libswresample/options.c | 22 -
libswresample/rematrix.c | 48 +-
libswresample/swresample.c | 120 ---
libswresample/swresample.h | 63 --
libswresample/swresample_frame.c | 47 +-
libswresample/swresample_internal.h | 7 -
libswresample/version.h | 2 +-
libswresample/version_major.h | 2 +-
libswscale/version.h | 2 +-
libswscale/version_major.h | 2 +-
tests/ref/fate/exif-image-embedded | 46 --
tests/ref/fate/exif-image-jpg | 4 -
tests/ref/fate/exif-image-tiff | 4 -
tests/ref/fate/exif-image-webp | 4 -
tests/ref/fate/ffprobe_compact | 28 +-
tests/ref/fate/ffprobe_csv | 28 +-
tests/ref/fate/ffprobe_default | 44 -
tests/ref/fate/ffprobe_flat | 44 -
tests/ref/fate/ffprobe_ini | 44 -
tests/ref/fate/ffprobe_json | 44 -
tests/ref/fate/ffprobe_xml | 28 +-
tests/ref/fate/ffprobe_xsd | 28 +-
tests/ref/fate/filter-formats | 3 -
tests/ref/fate/flcl1905 | 350 ++++----
tests/ref/fate/gaplessenc-itunes-to-ipod-aac | 32 +-
tests/ref/fate/gaplessenc-pcm-to-mov-aac | 32 +-
tests/ref/fate/gaplessinfo-itunes1 | 32 +-
tests/ref/fate/gaplessinfo-itunes2 | 32 +-
tests/ref/fate/h264-dts_5frames | 20 -
tests/ref/fate/jpg-icc | 4 -
tests/ref/fate/mov-zombie | 130 +--
tests/ref/fate/png-icc | 4 -
tests/ref/fate/png-side-data | 4 -
192 files changed, 424 insertions(+), 4622 deletions(-)
delete mode 100644 libavcodec/crystalhd.c
--
2.43.0
_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
To unsubscribe, visit link above, or email
ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".
^ permalink raw reply [flat|nested] 60+ messages in thread
* [FFmpeg-devel] [PATCH 01/24] avcodec: remove deprecated FF_API_IDCT_NONE
2024-01-25 13:43 [FFmpeg-devel] [PATCH 00/24] Major library version bump James Almer
@ 2024-01-25 13:43 ` James Almer
2024-01-25 13:43 ` [FFmpeg-devel] [PATCH 02/24] avcodec: remove deprecated FF_API_SVTAV1_OPTS James Almer
` (40 subsequent siblings)
41 siblings, 0 replies; 60+ messages in thread
From: James Almer @ 2024-01-25 13:43 UTC (permalink / raw)
To: ffmpeg-devel
Signed-off-by: James Almer <jamrial@gmail.com>
---
libavcodec/avcodec.h | 4 ----
libavcodec/version_major.h | 1 -
2 files changed, 5 deletions(-)
diff --git a/libavcodec/avcodec.h b/libavcodec/avcodec.h
index 7fb44e28f4..4b2ef4fdf7 100644
--- a/libavcodec/avcodec.h
+++ b/libavcodec/avcodec.h
@@ -1496,10 +1496,6 @@ typedef struct AVCodecContext {
#define FF_IDCT_SIMPLEARMV6 17
#define FF_IDCT_FAAN 20
#define FF_IDCT_SIMPLENEON 22
-#if FF_API_IDCT_NONE
-// formerly used by xvmc
-#define FF_IDCT_NONE 24
-#endif
#define FF_IDCT_SIMPLEAUTO 128
/**
diff --git a/libavcodec/version_major.h b/libavcodec/version_major.h
index b9164fe5c6..dc1938888c 100644
--- a/libavcodec/version_major.h
+++ b/libavcodec/version_major.h
@@ -38,7 +38,6 @@
*/
#define FF_API_INIT_PACKET (LIBAVCODEC_VERSION_MAJOR < 61)
-#define FF_API_IDCT_NONE (LIBAVCODEC_VERSION_MAJOR < 61)
#define FF_API_SVTAV1_OPTS (LIBAVCODEC_VERSION_MAJOR < 61)
#define FF_API_AYUV_CODECID (LIBAVCODEC_VERSION_MAJOR < 61)
#define FF_API_VT_OUTPUT_CALLBACK (LIBAVCODEC_VERSION_MAJOR < 61)
--
2.43.0
_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
To unsubscribe, visit link above, or email
ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".
^ permalink raw reply [flat|nested] 60+ messages in thread
* [FFmpeg-devel] [PATCH 02/24] avcodec: remove deprecated FF_API_SVTAV1_OPTS
2024-01-25 13:43 [FFmpeg-devel] [PATCH 00/24] Major library version bump James Almer
2024-01-25 13:43 ` [FFmpeg-devel] [PATCH 01/24] avcodec: remove deprecated FF_API_IDCT_NONE James Almer
@ 2024-01-25 13:43 ` James Almer
2024-01-25 13:43 ` [FFmpeg-devel] [PATCH 03/24] avcodec: remove deprecated FF_API_AYUV_CODECID James Almer
` (39 subsequent siblings)
41 siblings, 0 replies; 60+ messages in thread
From: James Almer @ 2024-01-25 13:43 UTC (permalink / raw)
To: ffmpeg-devel
Signed-off-by: James Almer <jamrial@gmail.com>
---
libavcodec/libsvtav1.c | 48 --------------------------------------
libavcodec/version_major.h | 1 -
2 files changed, 49 deletions(-)
diff --git a/libavcodec/libsvtav1.c b/libavcodec/libsvtav1.c
index 862192945b..9343322496 100644
--- a/libavcodec/libsvtav1.c
+++ b/libavcodec/libsvtav1.c
@@ -62,16 +62,6 @@ typedef struct SvtContext {
// User options.
AVDictionary *svtav1_opts;
-#if FF_API_SVTAV1_OPTS
- int hierarchical_level;
- int la_depth;
- int scd;
-
- int tier;
-
- int tile_columns;
- int tile_rows;
-#endif
int enc_mode;
int crf;
int qp;
@@ -154,22 +144,6 @@ static int config_enc_params(EbSvtAv1EncConfiguration *param,
AVDictionaryEntry *en = NULL;
// Update param from options
-#if FF_API_SVTAV1_OPTS
- if (svt_enc->hierarchical_level >= 0)
- param->hierarchical_levels = svt_enc->hierarchical_level;
- if (svt_enc->tier >= 0)
- param->tier = svt_enc->tier;
- if (svt_enc->scd >= 0)
- param->scene_change_detection = svt_enc->scd;
- if (svt_enc->tile_columns >= 0)
- param->tile_columns = svt_enc->tile_columns;
- if (svt_enc->tile_rows >= 0)
- param->tile_rows = svt_enc->tile_rows;
-
- if (svt_enc->la_depth >= 0)
- param->look_ahead_distance = svt_enc->la_depth;
-#endif
-
if (svt_enc->enc_mode >= -1)
param->enc_mode = svt_enc->enc_mode;
@@ -605,20 +579,6 @@ static av_cold int eb_enc_close(AVCodecContext *avctx)
#define OFFSET(x) offsetof(SvtContext, x)
#define VE AV_OPT_FLAG_VIDEO_PARAM | AV_OPT_FLAG_ENCODING_PARAM
static const AVOption options[] = {
-#if FF_API_SVTAV1_OPTS
- { "hielevel", "Hierarchical prediction levels setting (Deprecated, use svtav1-params)", OFFSET(hierarchical_level),
- AV_OPT_TYPE_INT, { .i64 = -1 }, -1, 4, VE | AV_OPT_FLAG_DEPRECATED , "hielevel"},
- { "3level", NULL, 0, AV_OPT_TYPE_CONST, { .i64 = 3 }, INT_MIN, INT_MAX, VE, "hielevel" },
- { "4level", NULL, 0, AV_OPT_TYPE_CONST, { .i64 = 4 }, INT_MIN, INT_MAX, VE, "hielevel" },
-
- { "la_depth", "Look ahead distance [0, 120] (Deprecated, use svtav1-params)", OFFSET(la_depth),
- AV_OPT_TYPE_INT, { .i64 = -1 }, -1, 120, VE | AV_OPT_FLAG_DEPRECATED },
-
- { "tier", "Set operating point tier (Deprecated, use svtav1-params)", OFFSET(tier),
- AV_OPT_TYPE_INT, { .i64 = -1 }, -1, 1, VE | AV_OPT_FLAG_DEPRECATED, "tier" },
- { "main", NULL, 0, AV_OPT_TYPE_CONST, { .i64 = 0 }, 0, 0, VE, "tier" },
- { "high", NULL, 0, AV_OPT_TYPE_CONST, { .i64 = 1 }, 0, 0, VE, "tier" },
-#endif
{ "preset", "Encoding preset",
OFFSET(enc_mode), AV_OPT_TYPE_INT, { .i64 = -2 }, -2, MAX_ENC_PRESET, VE },
@@ -656,14 +616,6 @@ static const AVOption options[] = {
AV_OPT_TYPE_INT, { .i64 = 0 }, 0, 63, VE },
{ "qp", "Initial Quantizer level value", OFFSET(qp),
AV_OPT_TYPE_INT, { .i64 = 0 }, 0, 63, VE },
-#if FF_API_SVTAV1_OPTS
- { "sc_detection", "Scene change detection (Deprecated, use svtav1-params)", OFFSET(scd),
- AV_OPT_TYPE_BOOL, { .i64 = -1 }, -1, 1, VE | AV_OPT_FLAG_DEPRECATED },
-
- { "tile_columns", "Log2 of number of tile columns to use (Deprecated, use svtav1-params)", OFFSET(tile_columns), AV_OPT_TYPE_INT, { .i64 = -1 }, -1, 4, VE | AV_OPT_FLAG_DEPRECATED },
- { "tile_rows", "Log2 of number of tile rows to use (Deprecated, use svtav1-params)", OFFSET(tile_rows), AV_OPT_TYPE_INT, { .i64 = -1 }, -1, 6, VE | AV_OPT_FLAG_DEPRECATED },
-#endif
-
{ "svtav1-params", "Set the SVT-AV1 configuration using a :-separated list of key=value parameters", OFFSET(svtav1_opts), AV_OPT_TYPE_DICT, { 0 }, 0, 0, VE },
{NULL},
diff --git a/libavcodec/version_major.h b/libavcodec/version_major.h
index dc1938888c..03fe1e2a83 100644
--- a/libavcodec/version_major.h
+++ b/libavcodec/version_major.h
@@ -38,7 +38,6 @@
*/
#define FF_API_INIT_PACKET (LIBAVCODEC_VERSION_MAJOR < 61)
-#define FF_API_SVTAV1_OPTS (LIBAVCODEC_VERSION_MAJOR < 61)
#define FF_API_AYUV_CODECID (LIBAVCODEC_VERSION_MAJOR < 61)
#define FF_API_VT_OUTPUT_CALLBACK (LIBAVCODEC_VERSION_MAJOR < 61)
#define FF_API_AVCODEC_CHROMA_POS (LIBAVCODEC_VERSION_MAJOR < 61)
--
2.43.0
_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
To unsubscribe, visit link above, or email
ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".
^ permalink raw reply [flat|nested] 60+ messages in thread
* [FFmpeg-devel] [PATCH 03/24] avcodec: remove deprecated FF_API_AYUV_CODECID
2024-01-25 13:43 [FFmpeg-devel] [PATCH 00/24] Major library version bump James Almer
2024-01-25 13:43 ` [FFmpeg-devel] [PATCH 01/24] avcodec: remove deprecated FF_API_IDCT_NONE James Almer
2024-01-25 13:43 ` [FFmpeg-devel] [PATCH 02/24] avcodec: remove deprecated FF_API_SVTAV1_OPTS James Almer
@ 2024-01-25 13:43 ` James Almer
2024-01-25 13:43 ` [FFmpeg-devel] [PATCH 04/24] avcodec: remove deprecated FF_API_VT_OUTPUT_CALLBACK James Almer
` (38 subsequent siblings)
41 siblings, 0 replies; 60+ messages in thread
From: James Almer @ 2024-01-25 13:43 UTC (permalink / raw)
To: ffmpeg-devel
Signed-off-by: James Almer <jamrial@gmail.com>
---
libavcodec/allcodecs.c | 4 ----
libavcodec/codec_desc.c | 9 ---------
libavcodec/codec_id.h | 3 ---
libavcodec/v408dec.c | 35 ++++-------------------------------
libavcodec/v408enc.c | 37 ++++---------------------------------
libavcodec/version_major.h | 1 -
6 files changed, 8 insertions(+), 81 deletions(-)
diff --git a/libavcodec/allcodecs.c b/libavcodec/allcodecs.c
index ef8c3a6d7d..45d5998943 100644
--- a/libavcodec/allcodecs.c
+++ b/libavcodec/allcodecs.c
@@ -61,10 +61,6 @@ extern const FFCodec ff_avrn_decoder;
extern const FFCodec ff_avs_decoder;
extern const FFCodec ff_avui_encoder;
extern const FFCodec ff_avui_decoder;
-#if FF_API_AYUV_CODECID
-extern const FFCodec ff_ayuv_encoder;
-extern const FFCodec ff_ayuv_decoder;
-#endif
extern const FFCodec ff_bethsoftvid_decoder;
extern const FFCodec ff_bfi_decoder;
extern const FFCodec ff_bink_decoder;
diff --git a/libavcodec/codec_desc.c b/libavcodec/codec_desc.c
index 033344304c..3bab86db62 100644
--- a/libavcodec/codec_desc.c
+++ b/libavcodec/codec_desc.c
@@ -1470,15 +1470,6 @@ static const AVCodecDescriptor codec_descriptors[] = {
.long_name = NULL_IF_CONFIG_SMALL("Avid Meridien Uncompressed"),
.props = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSLESS,
},
-#if FF_API_AYUV_CODECID
- {
- .id = AV_CODEC_ID_AYUV,
- .type = AVMEDIA_TYPE_VIDEO,
- .name = "ayuv",
- .long_name = NULL_IF_CONFIG_SMALL("Uncompressed packed MS 4:4:4:4"),
- .props = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSLESS,
- },
-#endif
{
.id = AV_CODEC_ID_TARGA_Y216,
.type = AVMEDIA_TYPE_VIDEO,
diff --git a/libavcodec/codec_id.h b/libavcodec/codec_id.h
index d96e49430e..c8dc21da74 100644
--- a/libavcodec/codec_id.h
+++ b/libavcodec/codec_id.h
@@ -253,9 +253,6 @@ enum AVCodecID {
AV_CODEC_ID_AVRP,
AV_CODEC_ID_012V,
AV_CODEC_ID_AVUI,
-#if FF_API_AYUV_CODECID
- AV_CODEC_ID_AYUV,
-#endif
AV_CODEC_ID_TARGA_Y216,
AV_CODEC_ID_V308,
AV_CODEC_ID_V408,
diff --git a/libavcodec/v408dec.c b/libavcodec/v408dec.c
index 191c050fb2..4d8bccd650 100644
--- a/libavcodec/v408dec.c
+++ b/libavcodec/v408dec.c
@@ -29,10 +29,6 @@ static av_cold int v408_decode_init(AVCodecContext *avctx)
{
avctx->pix_fmt = AV_PIX_FMT_YUVA444P;
-#if FF_API_AYUV_CODECID
- if (avctx->codec_id==AV_CODEC_ID_AYUV)
- av_log(avctx, AV_LOG_WARNING, "This decoder is deprecated and will be removed.\n");
-#endif
return 0;
}
@@ -61,20 +57,10 @@ static int v408_decode_frame(AVCodecContext *avctx, AVFrame *pic,
for (i = 0; i < avctx->height; i++) {
for (j = 0; j < avctx->width; j++) {
-#if FF_API_AYUV_CODECID
- if (avctx->codec_id==AV_CODEC_ID_AYUV) {
- v[j] = *src++;
- u[j] = *src++;
- y[j] = *src++;
- a[j] = *src++;
- } else
-#endif
- {
- u[j] = *src++;
- y[j] = *src++;
- v[j] = *src++;
- a[j] = *src++;
- }
+ u[j] = *src++;
+ y[j] = *src++;
+ v[j] = *src++;
+ a[j] = *src++;
}
y += pic->linesize[0];
@@ -88,19 +74,6 @@ static int v408_decode_frame(AVCodecContext *avctx, AVFrame *pic,
return avpkt->size;
}
-#if FF_API_AYUV_CODECID
-#if CONFIG_AYUV_DECODER
-const FFCodec ff_ayuv_decoder = {
- .p.name = "ayuv",
- CODEC_LONG_NAME("Uncompressed packed MS 4:4:4:4"),
- .p.type = AVMEDIA_TYPE_VIDEO,
- .p.id = AV_CODEC_ID_AYUV,
- .init = v408_decode_init,
- FF_CODEC_DECODE_CB(v408_decode_frame),
- .p.capabilities = AV_CODEC_CAP_DR1,
-};
-#endif
-#endif
#if CONFIG_V408_DECODER
const FFCodec ff_v408_decoder = {
.p.name = "v408",
diff --git a/libavcodec/v408enc.c b/libavcodec/v408enc.c
index 1faac7cc36..c1bf0f6158 100644
--- a/libavcodec/v408enc.c
+++ b/libavcodec/v408enc.c
@@ -33,11 +33,6 @@ static av_cold int v408_encode_init(AVCodecContext *avctx)
avctx->bits_per_coded_sample = 32;
avctx->bit_rate = ff_guess_coded_bitrate(avctx);
-#if FF_API_AYUV_CODECID
- if (avctx->codec_id == AV_CODEC_ID_AYUV)
- av_log(avctx, AV_LOG_WARNING, "This encoder is deprecated and will be removed.\n");
-#endif
-
return 0;
}
@@ -60,20 +55,10 @@ static int v408_encode_frame(AVCodecContext *avctx, AVPacket *pkt,
for (i = 0; i < avctx->height; i++) {
for (j = 0; j < avctx->width; j++) {
-#if FF_API_AYUV_CODECID
- if (avctx->codec_id==AV_CODEC_ID_AYUV) {
- *dst++ = v[j];
- *dst++ = u[j];
- *dst++ = y[j];
- *dst++ = a[j];
- } else
-#endif
- {
- *dst++ = u[j];
- *dst++ = y[j];
- *dst++ = v[j];
- *dst++ = a[j];
- }
+ *dst++ = u[j];
+ *dst++ = y[j];
+ *dst++ = v[j];
+ *dst++ = a[j];
}
y += pic->linesize[0];
u += pic->linesize[1];
@@ -87,20 +72,6 @@ static int v408_encode_frame(AVCodecContext *avctx, AVPacket *pkt,
static const enum AVPixelFormat pix_fmt[] = { AV_PIX_FMT_YUVA444P, AV_PIX_FMT_NONE };
-#if FF_API_AYUV_CODECID
-#if CONFIG_AYUV_ENCODER
-const FFCodec ff_ayuv_encoder = {
- .p.name = "ayuv",
- CODEC_LONG_NAME("Uncompressed packed MS 4:4:4:4"),
- .p.type = AVMEDIA_TYPE_VIDEO,
- .p.id = AV_CODEC_ID_AYUV,
- .p.capabilities = AV_CODEC_CAP_DR1 | AV_CODEC_CAP_ENCODER_REORDERED_OPAQUE,
- .init = v408_encode_init,
- FF_CODEC_ENCODE_CB(v408_encode_frame),
- .p.pix_fmts = pix_fmt,
-};
-#endif
-#endif
#if CONFIG_V408_ENCODER
const FFCodec ff_v408_encoder = {
.p.name = "v408",
diff --git a/libavcodec/version_major.h b/libavcodec/version_major.h
index 03fe1e2a83..199a1a2714 100644
--- a/libavcodec/version_major.h
+++ b/libavcodec/version_major.h
@@ -38,7 +38,6 @@
*/
#define FF_API_INIT_PACKET (LIBAVCODEC_VERSION_MAJOR < 61)
-#define FF_API_AYUV_CODECID (LIBAVCODEC_VERSION_MAJOR < 61)
#define FF_API_VT_OUTPUT_CALLBACK (LIBAVCODEC_VERSION_MAJOR < 61)
#define FF_API_AVCODEC_CHROMA_POS (LIBAVCODEC_VERSION_MAJOR < 61)
#define FF_API_VT_HWACCEL_CONTEXT (LIBAVCODEC_VERSION_MAJOR < 61)
--
2.43.0
_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
To unsubscribe, visit link above, or email
ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".
^ permalink raw reply [flat|nested] 60+ messages in thread
* [FFmpeg-devel] [PATCH 04/24] avcodec: remove deprecated FF_API_VT_OUTPUT_CALLBACK
2024-01-25 13:43 [FFmpeg-devel] [PATCH 00/24] Major library version bump James Almer
` (2 preceding siblings ...)
2024-01-25 13:43 ` [FFmpeg-devel] [PATCH 03/24] avcodec: remove deprecated FF_API_AYUV_CODECID James Almer
@ 2024-01-25 13:43 ` James Almer
2024-01-25 13:43 ` [FFmpeg-devel] [PATCH 05/24] avcodec: remove deprecated FF_API_AVCODEC_CHROMA_POS James Almer
` (37 subsequent siblings)
41 siblings, 0 replies; 60+ messages in thread
From: James Almer @ 2024-01-25 13:43 UTC (permalink / raw)
To: ffmpeg-devel
Signed-off-by: James Almer <jamrial@gmail.com>
---
libavcodec/version_major.h | 1 -
libavcodec/videotoolbox.h | 9 ---------
2 files changed, 10 deletions(-)
diff --git a/libavcodec/version_major.h b/libavcodec/version_major.h
index 199a1a2714..b364ba68f1 100644
--- a/libavcodec/version_major.h
+++ b/libavcodec/version_major.h
@@ -38,7 +38,6 @@
*/
#define FF_API_INIT_PACKET (LIBAVCODEC_VERSION_MAJOR < 61)
-#define FF_API_VT_OUTPUT_CALLBACK (LIBAVCODEC_VERSION_MAJOR < 61)
#define FF_API_AVCODEC_CHROMA_POS (LIBAVCODEC_VERSION_MAJOR < 61)
#define FF_API_VT_HWACCEL_CONTEXT (LIBAVCODEC_VERSION_MAJOR < 61)
#define FF_API_AVCTX_FRAME_NUMBER (LIBAVCODEC_VERSION_MAJOR < 61)
diff --git a/libavcodec/videotoolbox.h b/libavcodec/videotoolbox.h
index ba5eddbf46..11b5315f7d 100644
--- a/libavcodec/videotoolbox.h
+++ b/libavcodec/videotoolbox.h
@@ -60,15 +60,6 @@ typedef struct AVVideotoolboxContext {
*/
VTDecompressionSessionRef session;
-#if FF_API_VT_OUTPUT_CALLBACK
- /**
- * The output callback that must be passed to the session.
- * Set by av_videottoolbox_default_init()
- */
- attribute_deprecated
- VTDecompressionOutputCallback output_callback;
-#endif
-
/**
* CVPixelBuffer Format Type that Videotoolbox will use for decoded frames.
* set by the caller. If this is set to 0, then no specific format is
--
2.43.0
_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
To unsubscribe, visit link above, or email
ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".
^ permalink raw reply [flat|nested] 60+ messages in thread
* [FFmpeg-devel] [PATCH 05/24] avcodec: remove deprecated FF_API_AVCODEC_CHROMA_POS
2024-01-25 13:43 [FFmpeg-devel] [PATCH 00/24] Major library version bump James Almer
` (3 preceding siblings ...)
2024-01-25 13:43 ` [FFmpeg-devel] [PATCH 04/24] avcodec: remove deprecated FF_API_VT_OUTPUT_CALLBACK James Almer
@ 2024-01-25 13:43 ` James Almer
2024-01-25 13:43 ` [FFmpeg-devel] [PATCH 06/24] avcodec: remove deprecated FF_API_VT_HWACCEL_CONTEXT James Almer
` (36 subsequent siblings)
41 siblings, 0 replies; 60+ messages in thread
From: James Almer @ 2024-01-25 13:43 UTC (permalink / raw)
To: ffmpeg-devel
Signed-off-by: James Almer <jamrial@gmail.com>
---
libavcodec/avcodec.h | 28 ----------------------------
libavcodec/utils.c | 11 -----------
libavcodec/version_major.h | 1 -
3 files changed, 40 deletions(-)
diff --git a/libavcodec/avcodec.h b/libavcodec/avcodec.h
index 4b2ef4fdf7..2dd9c5c82b 100644
--- a/libavcodec/avcodec.h
+++ b/libavcodec/avcodec.h
@@ -2471,34 +2471,6 @@ void avcodec_align_dimensions(AVCodecContext *s, int *width, int *height);
void avcodec_align_dimensions2(AVCodecContext *s, int *width, int *height,
int linesize_align[AV_NUM_DATA_POINTERS]);
-#ifdef FF_API_AVCODEC_CHROMA_POS
-/**
- * Converts AVChromaLocation to swscale x/y chroma position.
- *
- * The positions represent the chroma (0,0) position in a coordinates system
- * with luma (0,0) representing the origin and luma(1,1) representing 256,256
- *
- * @param xpos horizontal chroma sample position
- * @param ypos vertical chroma sample position
- * @deprecated Use av_chroma_location_enum_to_pos() instead.
- */
- attribute_deprecated
-int avcodec_enum_to_chroma_pos(int *xpos, int *ypos, enum AVChromaLocation pos);
-
-/**
- * Converts swscale x/y chroma position to AVChromaLocation.
- *
- * The positions represent the chroma (0,0) position in a coordinates system
- * with luma (0,0) representing the origin and luma(1,1) representing 256,256
- *
- * @param xpos horizontal chroma sample position
- * @param ypos vertical chroma sample position
- * @deprecated Use av_chroma_location_pos_to_enum() instead.
- */
- attribute_deprecated
-enum AVChromaLocation avcodec_chroma_pos_to_enum(int xpos, int ypos);
-#endif
-
/**
* Decode a subtitle message.
* Return a negative value on error, otherwise return the number of bytes used.
diff --git a/libavcodec/utils.c b/libavcodec/utils.c
index 39b83c7791..1ad91c3237 100644
--- a/libavcodec/utils.c
+++ b/libavcodec/utils.c
@@ -362,17 +362,6 @@ void avcodec_align_dimensions(AVCodecContext *s, int *width, int *height)
align = FFMAX3(align, linesize_align[1], linesize_align[2]);
*width = FFALIGN(*width, align);
}
-#if FF_API_AVCODEC_CHROMA_POS
-int avcodec_enum_to_chroma_pos(int *xpos, int *ypos, enum AVChromaLocation pos)
-{
- return av_chroma_location_enum_to_pos(xpos, ypos, pos);
-}
-
-enum AVChromaLocation avcodec_chroma_pos_to_enum(int xpos, int ypos)
-{
- return av_chroma_location_pos_to_enum(xpos, ypos);
-}
-#endif
int avcodec_fill_audio_frame(AVFrame *frame, int nb_channels,
enum AVSampleFormat sample_fmt, const uint8_t *buf,
diff --git a/libavcodec/version_major.h b/libavcodec/version_major.h
index b364ba68f1..88cc975713 100644
--- a/libavcodec/version_major.h
+++ b/libavcodec/version_major.h
@@ -38,7 +38,6 @@
*/
#define FF_API_INIT_PACKET (LIBAVCODEC_VERSION_MAJOR < 61)
-#define FF_API_AVCODEC_CHROMA_POS (LIBAVCODEC_VERSION_MAJOR < 61)
#define FF_API_VT_HWACCEL_CONTEXT (LIBAVCODEC_VERSION_MAJOR < 61)
#define FF_API_AVCTX_FRAME_NUMBER (LIBAVCODEC_VERSION_MAJOR < 61)
#define FF_API_SLICE_OFFSET (LIBAVCODEC_VERSION_MAJOR < 61)
--
2.43.0
_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
To unsubscribe, visit link above, or email
ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".
^ permalink raw reply [flat|nested] 60+ messages in thread
* [FFmpeg-devel] [PATCH 06/24] avcodec: remove deprecated FF_API_VT_HWACCEL_CONTEXT
2024-01-25 13:43 [FFmpeg-devel] [PATCH 00/24] Major library version bump James Almer
` (4 preceding siblings ...)
2024-01-25 13:43 ` [FFmpeg-devel] [PATCH 05/24] avcodec: remove deprecated FF_API_AVCODEC_CHROMA_POS James Almer
@ 2024-01-25 13:43 ` James Almer
2024-01-25 13:43 ` [FFmpeg-devel] [PATCH 07/24] avcodec: remove deprecated FF_API_AVCTX_FRAME_NUMBER James Almer
` (35 subsequent siblings)
41 siblings, 0 replies; 60+ messages in thread
From: James Almer @ 2024-01-25 13:43 UTC (permalink / raw)
To: ffmpeg-devel
Signed-off-by: James Almer <jamrial@gmail.com>
---
libavcodec/version_major.h | 1 -
libavcodec/videotoolbox.c | 31 ---------------------
libavcodec/videotoolbox.h | 56 --------------------------------------
3 files changed, 88 deletions(-)
diff --git a/libavcodec/version_major.h b/libavcodec/version_major.h
index 88cc975713..79c6f6dd05 100644
--- a/libavcodec/version_major.h
+++ b/libavcodec/version_major.h
@@ -38,7 +38,6 @@
*/
#define FF_API_INIT_PACKET (LIBAVCODEC_VERSION_MAJOR < 61)
-#define FF_API_VT_HWACCEL_CONTEXT (LIBAVCODEC_VERSION_MAJOR < 61)
#define FF_API_AVCTX_FRAME_NUMBER (LIBAVCODEC_VERSION_MAJOR < 61)
#define FF_API_SLICE_OFFSET (LIBAVCODEC_VERSION_MAJOR < 61)
#define FF_API_SUBFRAMES (LIBAVCODEC_VERSION_MAJOR < 61)
diff --git a/libavcodec/videotoolbox.c b/libavcodec/videotoolbox.c
index f2269766a2..f4da80640d 100644
--- a/libavcodec/videotoolbox.c
+++ b/libavcodec/videotoolbox.c
@@ -1398,35 +1398,4 @@ const FFHWAccel ff_prores_videotoolbox_hwaccel = {
.priv_data_size = sizeof(VTContext),
};
-
-
-#if FF_API_VT_HWACCEL_CONTEXT
-AVVideotoolboxContext *av_videotoolbox_alloc_context(void)
-{
- return videotoolbox_alloc_context_with_pix_fmt(AV_PIX_FMT_NONE, false);
-}
-
-int av_videotoolbox_default_init(AVCodecContext *avctx)
-{
- return av_videotoolbox_default_init2(avctx, NULL);
-}
-
-int av_videotoolbox_default_init2(AVCodecContext *avctx, AVVideotoolboxContext *vtctx)
-{
- enum AVPixelFormat pix_fmt = videotoolbox_best_pixel_format(avctx);
- bool full_range = avctx->color_range == AVCOL_RANGE_JPEG;
- avctx->hwaccel_context = vtctx ?: videotoolbox_alloc_context_with_pix_fmt(pix_fmt, full_range);
- if (!avctx->hwaccel_context)
- return AVERROR(ENOMEM);
- return 0;
-}
-
-void av_videotoolbox_default_free(AVCodecContext *avctx)
-{
-
- videotoolbox_stop(avctx);
- av_freep(&avctx->hwaccel_context);
-}
-#endif /* FF_API_VT_HWACCEL_CONTEXT */
-
#endif /* CONFIG_VIDEOTOOLBOX */
diff --git a/libavcodec/videotoolbox.h b/libavcodec/videotoolbox.h
index 11b5315f7d..d68d76e400 100644
--- a/libavcodec/videotoolbox.h
+++ b/libavcodec/videotoolbox.h
@@ -78,62 +78,6 @@ typedef struct AVVideotoolboxContext {
int cm_codec_type;
} AVVideotoolboxContext;
-#if FF_API_VT_HWACCEL_CONTEXT
-
-/**
- * Allocate and initialize a Videotoolbox context.
- *
- * This function should be called from the get_format() callback when the caller
- * selects the AV_PIX_FMT_VIDETOOLBOX format. The caller must then create
- * the decoder object (using the output callback provided by libavcodec) that
- * will be used for Videotoolbox-accelerated decoding.
- *
- * When decoding with Videotoolbox is finished, the caller must destroy the decoder
- * object and free the Videotoolbox context using av_free().
- *
- * @return the newly allocated context or NULL on failure
- * @deprecated Use AVCodecContext.hw_frames_ctx or hw_device_ctx instead.
- */
-attribute_deprecated
-AVVideotoolboxContext *av_videotoolbox_alloc_context(void);
-
-/**
- * This is a convenience function that creates and sets up the Videotoolbox context using
- * an internal implementation.
- *
- * @param avctx the corresponding codec context
- *
- * @return >= 0 on success, a negative AVERROR code on failure
- * @deprecated Use AVCodecContext.hw_frames_ctx or hw_device_ctx instead.
- */
-attribute_deprecated
-int av_videotoolbox_default_init(AVCodecContext *avctx);
-
-/**
- * This is a convenience function that creates and sets up the Videotoolbox context using
- * an internal implementation.
- *
- * @param avctx the corresponding codec context
- * @param vtctx the Videotoolbox context to use
- *
- * @return >= 0 on success, a negative AVERROR code on failure
- * @deprecated Use AVCodecContext.hw_frames_ctx or hw_device_ctx instead.
- */
-attribute_deprecated
-int av_videotoolbox_default_init2(AVCodecContext *avctx, AVVideotoolboxContext *vtctx);
-
-/**
- * This function must be called to free the Videotoolbox context initialized with
- * av_videotoolbox_default_init().
- *
- * @param avctx the corresponding codec context
- * @deprecated Use AVCodecContext.hw_frames_ctx or hw_device_ctx instead.
- */
-attribute_deprecated
-void av_videotoolbox_default_free(AVCodecContext *avctx);
-
-#endif /* FF_API_VT_HWACCEL_CONTEXT */
-
/**
* @}
*/
--
2.43.0
_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
To unsubscribe, visit link above, or email
ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".
^ permalink raw reply [flat|nested] 60+ messages in thread
* [FFmpeg-devel] [PATCH 07/24] avcodec: remove deprecated FF_API_AVCTX_FRAME_NUMBER
2024-01-25 13:43 [FFmpeg-devel] [PATCH 00/24] Major library version bump James Almer
` (5 preceding siblings ...)
2024-01-25 13:43 ` [FFmpeg-devel] [PATCH 06/24] avcodec: remove deprecated FF_API_VT_HWACCEL_CONTEXT James Almer
@ 2024-01-25 13:43 ` James Almer
2024-01-25 13:43 ` [FFmpeg-devel] [PATCH 08/24] avcodec: remove deprecated FF_CODEC_CRYSTAL_HD James Almer
` (34 subsequent siblings)
41 siblings, 0 replies; 60+ messages in thread
From: James Almer @ 2024-01-25 13:43 UTC (permalink / raw)
To: ffmpeg-devel
Signed-off-by: James Almer <jamrial@gmail.com>
---
libavcodec/avcodec.c | 5 -----
libavcodec/avcodec.h | 15 ---------------
libavcodec/decode.c | 10 ----------
libavcodec/encode.c | 10 ----------
libavcodec/pthread_frame.c | 5 -----
libavcodec/version_major.h | 1 -
6 files changed, 46 deletions(-)
diff --git a/libavcodec/avcodec.c b/libavcodec/avcodec.c
index a6c8629f6c..692d4c35b4 100644
--- a/libavcodec/avcodec.c
+++ b/libavcodec/avcodec.c
@@ -282,11 +282,6 @@ FF_ENABLE_DEPRECATION_WARNINGS
}
avctx->frame_num = 0;
-#if FF_API_AVCTX_FRAME_NUMBER
-FF_DISABLE_DEPRECATION_WARNINGS
- avctx->frame_number = avctx->frame_num;
-FF_ENABLE_DEPRECATION_WARNINGS
-#endif
avctx->codec_descriptor = avcodec_descriptor_get(avctx->codec_id);
if ((avctx->codec->capabilities & AV_CODEC_CAP_EXPERIMENTAL) &&
diff --git a/libavcodec/avcodec.h b/libavcodec/avcodec.h
index 2dd9c5c82b..3c2b0159a9 100644
--- a/libavcodec/avcodec.h
+++ b/libavcodec/avcodec.h
@@ -1091,21 +1091,6 @@ typedef struct AVCodecContext {
*/
int frame_size;
-#if FF_API_AVCTX_FRAME_NUMBER
- /**
- * Frame counter, set by libavcodec.
- *
- * - decoding: total number of frames returned from the decoder so far.
- * - encoding: total number of frames passed to the encoder so far.
- *
- * @note the counter is not incremented if encoding/decoding resulted in
- * an error.
- * @deprecated use frame_num instead
- */
- attribute_deprecated
- int frame_number;
-#endif
-
/**
* number of bytes per packet if constant and known or 0
* Used by some WAV based audio codecs.
diff --git a/libavcodec/decode.c b/libavcodec/decode.c
index 2cfb3fcf97..4cd37807db 100644
--- a/libavcodec/decode.c
+++ b/libavcodec/decode.c
@@ -820,11 +820,6 @@ int ff_decode_receive_frame(AVCodecContext *avctx, AVFrame *frame)
}
avctx->frame_num++;
-#if FF_API_AVCTX_FRAME_NUMBER
-FF_DISABLE_DEPRECATION_WARNINGS
- avctx->frame_number = avctx->frame_num;
-FF_ENABLE_DEPRECATION_WARNINGS
-#endif
#if FF_API_DROPCHANGED
if (avctx->flags & AV_CODEC_FLAG_DROPCHANGED) {
@@ -1032,11 +1027,6 @@ int avcodec_decode_subtitle2(AVCodecContext *avctx, AVSubtitle *sub,
if (*got_sub_ptr)
avctx->frame_num++;
-#if FF_API_AVCTX_FRAME_NUMBER
-FF_DISABLE_DEPRECATION_WARNINGS
- avctx->frame_number = avctx->frame_num;
-FF_ENABLE_DEPRECATION_WARNINGS
-#endif
}
return ret;
diff --git a/libavcodec/encode.c b/libavcodec/encode.c
index a436be2657..6b0a16fc0b 100644
--- a/libavcodec/encode.c
+++ b/libavcodec/encode.c
@@ -198,11 +198,6 @@ int avcodec_encode_subtitle(AVCodecContext *avctx, uint8_t *buf, int buf_size,
ret = ffcodec(avctx->codec)->cb.encode_sub(avctx, buf, buf_size, sub);
avctx->frame_num++;
-#if FF_API_AVCTX_FRAME_NUMBER
-FF_DISABLE_DEPRECATION_WARNINGS
- avctx->frame_number = avctx->frame_num;
-FF_ENABLE_DEPRECATION_WARNINGS
-#endif
return ret;
}
@@ -544,11 +539,6 @@ int attribute_align_arg avcodec_send_frame(AVCodecContext *avctx, const AVFrame
}
avctx->frame_num++;
-#if FF_API_AVCTX_FRAME_NUMBER
-FF_DISABLE_DEPRECATION_WARNINGS
- avctx->frame_number = avctx->frame_num;
-FF_ENABLE_DEPRECATION_WARNINGS
-#endif
return 0;
}
diff --git a/libavcodec/pthread_frame.c b/libavcodec/pthread_frame.c
index 71e99a5728..ec6ae8a7fe 100644
--- a/libavcodec/pthread_frame.c
+++ b/libavcodec/pthread_frame.c
@@ -418,11 +418,6 @@ static int update_context_from_user(AVCodecContext *dst, const AVCodecContext *s
dst->skip_frame = src->skip_frame;
dst->frame_num = src->frame_num;
-#if FF_API_AVCTX_FRAME_NUMBER
-FF_DISABLE_DEPRECATION_WARNINGS
- dst->frame_number = src->frame_number;
-FF_ENABLE_DEPRECATION_WARNINGS
-#endif
#if FF_API_REORDERED_OPAQUE
FF_DISABLE_DEPRECATION_WARNINGS
dst->reordered_opaque = src->reordered_opaque;
diff --git a/libavcodec/version_major.h b/libavcodec/version_major.h
index 79c6f6dd05..7e8f5bace3 100644
--- a/libavcodec/version_major.h
+++ b/libavcodec/version_major.h
@@ -38,7 +38,6 @@
*/
#define FF_API_INIT_PACKET (LIBAVCODEC_VERSION_MAJOR < 61)
-#define FF_API_AVCTX_FRAME_NUMBER (LIBAVCODEC_VERSION_MAJOR < 61)
#define FF_API_SLICE_OFFSET (LIBAVCODEC_VERSION_MAJOR < 61)
#define FF_API_SUBFRAMES (LIBAVCODEC_VERSION_MAJOR < 61)
#define FF_API_TICKS_PER_FRAME (LIBAVCODEC_VERSION_MAJOR < 61)
--
2.43.0
_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
To unsubscribe, visit link above, or email
ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".
^ permalink raw reply [flat|nested] 60+ messages in thread
* [FFmpeg-devel] [PATCH 08/24] avcodec: remove deprecated FF_CODEC_CRYSTAL_HD
2024-01-25 13:43 [FFmpeg-devel] [PATCH 00/24] Major library version bump James Almer
` (6 preceding siblings ...)
2024-01-25 13:43 ` [FFmpeg-devel] [PATCH 07/24] avcodec: remove deprecated FF_API_AVCTX_FRAME_NUMBER James Almer
@ 2024-01-25 13:43 ` James Almer
2024-01-25 14:12 ` Andreas Rheinhardt
2024-01-25 13:43 ` [FFmpeg-devel] [PATCH 09/24] avformat: remove deprecated FF_API_GET_END_PTS James Almer
` (33 subsequent siblings)
41 siblings, 1 reply; 60+ messages in thread
From: James Almer @ 2024-01-25 13:43 UTC (permalink / raw)
To: ffmpeg-devel
Signed-off-by: James Almer <jamrial@gmail.com>
---
configure | 13 -
libavcodec/Makefile | 1 -
libavcodec/allcodecs.c | 6 -
libavcodec/avcodec.h | 18 -
libavcodec/crystalhd.c | 826 -------------------------------------
libavcodec/options_table.h | 3 -
libavcodec/version_major.h | 4 -
7 files changed, 871 deletions(-)
delete mode 100644 libavcodec/crystalhd.c
diff --git a/configure b/configure
index 21663000f8..5a0d20a6cf 100755
--- a/configure
+++ b/configure
@@ -1926,7 +1926,6 @@ EXTERNAL_LIBRARY_LIST="
HWACCEL_AUTODETECT_LIBRARY_LIST="
amf
audiotoolbox
- crystalhd
cuda
cuda_llvm
cuvid
@@ -3056,7 +3055,6 @@ zmbv_decoder_select="inflate_wrapper"
zmbv_encoder_select="deflate_wrapper"
# hardware accelerators
-crystalhd_deps="libcrystalhd_libcrystalhd_if_h"
cuda_deps="ffnvcodec"
cuvid_deps="ffnvcodec"
d3d11va_deps="dxva_h ID3D11VideoDecoder ID3D11VideoContext"
@@ -3249,7 +3247,6 @@ av1_nvenc_encoder_select="atsc_a53"
h263_v4l2m2m_decoder_deps="v4l2_m2m h263_v4l2_m2m"
h263_v4l2m2m_encoder_deps="v4l2_m2m h263_v4l2_m2m"
h264_amf_encoder_deps="amf"
-h264_crystalhd_decoder_select="crystalhd h264_mp4toannexb_bsf h264_parser"
h264_cuvid_decoder_deps="cuvid"
h264_cuvid_decoder_select="h264_mp4toannexb_bsf"
h264_mediacodec_decoder_deps="mediacodec"
@@ -3297,7 +3294,6 @@ mjpeg_vaapi_encoder_select="cbs_jpeg jpegtables vaapi_encode"
mp3_mf_encoder_deps="mediafoundation"
mpeg1_cuvid_decoder_deps="cuvid"
mpeg1_v4l2m2m_decoder_deps="v4l2_m2m mpeg1_v4l2_m2m"
-mpeg2_crystalhd_decoder_select="crystalhd"
mpeg2_cuvid_decoder_deps="cuvid"
mpeg2_mmal_decoder_deps="mmal"
mpeg2_mediacodec_decoder_deps="mediacodec"
@@ -3305,7 +3301,6 @@ mpeg2_qsv_decoder_select="qsvdec"
mpeg2_qsv_encoder_select="qsvenc"
mpeg2_vaapi_encoder_select="cbs_mpeg2 vaapi_encode"
mpeg2_v4l2m2m_decoder_deps="v4l2_m2m mpeg2_v4l2_m2m"
-mpeg4_crystalhd_decoder_select="crystalhd"
mpeg4_cuvid_decoder_deps="cuvid"
mpeg4_mediacodec_decoder_deps="mediacodec"
mpeg4_mediacodec_encoder_deps="mediacodec"
@@ -3313,8 +3308,6 @@ mpeg4_mmal_decoder_deps="mmal"
mpeg4_omx_encoder_deps="omx"
mpeg4_v4l2m2m_decoder_deps="v4l2_m2m mpeg4_v4l2_m2m"
mpeg4_v4l2m2m_encoder_deps="v4l2_m2m mpeg4_v4l2_m2m"
-msmpeg4_crystalhd_decoder_select="crystalhd"
-vc1_crystalhd_decoder_select="crystalhd"
vc1_cuvid_decoder_deps="cuvid"
vc1_mmal_decoder_deps="mmal"
vc1_qsv_decoder_select="qsvdec"
@@ -3338,7 +3331,6 @@ vp9_vaapi_encoder_select="vaapi_encode"
vp9_qsv_encoder_deps="libmfx MFX_CODEC_VP9"
vp9_qsv_encoder_select="qsvenc"
vp9_v4l2m2m_decoder_deps="v4l2_m2m vp9_v4l2_m2m"
-wmv3_crystalhd_decoder_select="crystalhd"
av1_qsv_decoder_select="qsvdec"
av1_qsv_encoder_select="qsvenc"
av1_qsv_encoder_deps="libvpl"
@@ -6519,7 +6511,6 @@ enabled libdrm &&
check_headers linux/dma-buf.h
check_headers linux/perf_event.h
-check_headers libcrystalhd/libcrystalhd_if.h
check_headers malloc.h
check_headers mftransform.h
check_headers net/udplite.h
@@ -7210,10 +7201,6 @@ enabled vdpau &&
enabled vdpau &&
check_lib vdpau_x11 "vdpau/vdpau.h vdpau/vdpau_x11.h" vdp_device_create_x11 -lvdpau -lX11
-enabled crystalhd && check_lib crystalhd "stdint.h libcrystalhd/libcrystalhd_if.h" DtsCrystalHDVersion -lcrystalhd && \
- warn "CrystalHD support is deprecated and will be removed, please contact the developers if you are interested" \
- "in maintaining it."
-
if enabled vulkan; then
check_pkg_config_header_only vulkan "vulkan >= 1.3.255" "vulkan/vulkan.h" "defined VK_VERSION_1_3" ||
check_cpp_condition vulkan "vulkan/vulkan.h" "defined(VK_VERSION_1_4) || (defined(VK_VERSION_1_3) && VK_HEADER_VERSION >= 255)"
diff --git a/libavcodec/Makefile b/libavcodec/Makefile
index 96361ac794..5f63151655 100644
--- a/libavcodec/Makefile
+++ b/libavcodec/Makefile
@@ -84,7 +84,6 @@ OBJS-$(CONFIG_CBS_JPEG) += cbs_jpeg.o
OBJS-$(CONFIG_CBS_MPEG2) += cbs_mpeg2.o
OBJS-$(CONFIG_CBS_VP8) += cbs_vp8.o vp8data.o
OBJS-$(CONFIG_CBS_VP9) += cbs_vp9.o
-OBJS-$(CONFIG_CRYSTALHD) += crystalhd.o
OBJS-$(CONFIG_DEFLATE_WRAPPER) += zlib_wrapper.o
OBJS-$(CONFIG_DOVI_RPU) += dovi_rpu.o
OBJS-$(CONFIG_ERROR_RESILIENCE) += error_resilience.o
diff --git a/libavcodec/allcodecs.c b/libavcodec/allcodecs.c
index 45d5998943..2386b450a6 100644
--- a/libavcodec/allcodecs.c
+++ b/libavcodec/allcodecs.c
@@ -148,7 +148,6 @@ extern const FFCodec ff_h263p_encoder;
extern const FFCodec ff_h263p_decoder;
extern const FFCodec ff_h263_v4l2m2m_decoder;
extern const FFCodec ff_h264_decoder;
-extern const FFCodec ff_h264_crystalhd_decoder;
extern const FFCodec ff_h264_v4l2m2m_decoder;
extern const FFCodec ff_h264_mediacodec_decoder;
extern const FFCodec ff_h264_mediacodec_encoder;
@@ -207,13 +206,11 @@ extern const FFCodec ff_mpeg2video_encoder;
extern const FFCodec ff_mpeg2video_decoder;
extern const FFCodec ff_mpeg4_encoder;
extern const FFCodec ff_mpeg4_decoder;
-extern const FFCodec ff_mpeg4_crystalhd_decoder;
extern const FFCodec ff_mpeg4_v4l2m2m_decoder;
extern const FFCodec ff_mpeg4_mmal_decoder;
extern const FFCodec ff_mpegvideo_decoder;
extern const FFCodec ff_mpeg1_v4l2m2m_decoder;
extern const FFCodec ff_mpeg2_mmal_decoder;
-extern const FFCodec ff_mpeg2_crystalhd_decoder;
extern const FFCodec ff_mpeg2_v4l2m2m_decoder;
extern const FFCodec ff_mpeg2_qsv_decoder;
extern const FFCodec ff_mpeg2_mediacodec_decoder;
@@ -224,7 +221,6 @@ extern const FFCodec ff_msmpeg4v2_encoder;
extern const FFCodec ff_msmpeg4v2_decoder;
extern const FFCodec ff_msmpeg4v3_encoder;
extern const FFCodec ff_msmpeg4v3_decoder;
-extern const FFCodec ff_msmpeg4_crystalhd_decoder;
extern const FFCodec ff_msp2_decoder;
extern const FFCodec ff_msrle_encoder;
extern const FFCodec ff_msrle_decoder;
@@ -361,7 +357,6 @@ extern const FFCodec ff_vbn_encoder;
extern const FFCodec ff_vbn_decoder;
extern const FFCodec ff_vble_decoder;
extern const FFCodec ff_vc1_decoder;
-extern const FFCodec ff_vc1_crystalhd_decoder;
extern const FFCodec ff_vc1image_decoder;
extern const FFCodec ff_vc1_mmal_decoder;
extern const FFCodec ff_vc1_qsv_decoder;
@@ -398,7 +393,6 @@ extern const FFCodec ff_wmv1_decoder;
extern const FFCodec ff_wmv2_encoder;
extern const FFCodec ff_wmv2_decoder;
extern const FFCodec ff_wmv3_decoder;
-extern const FFCodec ff_wmv3_crystalhd_decoder;
extern const FFCodec ff_wmv3image_decoder;
extern const FFCodec ff_wnv1_decoder;
extern const FFCodec ff_xan_wc3_decoder;
diff --git a/libavcodec/avcodec.h b/libavcodec/avcodec.h
index 3c2b0159a9..2306c0f7bf 100644
--- a/libavcodec/avcodec.h
+++ b/libavcodec/avcodec.h
@@ -794,24 +794,6 @@ typedef struct AVCodecContext {
*/
float dark_masking;
-#if FF_API_SLICE_OFFSET
- /**
- * slice count
- * - encoding: Set by libavcodec.
- * - decoding: Set by user (or 0).
- */
- attribute_deprecated
- int slice_count;
-
- /**
- * slice offsets in the frame in bytes
- * - encoding: Set/allocated by libavcodec.
- * - decoding: Set/allocated by user (or NULL).
- */
- attribute_deprecated
- int *slice_offset;
-#endif
-
/**
* sample aspect ratio (0 if unknown)
* That is the width of a pixel divided by the height of the pixel.
diff --git a/libavcodec/crystalhd.c b/libavcodec/crystalhd.c
deleted file mode 100644
index 86f6cfa6c1..0000000000
--- a/libavcodec/crystalhd.c
+++ /dev/null
@@ -1,826 +0,0 @@
-/*
- * - CrystalHD decoder module -
- *
- * Copyright(C) 2010,2011 Philip Langdale <ffmpeg.philipl@overt.org>
- *
- * This file is part of FFmpeg.
- *
- * FFmpeg is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * FFmpeg is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with FFmpeg; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-/*
- * - Principles of Operation -
- *
- * The CrystalHD decoder operates at the bitstream level - which is an even
- * higher level than the decoding hardware you typically see in modern GPUs.
- * This means it has a very simple interface, in principle. You feed demuxed
- * packets in one end and get decoded picture (fields/frames) out the other.
- *
- * Of course, nothing is ever that simple. Due, at the very least, to b-frame
- * dependencies in the supported formats, the hardware has a delay between
- * when a packet goes in, and when a picture comes out. Furthermore, this delay
- * is not just a function of time, but also one of the dependency on additional
- * frames being fed into the decoder to satisfy the b-frame dependencies.
- *
- * As such, the hardware can only be used effectively with a decode API that
- * doesn't assume a 1:1 relationship between input packets and output frames.
- * The new avcodec decode API is such an API (an m:n API) while the old one is
- * 1:1. Consequently, we no longer support the old API, which allows us to avoid
- * the vicious hacks that are required to approximate 1:1 operation.
- */
-
-/*****************************************************************************
- * Includes
- ****************************************************************************/
-
-#include "config_components.h"
-
-#define _XOPEN_SOURCE 600
-#include <inttypes.h>
-#include <stdio.h>
-#include <stdlib.h>
-
-#include <libcrystalhd/bc_dts_types.h>
-#include <libcrystalhd/bc_dts_defs.h>
-#include <libcrystalhd/libcrystalhd_if.h>
-
-#include "avcodec.h"
-#include "codec_internal.h"
-#include "decode.h"
-#include "internal.h"
-#include "libavutil/imgutils.h"
-#include "libavutil/intreadwrite.h"
-#include "libavutil/opt.h"
-
-#if HAVE_UNISTD_H
-#include <unistd.h>
-#endif
-
-/** Timeout parameter passed to DtsProcOutput() in us */
-#define OUTPUT_PROC_TIMEOUT 50
-/** Step between fake timestamps passed to hardware in units of 100ns */
-#define TIMESTAMP_UNIT 100000
-
-
-/*****************************************************************************
- * Module private data
- ****************************************************************************/
-
-typedef enum {
- RET_ERROR = -1,
- RET_OK = 0,
- RET_COPY_AGAIN = 1,
-} CopyRet;
-
-typedef struct OpaqueList {
- struct OpaqueList *next;
- uint64_t fake_timestamp;
- uint64_t reordered_opaque;
-} OpaqueList;
-
-typedef struct {
- AVClass *av_class;
- AVCodecContext *avctx;
- /* This packet coincides with AVCodecInternal.in_pkt
- * and is not owned by us. */
- AVPacket *pkt;
- HANDLE dev;
-
- uint8_t is_70012;
- uint8_t need_second_field;
- uint8_t draining;
-
- OpaqueList *head;
- OpaqueList *tail;
-
- /* Options */
- uint32_t sWidth;
-} CHDContext;
-
-static const AVOption options[] = {
- { "crystalhd_downscale_width",
- "Turn on downscaling to the specified width",
- offsetof(CHDContext, sWidth),
- AV_OPT_TYPE_INT, {.i64 = 0}, 0, UINT32_MAX,
- AV_OPT_FLAG_VIDEO_PARAM | AV_OPT_FLAG_DECODING_PARAM, },
- { NULL, },
-};
-
-
-/*****************************************************************************
- * Helper functions
- ****************************************************************************/
-
-static inline BC_MEDIA_SUBTYPE id2subtype(CHDContext *priv, enum AVCodecID id)
-{
- switch (id) {
- case AV_CODEC_ID_MPEG4:
- return BC_MSUBTYPE_DIVX;
- case AV_CODEC_ID_MSMPEG4V3:
- return BC_MSUBTYPE_DIVX311;
- case AV_CODEC_ID_MPEG2VIDEO:
- return BC_MSUBTYPE_MPEG2VIDEO;
- case AV_CODEC_ID_VC1:
- return BC_MSUBTYPE_VC1;
- case AV_CODEC_ID_WMV3:
- return BC_MSUBTYPE_WMV3;
- case AV_CODEC_ID_H264:
- return BC_MSUBTYPE_H264;
- default:
- return BC_MSUBTYPE_INVALID;
- }
-}
-
-static inline void print_frame_info(CHDContext *priv, BC_DTS_PROC_OUT *output)
-{
- av_log(priv->avctx, AV_LOG_TRACE, "\tYBuffSz: %u\n", output->YbuffSz);
- av_log(priv->avctx, AV_LOG_TRACE, "\tYBuffDoneSz: %u\n",
- output->YBuffDoneSz);
- av_log(priv->avctx, AV_LOG_TRACE, "\tUVBuffDoneSz: %u\n",
- output->UVBuffDoneSz);
- av_log(priv->avctx, AV_LOG_TRACE, "\tTimestamp: %"PRIu64"\n",
- output->PicInfo.timeStamp);
- av_log(priv->avctx, AV_LOG_TRACE, "\tPicture Number: %u\n",
- output->PicInfo.picture_number);
- av_log(priv->avctx, AV_LOG_TRACE, "\tWidth: %u\n",
- output->PicInfo.width);
- av_log(priv->avctx, AV_LOG_TRACE, "\tHeight: %u\n",
- output->PicInfo.height);
- av_log(priv->avctx, AV_LOG_TRACE, "\tChroma: 0x%03x\n",
- output->PicInfo.chroma_format);
- av_log(priv->avctx, AV_LOG_TRACE, "\tPulldown: %u\n",
- output->PicInfo.pulldown);
- av_log(priv->avctx, AV_LOG_TRACE, "\tFlags: 0x%08x\n",
- output->PicInfo.flags);
- av_log(priv->avctx, AV_LOG_TRACE, "\tFrame Rate/Res: %u\n",
- output->PicInfo.frame_rate);
- av_log(priv->avctx, AV_LOG_TRACE, "\tAspect Ratio: %u\n",
- output->PicInfo.aspect_ratio);
- av_log(priv->avctx, AV_LOG_TRACE, "\tColor Primaries: %u\n",
- output->PicInfo.colour_primaries);
- av_log(priv->avctx, AV_LOG_TRACE, "\tMetaData: %u\n",
- output->PicInfo.picture_meta_payload);
- av_log(priv->avctx, AV_LOG_TRACE, "\tSession Number: %u\n",
- output->PicInfo.sess_num);
- av_log(priv->avctx, AV_LOG_TRACE, "\tycom: %u\n",
- output->PicInfo.ycom);
- av_log(priv->avctx, AV_LOG_TRACE, "\tCustom Aspect: %u\n",
- output->PicInfo.custom_aspect_ratio_width_height);
- av_log(priv->avctx, AV_LOG_TRACE, "\tFrames to Drop: %u\n",
- output->PicInfo.n_drop);
- av_log(priv->avctx, AV_LOG_TRACE, "\tH264 Valid Fields: 0x%08x\n",
- output->PicInfo.other.h264.valid);
-}
-
-
-/*****************************************************************************
- * OpaqueList functions
- ****************************************************************************/
-
-static uint64_t opaque_list_push(CHDContext *priv, uint64_t reordered_opaque)
-{
- OpaqueList *newNode = av_mallocz(sizeof (OpaqueList));
- if (!newNode) {
- av_log(priv->avctx, AV_LOG_ERROR,
- "Unable to allocate new node in OpaqueList.\n");
- return 0;
- }
- if (!priv->head) {
- newNode->fake_timestamp = TIMESTAMP_UNIT;
- priv->head = newNode;
- } else {
- newNode->fake_timestamp = priv->tail->fake_timestamp + TIMESTAMP_UNIT;
- priv->tail->next = newNode;
- }
- priv->tail = newNode;
- newNode->reordered_opaque = reordered_opaque;
-
- return newNode->fake_timestamp;
-}
-
-/*
- * The OpaqueList is built in decode order, while elements will be removed
- * in presentation order. If frames are reordered, this means we must be
- * able to remove elements that are not the first element.
- *
- * Returned node must be freed by caller.
- */
-static OpaqueList *opaque_list_pop(CHDContext *priv, uint64_t fake_timestamp)
-{
- OpaqueList *node = priv->head;
-
- if (!priv->head) {
- av_log(priv->avctx, AV_LOG_ERROR,
- "CrystalHD: Attempted to query non-existent timestamps.\n");
- return NULL;
- }
-
- /*
- * The first element is special-cased because we have to manipulate
- * the head pointer rather than the previous element in the list.
- */
- if (priv->head->fake_timestamp == fake_timestamp) {
- priv->head = node->next;
-
- if (!priv->head->next)
- priv->tail = priv->head;
-
- node->next = NULL;
- return node;
- }
-
- /*
- * The list is processed at arm's length so that we have the
- * previous element available to rewrite its next pointer.
- */
- while (node->next) {
- OpaqueList *current = node->next;
- if (current->fake_timestamp == fake_timestamp) {
- node->next = current->next;
-
- if (!node->next)
- priv->tail = node;
-
- current->next = NULL;
- return current;
- } else {
- node = current;
- }
- }
-
- av_log(priv->avctx, AV_LOG_VERBOSE,
- "CrystalHD: Couldn't match fake_timestamp.\n");
- return NULL;
-}
-
-
-/*****************************************************************************
- * Video decoder API function definitions
- ****************************************************************************/
-
-static void flush(AVCodecContext *avctx)
-{
- CHDContext *priv = avctx->priv_data;
-
- priv->need_second_field = 0;
- priv->draining = 0;
-
- /* Flush mode 4 flushes all software and hardware buffers. */
- DtsFlushInput(priv->dev, 4);
-}
-
-
-static av_cold int uninit(AVCodecContext *avctx)
-{
- CHDContext *priv = avctx->priv_data;
- HANDLE device;
-
- device = priv->dev;
- DtsStopDecoder(device);
- DtsCloseDecoder(device);
- DtsDeviceClose(device);
-
- if (priv->head) {
- OpaqueList *node = priv->head;
- while (node) {
- OpaqueList *next = node->next;
- av_free(node);
- node = next;
- }
- }
-
- return 0;
-}
-
-static av_cold int init(AVCodecContext *avctx)
-{
- CHDContext* priv;
- BC_STATUS ret;
- BC_INFO_CRYSTAL version;
- BC_INPUT_FORMAT format = {
- .FGTEnable = FALSE,
- .Progressive = TRUE,
- .OptFlags = 0x80000000 | vdecFrameRate59_94 | 0x40,
- .width = avctx->width,
- .height = avctx->height,
- };
-
- BC_MEDIA_SUBTYPE subtype;
-
- uint32_t mode = DTS_PLAYBACK_MODE |
- DTS_LOAD_FILE_PLAY_FW |
- DTS_SKIP_TX_CHK_CPB |
- DTS_PLAYBACK_DROP_RPT_MODE |
- DTS_SINGLE_THREADED_MODE |
- DTS_DFLT_RESOLUTION(vdecRESOLUTION_1080p23_976);
-
- av_log(avctx, AV_LOG_VERBOSE, "CrystalHD Init for %s\n",
- avctx->codec->name);
-
- av_log(avctx, AV_LOG_WARNING, "CrystalHD support is deprecated and will "
- "be removed. Please contact the developers if you are interested in "
- "maintaining it.\n");
-
- avctx->pix_fmt = AV_PIX_FMT_YUYV422;
-
- /* Initialize the library */
- priv = avctx->priv_data;
- priv->avctx = avctx;
- priv->pkt = avctx->internal->in_pkt;
- priv->draining = 0;
-
- subtype = id2subtype(priv, avctx->codec->id);
- switch (subtype) {
- case BC_MSUBTYPE_H264:
- format.startCodeSz = 4;
- // Fall-through
- case BC_MSUBTYPE_VC1:
- case BC_MSUBTYPE_WVC1:
- case BC_MSUBTYPE_WMV3:
- case BC_MSUBTYPE_WMVA:
- case BC_MSUBTYPE_MPEG2VIDEO:
- case BC_MSUBTYPE_DIVX:
- case BC_MSUBTYPE_DIVX311:
- format.pMetaData = avctx->extradata;
- format.metaDataSz = avctx->extradata_size;
- break;
- default:
- av_log(avctx, AV_LOG_ERROR, "CrystalHD: Unknown codec name\n");
- return AVERROR(EINVAL);
- }
- format.mSubtype = subtype;
-
- if (priv->sWidth) {
- format.bEnableScaling = 1;
- format.ScalingParams.sWidth = priv->sWidth;
- }
-
- /* Get a decoder instance */
- av_log(avctx, AV_LOG_VERBOSE, "CrystalHD: starting up\n");
- // Initialize the Link and Decoder devices
- ret = DtsDeviceOpen(&priv->dev, mode);
- if (ret != BC_STS_SUCCESS) {
- av_log(avctx, AV_LOG_VERBOSE, "CrystalHD: DtsDeviceOpen failed\n");
- goto fail;
- }
-
- ret = DtsCrystalHDVersion(priv->dev, &version);
- if (ret != BC_STS_SUCCESS) {
- av_log(avctx, AV_LOG_VERBOSE,
- "CrystalHD: DtsCrystalHDVersion failed\n");
- goto fail;
- }
- priv->is_70012 = version.device == 0;
-
- if (priv->is_70012 &&
- (subtype == BC_MSUBTYPE_DIVX || subtype == BC_MSUBTYPE_DIVX311)) {
- av_log(avctx, AV_LOG_VERBOSE,
- "CrystalHD: BCM70012 doesn't support MPEG4-ASP/DivX/Xvid\n");
- goto fail;
- }
-
- ret = DtsSetInputFormat(priv->dev, &format);
- if (ret != BC_STS_SUCCESS) {
- av_log(avctx, AV_LOG_ERROR, "CrystalHD: SetInputFormat failed\n");
- goto fail;
- }
-
- ret = DtsOpenDecoder(priv->dev, BC_STREAM_TYPE_ES);
- if (ret != BC_STS_SUCCESS) {
- av_log(avctx, AV_LOG_ERROR, "CrystalHD: DtsOpenDecoder failed\n");
- goto fail;
- }
-
- ret = DtsSetColorSpace(priv->dev, OUTPUT_MODE422_YUY2);
- if (ret != BC_STS_SUCCESS) {
- av_log(avctx, AV_LOG_ERROR, "CrystalHD: DtsSetColorSpace failed\n");
- goto fail;
- }
- ret = DtsStartDecoder(priv->dev);
- if (ret != BC_STS_SUCCESS) {
- av_log(avctx, AV_LOG_ERROR, "CrystalHD: DtsStartDecoder failed\n");
- goto fail;
- }
- ret = DtsStartCapture(priv->dev);
- if (ret != BC_STS_SUCCESS) {
- av_log(avctx, AV_LOG_ERROR, "CrystalHD: DtsStartCapture failed\n");
- goto fail;
- }
-
- av_log(avctx, AV_LOG_VERBOSE, "CrystalHD: Init complete.\n");
-
- return 0;
-
- fail:
- uninit(avctx);
- return -1;
-}
-
-
-static inline CopyRet copy_frame(AVCodecContext *avctx,
- BC_DTS_PROC_OUT *output,
- AVFrame *frame, int *got_frame)
-{
- BC_STATUS ret;
- BC_DTS_STATUS decoder_status = { 0, };
- uint8_t interlaced;
-
- CHDContext *priv = avctx->priv_data;
- int64_t pkt_pts = AV_NOPTS_VALUE;
-
- uint8_t bottom_field = (output->PicInfo.flags & VDEC_FLAG_BOTTOMFIELD) ==
- VDEC_FLAG_BOTTOMFIELD;
- uint8_t bottom_first = !!(output->PicInfo.flags & VDEC_FLAG_BOTTOM_FIRST);
-
- int width = output->PicInfo.width;
- int height = output->PicInfo.height;
- int bwidth;
- uint8_t *src = output->Ybuff;
- int sStride;
- uint8_t *dst;
- int dStride;
-
- if (output->PicInfo.timeStamp != 0) {
- OpaqueList *node = opaque_list_pop(priv, output->PicInfo.timeStamp);
- if (node) {
- pkt_pts = node->reordered_opaque;
- av_free(node);
- } else {
- /*
- * We will encounter a situation where a timestamp cannot be
- * popped if a second field is being returned. In this case,
- * each field has the same timestamp and the first one will
- * cause it to be popped. We'll avoid overwriting the valid
- * timestamp below.
- */
- }
- av_log(avctx, AV_LOG_VERBOSE, "output \"pts\": %"PRIu64"\n",
- output->PicInfo.timeStamp);
- }
-
- ret = DtsGetDriverStatus(priv->dev, &decoder_status);
- if (ret != BC_STS_SUCCESS) {
- av_log(avctx, AV_LOG_ERROR,
- "CrystalHD: GetDriverStatus failed: %u\n", ret);
- return RET_ERROR;
- }
-
- interlaced = output->PicInfo.flags & VDEC_FLAG_INTERLACED_SRC;
-
- av_log(avctx, AV_LOG_VERBOSE, "Interlaced state: %d\n",
- interlaced);
-
- priv->need_second_field = interlaced && !priv->need_second_field;
-
- if (!frame->data[0]) {
- if (ff_get_buffer(avctx, frame, 0) < 0)
- return RET_ERROR;
- }
-
- bwidth = av_image_get_linesize(avctx->pix_fmt, width, 0);
- if (bwidth < 0)
- return RET_ERROR;
-
- if (priv->is_70012) {
- int pStride;
-
- if (width <= 720)
- pStride = 720;
- else if (width <= 1280)
- pStride = 1280;
- else pStride = 1920;
- sStride = av_image_get_linesize(avctx->pix_fmt, pStride, 0);
- if (sStride < 0)
- return RET_ERROR;
- } else {
- sStride = bwidth;
- }
-
- dStride = frame->linesize[0];
- dst = frame->data[0];
-
- av_log(priv->avctx, AV_LOG_VERBOSE, "CrystalHD: Copying out frame\n");
-
- /*
- * The hardware doesn't return the first sample of a picture.
- * Ignoring why it behaves this way, it's better to copy the sample from
- * the second line, rather than the next sample across because the chroma
- * values should be correct (assuming the decoded video was 4:2:0, which
- * it was).
- */
- *((uint32_t *)src) = *((uint32_t *)(src + sStride));
-
- if (interlaced) {
- int dY = 0;
- int sY = 0;
-
- height /= 2;
- if (bottom_field) {
- av_log(priv->avctx, AV_LOG_VERBOSE, "Interlaced: bottom field\n");
- dY = 1;
- } else {
- av_log(priv->avctx, AV_LOG_VERBOSE, "Interlaced: top field\n");
- dY = 0;
- }
-
- for (sY = 0; sY < height; dY++, sY++) {
- memcpy(&(dst[dY * dStride]), &(src[sY * sStride]), bwidth);
- dY++;
- }
- } else {
- av_image_copy_plane(dst, dStride, src, sStride, bwidth, height);
- }
-
- frame->flags |= AV_FRAME_FLAG_INTERLACED * !!interlaced;
- if (interlaced)
- frame->flags |= AV_FRAME_FLAG_TOP_FIELD_FIRST * !bottom_first;
-
- frame->pts = pkt_pts;
-
- frame->duration = 0;
-#if FF_API_FRAME_PKT
-FF_DISABLE_DEPRECATION_WARNINGS
- frame->pkt_pos = -1;
- frame->pkt_size = -1;
-FF_ENABLE_DEPRECATION_WARNINGS
-#endif
-
- if (!priv->need_second_field) {
- *got_frame = 1;
- } else {
- return RET_COPY_AGAIN;
- }
-
- return RET_OK;
-}
-
-
-static inline CopyRet receive_frame(AVCodecContext *avctx,
- AVFrame *frame, int *got_frame)
-{
- BC_STATUS ret;
- BC_DTS_PROC_OUT output = {
- .PicInfo.width = avctx->width,
- .PicInfo.height = avctx->height,
- };
- CHDContext *priv = avctx->priv_data;
- HANDLE dev = priv->dev;
-
- *got_frame = 0;
-
- // Request decoded data from the driver
- ret = DtsProcOutputNoCopy(dev, OUTPUT_PROC_TIMEOUT, &output);
- if (ret == BC_STS_FMT_CHANGE) {
- av_log(avctx, AV_LOG_VERBOSE, "CrystalHD: Initial format change\n");
- avctx->width = output.PicInfo.width;
- avctx->height = output.PicInfo.height;
- switch ( output.PicInfo.aspect_ratio ) {
- case vdecAspectRatioSquare:
- avctx->sample_aspect_ratio = (AVRational) { 1, 1};
- break;
- case vdecAspectRatio12_11:
- avctx->sample_aspect_ratio = (AVRational) { 12, 11};
- break;
- case vdecAspectRatio10_11:
- avctx->sample_aspect_ratio = (AVRational) { 10, 11};
- break;
- case vdecAspectRatio16_11:
- avctx->sample_aspect_ratio = (AVRational) { 16, 11};
- break;
- case vdecAspectRatio40_33:
- avctx->sample_aspect_ratio = (AVRational) { 40, 33};
- break;
- case vdecAspectRatio24_11:
- avctx->sample_aspect_ratio = (AVRational) { 24, 11};
- break;
- case vdecAspectRatio20_11:
- avctx->sample_aspect_ratio = (AVRational) { 20, 11};
- break;
- case vdecAspectRatio32_11:
- avctx->sample_aspect_ratio = (AVRational) { 32, 11};
- break;
- case vdecAspectRatio80_33:
- avctx->sample_aspect_ratio = (AVRational) { 80, 33};
- break;
- case vdecAspectRatio18_11:
- avctx->sample_aspect_ratio = (AVRational) { 18, 11};
- break;
- case vdecAspectRatio15_11:
- avctx->sample_aspect_ratio = (AVRational) { 15, 11};
- break;
- case vdecAspectRatio64_33:
- avctx->sample_aspect_ratio = (AVRational) { 64, 33};
- break;
- case vdecAspectRatio160_99:
- avctx->sample_aspect_ratio = (AVRational) {160, 99};
- break;
- case vdecAspectRatio4_3:
- avctx->sample_aspect_ratio = (AVRational) { 4, 3};
- break;
- case vdecAspectRatio16_9:
- avctx->sample_aspect_ratio = (AVRational) { 16, 9};
- break;
- case vdecAspectRatio221_1:
- avctx->sample_aspect_ratio = (AVRational) {221, 1};
- break;
- }
- return RET_COPY_AGAIN;
- } else if (ret == BC_STS_SUCCESS) {
- int copy_ret = -1;
- if (output.PoutFlags & BC_POUT_FLAGS_PIB_VALID) {
- print_frame_info(priv, &output);
-
- copy_ret = copy_frame(avctx, &output, frame, got_frame);
- } else {
- /*
- * An invalid frame has been consumed.
- */
- av_log(avctx, AV_LOG_ERROR, "CrystalHD: ProcOutput succeeded with "
- "invalid PIB\n");
- copy_ret = RET_COPY_AGAIN;
- }
- DtsReleaseOutputBuffs(dev, NULL, FALSE);
-
- return copy_ret;
- } else if (ret == BC_STS_BUSY) {
- return RET_COPY_AGAIN;
- } else {
- av_log(avctx, AV_LOG_ERROR, "CrystalHD: ProcOutput failed %d\n", ret);
- return RET_ERROR;
- }
-}
-
-static int crystalhd_decode_packet(AVCodecContext *avctx, const AVPacket *avpkt)
-{
- BC_STATUS bc_ret;
- CHDContext *priv = avctx->priv_data;
- HANDLE dev = priv->dev;
- int ret = 0;
-
- av_log(avctx, AV_LOG_VERBOSE, "CrystalHD: decode_packet\n");
-
- if (avpkt && avpkt->size) {
- uint64_t pts;
-
- /*
- * Despite being notionally opaque, either libcrystalhd or
- * the hardware itself will mangle pts values that are too
- * small or too large. The docs claim it should be in units
- * of 100ns. Given that we're nominally dealing with a black
- * box on both sides, any transform we do has no guarantee of
- * avoiding mangling so we need to build a mapping to values
- * we know will not be mangled.
- */
- pts = opaque_list_push(priv, avpkt->pts);
- if (!pts) {
- ret = AVERROR(ENOMEM);
- goto exit;
- }
- av_log(priv->avctx, AV_LOG_VERBOSE,
- "input \"pts\": %"PRIu64"\n", pts);
- bc_ret = DtsProcInput(dev, avpkt->data, avpkt->size, pts, 0);
- if (bc_ret == BC_STS_BUSY) {
- av_log(avctx, AV_LOG_WARNING,
- "CrystalHD: ProcInput returned busy\n");
- ret = AVERROR(EAGAIN);
- goto exit;
- } else if (bc_ret != BC_STS_SUCCESS) {
- av_log(avctx, AV_LOG_ERROR,
- "CrystalHD: ProcInput failed: %u\n", ret);
- ret = -1;
- goto exit;
- }
- } else {
- av_log(avctx, AV_LOG_INFO, "CrystalHD: No more input data\n");
- priv->draining = 1;
- ret = AVERROR_EOF;
- goto exit;
- }
- exit:
- return ret;
-}
-
-static int crystalhd_receive_frame(AVCodecContext *avctx, AVFrame *frame)
-{
- BC_STATUS bc_ret;
- BC_DTS_STATUS decoder_status = { 0, };
- CopyRet rec_ret;
- CHDContext *priv = avctx->priv_data;
- AVPacket *const pkt = priv->pkt;
- HANDLE dev = priv->dev;
- int got_frame = 0;
- int ret = 0;
-
- av_log(avctx, AV_LOG_VERBOSE, "CrystalHD: receive_frame\n");
-
- ret = ff_decode_get_packet(avctx, pkt);
- if (ret < 0 && ret != AVERROR_EOF) {
- return ret;
- }
-
- while (pkt->size > DtsTxFreeSize(dev)) {
- /*
- * Block until there is space in the buffer for the next packet.
- * We assume that the hardware will make forward progress at this
- * point, although in pathological cases that may not happen.
- */
- av_log(avctx, AV_LOG_TRACE, "CrystalHD: Waiting for space in input buffer\n");
- }
-
- ret = crystalhd_decode_packet(avctx, pkt);
- av_packet_unref(pkt);
- // crystalhd_is_buffer_full() should avoid this.
- if (ret == AVERROR(EAGAIN)) {
- ret = AVERROR_EXTERNAL;
- }
- if (ret < 0 && ret != AVERROR_EOF) {
- return ret;
- }
-
- do {
- bc_ret = DtsGetDriverStatus(dev, &decoder_status);
- if (bc_ret != BC_STS_SUCCESS) {
- av_log(avctx, AV_LOG_ERROR, "CrystalHD: GetDriverStatus failed\n");
- return -1;
- }
-
- if (decoder_status.ReadyListCount == 0) {
- av_log(avctx, AV_LOG_VERBOSE, "CrystalHD: Insufficient frames ready. Returning\n");
- got_frame = 0;
- rec_ret = RET_OK;
- break;
- }
-
- rec_ret = receive_frame(avctx, frame, &got_frame);
- } while (rec_ret == RET_COPY_AGAIN);
-
- if (rec_ret == RET_ERROR) {
- return -1;
- } else if (got_frame == 0) {
- return priv->draining ? AVERROR_EOF : AVERROR(EAGAIN);
- } else {
- return 0;
- }
-}
-
-#define DEFINE_CRYSTALHD_DECODER(x, X, bsf_name) \
- static const AVClass x##_crystalhd_class = { \
- .class_name = #x "_crystalhd", \
- .item_name = av_default_item_name, \
- .option = options, \
- .version = LIBAVUTIL_VERSION_INT, \
- }; \
- const FFCodec ff_##x##_crystalhd_decoder = { \
- .p.name = #x "_crystalhd", \
- CODEC_LONG_NAME("CrystalHD " #X " decoder"), \
- .p.type = AVMEDIA_TYPE_VIDEO, \
- .p.id = AV_CODEC_ID_##X, \
- .priv_data_size = sizeof(CHDContext), \
- .p.priv_class = &x##_crystalhd_class, \
- .init = init, \
- .close = uninit, \
- FF_CODEC_RECEIVE_FRAME_CB(crystalhd_receive_frame), \
- .flush = flush, \
- .bsfs = bsf_name, \
- .p.capabilities = AV_CODEC_CAP_DELAY | AV_CODEC_CAP_AVOID_PROBING | AV_CODEC_CAP_HARDWARE, \
- .caps_internal = FF_CODEC_CAP_NOT_INIT_THREADSAFE | \
- FF_CODEC_CAP_SETS_FRAME_PROPS, \
- .p.pix_fmts = (const enum AVPixelFormat[]){AV_PIX_FMT_YUYV422, AV_PIX_FMT_NONE}, \
- .p.wrapper_name = "crystalhd", \
- };
-
-#if CONFIG_H264_CRYSTALHD_DECODER
-DEFINE_CRYSTALHD_DECODER(h264, H264, "h264_mp4toannexb")
-#endif
-
-#if CONFIG_MPEG2_CRYSTALHD_DECODER
-DEFINE_CRYSTALHD_DECODER(mpeg2, MPEG2VIDEO, NULL)
-#endif
-
-#if CONFIG_MPEG4_CRYSTALHD_DECODER
-DEFINE_CRYSTALHD_DECODER(mpeg4, MPEG4, "mpeg4_unpack_bframes")
-#endif
-
-#if CONFIG_MSMPEG4_CRYSTALHD_DECODER
-DEFINE_CRYSTALHD_DECODER(msmpeg4, MSMPEG4V3, NULL)
-#endif
-
-#if CONFIG_VC1_CRYSTALHD_DECODER
-DEFINE_CRYSTALHD_DECODER(vc1, VC1, NULL)
-#endif
-
-#if CONFIG_WMV3_CRYSTALHD_DECODER
-DEFINE_CRYSTALHD_DECODER(wmv3, WMV3, NULL)
-#endif
diff --git a/libavcodec/options_table.h b/libavcodec/options_table.h
index ee243d9894..5859ceb409 100644
--- a/libavcodec/options_table.h
+++ b/libavcodec/options_table.h
@@ -179,9 +179,6 @@ static const AVOption avcodec_options[] = {
{"xvidmmx", "deprecated, for compatibility only", 0, AV_OPT_TYPE_CONST, {.i64 = FF_IDCT_XVID }, INT_MIN, INT_MAX, V|E|D, "idct"},
{"faani", "floating point AAN IDCT", 0, AV_OPT_TYPE_CONST, {.i64 = FF_IDCT_FAAN }, INT_MIN, INT_MAX, V|D|E, "idct"},
{"simpleauto", NULL, 0, AV_OPT_TYPE_CONST, {.i64 = FF_IDCT_SIMPLEAUTO }, INT_MIN, INT_MAX, V|E|D, "idct"},
-#if FF_API_SLICE_OFFSET
-{"slice_count", NULL, OFFSET(slice_count), AV_OPT_TYPE_INT, {.i64 = DEFAULT }, INT_MIN, INT_MAX},
-#endif
{"ec", "set error concealment strategy", OFFSET(error_concealment), AV_OPT_TYPE_FLAGS, {.i64 = 3 }, INT_MIN, INT_MAX, V|D, "ec"},
{"guess_mvs", "iterative motion vector (MV) search (slow)", 0, AV_OPT_TYPE_CONST, {.i64 = FF_EC_GUESS_MVS }, INT_MIN, INT_MAX, V|D, "ec"},
{"deblock", "use strong deblock filter for damaged MBs", 0, AV_OPT_TYPE_CONST, {.i64 = FF_EC_DEBLOCK }, INT_MIN, INT_MAX, V|D, "ec"},
diff --git a/libavcodec/version_major.h b/libavcodec/version_major.h
index 7e8f5bace3..d849d55cb2 100644
--- a/libavcodec/version_major.h
+++ b/libavcodec/version_major.h
@@ -38,7 +38,6 @@
*/
#define FF_API_INIT_PACKET (LIBAVCODEC_VERSION_MAJOR < 61)
-#define FF_API_SLICE_OFFSET (LIBAVCODEC_VERSION_MAJOR < 61)
#define FF_API_SUBFRAMES (LIBAVCODEC_VERSION_MAJOR < 61)
#define FF_API_TICKS_PER_FRAME (LIBAVCODEC_VERSION_MAJOR < 61)
#define FF_API_DROPCHANGED (LIBAVCODEC_VERSION_MAJOR < 61)
@@ -46,7 +45,4 @@
#define FF_API_AVFFT (LIBAVCODEC_VERSION_MAJOR < 62)
#define FF_API_FF_PROFILE_LEVEL (LIBAVCODEC_VERSION_MAJOR < 62)
-// reminder to remove CrystalHD decoders on next major bump
-#define FF_CODEC_CRYSTAL_HD (LIBAVCODEC_VERSION_MAJOR < 61)
-
#endif /* AVCODEC_VERSION_MAJOR_H */
--
2.43.0
_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
To unsubscribe, visit link above, or email
ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".
^ permalink raw reply [flat|nested] 60+ messages in thread
* [FFmpeg-devel] [PATCH 09/24] avformat: remove deprecated FF_API_GET_END_PTS
2024-01-25 13:43 [FFmpeg-devel] [PATCH 00/24] Major library version bump James Almer
` (7 preceding siblings ...)
2024-01-25 13:43 ` [FFmpeg-devel] [PATCH 08/24] avcodec: remove deprecated FF_CODEC_CRYSTAL_HD James Almer
@ 2024-01-25 13:43 ` James Almer
2024-01-25 13:43 ` [FFmpeg-devel] [PATCH 10/24] avformat: remove deprecated FF_API_AVIODIRCONTEXT James Almer
` (32 subsequent siblings)
41 siblings, 0 replies; 60+ messages in thread
From: James Almer @ 2024-01-25 13:43 UTC (permalink / raw)
To: ffmpeg-devel
Signed-off-by: James Almer <jamrial@gmail.com>
---
libavformat/avformat.h | 10 ----------
libavformat/mux_utils.c | 10 ----------
libavformat/version_major.h | 1 -
3 files changed, 21 deletions(-)
diff --git a/libavformat/avformat.h b/libavformat/avformat.h
index 5d0fe82250..446ca9e6bf 100644
--- a/libavformat/avformat.h
+++ b/libavformat/avformat.h
@@ -1097,16 +1097,6 @@ typedef struct AVStreamGroup {
struct AVCodecParserContext *av_stream_get_parser(const AVStream *s);
-#if FF_API_GET_END_PTS
-/**
- * Returns the pts of the last muxed packet + its duration
- *
- * the retuned value is undefined when used with a demuxer.
- */
-attribute_deprecated
-int64_t av_stream_get_end_pts(const AVStream *st);
-#endif
-
#define AV_PROGRAM_RUNNING 1
/**
diff --git a/libavformat/mux_utils.c b/libavformat/mux_utils.c
index 3e63b8039a..9d811c14e2 100644
--- a/libavformat/mux_utils.c
+++ b/libavformat/mux_utils.c
@@ -30,16 +30,6 @@
#include "internal.h"
#include "mux.h"
-#if FF_API_GET_END_PTS
-int64_t av_stream_get_end_pts(const AVStream *st)
-{
- if (cffstream(st)->priv_pts) {
- return cffstream(st)->priv_pts->val;
- } else
- return AV_NOPTS_VALUE;
-}
-#endif
-
int avformat_query_codec(const AVOutputFormat *ofmt, enum AVCodecID codec_id,
int std_compliance)
{
diff --git a/libavformat/version_major.h b/libavformat/version_major.h
index 224fdacf23..4dfb26cca3 100644
--- a/libavformat/version_major.h
+++ b/libavformat/version_major.h
@@ -42,7 +42,6 @@
*
*/
#define FF_API_COMPUTE_PKT_FIELDS2 (LIBAVFORMAT_VERSION_MAJOR < 61)
-#define FF_API_GET_END_PTS (LIBAVFORMAT_VERSION_MAJOR < 61)
#define FF_API_AVIODIRCONTEXT (LIBAVFORMAT_VERSION_MAJOR < 61)
#define FF_API_AVFORMAT_IO_CLOSE (LIBAVFORMAT_VERSION_MAJOR < 61)
#define FF_API_AVIO_WRITE_NONCONST (LIBAVFORMAT_VERSION_MAJOR < 61)
--
2.43.0
_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
To unsubscribe, visit link above, or email
ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".
^ permalink raw reply [flat|nested] 60+ messages in thread
* [FFmpeg-devel] [PATCH 10/24] avformat: remove deprecated FF_API_AVIODIRCONTEXT
2024-01-25 13:43 [FFmpeg-devel] [PATCH 00/24] Major library version bump James Almer
` (8 preceding siblings ...)
2024-01-25 13:43 ` [FFmpeg-devel] [PATCH 09/24] avformat: remove deprecated FF_API_GET_END_PTS James Almer
@ 2024-01-25 13:43 ` James Almer
2024-01-25 13:43 ` [FFmpeg-devel] [PATCH 11/24] avformat: remove deprecated FF_API_AVFORMAT_IO_CLOSE James Almer
` (31 subsequent siblings)
41 siblings, 0 replies; 60+ messages in thread
From: James Almer @ 2024-01-25 13:43 UTC (permalink / raw)
To: ffmpeg-devel
Signed-off-by: James Almer <jamrial@gmail.com>
---
libavformat/avio.c | 2 --
libavformat/avio.h | 6 ------
libavformat/version_major.h | 1 -
3 files changed, 9 deletions(-)
diff --git a/libavformat/avio.c b/libavformat/avio.c
index b793a7546c..6a9bd86754 100644
--- a/libavformat/avio.c
+++ b/libavformat/avio.c
@@ -529,11 +529,9 @@ int ffurl_delete(const char *url)
return ret;
}
-#if !FF_API_AVIODIRCONTEXT
struct AVIODirContext {
struct URLContext *url_context;
};
-#endif
int avio_open_dir(AVIODirContext **s, const char *url, AVDictionary **options)
{
diff --git a/libavformat/avio.h b/libavformat/avio.h
index 887a397c37..fc0d314edb 100644
--- a/libavformat/avio.h
+++ b/libavformat/avio.h
@@ -101,13 +101,7 @@ typedef struct AVIODirEntry {
int64_t filemode; /**< Unix file mode, -1 if unknown. */
} AVIODirEntry;
-#if FF_API_AVIODIRCONTEXT
-typedef struct AVIODirContext {
- struct URLContext *url_context;
-} AVIODirContext;
-#else
typedef struct AVIODirContext AVIODirContext;
-#endif
/**
* Different data types that can be returned via the AVIO
diff --git a/libavformat/version_major.h b/libavformat/version_major.h
index 4dfb26cca3..ee1f8bdbb7 100644
--- a/libavformat/version_major.h
+++ b/libavformat/version_major.h
@@ -42,7 +42,6 @@
*
*/
#define FF_API_COMPUTE_PKT_FIELDS2 (LIBAVFORMAT_VERSION_MAJOR < 61)
-#define FF_API_AVIODIRCONTEXT (LIBAVFORMAT_VERSION_MAJOR < 61)
#define FF_API_AVFORMAT_IO_CLOSE (LIBAVFORMAT_VERSION_MAJOR < 61)
#define FF_API_AVIO_WRITE_NONCONST (LIBAVFORMAT_VERSION_MAJOR < 61)
#define FF_API_LAVF_SHORTEST (LIBAVFORMAT_VERSION_MAJOR < 61)
--
2.43.0
_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
To unsubscribe, visit link above, or email
ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".
^ permalink raw reply [flat|nested] 60+ messages in thread
* [FFmpeg-devel] [PATCH 11/24] avformat: remove deprecated FF_API_AVFORMAT_IO_CLOSE
2024-01-25 13:43 [FFmpeg-devel] [PATCH 00/24] Major library version bump James Almer
` (9 preceding siblings ...)
2024-01-25 13:43 ` [FFmpeg-devel] [PATCH 10/24] avformat: remove deprecated FF_API_AVIODIRCONTEXT James Almer
@ 2024-01-25 13:43 ` James Almer
2024-01-25 13:43 ` [FFmpeg-devel] [PATCH 12/24] avfilter: remove deprecated FF_API_LIBPLACEBO_OPTS James Almer
` (30 subsequent siblings)
41 siblings, 0 replies; 60+ messages in thread
From: James Almer @ 2024-01-25 13:43 UTC (permalink / raw)
To: ffmpeg-devel
Signed-off-by: James Almer <jamrial@gmail.com>
---
libavformat/avformat.c | 14 ++------------
libavformat/avformat.h | 10 ----------
libavformat/dashenc.c | 5 -----
libavformat/fifo.c | 5 -----
libavformat/hlsenc.c | 5 -----
libavformat/imfdec.c | 5 -----
libavformat/options.c | 12 ------------
libavformat/segment.c | 5 -----
libavformat/tee.c | 5 -----
libavformat/version_major.h | 1 -
10 files changed, 2 insertions(+), 65 deletions(-)
diff --git a/libavformat/avformat.c b/libavformat/avformat.c
index 882927f7b1..074e98491d 100644
--- a/libavformat/avformat.c
+++ b/libavformat/avformat.c
@@ -916,18 +916,8 @@ void ff_format_set_url(AVFormatContext *s, char *url)
int ff_format_io_close(AVFormatContext *s, AVIOContext **pb)
{
int ret = 0;
- if (*pb) {
-#if FF_API_AVFORMAT_IO_CLOSE
-FF_DISABLE_DEPRECATION_WARNINGS
- if (s->io_close == ff_format_io_close_default || s->io_close == NULL)
-#endif
- ret = s->io_close2(s, *pb);
-#if FF_API_AVFORMAT_IO_CLOSE
- else
- s->io_close(s, *pb);
-FF_ENABLE_DEPRECATION_WARNINGS
-#endif
- }
+ if (*pb)
+ ret = s->io_close2(s, *pb);
*pb = NULL;
return ret;
}
diff --git a/libavformat/avformat.h b/libavformat/avformat.h
index 446ca9e6bf..ed02dd87b9 100644
--- a/libavformat/avformat.h
+++ b/libavformat/avformat.h
@@ -1743,16 +1743,6 @@ typedef struct AVFormatContext {
int (*io_open)(struct AVFormatContext *s, AVIOContext **pb, const char *url,
int flags, AVDictionary **options);
-#if FF_API_AVFORMAT_IO_CLOSE
- /**
- * A callback for closing the streams opened with AVFormatContext.io_open().
- *
- * @deprecated use io_close2
- */
- attribute_deprecated
- void (*io_close)(struct AVFormatContext *s, AVIOContext *pb);
-#endif
-
/**
* ',' separated list of disallowed protocols.
* - encoding: unused
diff --git a/libavformat/dashenc.c b/libavformat/dashenc.c
index 4a92863f22..706e9ab6f4 100644
--- a/libavformat/dashenc.c
+++ b/libavformat/dashenc.c
@@ -1544,11 +1544,6 @@ static int dash_init(AVFormatContext *s)
return AVERROR_MUXER_NOT_FOUND;
ctx->interrupt_callback = s->interrupt_callback;
ctx->opaque = s->opaque;
-#if FF_API_AVFORMAT_IO_CLOSE
-FF_DISABLE_DEPRECATION_WARNINGS
- ctx->io_close = s->io_close;
-FF_ENABLE_DEPRECATION_WARNINGS
-#endif
ctx->io_close2 = s->io_close2;
ctx->io_open = s->io_open;
ctx->strict_std_compliance = s->strict_std_compliance;
diff --git a/libavformat/fifo.c b/libavformat/fifo.c
index 8fb4975a5c..94502129c6 100644
--- a/libavformat/fifo.c
+++ b/libavformat/fifo.c
@@ -501,11 +501,6 @@ static int fifo_mux_init(AVFormatContext *avf, const AVOutputFormat *oformat,
if (ret < 0)
return ret;
avf2->opaque = avf->opaque;
-#if FF_API_AVFORMAT_IO_CLOSE
-FF_DISABLE_DEPRECATION_WARNINGS
- avf2->io_close = avf->io_close;
-FF_ENABLE_DEPRECATION_WARNINGS
-#endif
avf2->io_close2 = avf->io_close2;
avf2->io_open = avf->io_open;
avf2->flags = avf->flags;
diff --git a/libavformat/hlsenc.c b/libavformat/hlsenc.c
index 55123d2297..dd2abbbd85 100644
--- a/libavformat/hlsenc.c
+++ b/libavformat/hlsenc.c
@@ -865,11 +865,6 @@ static int hls_mux_init(AVFormatContext *s, VariantStream *vs)
oc->max_delay = s->max_delay;
oc->opaque = s->opaque;
oc->io_open = s->io_open;
-#if FF_API_AVFORMAT_IO_CLOSE
-FF_DISABLE_DEPRECATION_WARNINGS
- oc->io_close = s->io_close;
-FF_ENABLE_DEPRECATION_WARNINGS
-#endif
oc->io_close2 = s->io_close2;
oc->strict_std_compliance = s->strict_std_compliance;
av_dict_copy(&oc->metadata, s->metadata, 0);
diff --git a/libavformat/imfdec.c b/libavformat/imfdec.c
index 818b5e590b..901080555a 100644
--- a/libavformat/imfdec.c
+++ b/libavformat/imfdec.c
@@ -379,11 +379,6 @@ static int open_track_resource_context(AVFormatContext *s,
return AVERROR(ENOMEM);
track_resource->ctx->io_open = s->io_open;
-#if FF_API_AVFORMAT_IO_CLOSE
-FF_DISABLE_DEPRECATION_WARNINGS
- track_resource->ctx->io_close = s->io_close;
-FF_ENABLE_DEPRECATION_WARNINGS
-#endif
track_resource->ctx->io_close2 = s->io_close2;
track_resource->ctx->flags |= s->flags & ~AVFMT_FLAG_CUSTOM_IO;
diff --git a/libavformat/options.c b/libavformat/options.c
index 75ec86ce05..7eaf281d86 100644
--- a/libavformat/options.c
+++ b/libavformat/options.c
@@ -152,13 +152,6 @@ static int io_open_default(AVFormatContext *s, AVIOContext **pb,
return ffio_open_whitelist(pb, url, flags, &s->interrupt_callback, options, s->protocol_whitelist, s->protocol_blacklist);
}
-#if FF_API_AVFORMAT_IO_CLOSE
-void ff_format_io_close_default(AVFormatContext *s, AVIOContext *pb)
-{
- avio_close(pb);
-}
-#endif
-
static int io_close2_default(AVFormatContext *s, AVIOContext *pb)
{
return avio_close(pb);
@@ -175,11 +168,6 @@ AVFormatContext *avformat_alloc_context(void)
s = &si->pub;
s->av_class = &av_format_context_class;
s->io_open = io_open_default;
-#if FF_API_AVFORMAT_IO_CLOSE
-FF_DISABLE_DEPRECATION_WARNINGS
- s->io_close = ff_format_io_close_default;
-FF_ENABLE_DEPRECATION_WARNINGS
-#endif
s->io_close2= io_close2_default;
av_opt_set_defaults(s);
diff --git a/libavformat/segment.c b/libavformat/segment.c
index 2a82f39f31..63ba226692 100644
--- a/libavformat/segment.c
+++ b/libavformat/segment.c
@@ -160,11 +160,6 @@ static int segment_mux_init(AVFormatContext *s)
oc->max_delay = s->max_delay;
av_dict_copy(&oc->metadata, s->metadata, 0);
oc->opaque = s->opaque;
-#if FF_API_AVFORMAT_IO_CLOSE
-FF_DISABLE_DEPRECATION_WARNINGS
- oc->io_close = s->io_close;
-FF_ENABLE_DEPRECATION_WARNINGS
-#endif
oc->io_close2 = s->io_close2;
oc->io_open = s->io_open;
oc->flags = s->flags;
diff --git a/libavformat/tee.c b/libavformat/tee.c
index cfa8346bc9..a101fede5b 100644
--- a/libavformat/tee.c
+++ b/libavformat/tee.c
@@ -236,11 +236,6 @@ static int open_slave(AVFormatContext *avf, char *slave, TeeSlave *tee_slave)
av_dict_copy(&avf2->metadata, avf->metadata, 0);
avf2->opaque = avf->opaque;
avf2->io_open = avf->io_open;
-#if FF_API_AVFORMAT_IO_CLOSE
-FF_DISABLE_DEPRECATION_WARNINGS
- avf2->io_close = avf->io_close;
-FF_ENABLE_DEPRECATION_WARNINGS
-#endif
avf2->io_close2 = avf->io_close2;
avf2->interrupt_callback = avf->interrupt_callback;
avf2->flags = avf->flags;
diff --git a/libavformat/version_major.h b/libavformat/version_major.h
index ee1f8bdbb7..2c8ab84112 100644
--- a/libavformat/version_major.h
+++ b/libavformat/version_major.h
@@ -42,7 +42,6 @@
*
*/
#define FF_API_COMPUTE_PKT_FIELDS2 (LIBAVFORMAT_VERSION_MAJOR < 61)
-#define FF_API_AVFORMAT_IO_CLOSE (LIBAVFORMAT_VERSION_MAJOR < 61)
#define FF_API_AVIO_WRITE_NONCONST (LIBAVFORMAT_VERSION_MAJOR < 61)
#define FF_API_LAVF_SHORTEST (LIBAVFORMAT_VERSION_MAJOR < 61)
#define FF_API_ALLOW_FLUSH (LIBAVFORMAT_VERSION_MAJOR < 61)
--
2.43.0
_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
To unsubscribe, visit link above, or email
ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".
^ permalink raw reply [flat|nested] 60+ messages in thread
* [FFmpeg-devel] [PATCH 12/24] avfilter: remove deprecated FF_API_LIBPLACEBO_OPTS
2024-01-25 13:43 [FFmpeg-devel] [PATCH 00/24] Major library version bump James Almer
` (10 preceding siblings ...)
2024-01-25 13:43 ` [FFmpeg-devel] [PATCH 11/24] avformat: remove deprecated FF_API_AVFORMAT_IO_CLOSE James Almer
@ 2024-01-25 13:43 ` James Almer
2024-01-25 13:43 ` [FFmpeg-devel] [PATCH 13/24] avutil: remove deprecated FF_API_FIFO_PEEK2 James Almer
` (29 subsequent siblings)
41 siblings, 0 replies; 60+ messages in thread
From: James Almer @ 2024-01-25 13:43 UTC (permalink / raw)
To: ffmpeg-devel
Signed-off-by: James Almer <jamrial@gmail.com>
---
libavfilter/version_major.h | 2 -
libavfilter/vf_libplacebo.c | 76 -------------------------------------
2 files changed, 78 deletions(-)
diff --git a/libavfilter/version_major.h b/libavfilter/version_major.h
index 1decc4012e..899dfdb27d 100644
--- a/libavfilter/version_major.h
+++ b/libavfilter/version_major.h
@@ -35,6 +35,4 @@
* the public API and may change, break or disappear at any time.
*/
-#define FF_API_LIBPLACEBO_OPTS (LIBAVFILTER_VERSION_MAJOR < 10)
-
#endif /* AVFILTER_VERSION_MAJOR_H */
diff --git a/libavfilter/vf_libplacebo.c b/libavfilter/vf_libplacebo.c
index a9a3d884ce..7d1ca6daee 100644
--- a/libavfilter/vf_libplacebo.c
+++ b/libavfilter/vf_libplacebo.c
@@ -240,20 +240,6 @@ typedef struct LibplaceboContext {
float contrast_recovery;
float contrast_smoothness;
-#if FF_API_LIBPLACEBO_OPTS
- /* for backwards compatibility */
- float desat_str;
- float desat_exp;
- int gamut_warning;
- int gamut_clipping;
- int force_icc_lut;
- int intent;
- int tonemapping_mode;
- float crosstalk;
- float overshoot;
- float hybrid_mix;
-#endif
-
/* pl_dither_params */
int dithering;
int dither_lut_size;
@@ -382,32 +368,6 @@ static int update_settings(AVFilterContext *ctx)
int gamut_mode = s->gamut_mode;
uint8_t color_rgba[4];
-#if FF_API_LIBPLACEBO_OPTS
- float hybrid_mix = s->hybrid_mix;
- /* backwards compatibility with older API */
- switch (s->tonemapping_mode) {
- case 0: /*PL_TONE_MAP_AUTO*/
- if (s->desat_str >= 0.0f)
- hybrid_mix = s->desat_str;
- break;
- case 1: /*PL_TONE_MAP_RGB*/ hybrid_mix = 1.0f; break;
- case 2: /*PL_TONE_MAP_HYBRID*/ hybrid_mix = 0.2f; break;
- case 3: /*PL_TONE_MAP_LUMA*/ hybrid_mix = 0.0f; break;
- case 4: /*PL_TONE_MAP_MAX*/ hybrid_mix = 0.0f; break;
- }
-
- switch (s->intent) {
- case PL_INTENT_SATURATION: gamut_mode = GAMUT_MAP_SATURATION; break;
- case PL_INTENT_RELATIVE_COLORIMETRIC: gamut_mode = GAMUT_MAP_RELATIVE; break;
- case PL_INTENT_ABSOLUTE_COLORIMETRIC: gamut_mode = GAMUT_MAP_ABSOLUTE; break;
- }
-
- if (s->gamut_warning)
- gamut_mode = GAMUT_MAP_HIGHLIGHT;
- if (s->gamut_clipping)
- gamut_mode = GAMUT_MAP_DESATURATE;
-#endif
-
RET(av_parse_color(color_rgba, s->fillcolor, -1, s));
opts->deband_params = *pl_deband_params(
@@ -434,21 +394,10 @@ static int update_settings(AVFilterContext *ctx)
.scene_threshold_high = s->scene_high,
#if PL_API_VER >= 263
.percentile = s->percentile,
-#endif
-#if FF_API_LIBPLACEBO_OPTS && PL_API_VER < 256
- .overshoot_margin = s->overshoot,
#endif
);
opts->color_map_params = *pl_color_map_params(
-#if FF_API_LIBPLACEBO_OPTS
-# if PL_API_VER >= 269
- .hybrid_mix = hybrid_mix,
-# else
- .tone_mapping_mode = s->tonemapping_mode,
- .tone_mapping_crosstalk = s->crosstalk,
-# endif
-#endif
.tone_mapping_function = get_tonemapping_func(s->tonemapping),
.tone_mapping_param = s->tonemapping_param,
.inverse_tone_mapping = s->inverse_tonemapping,
@@ -1458,28 +1407,6 @@ static const AVOption libplacebo_options[] = {
{ "contrast_recovery", "HDR contrast recovery strength", OFFSET(contrast_recovery), AV_OPT_TYPE_FLOAT, {.dbl = 0.30}, 0.0, 3.0, DYNAMIC },
{ "contrast_smoothness", "HDR contrast recovery smoothness", OFFSET(contrast_smoothness), AV_OPT_TYPE_FLOAT, {.dbl = 3.50}, 1.0, 32.0, DYNAMIC },
-#if FF_API_LIBPLACEBO_OPTS
- /* deprecated options for backwards compatibility, defaulting to -1 to not override the new defaults */
- { "desaturation_strength", "Desaturation strength", OFFSET(desat_str), AV_OPT_TYPE_FLOAT, {.dbl = -1.0}, -1.0, 1.0, DYNAMIC | AV_OPT_FLAG_DEPRECATED },
- { "desaturation_exponent", "Desaturation exponent", OFFSET(desat_exp), AV_OPT_TYPE_FLOAT, {.dbl = -1.0}, -1.0, 10.0, DYNAMIC | AV_OPT_FLAG_DEPRECATED },
- { "gamut_warning", "Highlight out-of-gamut colors", OFFSET(gamut_warning), AV_OPT_TYPE_BOOL, {.i64 = 0}, 0, 1, DYNAMIC | AV_OPT_FLAG_DEPRECATED },
- { "gamut_clipping", "Enable desaturating colorimetric gamut clipping", OFFSET(gamut_clipping), AV_OPT_TYPE_BOOL, {.i64 = 0}, 0, 1, DYNAMIC | AV_OPT_FLAG_DEPRECATED },
- { "intent", "Rendering intent", OFFSET(intent), AV_OPT_TYPE_INT, {.i64 = PL_INTENT_PERCEPTUAL}, 0, 3, DYNAMIC | AV_OPT_FLAG_DEPRECATED, "intent" },
- { "perceptual", "Perceptual", 0, AV_OPT_TYPE_CONST, {.i64 = PL_INTENT_PERCEPTUAL}, 0, 0, STATIC, "intent" },
- { "relative", "Relative colorimetric", 0, AV_OPT_TYPE_CONST, {.i64 = PL_INTENT_RELATIVE_COLORIMETRIC}, 0, 0, STATIC, "intent" },
- { "absolute", "Absolute colorimetric", 0, AV_OPT_TYPE_CONST, {.i64 = PL_INTENT_ABSOLUTE_COLORIMETRIC}, 0, 0, STATIC, "intent" },
- { "saturation", "Saturation mapping", 0, AV_OPT_TYPE_CONST, {.i64 = PL_INTENT_SATURATION}, 0, 0, STATIC, "intent" },
- { "tonemapping_mode", "Tone-mapping mode", OFFSET(tonemapping_mode), AV_OPT_TYPE_INT, {.i64 = 0}, 0, 4, DYNAMIC | AV_OPT_FLAG_DEPRECATED, "tonemap_mode" },
- { "auto", "Automatic selection", 0, AV_OPT_TYPE_CONST, {.i64 = 0}, 0, 0, STATIC, "tonemap_mode" },
- { "rgb", "Per-channel (RGB)", 0, AV_OPT_TYPE_CONST, {.i64 = 1}, 0, 0, STATIC, "tonemap_mode" },
- { "max", "Maximum component", 0, AV_OPT_TYPE_CONST, {.i64 = 2}, 0, 0, STATIC, "tonemap_mode" },
- { "hybrid", "Hybrid of Luma/RGB", 0, AV_OPT_TYPE_CONST, {.i64 = 3}, 0, 0, STATIC, "tonemap_mode" },
- { "luma", "Luminance", 0, AV_OPT_TYPE_CONST, {.i64 = 4}, 0, 0, STATIC, "tonemap_mode" },
- { "tonemapping_crosstalk", "Crosstalk factor for tone-mapping", OFFSET(crosstalk), AV_OPT_TYPE_FLOAT, {.dbl = 0.04}, 0.0, 0.30, DYNAMIC | AV_OPT_FLAG_DEPRECATED },
- { "overshoot", "Tone-mapping overshoot margin", OFFSET(overshoot), AV_OPT_TYPE_FLOAT, {.dbl = 0.05}, 0.0, 1.0, DYNAMIC | AV_OPT_FLAG_DEPRECATED },
- { "hybrid_mix", "Tone-mapping hybrid LMS mixing coefficient", OFFSET(hybrid_mix), AV_OPT_TYPE_FLOAT, {.dbl = 0.20}, 0.0, 1.00, DYNAMIC },
-#endif
-
{ "dithering", "Dither method to use", OFFSET(dithering), AV_OPT_TYPE_INT, {.i64 = PL_DITHER_BLUE_NOISE}, -1, PL_DITHER_METHOD_COUNT - 1, DYNAMIC, "dither" },
{ "none", "Disable dithering", 0, AV_OPT_TYPE_CONST, {.i64 = -1}, 0, 0, STATIC, "dither" },
{ "blue", "Blue noise", 0, AV_OPT_TYPE_CONST, {.i64 = PL_DITHER_BLUE_NOISE}, 0, 0, STATIC, "dither" },
@@ -1503,9 +1430,6 @@ static const AVOption libplacebo_options[] = {
{ "polar_cutoff", "Polar LUT cutoff", OFFSET(polar_cutoff), AV_OPT_TYPE_FLOAT, {.dbl = 0}, 0.0, 1.0, DYNAMIC },
{ "disable_linear", "Disable linear scaling", OFFSET(disable_linear), AV_OPT_TYPE_BOOL, {.i64 = 0}, 0, 1, DYNAMIC },
{ "disable_builtin", "Disable built-in scalers", OFFSET(disable_builtin), AV_OPT_TYPE_BOOL, {.i64 = 0}, 0, 1, DYNAMIC },
-#if FF_API_LIBPLACEBO_OPTS
- { "force_icc_lut", "Deprecated, does nothing", OFFSET(force_icc_lut), AV_OPT_TYPE_BOOL, {.i64 = 0}, 0, 1, DYNAMIC | AV_OPT_FLAG_DEPRECATED },
-#endif
{ "force_dither", "Force dithering", OFFSET(force_dither), AV_OPT_TYPE_BOOL, {.i64 = 0}, 0, 1, DYNAMIC },
{ "disable_fbos", "Force-disable FBOs", OFFSET(disable_fbos), AV_OPT_TYPE_BOOL, {.i64 = 0}, 0, 1, DYNAMIC },
{ NULL },
--
2.43.0
_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
To unsubscribe, visit link above, or email
ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".
^ permalink raw reply [flat|nested] 60+ messages in thread
* [FFmpeg-devel] [PATCH 13/24] avutil: remove deprecated FF_API_FIFO_PEEK2
2024-01-25 13:43 [FFmpeg-devel] [PATCH 00/24] Major library version bump James Almer
` (11 preceding siblings ...)
2024-01-25 13:43 ` [FFmpeg-devel] [PATCH 12/24] avfilter: remove deprecated FF_API_LIBPLACEBO_OPTS James Almer
@ 2024-01-25 13:43 ` James Almer
2024-01-25 13:43 ` [FFmpeg-devel] [PATCH 14/24] avutil: remove deprecated FF_API_FIFO_OLD_API James Almer
` (28 subsequent siblings)
41 siblings, 0 replies; 60+ messages in thread
From: James Almer @ 2024-01-25 13:43 UTC (permalink / raw)
To: ffmpeg-devel
Signed-off-by: James Almer <jamrial@gmail.com>
---
libavutil/fifo.h | 23 -----------------------
libavutil/version.h | 1 -
2 files changed, 24 deletions(-)
diff --git a/libavutil/fifo.h b/libavutil/fifo.h
index ce3a2aed7c..7ac497e8f9 100644
--- a/libavutil/fifo.h
+++ b/libavutil/fifo.h
@@ -416,29 +416,6 @@ int av_fifo_grow(AVFifoBuffer *f, unsigned int additional_space);
attribute_deprecated
void av_fifo_drain(AVFifoBuffer *f, int size);
-#if FF_API_FIFO_PEEK2
-/**
- * Return a pointer to the data stored in a FIFO buffer at a certain offset.
- * The FIFO buffer is not modified.
- *
- * @param f AVFifoBuffer to peek at, f must be non-NULL
- * @param offs an offset in bytes, its absolute value must be less
- * than the used buffer size or the returned pointer will
- * point outside to the buffer data.
- * The used buffer size can be checked with av_fifo_size().
- * @deprecated use the new AVFifo-API with av_fifo_peek() or av_fifo_peek_to_cb()
- */
-attribute_deprecated
-static inline uint8_t *av_fifo_peek2(const AVFifoBuffer *f, int offs)
-{
- uint8_t *ptr = f->rptr + offs;
- if (ptr >= f->end)
- ptr = f->buffer + (ptr - f->end);
- else if (ptr < f->buffer)
- ptr = f->end - (f->buffer - ptr);
- return ptr;
-}
-#endif
#endif
/**
diff --git a/libavutil/version.h b/libavutil/version.h
index 772c4e209c..a67a51c933 100644
--- a/libavutil/version.h
+++ b/libavutil/version.h
@@ -105,7 +105,6 @@
* @{
*/
-#define FF_API_FIFO_PEEK2 (LIBAVUTIL_VERSION_MAJOR < 59)
#define FF_API_FIFO_OLD_API (LIBAVUTIL_VERSION_MAJOR < 59)
#define FF_API_XVMC (LIBAVUTIL_VERSION_MAJOR < 59)
#define FF_API_OLD_CHANNEL_LAYOUT (LIBAVUTIL_VERSION_MAJOR < 59)
--
2.43.0
_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
To unsubscribe, visit link above, or email
ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".
^ permalink raw reply [flat|nested] 60+ messages in thread
* [FFmpeg-devel] [PATCH 14/24] avutil: remove deprecated FF_API_FIFO_OLD_API
2024-01-25 13:43 [FFmpeg-devel] [PATCH 00/24] Major library version bump James Almer
` (12 preceding siblings ...)
2024-01-25 13:43 ` [FFmpeg-devel] [PATCH 13/24] avutil: remove deprecated FF_API_FIFO_PEEK2 James Almer
@ 2024-01-25 13:43 ` James Almer
2024-01-25 13:43 ` [FFmpeg-devel] [PATCH 15/24] avutil: remove deprecated FF_API_XVMC James Almer
` (27 subsequent siblings)
41 siblings, 0 replies; 60+ messages in thread
From: James Almer @ 2024-01-25 13:43 UTC (permalink / raw)
To: ffmpeg-devel
Signed-off-by: James Almer <jamrial@gmail.com>
---
libavutil/fifo.c | 219 --------------------------------------------
libavutil/fifo.h | 179 ------------------------------------
libavutil/version.h | 1 -
3 files changed, 399 deletions(-)
diff --git a/libavutil/fifo.c b/libavutil/fifo.c
index b0807abbf7..8806c668d7 100644
--- a/libavutil/fifo.c
+++ b/libavutil/fifo.c
@@ -290,222 +290,3 @@ void av_fifo_freep2(AVFifo **f)
av_freep(f);
}
}
-
-
-#if FF_API_FIFO_OLD_API
-#include "internal.h"
-FF_DISABLE_DEPRECATION_WARNINGS
-#define OLD_FIFO_SIZE_MAX (size_t)FFMIN3(INT_MAX, UINT32_MAX, SIZE_MAX)
-
-AVFifoBuffer *av_fifo_alloc_array(size_t nmemb, size_t size)
-{
- AVFifoBuffer *f;
- void *buffer;
-
- if (nmemb > OLD_FIFO_SIZE_MAX / size)
- return NULL;
-
- buffer = av_realloc_array(NULL, nmemb, size);
- if (!buffer)
- return NULL;
- f = av_mallocz(sizeof(AVFifoBuffer));
- if (!f) {
- av_free(buffer);
- return NULL;
- }
- f->buffer = buffer;
- f->end = f->buffer + nmemb * size;
- av_fifo_reset(f);
- return f;
-}
-
-AVFifoBuffer *av_fifo_alloc(unsigned int size)
-{
- return av_fifo_alloc_array(size, 1);
-}
-
-void av_fifo_free(AVFifoBuffer *f)
-{
- if (f) {
- av_freep(&f->buffer);
- av_free(f);
- }
-}
-
-void av_fifo_freep(AVFifoBuffer **f)
-{
- if (f) {
- av_fifo_free(*f);
- *f = NULL;
- }
-}
-
-void av_fifo_reset(AVFifoBuffer *f)
-{
- f->wptr = f->rptr = f->buffer;
- f->wndx = f->rndx = 0;
-}
-
-int av_fifo_size(const AVFifoBuffer *f)
-{
- return (uint32_t)(f->wndx - f->rndx);
-}
-
-int av_fifo_space(const AVFifoBuffer *f)
-{
- return f->end - f->buffer - av_fifo_size(f);
-}
-
-int av_fifo_realloc2(AVFifoBuffer *f, unsigned int new_size)
-{
- unsigned int old_size = f->end - f->buffer;
-
- if (new_size > OLD_FIFO_SIZE_MAX)
- return AVERROR(EINVAL);
-
- if (old_size < new_size) {
- size_t offset_r = f->rptr - f->buffer;
- size_t offset_w = f->wptr - f->buffer;
- uint8_t *tmp;
-
- tmp = av_realloc(f->buffer, new_size);
- if (!tmp)
- return AVERROR(ENOMEM);
-
- // move the data from the beginning of the ring buffer
- // to the newly allocated space
- // the second condition distinguishes full vs empty fifo
- if (offset_w <= offset_r && av_fifo_size(f)) {
- const size_t copy = FFMIN(new_size - old_size, offset_w);
- memcpy(tmp + old_size, tmp, copy);
- if (copy < offset_w) {
- memmove(tmp, tmp + copy , offset_w - copy);
- offset_w -= copy;
- } else
- offset_w = old_size + copy;
- }
-
- f->buffer = tmp;
- f->end = f->buffer + new_size;
- f->rptr = f->buffer + offset_r;
- f->wptr = f->buffer + offset_w;
- }
- return 0;
-}
-
-int av_fifo_grow(AVFifoBuffer *f, unsigned int size)
-{
- unsigned int old_size = f->end - f->buffer;
- if(size + (unsigned)av_fifo_size(f) < size)
- return AVERROR(EINVAL);
-
- size += av_fifo_size(f);
-
- if (old_size < size)
- return av_fifo_realloc2(f, FFMAX(size, 2*old_size));
- return 0;
-}
-
-/* src must NOT be const as it can be a context for func that may need
- * updating (like a pointer or byte counter) */
-int av_fifo_generic_write(AVFifoBuffer *f, void *src, int size,
- int (*func)(void *, void *, int))
-{
- int total = size;
- uint32_t wndx= f->wndx;
- uint8_t *wptr= f->wptr;
-
- if (size > av_fifo_space(f))
- return AVERROR(ENOSPC);
-
- do {
- int len = FFMIN(f->end - wptr, size);
- if (func) {
- len = func(src, wptr, len);
- if (len <= 0)
- break;
- } else {
- memcpy(wptr, src, len);
- src = (uint8_t *)src + len;
- }
- wptr += len;
- if (wptr >= f->end)
- wptr = f->buffer;
- wndx += len;
- size -= len;
- } while (size > 0);
- f->wndx= wndx;
- f->wptr= wptr;
- return total - size;
-}
-
-int av_fifo_generic_peek_at(AVFifoBuffer *f, void *dest, int offset, int buf_size, void (*func)(void*, void*, int))
-{
- uint8_t *rptr = f->rptr;
-
- if (offset < 0 || buf_size > av_fifo_size(f) - offset)
- return AVERROR(EINVAL);
-
- if (offset >= f->end - rptr)
- rptr += offset - (f->end - f->buffer);
- else
- rptr += offset;
-
- while (buf_size > 0) {
- int len;
-
- if (rptr >= f->end)
- rptr -= f->end - f->buffer;
-
- len = FFMIN(f->end - rptr, buf_size);
- if (func)
- func(dest, rptr, len);
- else {
- memcpy(dest, rptr, len);
- dest = (uint8_t *)dest + len;
- }
-
- buf_size -= len;
- rptr += len;
- }
-
- return 0;
-}
-
-int av_fifo_generic_peek(AVFifoBuffer *f, void *dest, int buf_size,
- void (*func)(void *, void *, int))
-{
- return av_fifo_generic_peek_at(f, dest, 0, buf_size, func);
-}
-
-int av_fifo_generic_read(AVFifoBuffer *f, void *dest, int buf_size,
- void (*func)(void *, void *, int))
-{
- if (buf_size > av_fifo_size(f))
- return AVERROR(EINVAL);
-
- do {
- int len = FFMIN(f->end - f->rptr, buf_size);
- if (func)
- func(dest, f->rptr, len);
- else {
- memcpy(dest, f->rptr, len);
- dest = (uint8_t *)dest + len;
- }
- av_fifo_drain(f, len);
- buf_size -= len;
- } while (buf_size > 0);
- return 0;
-}
-
-/** Discard data from the FIFO. */
-void av_fifo_drain(AVFifoBuffer *f, int size)
-{
- av_assert2(av_fifo_size(f) >= size);
- f->rptr += size;
- if (f->rptr >= f->end)
- f->rptr -= f->end - f->buffer;
- f->rndx += size;
-}
-FF_ENABLE_DEPRECATION_WARNINGS
-#endif
diff --git a/libavutil/fifo.h b/libavutil/fifo.h
index 7ac497e8f9..048298214a 100644
--- a/libavutil/fifo.h
+++ b/libavutil/fifo.h
@@ -239,185 +239,6 @@ void av_fifo_reset2(AVFifo *f);
*/
void av_fifo_freep2(AVFifo **f);
-
-#if FF_API_FIFO_OLD_API
-typedef struct AVFifoBuffer {
- uint8_t *buffer;
- uint8_t *rptr, *wptr, *end;
- uint32_t rndx, wndx;
-} AVFifoBuffer;
-
-/**
- * Initialize an AVFifoBuffer.
- * @param size of FIFO
- * @return AVFifoBuffer or NULL in case of memory allocation failure
- * @deprecated use av_fifo_alloc2()
- */
-attribute_deprecated
-AVFifoBuffer *av_fifo_alloc(unsigned int size);
-
-/**
- * Initialize an AVFifoBuffer.
- * @param nmemb number of elements
- * @param size size of the single element
- * @return AVFifoBuffer or NULL in case of memory allocation failure
- * @deprecated use av_fifo_alloc2()
- */
-attribute_deprecated
-AVFifoBuffer *av_fifo_alloc_array(size_t nmemb, size_t size);
-
-/**
- * Free an AVFifoBuffer.
- * @param f AVFifoBuffer to free
- * @deprecated use the AVFifo API with av_fifo_freep2()
- */
-attribute_deprecated
-void av_fifo_free(AVFifoBuffer *f);
-
-/**
- * Free an AVFifoBuffer and reset pointer to NULL.
- * @param f AVFifoBuffer to free
- * @deprecated use the AVFifo API with av_fifo_freep2()
- */
-attribute_deprecated
-void av_fifo_freep(AVFifoBuffer **f);
-
-/**
- * Reset the AVFifoBuffer to the state right after av_fifo_alloc, in particular it is emptied.
- * @param f AVFifoBuffer to reset
- * @deprecated use av_fifo_reset2() with the new AVFifo-API
- */
-attribute_deprecated
-void av_fifo_reset(AVFifoBuffer *f);
-
-/**
- * Return the amount of data in bytes in the AVFifoBuffer, that is the
- * amount of data you can read from it.
- * @param f AVFifoBuffer to read from
- * @return size
- * @deprecated use av_fifo_can_read() with the new AVFifo-API
- */
-attribute_deprecated
-int av_fifo_size(const AVFifoBuffer *f);
-
-/**
- * Return the amount of space in bytes in the AVFifoBuffer, that is the
- * amount of data you can write into it.
- * @param f AVFifoBuffer to write into
- * @return size
- * @deprecated use av_fifo_can_write() with the new AVFifo-API
- */
-attribute_deprecated
-int av_fifo_space(const AVFifoBuffer *f);
-
-/**
- * Feed data at specific position from an AVFifoBuffer to a user-supplied callback.
- * Similar as av_fifo_gereric_read but without discarding data.
- * @param f AVFifoBuffer to read from
- * @param offset offset from current read position
- * @param buf_size number of bytes to read
- * @param func generic read function
- * @param dest data destination
- *
- * @return a non-negative number on success, a negative error code on failure
- *
- * @deprecated use the new AVFifo-API with av_fifo_peek() when func == NULL,
- * av_fifo_peek_to_cb() otherwise
- */
-attribute_deprecated
-int av_fifo_generic_peek_at(AVFifoBuffer *f, void *dest, int offset, int buf_size, void (*func)(void*, void*, int));
-
-/**
- * Feed data from an AVFifoBuffer to a user-supplied callback.
- * Similar as av_fifo_gereric_read but without discarding data.
- * @param f AVFifoBuffer to read from
- * @param buf_size number of bytes to read
- * @param func generic read function
- * @param dest data destination
- *
- * @return a non-negative number on success, a negative error code on failure
- *
- * @deprecated use the new AVFifo-API with av_fifo_peek() when func == NULL,
- * av_fifo_peek_to_cb() otherwise
- */
-attribute_deprecated
-int av_fifo_generic_peek(AVFifoBuffer *f, void *dest, int buf_size, void (*func)(void*, void*, int));
-
-/**
- * Feed data from an AVFifoBuffer to a user-supplied callback.
- * @param f AVFifoBuffer to read from
- * @param buf_size number of bytes to read
- * @param func generic read function
- * @param dest data destination
- *
- * @return a non-negative number on success, a negative error code on failure
- *
- * @deprecated use the new AVFifo-API with av_fifo_read() when func == NULL,
- * av_fifo_read_to_cb() otherwise
- */
-attribute_deprecated
-int av_fifo_generic_read(AVFifoBuffer *f, void *dest, int buf_size, void (*func)(void*, void*, int));
-
-/**
- * Feed data from a user-supplied callback to an AVFifoBuffer.
- * @param f AVFifoBuffer to write to
- * @param src data source; non-const since it may be used as a
- * modifiable context by the function defined in func
- * @param size number of bytes to write
- * @param func generic write function; the first parameter is src,
- * the second is dest_buf, the third is dest_buf_size.
- * func must return the number of bytes written to dest_buf, or <= 0 to
- * indicate no more data available to write.
- * If func is NULL, src is interpreted as a simple byte array for source data.
- * @return the number of bytes written to the FIFO or a negative error code on failure
- *
- * @deprecated use the new AVFifo-API with av_fifo_write() when func == NULL,
- * av_fifo_write_from_cb() otherwise
- */
-attribute_deprecated
-int av_fifo_generic_write(AVFifoBuffer *f, void *src, int size, int (*func)(void*, void*, int));
-
-/**
- * Resize an AVFifoBuffer.
- * In case of reallocation failure, the old FIFO is kept unchanged.
- *
- * @param f AVFifoBuffer to resize
- * @param size new AVFifoBuffer size in bytes
- * @return <0 for failure, >=0 otherwise
- *
- * @deprecated use the new AVFifo-API with av_fifo_grow2() to increase FIFO size,
- * decreasing FIFO size is not supported
- */
-attribute_deprecated
-int av_fifo_realloc2(AVFifoBuffer *f, unsigned int size);
-
-/**
- * Enlarge an AVFifoBuffer.
- * In case of reallocation failure, the old FIFO is kept unchanged.
- * The new fifo size may be larger than the requested size.
- *
- * @param f AVFifoBuffer to resize
- * @param additional_space the amount of space in bytes to allocate in addition to av_fifo_size()
- * @return <0 for failure, >=0 otherwise
- *
- * @deprecated use the new AVFifo-API with av_fifo_grow2(); note that unlike
- * this function it adds to the allocated size, rather than to the used size
- */
-attribute_deprecated
-int av_fifo_grow(AVFifoBuffer *f, unsigned int additional_space);
-
-/**
- * Read and discard the specified amount of data from an AVFifoBuffer.
- * @param f AVFifoBuffer to read from
- * @param size amount of data to read in bytes
- *
- * @deprecated use the new AVFifo-API with av_fifo_drain2()
- */
-attribute_deprecated
-void av_fifo_drain(AVFifoBuffer *f, int size);
-
-#endif
-
/**
* @}
*/
diff --git a/libavutil/version.h b/libavutil/version.h
index a67a51c933..bd7266aca7 100644
--- a/libavutil/version.h
+++ b/libavutil/version.h
@@ -105,7 +105,6 @@
* @{
*/
-#define FF_API_FIFO_OLD_API (LIBAVUTIL_VERSION_MAJOR < 59)
#define FF_API_XVMC (LIBAVUTIL_VERSION_MAJOR < 59)
#define FF_API_OLD_CHANNEL_LAYOUT (LIBAVUTIL_VERSION_MAJOR < 59)
#define FF_API_AV_FOPEN_UTF8 (LIBAVUTIL_VERSION_MAJOR < 59)
--
2.43.0
_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
To unsubscribe, visit link above, or email
ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".
^ permalink raw reply [flat|nested] 60+ messages in thread
* [FFmpeg-devel] [PATCH 15/24] avutil: remove deprecated FF_API_XVMC
2024-01-25 13:43 [FFmpeg-devel] [PATCH 00/24] Major library version bump James Almer
` (13 preceding siblings ...)
2024-01-25 13:43 ` [FFmpeg-devel] [PATCH 14/24] avutil: remove deprecated FF_API_FIFO_OLD_API James Almer
@ 2024-01-25 13:43 ` James Almer
2024-01-25 13:43 ` [FFmpeg-devel] [PATCH 16/24] avutil: remove deprecated FF_API_OLD_CHANNEL_LAYOUT James Almer
` (26 subsequent siblings)
41 siblings, 0 replies; 60+ messages in thread
From: James Almer @ 2024-01-25 13:43 UTC (permalink / raw)
To: ffmpeg-devel
Signed-off-by: James Almer <jamrial@gmail.com>
---
libavutil/pixdesc.c | 6 ------
libavutil/pixfmt.h | 4 ----
libavutil/version.h | 1 -
3 files changed, 11 deletions(-)
diff --git a/libavutil/pixdesc.c b/libavutil/pixdesc.c
index f6d4d01460..9c708520b1 100644
--- a/libavutil/pixdesc.c
+++ b/libavutil/pixdesc.c
@@ -460,12 +460,6 @@ static const AVPixFmtDescriptor av_pix_fmt_descriptors[AV_PIX_FMT_NB] = {
},
.flags = AV_PIX_FMT_FLAG_PLANAR,
},
-#if FF_API_XVMC
- [AV_PIX_FMT_XVMC] = {
- .name = "xvmc",
- .flags = AV_PIX_FMT_FLAG_HWACCEL,
- },
-#endif
[AV_PIX_FMT_UYVY422] = {
.name = "uyvy422",
.nb_components = 3,
diff --git a/libavutil/pixfmt.h b/libavutil/pixfmt.h
index 9c87571f49..74aecb8177 100644
--- a/libavutil/pixfmt.h
+++ b/libavutil/pixfmt.h
@@ -288,10 +288,6 @@ enum AVPixelFormat {
AV_PIX_FMT_BAYER_GRBG16LE, ///< bayer, GRGR..(odd line), BGBG..(even line), 16-bit samples, little-endian
AV_PIX_FMT_BAYER_GRBG16BE, ///< bayer, GRGR..(odd line), BGBG..(even line), 16-bit samples, big-endian
-#if FF_API_XVMC
- AV_PIX_FMT_XVMC,///< XVideo Motion Acceleration via common packet passing
-#endif
-
AV_PIX_FMT_YUV440P10LE, ///< planar YUV 4:4:0,20bpp, (1 Cr & Cb sample per 1x2 Y samples), little-endian
AV_PIX_FMT_YUV440P10BE, ///< planar YUV 4:4:0,20bpp, (1 Cr & Cb sample per 1x2 Y samples), big-endian
AV_PIX_FMT_YUV440P12LE, ///< planar YUV 4:4:0,24bpp, (1 Cr & Cb sample per 1x2 Y samples), little-endian
diff --git a/libavutil/version.h b/libavutil/version.h
index bd7266aca7..0f14fc59bb 100644
--- a/libavutil/version.h
+++ b/libavutil/version.h
@@ -105,7 +105,6 @@
* @{
*/
-#define FF_API_XVMC (LIBAVUTIL_VERSION_MAJOR < 59)
#define FF_API_OLD_CHANNEL_LAYOUT (LIBAVUTIL_VERSION_MAJOR < 59)
#define FF_API_AV_FOPEN_UTF8 (LIBAVUTIL_VERSION_MAJOR < 59)
#define FF_API_PKT_DURATION (LIBAVUTIL_VERSION_MAJOR < 59)
--
2.43.0
_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
To unsubscribe, visit link above, or email
ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".
^ permalink raw reply [flat|nested] 60+ messages in thread
* [FFmpeg-devel] [PATCH 16/24] avutil: remove deprecated FF_API_OLD_CHANNEL_LAYOUT
2024-01-25 13:43 [FFmpeg-devel] [PATCH 00/24] Major library version bump James Almer
` (14 preceding siblings ...)
2024-01-25 13:43 ` [FFmpeg-devel] [PATCH 15/24] avutil: remove deprecated FF_API_XVMC James Almer
@ 2024-01-25 13:43 ` James Almer
2024-02-04 20:02 ` Andreas Rheinhardt
2024-01-25 13:43 ` [FFmpeg-devel] [PATCH 17/24] avutil: remove deprecated FF_API_AV_FOPEN_UTF8 James Almer
` (25 subsequent siblings)
41 siblings, 1 reply; 60+ messages in thread
From: James Almer @ 2024-01-25 13:43 UTC (permalink / raw)
To: ffmpeg-devel
Signed-off-by: James Almer <jamrial@gmail.com>
---
fftools/ffmpeg_mux_init.c | 21 +---
libavcodec/aac_ac3_parser.c | 6 -
libavcodec/aacdec.c | 2 -
libavcodec/aacdec_common.c | 17 ---
libavcodec/aacdec_fixed.c | 1 -
libavcodec/aacdec_template.c | 7 --
libavcodec/aacdectab.h | 4 -
libavcodec/ac3dec.c | 8 --
libavcodec/ac3enc.c | 24 ----
libavcodec/ac3enc.h | 3 -
libavcodec/ac3enc_fixed.c | 1 -
libavcodec/ac3enc_float.c | 1 -
libavcodec/alacenc.c | 16 ---
libavcodec/aptxdec.c | 2 -
libavcodec/aptxenc.c | 2 -
libavcodec/audiotoolboxenc.c | 19 ---
libavcodec/avcodec.c | 29 -----
libavcodec/avcodec.h | 29 -----
libavcodec/codec.h | 7 --
libavcodec/codec_internal.h | 19 ---
libavcodec/codec_par.c | 46 -------
libavcodec/codec_par.h | 16 ---
libavcodec/dcadec.c | 12 --
libavcodec/dcaenc.c | 3 -
libavcodec/decode.c | 51 --------
libavcodec/dolby_e.c | 7 --
libavcodec/eac3enc.c | 1 -
libavcodec/g722enc.c | 1 -
libavcodec/get_buffer.c | 6 -
libavcodec/libcodec2.c | 2 -
libavcodec/libfdk-aacdec.c | 8 --
libavcodec/libfdk-aacenc.c | 23 ----
libavcodec/libgsmenc.c | 2 -
libavcodec/libmp3lame.c | 1 -
libavcodec/libshine.c | 1 -
libavcodec/libspeexenc.c | 1 -
libavcodec/libtwolame.c | 1 -
libavcodec/mlp.c | 9 --
libavcodec/mlp.h | 3 -
libavcodec/mlpdec.c | 9 --
libavcodec/mlpenc.c | 2 -
libavcodec/mpegaudioenc_fixed.c | 1 -
libavcodec/mpegaudioenc_float.c | 1 -
libavcodec/options_table.h | 7 --
libavcodec/opusenc.c | 1 -
libavcodec/packet.h | 7 --
libavcodec/pcm-blurayenc.c | 11 --
libavcodec/pcm-dvdenc.c | 2 -
libavcodec/pthread_frame.c | 6 -
libavcodec/ra144enc.c | 1 -
libavcodec/sbcdec.c | 1 -
libavcodec/sbcenc.c | 1 -
libavcodec/utils.c | 14 +--
libavcodec/vorbis_data.c | 14 ---
libavcodec/vorbis_data.h | 3 -
libavcodec/vorbisdec.c | 1 -
libavfilter/af_afir.c | 5 -
libavfilter/af_aformat.c | 13 --
libavfilter/af_amerge.c | 6 -
libavfilter/af_aresample.c | 6 -
libavfilter/af_ashowinfo.c | 10 --
libavfilter/af_channelmap.c | 6 -
libavfilter/af_channelsplit.c | 7 --
libavfilter/af_join.c | 6 -
libavfilter/af_ladspa.c | 5 -
libavfilter/af_lv2.c | 5 -
libavfilter/af_pan.c | 6 -
libavfilter/audio.c | 12 --
libavfilter/avfilter.h | 8 --
libavfilter/avfiltergraph.c | 6 -
libavfilter/buffersink.c | 70 +----------
libavfilter/buffersink.h | 4 -
libavfilter/buffersrc.c | 44 +------
libavfilter/buffersrc.h | 9 --
libavfilter/f_streamselect.c | 5 -
libavfilter/formats.c | 20 +--
libavfilter/framepool.c | 5 -
libavfilter/tests/formats.c | 3 -
libavformat/demux.c | 19 ---
libavformat/demux_utils.c | 20 ---
libavformat/dfpwmdec.c | 17 +--
libavformat/dump.c | 25 ----
libavformat/mux.c | 16 ---
libavformat/nutdec.c | 4 -
libavformat/nutenc.c | 15 ---
libavformat/pcmdec.c | 20 ---
libavutil/channel_layout.c | 184 ----------------------------
libavutil/channel_layout.h | 150 -----------------------
libavutil/frame.c | 127 +------------------
libavutil/frame.h | 20 ---
libavutil/opt.c | 112 -----------------
libavutil/opt.h | 11 --
libavutil/version.h | 1 -
libswresample/options.c | 22 ----
libswresample/rematrix.c | 48 +-------
libswresample/swresample.c | 120 ------------------
libswresample/swresample.h | 63 ----------
libswresample/swresample_frame.c | 47 +------
libswresample/swresample_internal.h | 7 --
tests/ref/fate/filter-formats | 3 -
100 files changed, 20 insertions(+), 1786 deletions(-)
diff --git a/fftools/ffmpeg_mux_init.c b/fftools/ffmpeg_mux_init.c
index 6b5e4f8b3c..cf9897906c 100644
--- a/fftools/ffmpeg_mux_init.c
+++ b/fftools/ffmpeg_mux_init.c
@@ -851,24 +851,9 @@ static int new_stream_audio(Muxer *mux, const OptionsContext *o,
}
MATCH_PER_STREAM_OPT(audio_ch_layouts, str, layout, oc, st);
- if (layout) {
- if (av_channel_layout_from_string(&audio_enc->ch_layout, layout) < 0) {
-#if FF_API_OLD_CHANNEL_LAYOUT
- uint64_t mask;
- AV_NOWARN_DEPRECATED({
- mask = av_get_channel_layout(layout);
- })
- if (!mask) {
-#endif
- av_log(ost, AV_LOG_FATAL, "Unknown channel layout: %s\n", layout);
- return AVERROR(EINVAL);
-#if FF_API_OLD_CHANNEL_LAYOUT
- }
- av_log(ost, AV_LOG_WARNING, "Channel layout '%s' uses a deprecated syntax.\n",
- layout);
- av_channel_layout_from_mask(&audio_enc->ch_layout, mask);
-#endif
- }
+ if (layout && av_channel_layout_from_string(&audio_enc->ch_layout, layout) < 0) {
+ av_log(ost, AV_LOG_FATAL, "Unknown channel layout: %s\n", layout);
+ return AVERROR(EINVAL);
}
MATCH_PER_STREAM_OPT(sample_fmts, str, sample_fmt, oc, st);
diff --git a/libavcodec/aac_ac3_parser.c b/libavcodec/aac_ac3_parser.c
index 83d515b5a8..9305b4c50f 100644
--- a/libavcodec/aac_ac3_parser.c
+++ b/libavcodec/aac_ac3_parser.c
@@ -135,12 +135,6 @@ get_next:
avctx->ch_layout.order = AV_CHANNEL_ORDER_UNSPEC;
avctx->ch_layout.nb_channels = hdr.channels;
}
-#if FF_API_OLD_CHANNEL_LAYOUT
-FF_DISABLE_DEPRECATION_WARNINGS
- avctx->channels = avctx->ch_layout.nb_channels;
- avctx->channel_layout = hdr.channel_layout;
-FF_ENABLE_DEPRECATION_WARNINGS
-#endif
}
s1->duration = hdr.num_blocks * 256;
avctx->audio_service_type = hdr.bitstream_mode;
diff --git a/libavcodec/aacdec.c b/libavcodec/aacdec.c
index d66ebf4a7c..fe1d3ce55d 100644
--- a/libavcodec/aacdec.c
+++ b/libavcodec/aacdec.c
@@ -564,7 +564,6 @@ const FFCodec ff_aac_decoder = {
},
.p.capabilities = AV_CODEC_CAP_CHANNEL_CONF | AV_CODEC_CAP_DR1,
.caps_internal = FF_CODEC_CAP_INIT_CLEANUP,
- CODEC_OLD_CHANNEL_LAYOUTS_ARRAY(ff_aac_channel_layout)
.p.ch_layouts = ff_aac_ch_layout,
.flush = flush,
.p.priv_class = &aac_decoder_class,
@@ -590,7 +589,6 @@ const FFCodec ff_aac_latm_decoder = {
},
.p.capabilities = AV_CODEC_CAP_CHANNEL_CONF | AV_CODEC_CAP_DR1,
.caps_internal = FF_CODEC_CAP_INIT_CLEANUP,
- CODEC_OLD_CHANNEL_LAYOUTS_ARRAY(ff_aac_channel_layout)
.p.ch_layouts = ff_aac_ch_layout,
.flush = flush,
.p.profiles = NULL_IF_CONFIG_SMALL(ff_aac_profiles),
diff --git a/libavcodec/aacdec_common.c b/libavcodec/aacdec_common.c
index 75368b7075..145c718047 100644
--- a/libavcodec/aacdec_common.c
+++ b/libavcodec/aacdec_common.c
@@ -92,23 +92,6 @@ const int16_t ff_aac_channel_map[3][4][6] = {
},
};
-#if FF_API_OLD_CHANNEL_LAYOUT
-const uint64_t ff_aac_channel_layout[] = {
- AV_CH_LAYOUT_MONO,
- AV_CH_LAYOUT_STEREO,
- AV_CH_LAYOUT_SURROUND,
- AV_CH_LAYOUT_4POINT0,
- AV_CH_LAYOUT_5POINT0_BACK,
- AV_CH_LAYOUT_5POINT1_BACK,
- AV_CH_LAYOUT_7POINT1_WIDE_BACK,
- AV_CH_LAYOUT_6POINT1_BACK,
- AV_CH_LAYOUT_7POINT1,
- AV_CH_LAYOUT_22POINT2,
- AV_CH_LAYOUT_7POINT1_TOP_BACK,
- 0,
-};
-#endif
-
const AVChannelLayout ff_aac_ch_layout[] = {
AV_CHANNEL_LAYOUT_MONO,
AV_CHANNEL_LAYOUT_STEREO,
diff --git a/libavcodec/aacdec_fixed.c b/libavcodec/aacdec_fixed.c
index 2b8ac67659..a5ea3c9916 100644
--- a/libavcodec/aacdec_fixed.c
+++ b/libavcodec/aacdec_fixed.c
@@ -465,7 +465,6 @@ const FFCodec ff_aac_fixed_decoder = {
},
.p.capabilities = AV_CODEC_CAP_CHANNEL_CONF | AV_CODEC_CAP_DR1,
.caps_internal = FF_CODEC_CAP_INIT_CLEANUP,
- CODEC_OLD_CHANNEL_LAYOUTS_ARRAY(ff_aac_channel_layout)
.p.ch_layouts = ff_aac_ch_layout,
.p.priv_class = &aac_decoder_class,
.p.profiles = NULL_IF_CONFIG_SMALL(ff_aac_profiles),
diff --git a/libavcodec/aacdec_template.c b/libavcodec/aacdec_template.c
index 2b3509c85f..fe4ca1b465 100644
--- a/libavcodec/aacdec_template.c
+++ b/libavcodec/aacdec_template.c
@@ -466,13 +466,6 @@ static int output_configure(AACContext *ac,
}
// Try to sniff a reasonable channel order, otherwise output the
// channels in the order the PCE declared them.
-#if FF_API_OLD_CHANNEL_LAYOUT
-FF_DISABLE_DEPRECATION_WARNINGS
- if (avctx->request_channel_layout == AV_CH_LAYOUT_NATIVE)
- ac->output_channel_order = CHANNEL_ORDER_CODED;
-FF_ENABLE_DEPRECATION_WARNINGS
-#endif
-
if (ac->output_channel_order == CHANNEL_ORDER_DEFAULT)
layout = sniff_channel_order(layout_map, tags);
for (i = 0; i < tags; i++) {
diff --git a/libavcodec/aacdectab.h b/libavcodec/aacdectab.h
index 7079b061fc..184508f2f3 100644
--- a/libavcodec/aacdectab.h
+++ b/libavcodec/aacdectab.h
@@ -49,10 +49,6 @@ extern const uint8_t ff_aac_channel_layout_map[16][16][3];
extern const int16_t ff_aac_channel_map[3][4][6];
-#if FF_API_OLD_CHANNEL_LAYOUT
-extern const uint64_t ff_aac_channel_layout[];
-#endif
-
extern const AVChannelLayout ff_aac_ch_layout[];
FF_VISIBILITY_POP_HIDDEN
diff --git a/libavcodec/ac3dec.c b/libavcodec/ac3dec.c
index ee50138605..eb67efda62 100644
--- a/libavcodec/ac3dec.c
+++ b/libavcodec/ac3dec.c
@@ -190,14 +190,6 @@ static void ac3_downmix(AVCodecContext *avctx)
const AVChannelLayout stereo = (AVChannelLayout)AV_CHANNEL_LAYOUT_STEREO;
/* allow downmixing to stereo or mono */
-#if FF_API_OLD_CHANNEL_LAYOUT
-FF_DISABLE_DEPRECATION_WARNINGS
- if (avctx->request_channel_layout) {
- av_channel_layout_uninit(&s->downmix_layout);
- av_channel_layout_from_mask(&s->downmix_layout, avctx->request_channel_layout);
- }
-FF_ENABLE_DEPRECATION_WARNINGS
-#endif
if (avctx->ch_layout.nb_channels > 1 &&
!av_channel_layout_compare(&s->downmix_layout, &mono)) {
av_channel_layout_uninit(&avctx->ch_layout);
diff --git a/libavcodec/ac3enc.c b/libavcodec/ac3enc.c
index 56c8d239c5..c2ebcaae60 100644
--- a/libavcodec/ac3enc.c
+++ b/libavcodec/ac3enc.c
@@ -150,30 +150,6 @@ static uint8_t exponent_group_tab[2][3][256];
/**
* List of supported channel layouts.
*/
-#if FF_API_OLD_CHANNEL_LAYOUT
-const uint64_t ff_ac3_channel_layouts[19] = {
- AV_CH_LAYOUT_MONO,
- AV_CH_LAYOUT_STEREO,
- AV_CH_LAYOUT_2_1,
- AV_CH_LAYOUT_SURROUND,
- AV_CH_LAYOUT_2_2,
- AV_CH_LAYOUT_QUAD,
- AV_CH_LAYOUT_4POINT0,
- AV_CH_LAYOUT_5POINT0,
- AV_CH_LAYOUT_5POINT0_BACK,
- (AV_CH_LAYOUT_MONO | AV_CH_LOW_FREQUENCY),
- (AV_CH_LAYOUT_STEREO | AV_CH_LOW_FREQUENCY),
- (AV_CH_LAYOUT_2_1 | AV_CH_LOW_FREQUENCY),
- (AV_CH_LAYOUT_SURROUND | AV_CH_LOW_FREQUENCY),
- (AV_CH_LAYOUT_2_2 | AV_CH_LOW_FREQUENCY),
- (AV_CH_LAYOUT_QUAD | AV_CH_LOW_FREQUENCY),
- (AV_CH_LAYOUT_4POINT0 | AV_CH_LOW_FREQUENCY),
- AV_CH_LAYOUT_5POINT1,
- AV_CH_LAYOUT_5POINT1_BACK,
- 0
-};
-#endif
-
const AVChannelLayout ff_ac3_ch_layouts[19] = {
AV_CHANNEL_LAYOUT_MONO,
AV_CHANNEL_LAYOUT_STEREO,
diff --git a/libavcodec/ac3enc.h b/libavcodec/ac3enc.h
index 55e88d69e4..1cb1aac4b2 100644
--- a/libavcodec/ac3enc.h
+++ b/libavcodec/ac3enc.h
@@ -268,9 +268,6 @@ typedef struct AC3EncodeContext {
void (*output_frame_header)(struct AC3EncodeContext *s);
} AC3EncodeContext;
-#if FF_API_OLD_CHANNEL_LAYOUT
-extern const uint64_t ff_ac3_channel_layouts[19];
-#endif
extern const AVChannelLayout ff_ac3_ch_layouts[19];
extern const AVOption ff_ac3_enc_options[];
extern const AVClass ff_ac3enc_class;
diff --git a/libavcodec/ac3enc_fixed.c b/libavcodec/ac3enc_fixed.c
index 079a43dc39..7fd6084aaf 100644
--- a/libavcodec/ac3enc_fixed.c
+++ b/libavcodec/ac3enc_fixed.c
@@ -122,7 +122,6 @@ const FFCodec ff_ac3_fixed_encoder = {
.p.priv_class = &ff_ac3enc_class,
.caps_internal = FF_CODEC_CAP_INIT_CLEANUP,
.p.supported_samplerates = ff_ac3_sample_rate_tab,
- CODEC_OLD_CHANNEL_LAYOUTS_ARRAY(ff_ac3_channel_layouts)
.p.ch_layouts = ff_ac3_ch_layouts,
.defaults = ff_ac3_enc_defaults,
};
diff --git a/libavcodec/ac3enc_float.c b/libavcodec/ac3enc_float.c
index 9664adbf63..27a89e79df 100644
--- a/libavcodec/ac3enc_float.c
+++ b/libavcodec/ac3enc_float.c
@@ -125,7 +125,6 @@ const FFCodec ff_ac3_encoder = {
AV_SAMPLE_FMT_NONE },
.p.priv_class = &ff_ac3enc_class,
.p.supported_samplerates = ff_ac3_sample_rate_tab,
- CODEC_OLD_CHANNEL_LAYOUTS_ARRAY(ff_ac3_channel_layouts)
.p.ch_layouts = ff_ac3_ch_layouts,
.defaults = ff_ac3_enc_defaults,
.caps_internal = FF_CODEC_CAP_INIT_CLEANUP,
diff --git a/libavcodec/alacenc.c b/libavcodec/alacenc.c
index 9598e5861e..f43adb57f9 100644
--- a/libavcodec/alacenc.c
+++ b/libavcodec/alacenc.c
@@ -617,21 +617,6 @@ static int alac_encode_frame(AVCodecContext *avctx, AVPacket *avpkt,
return 0;
}
-#if FF_API_OLD_CHANNEL_LAYOUT
-static const uint64_t alac_channel_layouts[ALAC_MAX_CHANNELS + 1] = {
- AV_CH_LAYOUT_MONO,
- AV_CH_LAYOUT_STEREO,
- AV_CH_LAYOUT_SURROUND,
- AV_CH_LAYOUT_4POINT0,
- AV_CH_LAYOUT_5POINT0_BACK,
- AV_CH_LAYOUT_5POINT1_BACK,
- AV_CH_LAYOUT_6POINT1_BACK,
- AV_CH_LAYOUT_7POINT1_WIDE_BACK,
- 0
-};
-#endif
-
-
#define OFFSET(x) offsetof(AlacEncodeContext, x)
#define AE AV_OPT_FLAG_AUDIO_PARAM | AV_OPT_FLAG_ENCODING_PARAM
static const AVOption options[] = {
@@ -660,7 +645,6 @@ const FFCodec ff_alac_encoder = {
.init = alac_encode_init,
FF_CODEC_ENCODE_CB(alac_encode_frame),
.close = alac_encode_close,
- CODEC_OLD_CHANNEL_LAYOUTS_ARRAY(alac_channel_layouts)
.p.ch_layouts = ff_alac_ch_layouts,
.p.sample_fmts = (const enum AVSampleFormat[]){ AV_SAMPLE_FMT_S32P,
AV_SAMPLE_FMT_S16P,
diff --git a/libavcodec/aptxdec.c b/libavcodec/aptxdec.c
index 3ae7a00803..4b083b6558 100644
--- a/libavcodec/aptxdec.c
+++ b/libavcodec/aptxdec.c
@@ -183,7 +183,6 @@ const FFCodec ff_aptx_decoder = {
.init = ff_aptx_init,
FF_CODEC_DECODE_CB(aptx_decode_frame),
.p.capabilities = AV_CODEC_CAP_DR1,
- CODEC_OLD_CHANNEL_LAYOUTS(AV_CH_LAYOUT_STEREO)
.p.ch_layouts = (const AVChannelLayout[]) { AV_CHANNEL_LAYOUT_STEREO, { 0 } },
.p.sample_fmts = (const enum AVSampleFormat[]) { AV_SAMPLE_FMT_S32P,
AV_SAMPLE_FMT_NONE },
@@ -200,7 +199,6 @@ const FFCodec ff_aptx_hd_decoder = {
.init = ff_aptx_init,
FF_CODEC_DECODE_CB(aptx_decode_frame),
.p.capabilities = AV_CODEC_CAP_DR1,
- CODEC_OLD_CHANNEL_LAYOUTS(AV_CH_LAYOUT_STEREO)
.p.ch_layouts = (const AVChannelLayout[]) { AV_CHANNEL_LAYOUT_STEREO, { 0 } },
.p.sample_fmts = (const enum AVSampleFormat[]) { AV_SAMPLE_FMT_S32P,
AV_SAMPLE_FMT_NONE },
diff --git a/libavcodec/aptxenc.c b/libavcodec/aptxenc.c
index 6deebaf2cb..5e041b9a1b 100644
--- a/libavcodec/aptxenc.c
+++ b/libavcodec/aptxenc.c
@@ -276,7 +276,6 @@ const FFCodec ff_aptx_encoder = {
.init = aptx_encode_init,
FF_CODEC_ENCODE_CB(aptx_encode_frame),
.close = aptx_close,
- CODEC_OLD_CHANNEL_LAYOUTS(AV_CH_LAYOUT_STEREO)
.p.ch_layouts = (const AVChannelLayout[]) { AV_CHANNEL_LAYOUT_STEREO, { 0 } },
.p.sample_fmts = (const enum AVSampleFormat[]) { AV_SAMPLE_FMT_S32P,
AV_SAMPLE_FMT_NONE },
@@ -295,7 +294,6 @@ const FFCodec ff_aptx_hd_encoder = {
.init = aptx_encode_init,
FF_CODEC_ENCODE_CB(aptx_encode_frame),
.close = aptx_close,
- CODEC_OLD_CHANNEL_LAYOUTS(AV_CH_LAYOUT_STEREO)
.p.ch_layouts = (const AVChannelLayout[]) { AV_CHANNEL_LAYOUT_STEREO, { 0 } },
.p.sample_fmts = (const enum AVSampleFormat[]) { AV_SAMPLE_FMT_S32P,
AV_SAMPLE_FMT_NONE },
diff --git a/libavcodec/audiotoolboxenc.c b/libavcodec/audiotoolboxenc.c
index 42ab7ae6e4..0d54b62c45 100644
--- a/libavcodec/audiotoolboxenc.c
+++ b/libavcodec/audiotoolboxenc.c
@@ -630,7 +630,6 @@ static const AVOption options[] = {
.p.priv_class = &ffat_##NAME##_enc_class, \
.p.capabilities = AV_CODEC_CAP_DELAY | \
AV_CODEC_CAP_ENCODER_FLUSH CAPS, \
- CODEC_OLD_CHANNEL_LAYOUTS_ARRAY(CHANNEL_LAYOUTS) \
.p.ch_layouts = CH_LAYOUTS, \
.p.sample_fmts = (const enum AVSampleFormat[]) { \
AV_SAMPLE_FMT_S16, \
@@ -656,24 +655,6 @@ static const AVChannelLayout aac_at_ch_layouts[] = {
{ 0 },
};
-#if FF_API_OLD_CHANNEL_LAYOUT
-static const uint64_t aac_at_channel_layouts[] = {
- AV_CH_LAYOUT_MONO,
- AV_CH_LAYOUT_STEREO,
- AV_CH_LAYOUT_SURROUND,
- AV_CH_LAYOUT_4POINT0,
- AV_CH_LAYOUT_5POINT0,
- AV_CH_LAYOUT_5POINT1,
- AV_CH_LAYOUT_6POINT0,
- AV_CH_LAYOUT_6POINT1,
- AV_CH_LAYOUT_7POINT0,
- AV_CH_LAYOUT_7POINT1_WIDE_BACK,
- AV_CH_LAYOUT_QUAD,
- AV_CH_LAYOUT_OCTAGONAL,
- 0,
-};
-#endif
-
FFAT_ENC(aac, AV_CODEC_ID_AAC, aac_profiles, , aac_at_channel_layouts, aac_at_ch_layouts)
//FFAT_ENC(adpcm_ima_qt, AV_CODEC_ID_ADPCM_IMA_QT, NULL)
FFAT_ENC(alac, AV_CODEC_ID_ALAC, NULL, | AV_CODEC_CAP_VARIABLE_FRAME_SIZE, NULL, NULL)
diff --git a/libavcodec/avcodec.c b/libavcodec/avcodec.c
index 692d4c35b4..09e8079bb2 100644
--- a/libavcodec/avcodec.c
+++ b/libavcodec/avcodec.c
@@ -241,26 +241,6 @@ int attribute_align_arg avcodec_open2(AVCodecContext *avctx, const AVCodec *code
goto free_and_end;
}
-#if FF_API_OLD_CHANNEL_LAYOUT
-FF_DISABLE_DEPRECATION_WARNINGS
- /* compat wrapper for old-style callers */
- if (avctx->channel_layout && !avctx->channels)
- avctx->channels = av_popcount64(avctx->channel_layout);
-
- if ((avctx->channels && avctx->ch_layout.nb_channels != avctx->channels) ||
- (avctx->channel_layout && (avctx->ch_layout.order != AV_CHANNEL_ORDER_NATIVE ||
- avctx->ch_layout.u.mask != avctx->channel_layout))) {
- av_channel_layout_uninit(&avctx->ch_layout);
- if (avctx->channel_layout) {
- av_channel_layout_from_mask(&avctx->ch_layout, avctx->channel_layout);
- } else {
- avctx->ch_layout.order = AV_CHANNEL_ORDER_UNSPEC;
- }
- avctx->ch_layout.nb_channels = avctx->channels;
- }
-FF_ENABLE_DEPRECATION_WARNINGS
-#endif
-
/* AV_CODEC_CAP_CHANNEL_CONF is a decoder-only flag; so the code below
* in particular checks that nb_channels is set for all audio encoders. */
if (avctx->codec_type == AVMEDIA_TYPE_AUDIO && !avctx->ch_layout.nb_channels
@@ -345,15 +325,6 @@ FF_ENABLE_DEPRECATION_WARNINGS
if (!avctx->bit_rate)
avctx->bit_rate = get_bit_rate(avctx);
-#if FF_API_OLD_CHANNEL_LAYOUT
-FF_DISABLE_DEPRECATION_WARNINGS
- /* update the deprecated fields for old-style callers */
- avctx->channels = avctx->ch_layout.nb_channels;
- avctx->channel_layout = avctx->ch_layout.order == AV_CHANNEL_ORDER_NATIVE ?
- avctx->ch_layout.u.mask : 0;
-FF_ENABLE_DEPRECATION_WARNINGS
-#endif
-
/* validate channel layout from the decoder */
if ((avctx->ch_layout.nb_channels && !av_channel_layout_check(&avctx->ch_layout)) ||
avctx->ch_layout.nb_channels > FF_SANE_NB_CHANNELS) {
diff --git a/libavcodec/avcodec.h b/libavcodec/avcodec.h
index 2306c0f7bf..c99ec59c29 100644
--- a/libavcodec/avcodec.h
+++ b/libavcodec/avcodec.h
@@ -1045,15 +1045,6 @@ typedef struct AVCodecContext {
/* audio only */
int sample_rate; ///< samples per second
-#if FF_API_OLD_CHANNEL_LAYOUT
- /**
- * number of audio channels
- * @deprecated use ch_layout.nb_channels
- */
- attribute_deprecated
- int channels;
-#endif
-
/**
* audio sample format
* - encoding: Set by user.
@@ -1086,26 +1077,6 @@ typedef struct AVCodecContext {
*/
int cutoff;
-#if FF_API_OLD_CHANNEL_LAYOUT
- /**
- * Audio channel layout.
- * - encoding: set by user.
- * - decoding: set by user, may be overwritten by libavcodec.
- * @deprecated use ch_layout
- */
- attribute_deprecated
- uint64_t channel_layout;
-
- /**
- * Request decoder to use this channel layout if it can (0 for default)
- * - encoding: unused
- * - decoding: Set by user.
- * @deprecated use "downmix" codec private option
- */
- attribute_deprecated
- uint64_t request_channel_layout;
-#endif
-
/**
* Type of service that the audio stream conveys.
* - encoding: Set by user.
diff --git a/libavcodec/codec.h b/libavcodec/codec.h
index 8034f1a53c..6f9b42760d 100644
--- a/libavcodec/codec.h
+++ b/libavcodec/codec.h
@@ -209,13 +209,6 @@ typedef struct AVCodec {
const enum AVPixelFormat *pix_fmts; ///< array of supported pixel formats, or NULL if unknown, array is terminated by -1
const int *supported_samplerates; ///< array of supported audio samplerates, or NULL if unknown, array is terminated by 0
const enum AVSampleFormat *sample_fmts; ///< array of supported sample formats, or NULL if unknown, array is terminated by -1
-#if FF_API_OLD_CHANNEL_LAYOUT
- /**
- * @deprecated use ch_layouts instead
- */
- attribute_deprecated
- const uint64_t *channel_layouts; ///< array of support channel layouts, or NULL if unknown. array is terminated by 0
-#endif
const AVClass *priv_class; ///< AVClass for the private context
const AVProfile *profiles; ///< array of recognized profiles, or NULL if unknown, array is terminated by {AV_PROFILE_UNKNOWN}
diff --git a/libavcodec/codec_internal.h b/libavcodec/codec_internal.h
index 130a7dc3cd..d6757e2def 100644
--- a/libavcodec/codec_internal.h
+++ b/libavcodec/codec_internal.h
@@ -284,25 +284,6 @@ typedef struct FFCodec {
.update_thread_context_for_user = NULL
#endif
-#if FF_API_OLD_CHANNEL_LAYOUT
-#define CODEC_OLD_CHANNEL_LAYOUTS(...) CODEC_OLD_CHANNEL_LAYOUTS_ARRAY(((const uint64_t[]) { __VA_ARGS__, 0 }))
-#if defined(__clang__)
-#define CODEC_OLD_CHANNEL_LAYOUTS_ARRAY(array) \
- FF_DISABLE_DEPRECATION_WARNINGS \
- .p.channel_layouts = (array), \
- FF_ENABLE_DEPRECATION_WARNINGS
-#else
-#define CODEC_OLD_CHANNEL_LAYOUTS_ARRAY(array) .p.channel_layouts = (array),
-#endif
-#else
-/* This is only provided to allow to test disabling FF_API_OLD_CHANNEL_LAYOUT
- * without removing all the FF_API_OLD_CHANNEL_LAYOUT codeblocks.
- * It is of course still expected to be removed when FF_API_OLD_CHANNEL_LAYOUT
- * will be finally removed (along with all usages of these macros). */
-#define CODEC_OLD_CHANNEL_LAYOUTS(...)
-#define CODEC_OLD_CHANNEL_LAYOUTS_ARRAY(array)
-#endif
-
#define FF_CODEC_DECODE_CB(func) \
.cb_type = FF_CODEC_CB_TYPE_DECODE, \
.cb.decode = (func)
diff --git a/libavcodec/codec_par.c b/libavcodec/codec_par.c
index abaac63841..212cb97d77 100644
--- a/libavcodec/codec_par.c
+++ b/libavcodec/codec_par.c
@@ -168,32 +168,9 @@ int avcodec_parameters_from_context(AVCodecParameters *par,
break;
case AVMEDIA_TYPE_AUDIO:
par->format = codec->sample_fmt;
-#if FF_API_OLD_CHANNEL_LAYOUT
-FF_DISABLE_DEPRECATION_WARNINGS
- // if the old/new fields are set inconsistently, prefer the old ones
- if ((codec->channels && codec->channels != codec->ch_layout.nb_channels) ||
- (codec->channel_layout && (codec->ch_layout.order != AV_CHANNEL_ORDER_NATIVE ||
- codec->ch_layout.u.mask != codec->channel_layout))) {
- if (codec->channel_layout)
- av_channel_layout_from_mask(&par->ch_layout, codec->channel_layout);
- else {
- par->ch_layout.order = AV_CHANNEL_ORDER_UNSPEC;
- par->ch_layout.nb_channels = codec->channels;
- }
-FF_ENABLE_DEPRECATION_WARNINGS
- } else {
-#endif
ret = av_channel_layout_copy(&par->ch_layout, &codec->ch_layout);
if (ret < 0)
return ret;
-#if FF_API_OLD_CHANNEL_LAYOUT
-FF_DISABLE_DEPRECATION_WARNINGS
- }
- par->channel_layout = par->ch_layout.order == AV_CHANNEL_ORDER_NATIVE ?
- par->ch_layout.u.mask : 0;
- par->channels = par->ch_layout.nb_channels;
-FF_ENABLE_DEPRECATION_WARNINGS
-#endif
par->sample_rate = codec->sample_rate;
par->block_align = codec->block_align;
par->frame_size = codec->frame_size;
@@ -255,32 +232,9 @@ int avcodec_parameters_to_context(AVCodecContext *codec,
break;
case AVMEDIA_TYPE_AUDIO:
codec->sample_fmt = par->format;
-#if FF_API_OLD_CHANNEL_LAYOUT
-FF_DISABLE_DEPRECATION_WARNINGS
- // if the old/new fields are set inconsistently, prefer the old ones
- if ((par->channels && par->channels != par->ch_layout.nb_channels) ||
- (par->channel_layout && (par->ch_layout.order != AV_CHANNEL_ORDER_NATIVE ||
- par->ch_layout.u.mask != par->channel_layout))) {
- if (par->channel_layout)
- av_channel_layout_from_mask(&codec->ch_layout, par->channel_layout);
- else {
- codec->ch_layout.order = AV_CHANNEL_ORDER_UNSPEC;
- codec->ch_layout.nb_channels = par->channels;
- }
-FF_ENABLE_DEPRECATION_WARNINGS
- } else {
-#endif
ret = av_channel_layout_copy(&codec->ch_layout, &par->ch_layout);
if (ret < 0)
return ret;
-#if FF_API_OLD_CHANNEL_LAYOUT
-FF_DISABLE_DEPRECATION_WARNINGS
- }
- codec->channel_layout = codec->ch_layout.order == AV_CHANNEL_ORDER_NATIVE ?
- codec->ch_layout.u.mask : 0;
- codec->channels = codec->ch_layout.nb_channels;
-FF_ENABLE_DEPRECATION_WARNINGS
-#endif
codec->sample_rate = par->sample_rate;
codec->block_align = par->block_align;
codec->frame_size = par->frame_size;
diff --git a/libavcodec/codec_par.h b/libavcodec/codec_par.h
index f42dd3b1d5..fa6851294f 100644
--- a/libavcodec/codec_par.h
+++ b/libavcodec/codec_par.h
@@ -149,22 +149,6 @@ typedef struct AVCodecParameters {
*/
int video_delay;
-#if FF_API_OLD_CHANNEL_LAYOUT
- /**
- * Audio only. The channel layout bitmask. May be 0 if the channel layout is
- * unknown or unspecified, otherwise the number of bits set must be equal to
- * the channels field.
- * @deprecated use ch_layout
- */
- attribute_deprecated
- uint64_t channel_layout;
- /**
- * Audio only. The number of audio channels.
- * @deprecated use ch_layout.nb_channels
- */
- attribute_deprecated
- int channels;
-#endif
/**
* Audio only. The number of audio samples per second.
*/
diff --git a/libavcodec/dcadec.c b/libavcodec/dcadec.c
index cc23731b90..da6e8c05eb 100644
--- a/libavcodec/dcadec.c
+++ b/libavcodec/dcadec.c
@@ -352,18 +352,6 @@ static av_cold int dcadec_init(AVCodecContext *avctx)
s->crctab = av_crc_get_table(AV_CRC_16_CCITT);
-#if FF_API_OLD_CHANNEL_LAYOUT
-FF_DISABLE_DEPRECATION_WARNINGS
- if (avctx->request_channel_layout & AV_CH_LAYOUT_NATIVE)
- s->output_channel_order = CHANNEL_ORDER_CODED;
-
- if (avctx->request_channel_layout & ~AV_CH_LAYOUT_NATIVE) {
- av_channel_layout_uninit(&s->downmix_layout);
- av_channel_layout_from_mask(&s->downmix_layout, avctx->request_channel_layout & ~AV_CH_LAYOUT_NATIVE);
- }
-FF_ENABLE_DEPRECATION_WARNINGS
-#endif
-
if (s->downmix_layout.nb_channels) {
if (!av_channel_layout_compare(&s->downmix_layout, &(AVChannelLayout)AV_CHANNEL_LAYOUT_STEREO) ||
!av_channel_layout_compare(&s->downmix_layout, &(AVChannelLayout)AV_CHANNEL_LAYOUT_STEREO_DOWNMIX)) {
diff --git a/libavcodec/dcaenc.c b/libavcodec/dcaenc.c
index c731d79381..192121524b 100644
--- a/libavcodec/dcaenc.c
+++ b/libavcodec/dcaenc.c
@@ -1325,9 +1325,6 @@ const FFCodec ff_dca_encoder = {
.p.sample_fmts = (const enum AVSampleFormat[]){ AV_SAMPLE_FMT_S32,
AV_SAMPLE_FMT_NONE },
.p.supported_samplerates = sample_rates,
- CODEC_OLD_CHANNEL_LAYOUTS(AV_CH_LAYOUT_MONO, AV_CH_LAYOUT_STEREO,
- AV_CH_LAYOUT_2_2, AV_CH_LAYOUT_5POINT0,
- AV_CH_LAYOUT_5POINT1)
.p.ch_layouts = (const AVChannelLayout[]){
AV_CHANNEL_LAYOUT_MONO,
AV_CHANNEL_LAYOUT_STEREO,
diff --git a/libavcodec/decode.c b/libavcodec/decode.c
index 4cd37807db..145138d657 100644
--- a/libavcodec/decode.c
+++ b/libavcodec/decode.c
@@ -92,39 +92,6 @@ static int apply_param_change(AVCodecContext *avctx, const AVPacket *avpkt)
flags = bytestream_get_le32(&data);
size -= 4;
-#if FF_API_OLD_CHANNEL_LAYOUT
-FF_DISABLE_DEPRECATION_WARNINGS
- if (flags & AV_SIDE_DATA_PARAM_CHANGE_CHANNEL_COUNT) {
- if (size < 4)
- goto fail;
- val = bytestream_get_le32(&data);
- if (val <= 0 || val > INT_MAX) {
- av_log(avctx, AV_LOG_ERROR, "Invalid channel count");
- ret = AVERROR_INVALIDDATA;
- goto fail2;
- }
- av_channel_layout_uninit(&avctx->ch_layout);
- avctx->ch_layout.nb_channels = val;
- avctx->ch_layout.order = AV_CHANNEL_ORDER_UNSPEC;
- size -= 4;
- }
- if (flags & AV_SIDE_DATA_PARAM_CHANGE_CHANNEL_LAYOUT) {
- if (size < 8)
- goto fail;
- av_channel_layout_uninit(&avctx->ch_layout);
- ret = av_channel_layout_from_mask(&avctx->ch_layout, bytestream_get_le64(&data));
- if (ret < 0)
- goto fail2;
- size -= 8;
- }
- if (flags & (AV_SIDE_DATA_PARAM_CHANGE_CHANNEL_COUNT |
- AV_SIDE_DATA_PARAM_CHANGE_CHANNEL_LAYOUT)) {
- avctx->channels = avctx->ch_layout.nb_channels;
- avctx->channel_layout = (avctx->ch_layout.order == AV_CHANNEL_ORDER_NATIVE) ?
- avctx->ch_layout.u.mask : 0;
- }
-FF_ENABLE_DEPRECATION_WARNINGS
-#endif
if (flags & AV_SIDE_DATA_PARAM_CHANGE_SAMPLE_RATE) {
if (size < 4)
goto fail;
@@ -582,15 +549,6 @@ static int fill_frame_props(const AVCodecContext *avctx, AVFrame *frame)
if (ret < 0)
return ret;
}
-#if FF_API_OLD_CHANNEL_LAYOUT
-FF_DISABLE_DEPRECATION_WARNINGS
- if (!frame->channel_layout)
- frame->channel_layout = avctx->ch_layout.order == AV_CHANNEL_ORDER_NATIVE ?
- avctx->ch_layout.u.mask : 0;
- if (!frame->channels)
- frame->channels = avctx->ch_layout.nb_channels;
-FF_ENABLE_DEPRECATION_WARNINGS
-#endif
if (!frame->sample_rate)
frame->sample_rate = avctx->sample_rate;
}
@@ -1632,15 +1590,6 @@ int ff_get_buffer(AVCodecContext *avctx, AVFrame *frame, int flags)
goto fail;
}
} else if (avctx->codec_type == AVMEDIA_TYPE_AUDIO) {
-#if FF_API_OLD_CHANNEL_LAYOUT
-FF_DISABLE_DEPRECATION_WARNINGS
- /* compat layer for old-style get_buffer() implementations */
- avctx->channels = avctx->ch_layout.nb_channels;
- avctx->channel_layout = (avctx->ch_layout.order == AV_CHANNEL_ORDER_NATIVE) ?
- avctx->ch_layout.u.mask : 0;
-FF_ENABLE_DEPRECATION_WARNINGS
-#endif
-
if (frame->nb_samples * (int64_t)avctx->ch_layout.nb_channels > avctx->max_samples) {
av_log(avctx, AV_LOG_ERROR, "samples per frame %d, exceeds max_samples %"PRId64"\n", frame->nb_samples, avctx->max_samples);
ret = AVERROR(EINVAL);
diff --git a/libavcodec/dolby_e.c b/libavcodec/dolby_e.c
index b8dac0fa3f..9831716b48 100644
--- a/libavcodec/dolby_e.c
+++ b/libavcodec/dolby_e.c
@@ -1272,13 +1272,6 @@ static av_cold int dolby_e_init(AVCodecContext *avctx)
if (!(s->fdsp = avpriv_float_dsp_alloc(0)))
return AVERROR(ENOMEM);
-#if FF_API_OLD_CHANNEL_LAYOUT
-FF_DISABLE_DEPRECATION_WARNINGS
- if (avctx->request_channel_layout & AV_CH_LAYOUT_NATIVE)
- s->dectx.metadata.output_channel_order = CHANNEL_ORDER_CODED;
-FF_ENABLE_DEPRECATION_WARNINGS
-#endif
-
s->dectx.metadata.multi_prog_warned = s->dectx.metadata.output_channel_order == CHANNEL_ORDER_CODED;
s->dectx.avctx = s->avctx = avctx;
return 0;
diff --git a/libavcodec/eac3enc.c b/libavcodec/eac3enc.c
index 4b3236d4e5..527f77e33a 100644
--- a/libavcodec/eac3enc.c
+++ b/libavcodec/eac3enc.c
@@ -263,7 +263,6 @@ const FFCodec ff_eac3_encoder = {
AV_SAMPLE_FMT_NONE },
.p.priv_class = &eac3enc_class,
.p.supported_samplerates = ff_ac3_sample_rate_tab,
- CODEC_OLD_CHANNEL_LAYOUTS_ARRAY(ff_ac3_channel_layouts)
.p.ch_layouts = ff_ac3_ch_layouts,
.defaults = ff_ac3_enc_defaults,
.caps_internal = FF_CODEC_CAP_INIT_CLEANUP,
diff --git a/libavcodec/g722enc.c b/libavcodec/g722enc.c
index 47811cee4d..2f19a1b29a 100644
--- a/libavcodec/g722enc.c
+++ b/libavcodec/g722enc.c
@@ -382,7 +382,6 @@ const FFCodec ff_adpcm_g722_encoder = {
.close = g722_encode_close,
FF_CODEC_ENCODE_CB(g722_encode_frame),
.p.sample_fmts = (const enum AVSampleFormat[]){ AV_SAMPLE_FMT_S16, AV_SAMPLE_FMT_NONE },
- CODEC_OLD_CHANNEL_LAYOUTS(AV_CH_LAYOUT_MONO)
.p.ch_layouts = (const AVChannelLayout[]){
AV_CHANNEL_LAYOUT_MONO, { 0 }
},
diff --git a/libavcodec/get_buffer.c b/libavcodec/get_buffer.c
index 647f8a3df7..46c20781af 100644
--- a/libavcodec/get_buffer.c
+++ b/libavcodec/get_buffer.c
@@ -70,12 +70,6 @@ static int update_frame_pool(AVCodecContext *avctx, AVFrame *frame)
if (avctx->codec_type == AVMEDIA_TYPE_AUDIO) {
int planar = av_sample_fmt_is_planar(frame->format);
ch = frame->ch_layout.nb_channels;
-#if FF_API_OLD_CHANNEL_LAYOUT
-FF_DISABLE_DEPRECATION_WARNINGS
- if (!ch)
- ch = frame->channels;
-FF_ENABLE_DEPRECATION_WARNINGS
-#endif
planes = planar ? ch : 1;
}
diff --git a/libavcodec/libcodec2.c b/libavcodec/libcodec2.c
index 83f68e85c7..b8fa396fac 100644
--- a/libavcodec/libcodec2.c
+++ b/libavcodec/libcodec2.c
@@ -189,7 +189,6 @@ const FFCodec ff_libcodec2_decoder = {
.init = libcodec2_init_decoder,
.close = libcodec2_close,
FF_CODEC_DECODE_CB(libcodec2_decode),
- CODEC_OLD_CHANNEL_LAYOUTS(AV_CH_LAYOUT_MONO)
};
const FFCodec ff_libcodec2_encoder = {
@@ -208,5 +207,4 @@ const FFCodec ff_libcodec2_encoder = {
.init = libcodec2_init_encoder,
.close = libcodec2_close,
FF_CODEC_ENCODE_CB(libcodec2_encode),
- CODEC_OLD_CHANNEL_LAYOUTS(AV_CH_LAYOUT_MONO)
};
diff --git a/libavcodec/libfdk-aacdec.c b/libavcodec/libfdk-aacdec.c
index 8c1586e25e..31baa35837 100644
--- a/libavcodec/libfdk-aacdec.c
+++ b/libavcodec/libfdk-aacdec.c
@@ -264,14 +264,6 @@ static av_cold int fdk_aac_decode_init(AVCodecContext *avctx)
return AVERROR_UNKNOWN;
}
-#if FF_API_OLD_CHANNEL_LAYOUT
-FF_DISABLE_DEPRECATION_WARNINGS
- if (avctx->request_channel_layout) {
- av_channel_layout_uninit(&s->downmix_layout);
- av_channel_layout_from_mask(&s->downmix_layout, avctx->request_channel_layout);
- }
-FF_ENABLE_DEPRECATION_WARNINGS
-#endif
if (s->downmix_layout.nb_channels > 0 &&
s->downmix_layout.order != AV_CHANNEL_ORDER_NATIVE) {
int downmix_channels = -1;
diff --git a/libavcodec/libfdk-aacenc.c b/libavcodec/libfdk-aacenc.c
index d400ac2e7c..dee4512112 100644
--- a/libavcodec/libfdk-aacenc.c
+++ b/libavcodec/libfdk-aacenc.c
@@ -557,28 +557,6 @@ static const FFCodecDefault aac_encode_defaults[] = {
{ NULL }
};
-#if FF_API_OLD_CHANNEL_LAYOUT
-static const uint64_t aac_channel_layout[] = {
- AV_CH_LAYOUT_MONO,
- AV_CH_LAYOUT_STEREO,
- AV_CH_LAYOUT_SURROUND,
- AV_CH_LAYOUT_4POINT0,
- AV_CH_LAYOUT_5POINT0_BACK,
- AV_CH_LAYOUT_5POINT1_BACK,
-#if FDKENC_VER_AT_LEAST(4, 0) // 4.0.0
- AV_CH_LAYOUT_6POINT1_BACK,
-#endif
-#if FDKENC_VER_AT_LEAST(3, 4) // 3.4.12
- AV_CH_LAYOUT_7POINT1_WIDE_BACK,
- AV_CH_LAYOUT_7POINT1,
-#endif
-#if FDKENC_VER_AT_LEAST(4, 0) // 4.0.0
- AV_CH_LAYOUT_7POINT1_TOP_BACK,
-#endif
- 0,
-};
-#endif /* FF_API_OLD_CHANNEL_LAYOUT */
-
static const AVChannelLayout aac_ch_layouts[16] = {
AV_CHANNEL_LAYOUT_MONO,
AV_CHANNEL_LAYOUT_STEREO,
@@ -625,6 +603,5 @@ const FFCodec ff_libfdk_aac_encoder = {
.p.profiles = profiles,
.p.supported_samplerates = aac_sample_rates,
.p.wrapper_name = "libfdk",
- CODEC_OLD_CHANNEL_LAYOUTS_ARRAY(aac_channel_layout)
.p.ch_layouts = aac_ch_layouts,
};
diff --git a/libavcodec/libgsmenc.c b/libavcodec/libgsmenc.c
index 640954491a..505b6afb07 100644
--- a/libavcodec/libgsmenc.c
+++ b/libavcodec/libgsmenc.c
@@ -127,7 +127,6 @@ const FFCodec ff_libgsm_encoder = {
FF_CODEC_ENCODE_CB(libgsm_encode_frame),
.close = libgsm_encode_close,
.defaults = libgsm_defaults,
- CODEC_OLD_CHANNEL_LAYOUTS(AV_CH_LAYOUT_MONO)
.p.ch_layouts = (const AVChannelLayout[]) { AV_CHANNEL_LAYOUT_MONO, { 0 } },
.p.sample_fmts = (const enum AVSampleFormat[]){ AV_SAMPLE_FMT_S16,
AV_SAMPLE_FMT_NONE },
@@ -146,7 +145,6 @@ const FFCodec ff_libgsm_ms_encoder = {
FF_CODEC_ENCODE_CB(libgsm_encode_frame),
.close = libgsm_encode_close,
.defaults = libgsm_defaults,
- CODEC_OLD_CHANNEL_LAYOUTS(AV_CH_LAYOUT_MONO)
.p.ch_layouts = (const AVChannelLayout[]) { AV_CHANNEL_LAYOUT_MONO, { 0 } },
.p.sample_fmts = (const enum AVSampleFormat[]){ AV_SAMPLE_FMT_S16,
AV_SAMPLE_FMT_NONE },
diff --git a/libavcodec/libmp3lame.c b/libavcodec/libmp3lame.c
index 312bc4230f..d3810eb2ab 100644
--- a/libavcodec/libmp3lame.c
+++ b/libavcodec/libmp3lame.c
@@ -352,7 +352,6 @@ const FFCodec ff_libmp3lame_encoder = {
AV_SAMPLE_FMT_S16P,
AV_SAMPLE_FMT_NONE },
.p.supported_samplerates = libmp3lame_sample_rates,
- CODEC_OLD_CHANNEL_LAYOUTS(AV_CH_LAYOUT_MONO, AV_CH_LAYOUT_STEREO)
.p.ch_layouts = (const AVChannelLayout[]) { AV_CHANNEL_LAYOUT_MONO,
AV_CHANNEL_LAYOUT_STEREO,
{ 0 },
diff --git a/libavcodec/libshine.c b/libavcodec/libshine.c
index 2f6a9233e0..333d86f774 100644
--- a/libavcodec/libshine.c
+++ b/libavcodec/libshine.c
@@ -140,7 +140,6 @@ const FFCodec ff_libshine_encoder = {
.p.sample_fmts = (const enum AVSampleFormat[]){ AV_SAMPLE_FMT_S16P,
AV_SAMPLE_FMT_NONE },
.p.supported_samplerates = libshine_sample_rates,
- CODEC_OLD_CHANNEL_LAYOUTS(AV_CH_LAYOUT_MONO, AV_CH_LAYOUT_STEREO)
.p.ch_layouts = (const AVChannelLayout[]) { AV_CHANNEL_LAYOUT_MONO,
AV_CHANNEL_LAYOUT_STEREO,
{ 0 },
diff --git a/libavcodec/libspeexenc.c b/libavcodec/libspeexenc.c
index 9fdb247863..4c12cef255 100644
--- a/libavcodec/libspeexenc.c
+++ b/libavcodec/libspeexenc.c
@@ -354,7 +354,6 @@ const FFCodec ff_libspeex_encoder = {
.close = encode_close,
.p.sample_fmts = (const enum AVSampleFormat[]){ AV_SAMPLE_FMT_S16,
AV_SAMPLE_FMT_NONE },
- CODEC_OLD_CHANNEL_LAYOUTS(AV_CH_LAYOUT_MONO, AV_CH_LAYOUT_STEREO)
.p.ch_layouts = (const AVChannelLayout[]) { AV_CHANNEL_LAYOUT_MONO,
AV_CHANNEL_LAYOUT_STEREO,
{ 0 },
diff --git a/libavcodec/libtwolame.c b/libavcodec/libtwolame.c
index 9c0156aa25..4b4fffcff3 100644
--- a/libavcodec/libtwolame.c
+++ b/libavcodec/libtwolame.c
@@ -228,7 +228,6 @@ const FFCodec ff_libtwolame_encoder = {
AV_SAMPLE_FMT_S16P,
AV_SAMPLE_FMT_NONE
},
- CODEC_OLD_CHANNEL_LAYOUTS(AV_CH_LAYOUT_MONO, AV_CH_LAYOUT_STEREO)
.p.ch_layouts = (const AVChannelLayout[]) {
AV_CHANNEL_LAYOUT_MONO,
AV_CHANNEL_LAYOUT_STEREO,
diff --git a/libavcodec/mlp.c b/libavcodec/mlp.c
index 3f54b2e448..33045c08c7 100644
--- a/libavcodec/mlp.c
+++ b/libavcodec/mlp.c
@@ -57,15 +57,6 @@ const ChannelInformation ff_mlp_ch_info[21] = {
{ 0x3F, 0x04, 0x02, 0x00 },
};
-#if FF_API_OLD_CHANNEL_LAYOUT
-const uint64_t ff_mlp_channel_layouts[12] = {
- AV_CH_LAYOUT_MONO, AV_CH_LAYOUT_STEREO, AV_CH_LAYOUT_2_1,
- AV_CH_LAYOUT_QUAD, AV_CH_LAYOUT_2POINT1, AV_CH_LAYOUT_SURROUND,
- AV_CH_LAYOUT_4POINT0, AV_CH_LAYOUT_5POINT0_BACK, AV_CH_LAYOUT_3POINT1,
- AV_CH_LAYOUT_4POINT1, AV_CH_LAYOUT_5POINT1_BACK, 0,
-};
-#endif
-
const AVChannelLayout ff_mlp_ch_layouts[12] = {
AV_CHANNEL_LAYOUT_MONO, AV_CHANNEL_LAYOUT_STEREO, AV_CHANNEL_LAYOUT_2_1,
AV_CHANNEL_LAYOUT_QUAD, AV_CHANNEL_LAYOUT_2POINT1, AV_CHANNEL_LAYOUT_SURROUND,
diff --git a/libavcodec/mlp.h b/libavcodec/mlp.h
index cf12ac08fd..bec414c680 100644
--- a/libavcodec/mlp.h
+++ b/libavcodec/mlp.h
@@ -146,9 +146,6 @@ typedef struct {
*/
extern const ChannelInformation ff_mlp_ch_info[21];
-#if FF_API_OLD_CHANNEL_LAYOUT
-extern const uint64_t ff_mlp_channel_layouts[12];
-#endif
extern const AVChannelLayout ff_mlp_ch_layouts[12];
/** MLP uses checksums that seem to be based on the standard CRC algorithm, but
diff --git a/libavcodec/mlpdec.c b/libavcodec/mlpdec.c
index ead5ecee76..305c5d2b36 100644
--- a/libavcodec/mlpdec.c
+++ b/libavcodec/mlpdec.c
@@ -306,15 +306,6 @@ static av_cold int mlp_decode_init(AVCodecContext *avctx)
m->substream[substr].lossless_check_data = 0xffffffff;
ff_mlpdsp_init(&m->dsp);
-#if FF_API_OLD_CHANNEL_LAYOUT
-FF_DISABLE_DEPRECATION_WARNINGS
- if (avctx->request_channel_layout) {
- av_channel_layout_uninit(&m->downmix_layout);
- av_channel_layout_from_mask(&m->downmix_layout, avctx->request_channel_layout);
- }
-FF_ENABLE_DEPRECATION_WARNINGS
-#endif
-
if (m->downmix_layout.nb_channels) {
if (!av_channel_layout_compare(&m->downmix_layout, &(AVChannelLayout)AV_CHANNEL_LAYOUT_STEREO) ||
!av_channel_layout_compare(&m->downmix_layout, &(AVChannelLayout)AV_CHANNEL_LAYOUT_STEREO_DOWNMIX)) {
diff --git a/libavcodec/mlpenc.c b/libavcodec/mlpenc.c
index 895362faca..b3ea82db29 100644
--- a/libavcodec/mlpenc.c
+++ b/libavcodec/mlpenc.c
@@ -2309,7 +2309,6 @@ const FFCodec ff_mlp_encoder = {
.p.priv_class = &mlp_class,
.p.sample_fmts = (const enum AVSampleFormat[]) {AV_SAMPLE_FMT_S16P, AV_SAMPLE_FMT_S32P, AV_SAMPLE_FMT_NONE},
.p.supported_samplerates = (const int[]) {44100, 48000, 88200, 96000, 176400, 192000, 0},
- CODEC_OLD_CHANNEL_LAYOUTS_ARRAY(ff_mlp_channel_layouts)
.p.ch_layouts = ff_mlp_ch_layouts,
.caps_internal = FF_CODEC_CAP_INIT_CLEANUP,
};
@@ -2330,7 +2329,6 @@ const FFCodec ff_truehd_encoder = {
.p.priv_class = &mlp_class,
.p.sample_fmts = (const enum AVSampleFormat[]) {AV_SAMPLE_FMT_S16P, AV_SAMPLE_FMT_S32P, AV_SAMPLE_FMT_NONE},
.p.supported_samplerates = (const int[]) {44100, 48000, 88200, 96000, 176400, 192000, 0},
- CODEC_OLD_CHANNEL_LAYOUTS(AV_CH_LAYOUT_MONO, AV_CH_LAYOUT_STEREO, AV_CH_LAYOUT_2POINT1, AV_CH_LAYOUT_SURROUND, AV_CH_LAYOUT_3POINT1, AV_CH_LAYOUT_4POINT0, AV_CH_LAYOUT_4POINT1, AV_CH_LAYOUT_5POINT0, AV_CH_LAYOUT_5POINT1)
.p.ch_layouts = (const AVChannelLayout[]) {
AV_CHANNEL_LAYOUT_MONO,
AV_CHANNEL_LAYOUT_STEREO,
diff --git a/libavcodec/mpegaudioenc_fixed.c b/libavcodec/mpegaudioenc_fixed.c
index a523b5d533..cdfc0b9958 100644
--- a/libavcodec/mpegaudioenc_fixed.c
+++ b/libavcodec/mpegaudioenc_fixed.c
@@ -37,7 +37,6 @@ const FFCodec ff_mp2fixed_encoder = {
.p.supported_samplerates = (const int[]){
44100, 48000, 32000, 22050, 24000, 16000, 0
},
- CODEC_OLD_CHANNEL_LAYOUTS(AV_CH_LAYOUT_MONO, AV_CH_LAYOUT_STEREO)
.p.ch_layouts = (const AVChannelLayout[]){ AV_CHANNEL_LAYOUT_MONO,
AV_CHANNEL_LAYOUT_STEREO,
{ 0 } },
diff --git a/libavcodec/mpegaudioenc_float.c b/libavcodec/mpegaudioenc_float.c
index 6a13d09573..f94ab54e89 100644
--- a/libavcodec/mpegaudioenc_float.c
+++ b/libavcodec/mpegaudioenc_float.c
@@ -38,7 +38,6 @@ const FFCodec ff_mp2_encoder = {
.p.supported_samplerates = (const int[]){
44100, 48000, 32000, 22050, 24000, 16000, 0
},
- CODEC_OLD_CHANNEL_LAYOUTS(AV_CH_LAYOUT_MONO, AV_CH_LAYOUT_STEREO)
.p.ch_layouts = (const AVChannelLayout[]){ AV_CHANNEL_LAYOUT_MONO,
AV_CHANNEL_LAYOUT_STEREO,
{ 0 } },
diff --git a/libavcodec/options_table.h b/libavcodec/options_table.h
index 5859ceb409..a566aaf077 100644
--- a/libavcodec/options_table.h
+++ b/libavcodec/options_table.h
@@ -94,9 +94,6 @@ static const AVOption avcodec_options[] = {
{"time_base", NULL, OFFSET(time_base), AV_OPT_TYPE_RATIONAL, {.dbl = 0}, 0, INT_MAX},
{"g", "set the group of picture (GOP) size", OFFSET(gop_size), AV_OPT_TYPE_INT, {.i64 = 12 }, INT_MIN, INT_MAX, V|E},
{"ar", "set audio sampling rate (in Hz)", OFFSET(sample_rate), AV_OPT_TYPE_INT, {.i64 = DEFAULT }, 0, INT_MAX, A|D|E},
-#if FF_API_OLD_CHANNEL_LAYOUT
-{"ac", "set number of audio channels", OFFSET(channels), AV_OPT_TYPE_INT, {.i64 = DEFAULT }, 0, INT_MAX, A|D|E},
-#endif
{"cutoff", "set cutoff bandwidth", OFFSET(cutoff), AV_OPT_TYPE_INT, {.i64 = DEFAULT }, INT_MIN, INT_MAX, A|E},
{"frame_size", NULL, OFFSET(frame_size), AV_OPT_TYPE_INT, {.i64 = DEFAULT }, 0, INT_MAX, A|E},
{"frame_number", NULL, OFFSET(frame_num), AV_OPT_TYPE_INT64, {.i64 = DEFAULT }, INT_MIN, INT_MAX},
@@ -269,10 +266,6 @@ static const AVOption avcodec_options[] = {
{"compression_level", NULL, OFFSET(compression_level), AV_OPT_TYPE_INT, {.i64 = FF_COMPRESSION_DEFAULT }, INT_MIN, INT_MAX, V|A|E},
{"bits_per_raw_sample", NULL, OFFSET(bits_per_raw_sample), AV_OPT_TYPE_INT, {.i64 = DEFAULT }, 0, INT_MAX},
{"ch_layout", NULL, OFFSET(ch_layout), AV_OPT_TYPE_CHLAYOUT, {.str = NULL }, 0, 0, A|E|D, "ch_layout"},
-#if FF_API_OLD_CHANNEL_LAYOUT
-{"channel_layout", NULL, OFFSET(channel_layout), AV_OPT_TYPE_CHANNEL_LAYOUT, {.i64 = DEFAULT }, 0, UINT64_MAX, A|E|D, "channel_layout"},
-{"request_channel_layout", NULL, OFFSET(request_channel_layout), AV_OPT_TYPE_CHANNEL_LAYOUT, {.i64 = DEFAULT }, 0, UINT64_MAX, A|D, "request_channel_layout"},
-#endif
{"rc_max_vbv_use", NULL, OFFSET(rc_max_available_vbv_use), AV_OPT_TYPE_FLOAT, {.dbl = 0 }, 0.0, FLT_MAX, V|E},
{"rc_min_vbv_use", NULL, OFFSET(rc_min_vbv_overflow_use), AV_OPT_TYPE_FLOAT, {.dbl = 3 }, 0.0, FLT_MAX, V|E},
#if FF_API_TICKS_PER_FRAME
diff --git a/libavcodec/opusenc.c b/libavcodec/opusenc.c
index a2f74a347b..9161d48750 100644
--- a/libavcodec/opusenc.c
+++ b/libavcodec/opusenc.c
@@ -745,7 +745,6 @@ const FFCodec ff_opus_encoder = {
.close = opus_encode_end,
.caps_internal = FF_CODEC_CAP_INIT_CLEANUP,
.p.supported_samplerates = (const int []){ 48000, 0 },
- CODEC_OLD_CHANNEL_LAYOUTS(AV_CH_LAYOUT_MONO, AV_CH_LAYOUT_STEREO)
.p.ch_layouts = (const AVChannelLayout []){ AV_CHANNEL_LAYOUT_MONO,
AV_CHANNEL_LAYOUT_STEREO, { 0 } },
.p.sample_fmts = (const enum AVSampleFormat[]){ AV_SAMPLE_FMT_FLTP,
diff --git a/libavcodec/packet.h b/libavcodec/packet.h
index 2c57d262c6..10765572fe 100644
--- a/libavcodec/packet.h
+++ b/libavcodec/packet.h
@@ -589,13 +589,6 @@ typedef struct AVPacketList {
#define AV_PKT_FLAG_DISPOSABLE 0x0010
enum AVSideDataParamChangeFlags {
-#if FF_API_OLD_CHANNEL_LAYOUT
- /**
- * @deprecated those are not used by any decoder
- */
- AV_SIDE_DATA_PARAM_CHANGE_CHANNEL_COUNT = 0x0001,
- AV_SIDE_DATA_PARAM_CHANGE_CHANNEL_LAYOUT = 0x0002,
-#endif
AV_SIDE_DATA_PARAM_CHANGE_SAMPLE_RATE = 0x0004,
AV_SIDE_DATA_PARAM_CHANGE_DIMENSIONS = 0x0008,
};
diff --git a/libavcodec/pcm-blurayenc.c b/libavcodec/pcm-blurayenc.c
index bfbfa91d7a..7147c804ad 100644
--- a/libavcodec/pcm-blurayenc.c
+++ b/libavcodec/pcm-blurayenc.c
@@ -279,17 +279,6 @@ const FFCodec ff_pcm_bluray_encoder = {
.init = pcm_bluray_encode_init,
FF_CODEC_ENCODE_CB(pcm_bluray_encode_frame),
.p.supported_samplerates = (const int[]) { 48000, 96000, 192000, 0 },
- CODEC_OLD_CHANNEL_LAYOUTS(
- AV_CH_LAYOUT_MONO,
- AV_CH_LAYOUT_STEREO,
- AV_CH_LAYOUT_SURROUND,
- AV_CH_LAYOUT_2_1,
- AV_CH_LAYOUT_4POINT0,
- AV_CH_LAYOUT_2_2,
- AV_CH_LAYOUT_5POINT0,
- AV_CH_LAYOUT_5POINT1,
- AV_CH_LAYOUT_7POINT0,
- AV_CH_LAYOUT_7POINT1)
.p.ch_layouts = (const AVChannelLayout[]) {
AV_CHANNEL_LAYOUT_MONO,
AV_CHANNEL_LAYOUT_STEREO,
diff --git a/libavcodec/pcm-dvdenc.c b/libavcodec/pcm-dvdenc.c
index a2e5cbdc2e..1e7ee644f6 100644
--- a/libavcodec/pcm-dvdenc.c
+++ b/libavcodec/pcm-dvdenc.c
@@ -182,8 +182,6 @@ const FFCodec ff_pcm_dvd_encoder = {
.init = pcm_dvd_encode_init,
FF_CODEC_ENCODE_CB(pcm_dvd_encode_frame),
.p.supported_samplerates = (const int[]) { 48000, 96000, 0},
- CODEC_OLD_CHANNEL_LAYOUTS(AV_CH_LAYOUT_MONO, AV_CH_LAYOUT_STEREO,
- AV_CH_LAYOUT_5POINT1, AV_CH_LAYOUT_7POINT1)
.p.ch_layouts = (const AVChannelLayout[]) { AV_CHANNEL_LAYOUT_MONO,
AV_CHANNEL_LAYOUT_STEREO,
AV_CHANNEL_LAYOUT_5POINT1,
diff --git a/libavcodec/pthread_frame.c b/libavcodec/pthread_frame.c
index ec6ae8a7fe..56a3618f0d 100644
--- a/libavcodec/pthread_frame.c
+++ b/libavcodec/pthread_frame.c
@@ -311,12 +311,6 @@ FF_ENABLE_DEPRECATION_WARNINGS
dst->sample_rate = src->sample_rate;
dst->sample_fmt = src->sample_fmt;
-#if FF_API_OLD_CHANNEL_LAYOUT
-FF_DISABLE_DEPRECATION_WARNINGS
- dst->channels = src->channels;
- dst->channel_layout = src->channel_layout;
-FF_ENABLE_DEPRECATION_WARNINGS
-#endif
err = av_channel_layout_copy(&dst->ch_layout, &src->ch_layout);
if (err < 0)
return err;
diff --git a/libavcodec/ra144enc.c b/libavcodec/ra144enc.c
index ea537f3f80..92c35ac12c 100644
--- a/libavcodec/ra144enc.c
+++ b/libavcodec/ra144enc.c
@@ -549,6 +549,5 @@ const FFCodec ff_ra_144_encoder = {
.p.sample_fmts = (const enum AVSampleFormat[]){ AV_SAMPLE_FMT_S16,
AV_SAMPLE_FMT_NONE },
.p.supported_samplerates = (const int[]){ 8000, 0 },
- CODEC_OLD_CHANNEL_LAYOUTS(AV_CH_LAYOUT_MONO)
.p.ch_layouts = (const AVChannelLayout[]){ AV_CHANNEL_LAYOUT_MONO, { 0 } },
};
diff --git a/libavcodec/sbcdec.c b/libavcodec/sbcdec.c
index fd7c2e5e80..033a8380d6 100644
--- a/libavcodec/sbcdec.c
+++ b/libavcodec/sbcdec.c
@@ -371,7 +371,6 @@ const FFCodec ff_sbc_decoder = {
.init = sbc_decode_init,
FF_CODEC_DECODE_CB(sbc_decode_frame),
.p.capabilities = AV_CODEC_CAP_DR1 | AV_CODEC_CAP_CHANNEL_CONF,
- CODEC_OLD_CHANNEL_LAYOUTS(AV_CH_LAYOUT_MONO, AV_CH_LAYOUT_STEREO)
.p.ch_layouts = (const AVChannelLayout[]) { AV_CHANNEL_LAYOUT_MONO,
AV_CHANNEL_LAYOUT_STEREO,
{ 0 } },
diff --git a/libavcodec/sbcenc.c b/libavcodec/sbcenc.c
index 6e1dd88c72..f2c4fbe329 100644
--- a/libavcodec/sbcenc.c
+++ b/libavcodec/sbcenc.c
@@ -354,7 +354,6 @@ const FFCodec ff_sbc_encoder = {
.priv_data_size = sizeof(SBCEncContext),
.init = sbc_encode_init,
FF_CODEC_ENCODE_CB(sbc_encode_frame),
- CODEC_OLD_CHANNEL_LAYOUTS(AV_CH_LAYOUT_MONO, AV_CH_LAYOUT_STEREO)
.p.ch_layouts = (const AVChannelLayout[]) { AV_CHANNEL_LAYOUT_MONO,
AV_CHANNEL_LAYOUT_STEREO,
{ 0 } },
diff --git a/libavcodec/utils.c b/libavcodec/utils.c
index 1ad91c3237..e91a5d6d2e 100644
--- a/libavcodec/utils.c
+++ b/libavcodec/utils.c
@@ -784,12 +784,7 @@ int av_get_audio_frame_duration(AVCodecContext *avctx, int frame_bytes)
{
int channels = avctx->ch_layout.nb_channels;
int duration;
-#if FF_API_OLD_CHANNEL_LAYOUT
-FF_DISABLE_DEPRECATION_WARNINGS
- if (!channels)
- channels = avctx->channels;
-FF_ENABLE_DEPRECATION_WARNINGS
-#endif
+
duration = get_audio_frame_duration(avctx->codec_id, avctx->sample_rate,
channels, avctx->block_align,
avctx->codec_tag, avctx->bits_per_coded_sample,
@@ -802,12 +797,7 @@ int av_get_audio_frame_duration2(AVCodecParameters *par, int frame_bytes)
{
int channels = par->ch_layout.nb_channels;
int duration;
-#if FF_API_OLD_CHANNEL_LAYOUT
-FF_DISABLE_DEPRECATION_WARNINGS
- if (!channels)
- channels = par->channels;
-FF_ENABLE_DEPRECATION_WARNINGS
-#endif
+
duration = get_audio_frame_duration(par->codec_id, par->sample_rate,
channels, par->block_align,
par->codec_tag, par->bits_per_coded_sample,
diff --git a/libavcodec/vorbis_data.c b/libavcodec/vorbis_data.c
index 1ebe146d8f..d7edc695c1 100644
--- a/libavcodec/vorbis_data.c
+++ b/libavcodec/vorbis_data.c
@@ -34,20 +34,6 @@ const uint8_t ff_vorbis_channel_layout_offsets[8][8] = {
{ 0, 2, 1, 7, 5, 6, 3, 4 },
};
-#if FF_API_OLD_CHANNEL_LAYOUT
-const uint64_t ff_vorbis_channel_layouts[9] = {
- AV_CH_LAYOUT_MONO,
- AV_CH_LAYOUT_STEREO,
- AV_CH_LAYOUT_SURROUND,
- AV_CH_LAYOUT_QUAD,
- AV_CH_LAYOUT_5POINT0_BACK,
- AV_CH_LAYOUT_5POINT1_BACK,
- AV_CH_LAYOUT_5POINT1|AV_CH_BACK_CENTER,
- AV_CH_LAYOUT_7POINT1,
- 0
-};
-#endif
-
const AVChannelLayout ff_vorbis_ch_layouts[9] = {
AV_CHANNEL_LAYOUT_MONO,
AV_CHANNEL_LAYOUT_STEREO,
diff --git a/libavcodec/vorbis_data.h b/libavcodec/vorbis_data.h
index 0fe19e509f..51c91c9e04 100644
--- a/libavcodec/vorbis_data.h
+++ b/libavcodec/vorbis_data.h
@@ -26,9 +26,6 @@
extern const float ff_vorbis_floor1_inverse_db_table[256];
extern const float * const ff_vorbis_vwin[8];
extern const uint8_t ff_vorbis_channel_layout_offsets[8][8];
-#if FF_API_OLD_CHANNEL_LAYOUT
-extern const uint64_t ff_vorbis_channel_layouts[9];
-#endif
extern const AVChannelLayout ff_vorbis_ch_layouts[9];
#endif /* AVCODEC_VORBIS_DATA_H */
diff --git a/libavcodec/vorbisdec.c b/libavcodec/vorbisdec.c
index faeaeadde7..6f807b9d66 100644
--- a/libavcodec/vorbisdec.c
+++ b/libavcodec/vorbisdec.c
@@ -1890,7 +1890,6 @@ const FFCodec ff_vorbis_decoder = {
.flush = vorbis_decode_flush,
.p.capabilities = AV_CODEC_CAP_DR1 | AV_CODEC_CAP_CHANNEL_CONF,
.caps_internal = FF_CODEC_CAP_INIT_CLEANUP,
- CODEC_OLD_CHANNEL_LAYOUTS_ARRAY(ff_vorbis_channel_layouts)
.p.ch_layouts = ff_vorbis_ch_layouts,
.p.sample_fmts = (const enum AVSampleFormat[]) { AV_SAMPLE_FMT_FLTP,
AV_SAMPLE_FMT_NONE },
diff --git a/libavfilter/af_afir.c b/libavfilter/af_afir.c
index fa87c0039d..caa723e6a2 100644
--- a/libavfilter/af_afir.c
+++ b/libavfilter/af_afir.c
@@ -508,11 +508,6 @@ static int config_output(AVFilterLink *outlink)
s->one2many = ctx->inputs[1 + s->selir]->ch_layout.nb_channels == 1;
outlink->sample_rate = ctx->inputs[0]->sample_rate;
outlink->time_base = ctx->inputs[0]->time_base;
-#if FF_API_OLD_CHANNEL_LAYOUT
-FF_DISABLE_DEPRECATION_WARNINGS
- outlink->channel_layout = ctx->inputs[0]->channel_layout;
-FF_ENABLE_DEPRECATION_WARNINGS
-#endif
if ((ret = av_channel_layout_copy(&outlink->ch_layout, &ctx->inputs[0]->ch_layout)) < 0)
return ret;
outlink->ch_layout.nb_channels = ctx->inputs[0]->ch_layout.nb_channels;
diff --git a/libavfilter/af_aformat.c b/libavfilter/af_aformat.c
index 367a02df33..8a3bdee7f8 100644
--- a/libavfilter/af_aformat.c
+++ b/libavfilter/af_aformat.c
@@ -103,21 +103,8 @@ static int parse_channel_layouts(AVFilterContext *ctx)
ret = av_channel_layout_from_string(&fmt, cur);
if (ret < 0) {
-#if FF_API_OLD_CHANNEL_LAYOUT
- uint64_t mask;
-FF_DISABLE_DEPRECATION_WARNINGS
- mask = av_get_channel_layout(cur);
- if (!mask) {
-#endif
av_log(ctx, AV_LOG_ERROR, "Error parsing channel layout: %s.\n", cur);
return AVERROR(EINVAL);
-#if FF_API_OLD_CHANNEL_LAYOUT
- }
-FF_ENABLE_DEPRECATION_WARNINGS
- av_log(ctx, AV_LOG_WARNING, "Channel layout '%s' uses a deprecated syntax.\n",
- cur);
- av_channel_layout_from_mask(&fmt, mask);
-#endif
}
ret = ff_add_channel_layout(&s->channel_layouts, &fmt);
av_channel_layout_uninit(&fmt);
diff --git a/libavfilter/af_amerge.c b/libavfilter/af_amerge.c
index eabd3f8262..5daf639e74 100644
--- a/libavfilter/af_amerge.c
+++ b/libavfilter/af_amerge.c
@@ -247,12 +247,6 @@ static int try_push_frame(AVFilterContext *ctx, int nb_samples)
if ((ret = av_channel_layout_copy(&outbuf->ch_layout, &outlink->ch_layout)) < 0)
return ret;
-#if FF_API_OLD_CHANNEL_LAYOUT
-FF_DISABLE_DEPRECATION_WARNINGS
- outbuf->channel_layout = outlink->channel_layout;
- outbuf->channels = outlink->ch_layout.nb_channels;
-FF_ENABLE_DEPRECATION_WARNINGS
-#endif
while (nb_samples) {
/* Unroll the most common sample formats: speed +~350% for the loop,
diff --git a/libavfilter/af_aresample.c b/libavfilter/af_aresample.c
index f4bcc45616..d6bd77beb3 100644
--- a/libavfilter/af_aresample.c
+++ b/libavfilter/af_aresample.c
@@ -194,12 +194,6 @@ static int filter_frame(AVFilterLink *inlink, AVFrame *insamplesref)
av_frame_copy_props(outsamplesref, insamplesref);
outsamplesref->format = outlink->format;
-#if FF_API_OLD_CHANNEL_LAYOUT
-FF_DISABLE_DEPRECATION_WARNINGS
- outsamplesref->channels = outlink->ch_layout.nb_channels;
- outsamplesref->channel_layout = outlink->channel_layout;
-FF_ENABLE_DEPRECATION_WARNINGS
-#endif
ret = av_channel_layout_copy(&outsamplesref->ch_layout, &outlink->ch_layout);
if (ret < 0)
return ret;
diff --git a/libavfilter/af_ashowinfo.c b/libavfilter/af_ashowinfo.c
index 17a0a90542..b1b462d68f 100644
--- a/libavfilter/af_ashowinfo.c
+++ b/libavfilter/af_ashowinfo.c
@@ -178,9 +178,6 @@ static int filter_frame(AVFilterLink *inlink, AVFrame *buf)
{
AVFilterContext *ctx = inlink->dst;
AShowInfoContext *s = ctx->priv;
-#if FF_API_OLD_CHANNEL_LAYOUT
- AVChannelLayout layout = { 0 };
-#endif
char chlayout_str[128];
uint32_t checksum = 0;
int channels = inlink->ch_layout.nb_channels;
@@ -203,13 +200,6 @@ static int filter_frame(AVFilterLink *inlink, AVFrame *buf)
s->plane_checksums[0];
}
-#if FF_API_OLD_CHANNEL_LAYOUT
-FF_DISABLE_DEPRECATION_WARNINGS
- if (av_channel_layout_from_mask(&layout, buf->channel_layout)) {
- av_channel_layout_describe(&layout, chlayout_str, sizeof(chlayout_str));
-FF_ENABLE_DEPRECATION_WARNINGS
- } else if (buf->ch_layout.nb_channels)
-#endif
av_channel_layout_describe(&buf->ch_layout, chlayout_str, sizeof(chlayout_str));
av_log(ctx, AV_LOG_INFO,
diff --git a/libavfilter/af_channelmap.c b/libavfilter/af_channelmap.c
index 69718f5b4a..5e1cf57680 100644
--- a/libavfilter/af_channelmap.c
+++ b/libavfilter/af_channelmap.c
@@ -324,12 +324,6 @@ static int channelmap_filter_frame(AVFilterLink *inlink, AVFrame *buf)
memcpy(buf->data, buf->extended_data,
FFMIN(FF_ARRAY_ELEMS(buf->data), nch_out) * sizeof(buf->data[0]));
-#if FF_API_OLD_CHANNEL_LAYOUT
-FF_DISABLE_DEPRECATION_WARNINGS
- buf->channels = outlink->ch_layout.nb_channels;
- buf->channel_layout = outlink->channel_layout;
-FF_ENABLE_DEPRECATION_WARNINGS
-#endif
if ((ret = av_channel_layout_copy(&buf->ch_layout, &outlink->ch_layout)) < 0)
return ret;
diff --git a/libavfilter/af_channelsplit.c b/libavfilter/af_channelsplit.c
index 932b51d701..f026c74494 100644
--- a/libavfilter/af_channelsplit.c
+++ b/libavfilter/af_channelsplit.c
@@ -164,13 +164,6 @@ static int filter_frame(AVFilterLink *outlink, AVFrame *buf)
ret = av_channel_layout_from_mask(&buf_out->ch_layout, 1ULL << channel);
if (ret < 0)
return ret;
-#if FF_API_OLD_CHANNEL_LAYOUT
-FF_DISABLE_DEPRECATION_WARNINGS
- buf_out->channel_layout =
- av_channel_layout_extract_channel(buf->channel_layout, s->map[i]);
- buf_out->channels = 1;
-FF_ENABLE_DEPRECATION_WARNINGS
-#endif
return ff_filter_frame(ctx->outputs[i], buf_out);
}
diff --git a/libavfilter/af_join.c b/libavfilter/af_join.c
index 416cfd7a9a..8dab3f0931 100644
--- a/libavfilter/af_join.c
+++ b/libavfilter/af_join.c
@@ -504,12 +504,6 @@ static int try_push_frame(AVFilterContext *ctx)
av_make_q(1, outlink->sample_rate),
outlink->time_base);
-#if FF_API_OLD_CHANNEL_LAYOUT
-FF_DISABLE_DEPRECATION_WARNINGS
- frame->channel_layout = outlink->channel_layout;
- frame->channels = outlink->ch_layout.nb_channels;
-FF_ENABLE_DEPRECATION_WARNINGS
-#endif
if ((ret = av_channel_layout_copy(&frame->ch_layout, &outlink->ch_layout)) < 0)
goto fail;
frame->sample_rate = outlink->sample_rate;
diff --git a/libavfilter/af_ladspa.c b/libavfilter/af_ladspa.c
index 85e215850d..7567c0577d 100644
--- a/libavfilter/af_ladspa.c
+++ b/libavfilter/af_ladspa.c
@@ -402,11 +402,6 @@ static int config_output(AVFilterLink *outlink)
if (s->nb_inputs == s->nb_outputs) {
if ((ret = av_channel_layout_copy(&outlink->ch_layout, &inlink->ch_layout)) < 0)
return ret;
-#if FF_API_OLD_CHANNEL_LAYOUT
-FF_DISABLE_DEPRECATION_WARNINGS
- outlink->channel_layout = inlink->channel_layout;
-FF_ENABLE_DEPRECATION_WARNINGS
-#endif
}
ret = 0;
diff --git a/libavfilter/af_lv2.c b/libavfilter/af_lv2.c
index e577b1624d..7b3ddf9448 100644
--- a/libavfilter/af_lv2.c
+++ b/libavfilter/af_lv2.c
@@ -292,11 +292,6 @@ static int config_output(AVFilterLink *outlink)
int ret;
if ((ret = av_channel_layout_copy(&outlink->ch_layout, &inlink->ch_layout)) < 0)
return ret;
-#if FF_API_OLD_CHANNEL_LAYOUT
-FF_DISABLE_DEPRECATION_WARNINGS
- outlink->channel_layout = inlink->channel_layout;
-FF_ENABLE_DEPRECATION_WARNINGS
-#endif
}
} else {
diff --git a/libavfilter/af_pan.c b/libavfilter/af_pan.c
index cfed9f146a..37f563299e 100644
--- a/libavfilter/af_pan.c
+++ b/libavfilter/af_pan.c
@@ -379,12 +379,6 @@ static int filter_frame(AVFilterLink *inlink, AVFrame *insamples)
swr_convert(pan->swr, outsamples->extended_data, n,
(void *)insamples->extended_data, n);
av_frame_copy_props(outsamples, insamples);
-#if FF_API_OLD_CHANNEL_LAYOUT
-FF_DISABLE_DEPRECATION_WARNINGS
- outsamples->channel_layout = outlink->channel_layout;
- outsamples->channels = outlink->ch_layout.nb_channels;
-FF_ENABLE_DEPRECATION_WARNINGS
-#endif
if ((ret = av_channel_layout_copy(&outsamples->ch_layout, &outlink->ch_layout)) < 0) {
av_frame_free(&outsamples);
av_frame_free(&insamples);
diff --git a/libavfilter/audio.c b/libavfilter/audio.c
index 35270c14d2..0abc70c14c 100644
--- a/libavfilter/audio.c
+++ b/libavfilter/audio.c
@@ -46,13 +46,6 @@ AVFrame *ff_default_get_audio_buffer(AVFilterLink *link, int nb_samples)
AVFrame *frame = NULL;
int channels = link->ch_layout.nb_channels;
int align = av_cpu_max_align();
-#if FF_API_OLD_CHANNEL_LAYOUT
-FF_DISABLE_DEPRECATION_WARNINGS
- int channel_layout_nb_channels = av_get_channel_layout_nb_channels(link->channel_layout);
-
- av_assert0(channels == channel_layout_nb_channels || !channel_layout_nb_channels);
-FF_ENABLE_DEPRECATION_WARNINGS
-#endif
if (!link->frame_pool) {
link->frame_pool = ff_frame_pool_audio_init(av_buffer_allocz, channels,
@@ -87,11 +80,6 @@ FF_ENABLE_DEPRECATION_WARNINGS
return NULL;
frame->nb_samples = nb_samples;
-#if FF_API_OLD_CHANNEL_LAYOUT
-FF_DISABLE_DEPRECATION_WARNINGS
- frame->channel_layout = link->channel_layout;
-FF_ENABLE_DEPRECATION_WARNINGS
-#endif
if (link->ch_layout.order != AV_CHANNEL_ORDER_UNSPEC &&
av_channel_layout_copy(&frame->ch_layout, &link->ch_layout) < 0) {
av_frame_free(&frame);
diff --git a/libavfilter/avfilter.h b/libavfilter/avfilter.h
index 246d000251..a5d9398c9a 100644
--- a/libavfilter/avfilter.h
+++ b/libavfilter/avfilter.h
@@ -560,14 +560,6 @@ struct AVFilterLink {
int h; ///< agreed upon image height
AVRational sample_aspect_ratio; ///< agreed upon sample aspect ratio
/* These parameters apply only to audio */
-#if FF_API_OLD_CHANNEL_LAYOUT
- /**
- * channel layout of current buffer (see libavutil/channel_layout.h)
- * @deprecated use ch_layout
- */
- attribute_deprecated
- uint64_t channel_layout;
-#endif
int sample_rate; ///< samples per second
int format; ///< agreed upon media format
diff --git a/libavfilter/avfiltergraph.c b/libavfilter/avfiltergraph.c
index e4f59f56e2..a43c23065c 100644
--- a/libavfilter/avfiltergraph.c
+++ b/libavfilter/avfiltergraph.c
@@ -734,12 +734,6 @@ static int pick_format(AVFilterLink *link, AVFilterLink *ref)
ret = av_channel_layout_copy(&link->ch_layout, &link->incfg.channel_layouts->channel_layouts[0]);
if (ret < 0)
return ret;
-#if FF_API_OLD_CHANNEL_LAYOUT
-FF_DISABLE_DEPRECATION_WARNINGS
- link->channel_layout = link->ch_layout.order == AV_CHANNEL_ORDER_NATIVE ?
- link->ch_layout.u.mask : 0;
-FF_ENABLE_DEPRECATION_WARNINGS
-#endif
}
ff_formats_unref(&link->incfg.formats);
diff --git a/libavfilter/buffersink.c b/libavfilter/buffersink.c
index 6ba2970dd5..66de58782c 100644
--- a/libavfilter/buffersink.c
+++ b/libavfilter/buffersink.c
@@ -52,12 +52,6 @@ typedef struct BufferSinkContext {
/* only used for audio */
enum AVSampleFormat *sample_fmts; ///< list of accepted sample formats
int sample_fmts_size;
-#if FF_API_OLD_CHANNEL_LAYOUT
- int64_t *channel_layouts; ///< list of accepted channel layouts
- int channel_layouts_size;
- int *channel_counts; ///< list of accepted channel counts
- int channel_counts_size;
-#endif
char *channel_layouts_str; ///< list of accepted channel layouts
int all_channel_counts;
int *sample_rates; ///< list of accepted sample rates
@@ -68,31 +62,6 @@ typedef struct BufferSinkContext {
#define NB_ITEMS(list) (list ## _size / sizeof(*list))
-#if FF_API_OLD_CHANNEL_LAYOUT
-static void cleanup_redundant_layouts(AVFilterContext *ctx)
-{
- BufferSinkContext *buf = ctx->priv;
- int nb_layouts = NB_ITEMS(buf->channel_layouts);
- int nb_counts = NB_ITEMS(buf->channel_counts);
- uint64_t counts = 0;
- int i, lc, n;
-
- for (i = 0; i < nb_counts; i++)
- if (buf->channel_counts[i] < 64)
- counts |= (uint64_t)1 << buf->channel_counts[i];
- for (i = lc = 0; i < nb_layouts; i++) {
- n = av_popcount64(buf->channel_layouts[i]);
- if (n < 64 && (counts & ((uint64_t)1 << n)))
- av_log(ctx, AV_LOG_WARNING,
- "Removing channel layout 0x%"PRIx64", redundant with %d channels\n",
- buf->channel_layouts[i], n);
- else
- buf->channel_layouts[lc++] = buf->channel_layouts[i];
- }
- buf->channel_layouts_size = lc * sizeof(*buf->channel_layouts);
-}
-#endif
-
int attribute_align_arg av_buffersink_get_frame(AVFilterContext *ctx, AVFrame *frame)
{
return av_buffersink_get_frame_flags(ctx, frame, 0);
@@ -212,11 +181,6 @@ MAKE_AVFILTERLINK_ACCESSOR(AVRational , sample_aspect_ratio)
MAKE_AVFILTERLINK_ACCESSOR(enum AVColorSpace, colorspace)
MAKE_AVFILTERLINK_ACCESSOR(enum AVColorRange, color_range)
-#if FF_API_OLD_CHANNEL_LAYOUT
-FF_DISABLE_DEPRECATION_WARNINGS
-MAKE_AVFILTERLINK_ACCESSOR(uint64_t , channel_layout )
-FF_ENABLE_DEPRECATION_WARNINGS
-#endif
MAKE_AVFILTERLINK_ACCESSOR(int , sample_rate )
MAKE_AVFILTERLINK_ACCESSOR(AVBufferRef * , hw_frames_ctx )
@@ -280,10 +244,6 @@ static int asink_query_formats(AVFilterContext *ctx)
CHECK_LIST_SIZE(sample_fmts)
CHECK_LIST_SIZE(sample_rates)
-#if FF_API_OLD_CHANNEL_LAYOUT
- CHECK_LIST_SIZE(channel_layouts)
- CHECK_LIST_SIZE(channel_counts)
-#endif
if (buf->sample_fmts_size) {
for (i = 0; i < NB_ITEMS(buf->sample_fmts); i++)
@@ -293,32 +253,10 @@ static int asink_query_formats(AVFilterContext *ctx)
return ret;
}
- if (
-#if FF_API_OLD_CHANNEL_LAYOUT
- buf->channel_layouts_size || buf->channel_counts_size ||
-#endif
- buf->channel_layouts_str || buf->all_channel_counts) {
-#if FF_API_OLD_CHANNEL_LAYOUT
- cleanup_redundant_layouts(ctx);
- for (i = 0; i < NB_ITEMS(buf->channel_layouts); i++)
- if ((ret = av_channel_layout_from_mask(&layout, buf->channel_layouts[i])) < 0 ||
- (ret = ff_add_channel_layout(&layouts, &layout)) < 0)
- return ret;
- for (i = 0; i < NB_ITEMS(buf->channel_counts); i++) {
- layout = FF_COUNT2LAYOUT(buf->channel_counts[i]);
- if ((ret = ff_add_channel_layout(&layouts, &layout)) < 0)
- return ret;
- }
-#endif
+ if (buf->channel_layouts_str || buf->all_channel_counts) {
if (buf->channel_layouts_str) {
const char *cur = buf->channel_layouts_str;
-#if FF_API_OLD_CHANNEL_LAYOUT
- if (layouts)
- av_log(ctx, AV_LOG_WARNING,
- "Conflicting ch_layouts and list of channel_counts/channel_layouts. Ignoring the former\n");
- else
-#endif
while (cur) {
char *next = strchr(cur, '|');
if (next)
@@ -372,12 +310,6 @@ static const AVOption buffersink_options[] = {
static const AVOption abuffersink_options[] = {
{ "sample_fmts", "set the supported sample formats", OFFSET(sample_fmts), AV_OPT_TYPE_BINARY, .flags = FLAGS },
{ "sample_rates", "set the supported sample rates", OFFSET(sample_rates), AV_OPT_TYPE_BINARY, .flags = FLAGS },
-#if FF_API_OLD_CHANNEL_LAYOUT
- { "channel_layouts", "set the supported channel layouts (deprecated, use ch_layouts)",
- OFFSET(channel_layouts), AV_OPT_TYPE_BINARY, .flags = FLAGS | AV_OPT_FLAG_DEPRECATED },
- { "channel_counts", "set the supported channel counts (deprecated, use ch_layouts)",
- OFFSET(channel_counts), AV_OPT_TYPE_BINARY, .flags = FLAGS | AV_OPT_FLAG_DEPRECATED },
-#endif
{ "ch_layouts", "set a '|'-separated list of supported channel layouts",
OFFSET(channel_layouts_str), AV_OPT_TYPE_STRING, .flags = FLAGS },
{ "all_channel_counts", "accept all channel counts", OFFSET(all_channel_counts), AV_OPT_TYPE_BOOL, {.i64 = 0}, 0, 1, FLAGS },
diff --git a/libavfilter/buffersink.h b/libavfilter/buffersink.h
index a9374b8b4f..49ffc5bb4e 100644
--- a/libavfilter/buffersink.h
+++ b/libavfilter/buffersink.h
@@ -121,10 +121,6 @@ enum AVColorSpace av_buffersink_get_colorspace (const AVFilterContext *c
enum AVColorRange av_buffersink_get_color_range (const AVFilterContext *ctx);
int av_buffersink_get_channels (const AVFilterContext *ctx);
-#if FF_API_OLD_CHANNEL_LAYOUT
-attribute_deprecated
-uint64_t av_buffersink_get_channel_layout (const AVFilterContext *ctx);
-#endif
int av_buffersink_get_ch_layout (const AVFilterContext *ctx,
AVChannelLayout *ch_layout);
int av_buffersink_get_sample_rate (const AVFilterContext *ctx);
diff --git a/libavfilter/buffersrc.c b/libavfilter/buffersrc.c
index afe69433b2..e98e31185b 100644
--- a/libavfilter/buffersrc.c
+++ b/libavfilter/buffersrc.c
@@ -138,16 +138,6 @@ int av_buffersrc_parameters_set(AVFilterContext *ctx, AVBufferSrcParameters *par
}
if (param->sample_rate > 0)
s->sample_rate = param->sample_rate;
-#if FF_API_OLD_CHANNEL_LAYOUT
-FF_DISABLE_DEPRECATION_WARNINGS
- // if the old/new fields are set inconsistently, prefer the old ones
- if (param->channel_layout && (param->ch_layout.order != AV_CHANNEL_ORDER_NATIVE ||
- param->ch_layout.u.mask != param->channel_layout)) {
- av_channel_layout_uninit(&s->ch_layout);
- av_channel_layout_from_mask(&s->ch_layout, param->channel_layout);
-FF_ENABLE_DEPRECATION_WARNINGS
- } else
-#endif
if (param->ch_layout.nb_channels) {
int ret = av_channel_layout_copy(&s->ch_layout, ¶m->ch_layout);
if (ret < 0)
@@ -192,16 +182,6 @@ int attribute_align_arg av_buffersrc_add_frame_flags(AVFilterContext *ctx, AVFra
AVFrame *copy;
int refcounted, ret;
-#if FF_API_OLD_CHANNEL_LAYOUT
-FF_DISABLE_DEPRECATION_WARNINGS
- if (frame && frame->channel_layout &&
- av_get_channel_layout_nb_channels(frame->channel_layout) != frame->channels) {
- av_log(ctx, AV_LOG_ERROR, "Layout indicates a different number of channels than actually present\n");
- return AVERROR(EINVAL);
- }
-FF_ENABLE_DEPRECATION_WARNINGS
-#endif
-
s->nb_failed_requests = 0;
if (!frame)
@@ -223,13 +203,6 @@ FF_ENABLE_DEPRECATION_WARNINGS
break;
case AVMEDIA_TYPE_AUDIO:
/* For layouts unknown on input but known on link after negotiation. */
-#if FF_API_OLD_CHANNEL_LAYOUT
-FF_DISABLE_DEPRECATION_WARNINGS
- if (!frame->channel_layout)
- frame->channel_layout = s->ch_layout.order == AV_CHANNEL_ORDER_NATIVE ?
- s->ch_layout.u.mask : 0;
-FF_ENABLE_DEPRECATION_WARNINGS
-#endif
if (frame->ch_layout.order == AV_CHANNEL_ORDER_UNSPEC) {
ret = av_channel_layout_copy(&frame->ch_layout, &s->ch_layout);
if (ret < 0)
@@ -400,22 +373,9 @@ static av_cold int init_audio(AVFilterContext *ctx)
if (!s->ch_layout.nb_channels) {
ret = av_channel_layout_from_string(&s->ch_layout, s->channel_layout_str);
if (ret < 0) {
-#if FF_API_OLD_CHANNEL_LAYOUT
- uint64_t mask;
-FF_DISABLE_DEPRECATION_WARNINGS
- mask = av_get_channel_layout(s->channel_layout_str);
- if (!mask) {
-#endif
- av_log(ctx, AV_LOG_ERROR, "Invalid channel layout %s.\n",
- s->channel_layout_str);
- return AVERROR(EINVAL);
-#if FF_API_OLD_CHANNEL_LAYOUT
- }
-FF_ENABLE_DEPRECATION_WARNINGS
- av_log(ctx, AV_LOG_WARNING, "Channel layout '%s' uses a deprecated syntax.\n",
+ av_log(ctx, AV_LOG_ERROR, "Invalid channel layout %s.\n",
s->channel_layout_str);
- av_channel_layout_from_mask(&s->ch_layout, mask);
-#endif
+ return AVERROR(EINVAL);
}
}
diff --git a/libavfilter/buffersrc.h b/libavfilter/buffersrc.h
index 1e29f0340e..6f3344f445 100644
--- a/libavfilter/buffersrc.h
+++ b/libavfilter/buffersrc.h
@@ -110,15 +110,6 @@ typedef struct AVBufferSrcParameters {
*/
int sample_rate;
-#if FF_API_OLD_CHANNEL_LAYOUT
- /**
- * Audio only, the audio channel layout
- * @deprecated use ch_layout
- */
- attribute_deprecated
- uint64_t channel_layout;
-#endif
-
/**
* Audio only, the audio channel layout
*/
diff --git a/libavfilter/f_streamselect.c b/libavfilter/f_streamselect.c
index 1328a842f9..c64b33a563 100644
--- a/libavfilter/f_streamselect.c
+++ b/libavfilter/f_streamselect.c
@@ -119,11 +119,6 @@ static int config_output(AVFilterLink *outlink)
case AVMEDIA_TYPE_AUDIO:
outlink->sample_rate = inlink->sample_rate;
outlink->ch_layout.nb_channels = inlink->ch_layout.nb_channels;
-#if FF_API_OLD_CHANNEL_LAYOUT
-FF_DISABLE_DEPRECATION_WARNINGS
- outlink->channel_layout = inlink->channel_layout;
-FF_ENABLE_DEPRECATION_WARNINGS
-#endif
break;
}
diff --git a/libavfilter/formats.c b/libavfilter/formats.c
index 681f0b1203..d3f4c7f09c 100644
--- a/libavfilter/formats.c
+++ b/libavfilter/formats.c
@@ -972,24 +972,8 @@ int ff_parse_channel_layout(AVChannelLayout *ret, int *nret, const char *arg,
res = av_channel_layout_from_string(&chlayout, arg);
if (res < 0) {
-#if FF_API_OLD_CHANNEL_LAYOUT
- int64_t mask;
- int nb_channels;
-FF_DISABLE_DEPRECATION_WARNINGS
- if (av_get_extended_channel_layout(arg, &mask, &nb_channels) < 0) {
-#endif
- av_log(log_ctx, AV_LOG_ERROR, "Invalid channel layout '%s'\n", arg);
- return AVERROR(EINVAL);
-#if FF_API_OLD_CHANNEL_LAYOUT
- }
-FF_ENABLE_DEPRECATION_WARNINGS
- av_log(log_ctx, AV_LOG_WARNING, "Channel layout '%s' uses a deprecated syntax.\n",
- arg);
- if (mask)
- av_channel_layout_from_mask(&chlayout, mask);
- else
- chlayout = (AVChannelLayout) { .order = AV_CHANNEL_ORDER_UNSPEC, .nb_channels = nb_channels };
-#endif
+ av_log(log_ctx, AV_LOG_ERROR, "Invalid channel layout '%s'\n", arg);
+ return AVERROR(EINVAL);
}
if (chlayout.order == AV_CHANNEL_ORDER_UNSPEC && !nret) {
diff --git a/libavfilter/framepool.c b/libavfilter/framepool.c
index 0404589055..841caa0460 100644
--- a/libavfilter/framepool.c
+++ b/libavfilter/framepool.c
@@ -234,11 +234,6 @@ AVFrame *ff_frame_pool_get(FFFramePool *pool)
break;
case AVMEDIA_TYPE_AUDIO:
frame->nb_samples = pool->nb_samples;
-#if FF_API_OLD_CHANNEL_LAYOUT
-FF_DISABLE_DEPRECATION_WARNINGS
- frame->channels = pool->channels;
-FF_ENABLE_DEPRECATION_WARNINGS
-#endif
frame->ch_layout.nb_channels = pool->channels;
frame->format = pool->format;
frame->linesize[0] = pool->linesize[0];
diff --git a/libavfilter/tests/formats.c b/libavfilter/tests/formats.c
index 2bdceb0d21..ed1de24a4c 100644
--- a/libavfilter/tests/formats.c
+++ b/libavfilter/tests/formats.c
@@ -118,9 +118,6 @@ int main(void)
"65C",
"5.1",
"stereo",
- "1+1+1+1",
- "1c+1c+1c+1c",
- "2c+1c",
"0x3",
};
diff --git a/libavformat/demux.c b/libavformat/demux.c
index 6f640b92b1..06fa437483 100644
--- a/libavformat/demux.c
+++ b/libavformat/demux.c
@@ -199,18 +199,6 @@ static int update_stream_avctx(AVFormatContext *s)
sti->parser = NULL;
}
-#if FF_API_OLD_CHANNEL_LAYOUT
-FF_DISABLE_DEPRECATION_WARNINGS
- if (st->codecpar->ch_layout.nb_channels &&
- !st->codecpar->channels) {
- st->codecpar->channels = st->codecpar->ch_layout.nb_channels;
- st->codecpar->channel_layout = st->codecpar->ch_layout.order == AV_CHANNEL_ORDER_NATIVE ?
- st->codecpar->ch_layout.u.mask : 0;
-
- }
-FF_ENABLE_DEPRECATION_WARNINGS
-#endif
-
/* update internal codec context, for the parser */
ret = avcodec_parameters_to_context(sti->avctx, st->codecpar);
if (ret < 0)
@@ -1356,13 +1344,6 @@ static int read_frame_internal(AVFormatContext *s, AVPacket *pkt)
return ret;
st->codecpar->sample_rate = sti->avctx->sample_rate;
st->codecpar->bit_rate = sti->avctx->bit_rate;
-#if FF_API_OLD_CHANNEL_LAYOUT
-FF_DISABLE_DEPRECATION_WARNINGS
- st->codecpar->channels = sti->avctx->ch_layout.nb_channels;
- st->codecpar->channel_layout = sti->avctx->ch_layout.order == AV_CHANNEL_ORDER_NATIVE ?
- sti->avctx->ch_layout.u.mask : 0;
-FF_ENABLE_DEPRECATION_WARNINGS
-#endif
ret = av_channel_layout_copy(&st->codecpar->ch_layout, &sti->avctx->ch_layout);
if (ret < 0)
return ret;
diff --git a/libavformat/demux_utils.c b/libavformat/demux_utils.c
index 56cc6e15d8..b16bc47a96 100644
--- a/libavformat/demux_utils.c
+++ b/libavformat/demux_utils.c
@@ -158,18 +158,6 @@ int ff_add_param_change(AVPacket *pkt, int32_t channels,
if (!pkt)
return AVERROR(EINVAL);
-#if FF_API_OLD_CHANNEL_LAYOUT
-FF_DISABLE_DEPRECATION_WARNINGS
- if (channels) {
- size += 4;
- flags |= AV_SIDE_DATA_PARAM_CHANGE_CHANNEL_COUNT;
- }
- if (channel_layout) {
- size += 8;
- flags |= AV_SIDE_DATA_PARAM_CHANGE_CHANNEL_LAYOUT;
- }
-FF_ENABLE_DEPRECATION_WARNINGS
-#endif
if (sample_rate) {
size += 4;
flags |= AV_SIDE_DATA_PARAM_CHANGE_SAMPLE_RATE;
@@ -182,14 +170,6 @@ FF_ENABLE_DEPRECATION_WARNINGS
if (!data)
return AVERROR(ENOMEM);
bytestream_put_le32(&data, flags);
-#if FF_API_OLD_CHANNEL_LAYOUT
-FF_DISABLE_DEPRECATION_WARNINGS
- if (channels)
- bytestream_put_le32(&data, channels);
- if (channel_layout)
- bytestream_put_le64(&data, channel_layout);
-FF_ENABLE_DEPRECATION_WARNINGS
-#endif
if (sample_rate)
bytestream_put_le32(&data, sample_rate);
if (width || height) {
diff --git a/libavformat/dfpwmdec.c b/libavformat/dfpwmdec.c
index b92b00f13a..4c998bea48 100644
--- a/libavformat/dfpwmdec.c
+++ b/libavformat/dfpwmdec.c
@@ -31,9 +31,6 @@
typedef struct DFPWMAudioDemuxerContext {
AVClass *class;
int sample_rate;
-#if FF_API_OLD_CHANNEL_LAYOUT
- int channels;
-#endif
AVChannelLayout ch_layout;
} DFPWMAudioDemuxerContext;
@@ -52,16 +49,9 @@ static int dfpwm_read_header(AVFormatContext *s)
par->codec_type = AVMEDIA_TYPE_AUDIO;
par->codec_id = AV_CODEC_ID_DFPWM;
par->sample_rate = s1->sample_rate;
-#if FF_API_OLD_CHANNEL_LAYOUT
- if (s1->ch_layout.nb_channels) {
-#endif
ret = av_channel_layout_copy(&par->ch_layout, &s1->ch_layout);
if (ret < 0)
return ret;
-#if FF_API_OLD_CHANNEL_LAYOUT
- } else
- par->ch_layout.nb_channels = s1->channels;
-#endif
par->bits_per_coded_sample = 1;
par->block_align = 1;
@@ -71,13 +61,8 @@ static int dfpwm_read_header(AVFormatContext *s)
static const AVOption dfpwm_options[] = {
{ "sample_rate", "", offsetof(DFPWMAudioDemuxerContext, sample_rate), AV_OPT_TYPE_INT, {.i64 = 48000}, 0, INT_MAX, AV_OPT_FLAG_DECODING_PARAM },
-#if FF_API_OLD_CHANNEL_LAYOUT
- { "channels", "", offsetof(DFPWMAudioDemuxerContext, channels), AV_OPT_TYPE_INT, {.i64 = 1}, 0, INT_MAX, AV_OPT_FLAG_DECODING_PARAM | AV_OPT_FLAG_DEPRECATED },
- { "ch_layout", "", offsetof(DFPWMAudioDemuxerContext, ch_layout), AV_OPT_TYPE_CHLAYOUT, {.str = NULL}, 0, 0, AV_OPT_FLAG_DECODING_PARAM },
-#else
{ "ch_layout", "", offsetof(DFPWMAudioDemuxerContext, ch_layout), AV_OPT_TYPE_CHLAYOUT, {.str = "mono"}, 0, 0, AV_OPT_FLAG_DECODING_PARAM },
-#endif
- { NULL },
+{ NULL },
};
static const AVClass dfpwm_demuxer_class = {
.class_name = "dfpwm demuxer",
diff --git a/libavformat/dump.c b/libavformat/dump.c
index aff51b43f6..b73015d2d8 100644
--- a/libavformat/dump.c
+++ b/libavformat/dump.c
@@ -175,10 +175,6 @@ static void dump_paramchange(void *ctx, const AVPacketSideData *sd, int log_leve
int size = sd->size;
const uint8_t *data = sd->data;
uint32_t flags, sample_rate, width, height;
-#if FF_API_OLD_CHANNEL_LAYOUT
- uint32_t channels;
- uint64_t layout;
-#endif
if (!data || sd->size < 4)
goto fail;
@@ -187,27 +183,6 @@ static void dump_paramchange(void *ctx, const AVPacketSideData *sd, int log_leve
data += 4;
size -= 4;
-#if FF_API_OLD_CHANNEL_LAYOUT
-FF_DISABLE_DEPRECATION_WARNINGS
- if (flags & AV_SIDE_DATA_PARAM_CHANGE_CHANNEL_COUNT) {
- if (size < 4)
- goto fail;
- channels = AV_RL32(data);
- data += 4;
- size -= 4;
- av_log(ctx, log_level, "channel count %"PRIu32", ", channels);
- }
- if (flags & AV_SIDE_DATA_PARAM_CHANGE_CHANNEL_LAYOUT) {
- if (size < 8)
- goto fail;
- layout = AV_RL64(data);
- data += 8;
- size -= 8;
- av_log(ctx, log_level,
- "channel layout: %s, ", av_get_channel_name(layout));
- }
-FF_ENABLE_DEPRECATION_WARNINGS
-#endif /* FF_API_OLD_CHANNEL_LAYOUT */
if (flags & AV_SIDE_DATA_PARAM_CHANGE_SAMPLE_RATE) {
if (size < 4)
goto fail;
diff --git a/libavformat/mux.c b/libavformat/mux.c
index de10d2c008..659fbbad10 100644
--- a/libavformat/mux.c
+++ b/libavformat/mux.c
@@ -233,22 +233,6 @@ static int init_muxer(AVFormatContext *s, AVDictionary **options)
goto fail;
}
-#if FF_API_OLD_CHANNEL_LAYOUT
-FF_DISABLE_DEPRECATION_WARNINGS
- /* if the caller is using the deprecated channel layout API,
- * convert it to the new style */
- if (!par->ch_layout.nb_channels &&
- par->channels) {
- if (par->channel_layout) {
- av_channel_layout_from_mask(&par->ch_layout, par->channel_layout);
- } else {
- par->ch_layout.order = AV_CHANNEL_ORDER_UNSPEC;
- par->ch_layout.nb_channels = par->channels;
- }
- }
-FF_ENABLE_DEPRECATION_WARNINGS
-#endif
-
if (!par->block_align)
par->block_align = par->ch_layout.nb_channels *
av_get_bits_per_sample(par->codec_id) >> 3;
diff --git a/libavformat/nutdec.c b/libavformat/nutdec.c
index afa27b827c..e2b39ccffb 100644
--- a/libavformat/nutdec.c
+++ b/libavformat/nutdec.c
@@ -969,10 +969,6 @@ static int read_sm_data(AVFormatContext *s, AVIOContext *bc, AVPacket *pkt, int
if (!dst)
return AVERROR(ENOMEM);
bytestream_put_le32(&dst,
-#if FF_API_OLD_CHANNEL_LAYOUT
- AV_SIDE_DATA_PARAM_CHANGE_CHANNEL_COUNT*(!!channels) +
- AV_SIDE_DATA_PARAM_CHANGE_CHANNEL_LAYOUT*(!!channel_layout) +
-#endif
AV_SIDE_DATA_PARAM_CHANGE_SAMPLE_RATE*(!!sample_rate) +
AV_SIDE_DATA_PARAM_CHANGE_DIMENSIONS*(!!(width|height))
);
diff --git a/libavformat/nutenc.c b/libavformat/nutenc.c
index a5198c7ca9..492559062a 100644
--- a/libavformat/nutenc.c
+++ b/libavformat/nutenc.c
@@ -916,21 +916,6 @@ static int write_sm_data(AVFormatContext *s, AVIOContext *bc, AVPacket *pkt, int
break;
case AV_PKT_DATA_PARAM_CHANGE:
flags = bytestream_get_le32(&data);
-#if FF_API_OLD_CHANNEL_LAYOUT
- if (flags & AV_SIDE_DATA_PARAM_CHANGE_CHANNEL_COUNT) {
- put_str(dyn_bc, "Channels");
- put_s(dyn_bc, bytestream_get_le32(&data));
- sm_data_count++;
- }
- if (flags & AV_SIDE_DATA_PARAM_CHANGE_CHANNEL_LAYOUT) {
- put_str(dyn_bc, "ChannelLayout");
- put_s(dyn_bc, -2);
- put_str(dyn_bc, "u64");
- put_v(dyn_bc, 8);
- avio_write(dyn_bc, data, 8); data+=8;
- sm_data_count++;
- }
-#endif
if (flags & AV_SIDE_DATA_PARAM_CHANGE_SAMPLE_RATE) {
put_str(dyn_bc, "SampleRate");
put_s(dyn_bc, bytestream_get_le32(&data));
diff --git a/libavformat/pcmdec.c b/libavformat/pcmdec.c
index 11ba0b5c0c..377e6d80a1 100644
--- a/libavformat/pcmdec.c
+++ b/libavformat/pcmdec.c
@@ -33,9 +33,6 @@
typedef struct PCMAudioDemuxerContext {
AVClass *class;
int sample_rate;
-#if FF_API_OLD_CHANNEL_LAYOUT
- int channels;
-#endif
AVChannelLayout ch_layout;
} PCMAudioDemuxerContext;
@@ -55,16 +52,9 @@ static int pcm_read_header(AVFormatContext *s)
par->codec_type = AVMEDIA_TYPE_AUDIO;
par->codec_id = s->iformat->raw_codec_id;
par->sample_rate = s1->sample_rate;
-#if FF_API_OLD_CHANNEL_LAYOUT
- if (s1->ch_layout.nb_channels) {
-#endif
ret = av_channel_layout_copy(&par->ch_layout, &s1->ch_layout);
if (ret < 0)
return ret;
-#if FF_API_OLD_CHANNEL_LAYOUT
- } else
- par->ch_layout.nb_channels = s1->channels;
-#endif
av_opt_get(s->pb, "mime_type", AV_OPT_SEARCH_CHILDREN, &mime_type);
if (mime_type && s->iformat->mime_type) {
@@ -114,12 +104,7 @@ static int pcm_read_header(AVFormatContext *s)
static const AVOption pcm_options[] = {
{ "sample_rate", "", offsetof(PCMAudioDemuxerContext, sample_rate), AV_OPT_TYPE_INT, {.i64 = 44100}, 0, INT_MAX, AV_OPT_FLAG_DECODING_PARAM },
-#if FF_API_OLD_CHANNEL_LAYOUT
- { "channels", "", offsetof(PCMAudioDemuxerContext, channels), AV_OPT_TYPE_INT, {.i64 = 1}, 0, INT_MAX, AV_OPT_FLAG_DECODING_PARAM | AV_OPT_FLAG_DEPRECATED },
- { "ch_layout", "", offsetof(PCMAudioDemuxerContext, ch_layout), AV_OPT_TYPE_CHLAYOUT, {.str = NULL}, 0, 0, AV_OPT_FLAG_DECODING_PARAM },
-#else
{ "ch_layout", "", offsetof(PCMAudioDemuxerContext, ch_layout), AV_OPT_TYPE_CHLAYOUT, {.str = "mono"}, 0, 0, AV_OPT_FLAG_DECODING_PARAM },
-#endif
{ NULL },
};
static const AVClass pcm_demuxer_class = {
@@ -180,12 +165,7 @@ PCMDEF(vidc, "PCM Archimedes VIDC", NULL, VIDC)
#if CONFIG_SLN_DEMUXER
static const AVOption sln_options[] = {
{ "sample_rate", "", offsetof(PCMAudioDemuxerContext, sample_rate), AV_OPT_TYPE_INT, {.i64 = 8000}, 0, INT_MAX, AV_OPT_FLAG_DECODING_PARAM },
-#if FF_API_OLD_CHANNEL_LAYOUT
- { "channels", "", offsetof(PCMAudioDemuxerContext, channels), AV_OPT_TYPE_INT, {.i64 = 1}, 0, INT_MAX, AV_OPT_FLAG_DECODING_PARAM | AV_OPT_FLAG_DEPRECATED },
- { "ch_layout", "", offsetof(PCMAudioDemuxerContext, ch_layout), AV_OPT_TYPE_CHLAYOUT, {.str = NULL}, 0, 0, AV_OPT_FLAG_DECODING_PARAM },
-#else
{ "ch_layout", "", offsetof(PCMAudioDemuxerContext, ch_layout), AV_OPT_TYPE_CHLAYOUT, {.str = "mono"}, 0, 0, AV_OPT_FLAG_DECODING_PARAM },
-#endif
{ NULL },
};
diff --git a/libavutil/channel_layout.c b/libavutil/channel_layout.c
index b59d798f29..35b03078c8 100644
--- a/libavutil/channel_layout.c
+++ b/libavutil/channel_layout.c
@@ -214,190 +214,6 @@ static const struct channel_layout_name channel_layout_map[] = {
{ "22.2", AV_CHANNEL_LAYOUT_22POINT2, },
};
-#if FF_API_OLD_CHANNEL_LAYOUT
-FF_DISABLE_DEPRECATION_WARNINGS
-static uint64_t get_channel_layout_single(const char *name, int name_len)
-{
- int i;
- char *end;
- int64_t layout;
-
- for (i = 0; i < FF_ARRAY_ELEMS(channel_layout_map); i++) {
- if (strlen(channel_layout_map[i].name) == name_len &&
- !memcmp(channel_layout_map[i].name, name, name_len))
- return channel_layout_map[i].layout.u.mask;
- }
- for (i = 0; i < FF_ARRAY_ELEMS(channel_names); i++)
- if (channel_names[i].name &&
- strlen(channel_names[i].name) == name_len &&
- !memcmp(channel_names[i].name, name, name_len))
- return (int64_t)1 << i;
-
- errno = 0;
- i = strtol(name, &end, 10);
-
- if (!errno && (end + 1 - name == name_len && *end == 'c'))
- return av_get_default_channel_layout(i);
-
- errno = 0;
- layout = strtoll(name, &end, 0);
- if (!errno && end - name == name_len)
- return FFMAX(layout, 0);
- return 0;
-}
-
-uint64_t av_get_channel_layout(const char *name)
-{
- const char *n, *e;
- const char *name_end = name + strlen(name);
- int64_t layout = 0, layout_single;
-
- for (n = name; n < name_end; n = e + 1) {
- for (e = n; e < name_end && *e != '+' && *e != '|'; e++);
- layout_single = get_channel_layout_single(n, e - n);
- if (!layout_single)
- return 0;
- layout |= layout_single;
- }
- return layout;
-}
-
-int av_get_extended_channel_layout(const char *name, uint64_t* channel_layout, int* nb_channels)
-{
- int nb = 0;
- char *end;
- uint64_t layout = av_get_channel_layout(name);
-
- if (layout) {
- *channel_layout = layout;
- *nb_channels = av_get_channel_layout_nb_channels(layout);
- return 0;
- }
-
- nb = strtol(name, &end, 10);
- if (!errno && *end == 'C' && *(end + 1) == '\0' && nb > 0 && nb < 64) {
- *channel_layout = 0;
- *nb_channels = nb;
- return 0;
- }
-
- return AVERROR(EINVAL);
-}
-
-void av_bprint_channel_layout(struct AVBPrint *bp,
- int nb_channels, uint64_t channel_layout)
-{
- int i;
-
- if (nb_channels <= 0)
- nb_channels = av_get_channel_layout_nb_channels(channel_layout);
-
- for (i = 0; i < FF_ARRAY_ELEMS(channel_layout_map); i++)
- if (nb_channels == channel_layout_map[i].layout.nb_channels &&
- channel_layout == channel_layout_map[i].layout.u.mask) {
- av_bprintf(bp, "%s", channel_layout_map[i].name);
- return;
- }
-
- av_bprintf(bp, "%d channels", nb_channels);
- if (channel_layout) {
- int i, ch;
- av_bprintf(bp, " (");
- for (i = 0, ch = 0; i < 64; i++) {
- if ((channel_layout & (UINT64_C(1) << i))) {
- const char *name = get_channel_name(i);
- if (name) {
- if (ch > 0)
- av_bprintf(bp, "+");
- av_bprintf(bp, "%s", name);
- }
- ch++;
- }
- }
- av_bprintf(bp, ")");
- }
-}
-
-void av_get_channel_layout_string(char *buf, int buf_size,
- int nb_channels, uint64_t channel_layout)
-{
- AVBPrint bp;
-
- av_bprint_init_for_buffer(&bp, buf, buf_size);
- av_bprint_channel_layout(&bp, nb_channels, channel_layout);
-}
-
-int av_get_channel_layout_nb_channels(uint64_t channel_layout)
-{
- return av_popcount64(channel_layout);
-}
-
-int64_t av_get_default_channel_layout(int nb_channels) {
- int i;
- for (i = 0; i < FF_ARRAY_ELEMS(channel_layout_map); i++)
- if (nb_channels == channel_layout_map[i].layout.nb_channels)
- return channel_layout_map[i].layout.u.mask;
- return 0;
-}
-
-int av_get_channel_layout_channel_index(uint64_t channel_layout,
- uint64_t channel)
-{
- if (!(channel_layout & channel) ||
- av_get_channel_layout_nb_channels(channel) != 1)
- return AVERROR(EINVAL);
- channel_layout &= channel - 1;
- return av_get_channel_layout_nb_channels(channel_layout);
-}
-
-const char *av_get_channel_name(uint64_t channel)
-{
- int i;
- if (av_get_channel_layout_nb_channels(channel) != 1)
- return NULL;
- for (i = 0; i < 64; i++)
- if ((1ULL<<i) & channel)
- return get_channel_name(i);
- return NULL;
-}
-
-const char *av_get_channel_description(uint64_t channel)
-{
- int i;
- if (av_get_channel_layout_nb_channels(channel) != 1)
- return NULL;
- for (i = 0; i < FF_ARRAY_ELEMS(channel_names); i++)
- if ((1ULL<<i) & channel)
- return channel_names[i].description;
- return NULL;
-}
-
-uint64_t av_channel_layout_extract_channel(uint64_t channel_layout, int index)
-{
- int i;
-
- if (av_get_channel_layout_nb_channels(channel_layout) <= index)
- return 0;
-
- for (i = 0; i < 64; i++) {
- if ((1ULL << i) & channel_layout && !index--)
- return 1ULL << i;
- }
- return 0;
-}
-
-int av_get_standard_channel_layout(unsigned index, uint64_t *layout,
- const char **name)
-{
- if (index >= FF_ARRAY_ELEMS(channel_layout_map))
- return AVERROR_EOF;
- if (layout) *layout = channel_layout_map[index].layout.u.mask;
- if (name) *name = channel_layout_map[index].name;
- return 0;
-}
-FF_ENABLE_DEPRECATION_WARNINGS
-#endif
-
int av_channel_layout_from_mask(AVChannelLayout *channel_layout,
uint64_t mask)
{
diff --git a/libavutil/channel_layout.h b/libavutil/channel_layout.h
index 8dc1a91401..32103a22cd 100644
--- a/libavutil/channel_layout.h
+++ b/libavutil/channel_layout.h
@@ -192,16 +192,6 @@ enum AVChannelOrder {
#define AV_CH_BOTTOM_FRONT_LEFT (1ULL << AV_CHAN_BOTTOM_FRONT_LEFT )
#define AV_CH_BOTTOM_FRONT_RIGHT (1ULL << AV_CHAN_BOTTOM_FRONT_RIGHT )
-#if FF_API_OLD_CHANNEL_LAYOUT
-/** Channel mask value used for AVCodecContext.request_channel_layout
- to indicate that the user requests the channel order of the decoder output
- to be the native codec channel order.
- @deprecated channel order is now indicated in a special field in
- AVChannelLayout
- */
-#define AV_CH_LAYOUT_NATIVE 0x8000000000000000ULL
-#endif
-
/**
* @}
* @defgroup channel_mask_c Audio channel layouts
@@ -430,146 +420,6 @@ typedef struct AVChannelLayout {
struct AVBPrint;
-#if FF_API_OLD_CHANNEL_LAYOUT
-/**
- * @name Deprecated Functions
- * @{
- */
-
-/**
- * Return a channel layout id that matches name, or 0 if no match is found.
- *
- * name can be one or several of the following notations,
- * separated by '+' or '|':
- * - the name of an usual channel layout (mono, stereo, 4.0, quad, 5.0,
- * 5.0(side), 5.1, 5.1(side), 7.1, 7.1(wide), downmix);
- * - the name of a single channel (FL, FR, FC, LFE, BL, BR, FLC, FRC, BC,
- * SL, SR, TC, TFL, TFC, TFR, TBL, TBC, TBR, DL, DR);
- * - a number of channels, in decimal, followed by 'c', yielding
- * the default channel layout for that number of channels (@see
- * av_get_default_channel_layout);
- * - a channel layout mask, in hexadecimal starting with "0x" (see the
- * AV_CH_* macros).
- *
- * Example: "stereo+FC" = "2c+FC" = "2c+1c" = "0x7"
- *
- * @deprecated use av_channel_layout_from_string()
- */
-attribute_deprecated
-uint64_t av_get_channel_layout(const char *name);
-
-/**
- * Return a channel layout and the number of channels based on the specified name.
- *
- * This function is similar to (@see av_get_channel_layout), but can also parse
- * unknown channel layout specifications.
- *
- * @param[in] name channel layout specification string
- * @param[out] channel_layout parsed channel layout (0 if unknown)
- * @param[out] nb_channels number of channels
- *
- * @return 0 on success, AVERROR(EINVAL) if the parsing fails.
- * @deprecated use av_channel_layout_from_string()
- */
-attribute_deprecated
-int av_get_extended_channel_layout(const char *name, uint64_t* channel_layout, int* nb_channels);
-
-/**
- * Return a description of a channel layout.
- * If nb_channels is <= 0, it is guessed from the channel_layout.
- *
- * @param buf put here the string containing the channel layout
- * @param buf_size size in bytes of the buffer
- * @param nb_channels number of channels
- * @param channel_layout channel layout bitset
- * @deprecated use av_channel_layout_describe()
- */
-attribute_deprecated
-void av_get_channel_layout_string(char *buf, int buf_size, int nb_channels, uint64_t channel_layout);
-
-/**
- * Append a description of a channel layout to a bprint buffer.
- * @deprecated use av_channel_layout_describe()
- */
-attribute_deprecated
-void av_bprint_channel_layout(struct AVBPrint *bp, int nb_channels, uint64_t channel_layout);
-
-/**
- * Return the number of channels in the channel layout.
- * @deprecated use AVChannelLayout.nb_channels
- */
-attribute_deprecated
-int av_get_channel_layout_nb_channels(uint64_t channel_layout);
-
-/**
- * Return default channel layout for a given number of channels.
- *
- * @deprecated use av_channel_layout_default()
- */
-attribute_deprecated
-int64_t av_get_default_channel_layout(int nb_channels);
-
-/**
- * Get the index of a channel in channel_layout.
- *
- * @param channel_layout channel layout bitset
- * @param channel a channel layout describing exactly one channel which must be
- * present in channel_layout.
- *
- * @return index of channel in channel_layout on success, a negative AVERROR
- * on error.
- *
- * @deprecated use av_channel_layout_index_from_channel()
- */
-attribute_deprecated
-int av_get_channel_layout_channel_index(uint64_t channel_layout,
- uint64_t channel);
-
-/**
- * Get the channel with the given index in channel_layout.
- * @deprecated use av_channel_layout_channel_from_index()
- */
-attribute_deprecated
-uint64_t av_channel_layout_extract_channel(uint64_t channel_layout, int index);
-
-/**
- * Get the name of a given channel.
- *
- * @return channel name on success, NULL on error.
- *
- * @deprecated use av_channel_name()
- */
-attribute_deprecated
-const char *av_get_channel_name(uint64_t channel);
-
-/**
- * Get the description of a given channel.
- *
- * @param channel a channel layout with a single channel
- * @return channel description on success, NULL on error
- * @deprecated use av_channel_description()
- */
-attribute_deprecated
-const char *av_get_channel_description(uint64_t channel);
-
-/**
- * Get the value and name of a standard channel layout.
- *
- * @param[in] index index in an internal list, starting at 0
- * @param[out] layout channel layout mask
- * @param[out] name name of the layout
- * @return 0 if the layout exists,
- * <0 if index is beyond the limits
- * @deprecated use av_channel_layout_standard()
- */
-attribute_deprecated
-int av_get_standard_channel_layout(unsigned index, uint64_t *layout,
- const char **name);
-/**
- * @}
- */
-#endif
-
/**
* Get a human readable string in an abbreviated form describing a given channel.
* This is the inverse function of @ref av_channel_from_string().
diff --git a/libavutil/frame.c b/libavutil/frame.c
index a3f07ca089..af887b1c76 100644
--- a/libavutil/frame.c
+++ b/libavutil/frame.c
@@ -28,13 +28,6 @@
#include "samplefmt.h"
#include "hwcontext.h"
-#if FF_API_OLD_CHANNEL_LAYOUT
-#define CHECK_CHANNELS_CONSISTENCY(frame) \
- av_assert2(!(frame)->channel_layout || \
- (frame)->channels == \
- av_get_channel_layout_nb_channels((frame)->channel_layout))
-#endif
-
static void get_frame_defaults(AVFrame *frame)
{
memset(frame, 0, sizeof(*frame));
@@ -181,21 +174,6 @@ static int get_audio_buffer(AVFrame *frame, int align)
int channels, planes;
int ret;
-#if FF_API_OLD_CHANNEL_LAYOUT
-FF_DISABLE_DEPRECATION_WARNINGS
- if (!frame->ch_layout.nb_channels) {
- if (frame->channel_layout) {
- av_channel_layout_from_mask(&frame->ch_layout, frame->channel_layout);
- } else {
- frame->ch_layout.nb_channels = frame->channels;
- frame->ch_layout.order = AV_CHANNEL_ORDER_UNSPEC;
- }
- }
- frame->channels = frame->ch_layout.nb_channels;
- frame->channel_layout = frame->ch_layout.order == AV_CHANNEL_ORDER_NATIVE ?
- frame->ch_layout.u.mask : 0;
-FF_ENABLE_DEPRECATION_WARNINGS
-#endif
channels = frame->ch_layout.nb_channels;
planes = planar ? channels : 1;
if (!frame->linesize[0]) {
@@ -245,17 +223,11 @@ int av_frame_get_buffer(AVFrame *frame, int align)
if (frame->format < 0)
return AVERROR(EINVAL);
-FF_DISABLE_DEPRECATION_WARNINGS
if (frame->width > 0 && frame->height > 0)
return get_video_buffer(frame, align);
else if (frame->nb_samples > 0 &&
- (av_channel_layout_check(&frame->ch_layout)
-#if FF_API_OLD_CHANNEL_LAYOUT
- || frame->channel_layout || frame->channels > 0
-#endif
- ))
+ (av_channel_layout_check(&frame->ch_layout)))
return get_audio_buffer(frame, align);
-FF_ENABLE_DEPRECATION_WARNINGS
return AVERROR(EINVAL);
}
@@ -363,11 +335,6 @@ int av_frame_ref(AVFrame *dst, const AVFrame *src)
int ret = 0;
av_assert1(dst->width == 0 && dst->height == 0);
-#if FF_API_OLD_CHANNEL_LAYOUT
-FF_DISABLE_DEPRECATION_WARNINGS
- av_assert1(dst->channels == 0);
-FF_ENABLE_DEPRECATION_WARNINGS
-#endif
av_assert1(dst->ch_layout.nb_channels == 0 &&
dst->ch_layout.order == AV_CHANNEL_ORDER_UNSPEC);
@@ -375,31 +342,14 @@ FF_ENABLE_DEPRECATION_WARNINGS
dst->width = src->width;
dst->height = src->height;
dst->nb_samples = src->nb_samples;
-#if FF_API_OLD_CHANNEL_LAYOUT
-FF_DISABLE_DEPRECATION_WARNINGS
- dst->channels = src->channels;
- dst->channel_layout = src->channel_layout;
- if (!av_channel_layout_check(&src->ch_layout)) {
- if (src->channel_layout)
- av_channel_layout_from_mask(&dst->ch_layout, src->channel_layout);
- else {
- dst->ch_layout.nb_channels = src->channels;
- dst->ch_layout.order = AV_CHANNEL_ORDER_UNSPEC;
- }
- }
-FF_ENABLE_DEPRECATION_WARNINGS
-#endif
ret = frame_copy_props(dst, src, 0);
if (ret < 0)
goto fail;
- // this check is needed only until FF_API_OLD_CHANNEL_LAYOUT is out
- if (av_channel_layout_check(&src->ch_layout)) {
- ret = av_channel_layout_copy(&dst->ch_layout, &src->ch_layout);
- if (ret < 0)
- goto fail;
- }
+ ret = av_channel_layout_copy(&dst->ch_layout, &src->ch_layout);
+ if (ret < 0)
+ goto fail;
/* duplicate the frame data if it's not refcounted */
if (!src->buf[0]) {
@@ -503,27 +453,10 @@ int av_frame_replace(AVFrame *dst, const AVFrame *src)
dst->width = src->width;
dst->height = src->height;
dst->nb_samples = src->nb_samples;
-#if FF_API_OLD_CHANNEL_LAYOUT
-FF_DISABLE_DEPRECATION_WARNINGS
- dst->channels = src->channels;
- dst->channel_layout = src->channel_layout;
- if (!av_channel_layout_check(&src->ch_layout)) {
- av_channel_layout_uninit(&dst->ch_layout);
- if (src->channel_layout)
- av_channel_layout_from_mask(&dst->ch_layout, src->channel_layout);
- else {
- dst->ch_layout.nb_channels = src->channels;
- dst->ch_layout.order = AV_CHANNEL_ORDER_UNSPEC;
- }
- } else {
-#endif
+
ret = av_channel_layout_copy(&dst->ch_layout, &src->ch_layout);
if (ret < 0)
goto fail;
-#if FF_API_OLD_CHANNEL_LAYOUT
- }
-FF_ENABLE_DEPRECATION_WARNINGS
-#endif
wipe_side_data(dst);
av_dict_free(&dst->metadata);
@@ -649,11 +582,6 @@ void av_frame_unref(AVFrame *frame)
void av_frame_move_ref(AVFrame *dst, AVFrame *src)
{
av_assert1(dst->width == 0 && dst->height == 0);
-#if FF_API_OLD_CHANNEL_LAYOUT
-FF_DISABLE_DEPRECATION_WARNINGS
- av_assert1(dst->channels == 0);
-FF_ENABLE_DEPRECATION_WARNINGS
-#endif
av_assert1(dst->ch_layout.nb_channels == 0 &&
dst->ch_layout.order == AV_CHANNEL_ORDER_UNSPEC);
@@ -692,12 +620,6 @@ int av_frame_make_writable(AVFrame *frame)
tmp.format = frame->format;
tmp.width = frame->width;
tmp.height = frame->height;
-#if FF_API_OLD_CHANNEL_LAYOUT
-FF_DISABLE_DEPRECATION_WARNINGS
- tmp.channels = frame->channels;
- tmp.channel_layout = frame->channel_layout;
-FF_ENABLE_DEPRECATION_WARNINGS
-#endif
tmp.nb_samples = frame->nb_samples;
ret = av_channel_layout_copy(&tmp.ch_layout, &frame->ch_layout);
if (ret < 0) {
@@ -745,15 +667,6 @@ AVBufferRef *av_frame_get_plane_buffer(const AVFrame *frame, int plane)
if (frame->nb_samples) {
int channels = frame->ch_layout.nb_channels;
-
-#if FF_API_OLD_CHANNEL_LAYOUT
-FF_DISABLE_DEPRECATION_WARNINGS
- if (!channels) {
- channels = frame->channels;
- CHECK_CHANNELS_CONSISTENCY(frame);
- }
-FF_ENABLE_DEPRECATION_WARNINGS
-#endif
if (!channels)
return NULL;
planes = av_sample_fmt_is_planar(frame->format) ? channels : 1;
@@ -860,30 +773,8 @@ static int frame_copy_audio(AVFrame *dst, const AVFrame *src)
int channels = dst->ch_layout.nb_channels;
int planes = planar ? channels : 1;
-#if FF_API_OLD_CHANNEL_LAYOUT
-FF_DISABLE_DEPRECATION_WARNINGS
- if (!channels || !src->ch_layout.nb_channels) {
- if (dst->channels != src->channels ||
- dst->channel_layout != src->channel_layout)
- return AVERROR(EINVAL);
- CHECK_CHANNELS_CONSISTENCY(src);
- }
- if (!channels) {
- channels = dst->channels;
- planes = planar ? channels : 1;
- }
-FF_ENABLE_DEPRECATION_WARNINGS
-#endif
-
if (dst->nb_samples != src->nb_samples ||
-#if FF_API_OLD_CHANNEL_LAYOUT
- (av_channel_layout_check(&dst->ch_layout) &&
- av_channel_layout_check(&src->ch_layout) &&
-#endif
av_channel_layout_compare(&dst->ch_layout, &src->ch_layout))
-#if FF_API_OLD_CHANNEL_LAYOUT
- )
-#endif
return AVERROR(EINVAL);
for (int i = 0; i < planes; i++)
@@ -901,17 +792,11 @@ int av_frame_copy(AVFrame *dst, const AVFrame *src)
if (dst->format != src->format || dst->format < 0)
return AVERROR(EINVAL);
-FF_DISABLE_DEPRECATION_WARNINGS
if (dst->width > 0 && dst->height > 0)
return frame_copy_video(dst, src);
else if (dst->nb_samples > 0 &&
- (av_channel_layout_check(&dst->ch_layout)
-#if FF_API_OLD_CHANNEL_LAYOUT
- || dst->channels > 0
-#endif
- ))
+ (av_channel_layout_check(&dst->ch_layout)))
return frame_copy_audio(dst, src);
-FF_ENABLE_DEPRECATION_WARNINGS
return AVERROR(EINVAL);
}
diff --git a/libavutil/frame.h b/libavutil/frame.h
index c0c1b23db7..96463def3b 100644
--- a/libavutil/frame.h
+++ b/libavutil/frame.h
@@ -566,15 +566,6 @@ typedef struct AVFrame {
*/
int sample_rate;
-#if FF_API_OLD_CHANNEL_LAYOUT
- /**
- * Channel layout of the audio data.
- * @deprecated use ch_layout instead
- */
- attribute_deprecated
- uint64_t channel_layout;
-#endif
-
/**
* AVBuffer references backing the data for this frame. All the pointers in
* data and extended_data must point inside one of the buffers in buf or
@@ -720,17 +711,6 @@ typedef struct AVFrame {
#define FF_DECODE_ERROR_CONCEALMENT_ACTIVE 4
#define FF_DECODE_ERROR_DECODE_SLICES 8
-#if FF_API_OLD_CHANNEL_LAYOUT
- /**
- * number of audio channels, only used for audio.
- * - encoding: unused
- * - decoding: Read by user.
- * @deprecated use ch_layout instead
- */
- attribute_deprecated
- int channels;
-#endif
-
#if FF_API_FRAME_PKT
/**
* size of the corresponding packet containing the compressed
diff --git a/libavutil/opt.c b/libavutil/opt.c
index 0908751752..183c7e4108 100644
--- a/libavutil/opt.c
+++ b/libavutil/opt.c
@@ -72,11 +72,6 @@ static int read_number(const AVOption *o, const void *dst, double *num, int *den
case AV_OPT_TYPE_INT:
*intnum = *(int *)dst;
return 0;
-#if FF_API_OLD_CHANNEL_LAYOUT
-FF_DISABLE_DEPRECATION_WARNINGS
- case AV_OPT_TYPE_CHANNEL_LAYOUT:
-FF_ENABLE_DEPRECATION_WARNINGS
-#endif
case AV_OPT_TYPE_DURATION:
case AV_OPT_TYPE_INT64:
case AV_OPT_TYPE_UINT64:
@@ -131,11 +126,6 @@ static int write_number(void *obj, const AVOption *o, void *dst, double num, int
*(int *)dst = llrint(num / den) * intnum;
break;
case AV_OPT_TYPE_DURATION:
-#if FF_API_OLD_CHANNEL_LAYOUT
-FF_DISABLE_DEPRECATION_WARNINGS
- case AV_OPT_TYPE_CHANNEL_LAYOUT:
-FF_ENABLE_DEPRECATION_WARNINGS
-#endif
case AV_OPT_TYPE_INT64:{
double d = num / den;
if (intnum == 1 && d == (double)INT64_MAX) {
@@ -496,9 +486,6 @@ FF_DISABLE_DEPRECATION_WARNINGS
o->type != AV_OPT_TYPE_PIXEL_FMT && o->type != AV_OPT_TYPE_SAMPLE_FMT &&
o->type != AV_OPT_TYPE_IMAGE_SIZE &&
o->type != AV_OPT_TYPE_DURATION && o->type != AV_OPT_TYPE_COLOR &&
-#if FF_API_OLD_CHANNEL_LAYOUT
- o->type != AV_OPT_TYPE_CHANNEL_LAYOUT &&
-#endif
o->type != AV_OPT_TYPE_BOOL))
return AVERROR(EINVAL);
FF_ENABLE_DEPRECATION_WARNINGS
@@ -557,23 +544,6 @@ FF_ENABLE_DEPRECATION_WARNINGS
}
case AV_OPT_TYPE_COLOR:
return set_string_color(obj, o, val, dst);
-#if FF_API_OLD_CHANNEL_LAYOUT
-FF_DISABLE_DEPRECATION_WARNINGS
- case AV_OPT_TYPE_CHANNEL_LAYOUT:
- if (!val || !strcmp(val, "none")) {
- *(int64_t *)dst = 0;
- } else {
- int64_t cl = av_get_channel_layout(val);
- if (!cl) {
- av_log(obj, AV_LOG_ERROR, "Unable to parse option value \"%s\" as channel layout\n", val);
- ret = AVERROR(EINVAL);
- }
- *(int64_t *)dst = cl;
- return ret;
- }
- break;
-FF_ENABLE_DEPRECATION_WARNINGS
-#endif
case AV_OPT_TYPE_CHLAYOUT:
ret = set_string_channel_layout(obj, o, val, dst);
if (ret < 0) {
@@ -744,26 +714,6 @@ int av_opt_set_sample_fmt(void *obj, const char *name, enum AVSampleFormat fmt,
return set_format(obj, name, fmt, search_flags, AV_OPT_TYPE_SAMPLE_FMT, "sample", AV_SAMPLE_FMT_NB);
}
-#if FF_API_OLD_CHANNEL_LAYOUT
-FF_DISABLE_DEPRECATION_WARNINGS
-int av_opt_set_channel_layout(void *obj, const char *name, int64_t cl, int search_flags)
-{
- void *target_obj;
- const AVOption *o = av_opt_find2(obj, name, NULL, 0, search_flags, &target_obj);
-
- if (!o || !target_obj)
- return AVERROR_OPTION_NOT_FOUND;
- if (o->type != AV_OPT_TYPE_CHANNEL_LAYOUT) {
- av_log(obj, AV_LOG_ERROR,
- "The value set by option '%s' is not a channel layout.\n", o->name);
- return AVERROR(EINVAL);
- }
- *(int64_t *)(((uint8_t *)target_obj) + o->offset) = cl;
- return 0;
-}
-FF_ENABLE_DEPRECATION_WARNINGS
-#endif
-
int av_opt_set_dict_val(void *obj, const char *name, const AVDictionary *val,
int search_flags)
{
@@ -927,15 +877,6 @@ int av_opt_get(void *obj, const char *name, int search_flags, uint8_t **out_val)
(int)((uint8_t *)dst)[0], (int)((uint8_t *)dst)[1],
(int)((uint8_t *)dst)[2], (int)((uint8_t *)dst)[3]);
break;
-#if FF_API_OLD_CHANNEL_LAYOUT
-FF_DISABLE_DEPRECATION_WARNINGS
- case AV_OPT_TYPE_CHANNEL_LAYOUT:
-
- i64 = *(int64_t *)dst;
- ret = snprintf(buf, sizeof(buf), "0x%"PRIx64, i64);
- break;
-FF_ENABLE_DEPRECATION_WARNINGS
-#endif
case AV_OPT_TYPE_CHLAYOUT:
ret = av_channel_layout_describe(dst, buf, sizeof(buf));
break;
@@ -1080,27 +1021,6 @@ int av_opt_get_sample_fmt(void *obj, const char *name, int search_flags, enum AV
return get_format(obj, name, search_flags, out_fmt, AV_OPT_TYPE_SAMPLE_FMT, "sample");
}
-#if FF_API_OLD_CHANNEL_LAYOUT
-FF_DISABLE_DEPRECATION_WARNINGS
-int av_opt_get_channel_layout(void *obj, const char *name, int search_flags, int64_t *cl)
-{
- void *dst, *target_obj;
- const AVOption *o = av_opt_find2(obj, name, NULL, 0, search_flags, &target_obj);
- if (!o || !target_obj)
- return AVERROR_OPTION_NOT_FOUND;
- if (o->type != AV_OPT_TYPE_CHANNEL_LAYOUT) {
- av_log(obj, AV_LOG_ERROR,
- "The value for option '%s' is not a channel layout.\n", name);
- return AVERROR(EINVAL);
- }
-
- dst = ((uint8_t*)target_obj) + o->offset;
- *cl = *(int64_t *)dst;
- return 0;
-}
-FF_ENABLE_DEPRECATION_WARNINGS
-#endif
-
int av_opt_get_chlayout(void *obj, const char *name, int search_flags, AVChannelLayout *cl)
{
void *dst, *target_obj;
@@ -1309,11 +1229,6 @@ static void opt_list(void *obj, void *av_log_obj, const char *unit,
av_log(av_log_obj, AV_LOG_INFO, "%-12s ", "<color>");
break;
case AV_OPT_TYPE_CHLAYOUT:
-#if FF_API_OLD_CHANNEL_LAYOUT
-FF_DISABLE_DEPRECATION_WARNINGS
- case AV_OPT_TYPE_CHANNEL_LAYOUT:
-FF_ENABLE_DEPRECATION_WARNINGS
-#endif
av_log(av_log_obj, AV_LOG_INFO, "%-12s ", "<channel_layout>");
break;
case AV_OPT_TYPE_BOOL:
@@ -1427,13 +1342,6 @@ FF_ENABLE_DEPRECATION_WARNINGS
case AV_OPT_TYPE_CHLAYOUT:
av_log(av_log_obj, AV_LOG_INFO, "\"%s\"", opt->default_val.str);
break;
-#if FF_API_OLD_CHANNEL_LAYOUT
-FF_DISABLE_DEPRECATION_WARNINGS
- case AV_OPT_TYPE_CHANNEL_LAYOUT:
- av_log(av_log_obj, AV_LOG_INFO, "0x%"PRIx64, opt->default_val.i64);
- break;
-FF_ENABLE_DEPRECATION_WARNINGS
-#endif
}
av_log(av_log_obj, AV_LOG_INFO, ")");
}
@@ -1483,11 +1391,6 @@ void av_opt_set_defaults2(void *s, int mask, int flags)
case AV_OPT_TYPE_INT64:
case AV_OPT_TYPE_UINT64:
case AV_OPT_TYPE_DURATION:
-#if FF_API_OLD_CHANNEL_LAYOUT
-FF_DISABLE_DEPRECATION_WARNINGS
- case AV_OPT_TYPE_CHANNEL_LAYOUT:
-FF_ENABLE_DEPRECATION_WARNINGS
-#endif
case AV_OPT_TYPE_PIXEL_FMT:
case AV_OPT_TYPE_SAMPLE_FMT:
write_number(s, opt, dst, 1, 1, opt->default_val.i64);
@@ -1851,11 +1754,6 @@ static int opt_size(enum AVOptionType type)
case AV_OPT_TYPE_FLAGS:
return sizeof(int);
case AV_OPT_TYPE_DURATION:
-#if FF_API_OLD_CHANNEL_LAYOUT
-FF_DISABLE_DEPRECATION_WARNINGS
- case AV_OPT_TYPE_CHANNEL_LAYOUT:
-FF_ENABLE_DEPRECATION_WARNINGS
-#endif
case AV_OPT_TYPE_INT64:
case AV_OPT_TYPE_UINT64:
return sizeof(int64_t);
@@ -1995,11 +1893,6 @@ int av_opt_query_ranges_default(AVOptionRanges **ranges_arg, void *obj, const ch
case AV_OPT_TYPE_DOUBLE:
case AV_OPT_TYPE_DURATION:
case AV_OPT_TYPE_COLOR:
-#if FF_API_OLD_CHANNEL_LAYOUT
-FF_DISABLE_DEPRECATION_WARNINGS
- case AV_OPT_TYPE_CHANNEL_LAYOUT:
-FF_ENABLE_DEPRECATION_WARNINGS
-#endif
break;
case AV_OPT_TYPE_STRING:
range->component_min = 0;
@@ -2079,11 +1972,6 @@ int av_opt_is_set_to_default(void *obj, const AVOption *o)
case AV_OPT_TYPE_PIXEL_FMT:
case AV_OPT_TYPE_SAMPLE_FMT:
case AV_OPT_TYPE_INT:
-#if FF_API_OLD_CHANNEL_LAYOUT
-FF_DISABLE_DEPRECATION_WARNINGS
- case AV_OPT_TYPE_CHANNEL_LAYOUT:
-FF_ENABLE_DEPRECATION_WARNINGS
-#endif
case AV_OPT_TYPE_DURATION:
case AV_OPT_TYPE_INT64:
case AV_OPT_TYPE_UINT64:
diff --git a/libavutil/opt.h b/libavutil/opt.h
index 461b5d3b6b..3ceb4f86eb 100644
--- a/libavutil/opt.h
+++ b/libavutil/opt.h
@@ -238,9 +238,6 @@ enum AVOptionType{
AV_OPT_TYPE_VIDEO_RATE, ///< offset must point to AVRational
AV_OPT_TYPE_DURATION,
AV_OPT_TYPE_COLOR,
-#if FF_API_OLD_CHANNEL_LAYOUT
- AV_OPT_TYPE_CHANNEL_LAYOUT,
-#endif
AV_OPT_TYPE_BOOL,
AV_OPT_TYPE_CHLAYOUT,
};
@@ -697,10 +694,6 @@ int av_opt_set_image_size(void *obj, const char *name, int w, int h, int search_
int av_opt_set_pixel_fmt (void *obj, const char *name, enum AVPixelFormat fmt, int search_flags);
int av_opt_set_sample_fmt(void *obj, const char *name, enum AVSampleFormat fmt, int search_flags);
int av_opt_set_video_rate(void *obj, const char *name, AVRational val, int search_flags);
-#if FF_API_OLD_CHANNEL_LAYOUT
-attribute_deprecated
-int av_opt_set_channel_layout(void *obj, const char *name, int64_t ch_layout, int search_flags);
-#endif
int av_opt_set_chlayout(void *obj, const char *name, const AVChannelLayout *layout, int search_flags);
/**
* @note Any old dictionary present is discarded and replaced with a copy of the new one. The
@@ -756,10 +749,6 @@ int av_opt_get_image_size(void *obj, const char *name, int search_flags, int *w_
int av_opt_get_pixel_fmt (void *obj, const char *name, int search_flags, enum AVPixelFormat *out_fmt);
int av_opt_get_sample_fmt(void *obj, const char *name, int search_flags, enum AVSampleFormat *out_fmt);
int av_opt_get_video_rate(void *obj, const char *name, int search_flags, AVRational *out_val);
-#if FF_API_OLD_CHANNEL_LAYOUT
-attribute_deprecated
-int av_opt_get_channel_layout(void *obj, const char *name, int search_flags, int64_t *ch_layout);
-#endif
int av_opt_get_chlayout(void *obj, const char *name, int search_flags, AVChannelLayout *layout);
/**
* @param[out] out_val The returned dictionary is a copy of the actual value and must
diff --git a/libavutil/version.h b/libavutil/version.h
index 0f14fc59bb..1936155e46 100644
--- a/libavutil/version.h
+++ b/libavutil/version.h
@@ -105,7 +105,6 @@
* @{
*/
-#define FF_API_OLD_CHANNEL_LAYOUT (LIBAVUTIL_VERSION_MAJOR < 59)
#define FF_API_AV_FOPEN_UTF8 (LIBAVUTIL_VERSION_MAJOR < 59)
#define FF_API_PKT_DURATION (LIBAVUTIL_VERSION_MAJOR < 59)
#define FF_API_REORDERED_OPAQUE (LIBAVUTIL_VERSION_MAJOR < 59)
diff --git a/libswresample/options.c b/libswresample/options.c
index d8cf85c053..25c955da63 100644
--- a/libswresample/options.c
+++ b/libswresample/options.c
@@ -37,18 +37,6 @@
#define DEPREC AV_OPT_FLAG_DEPRECATED
static const AVOption options[]={
-#if FF_API_OLD_CHANNEL_LAYOUT
-{"ich" , "set input channel count (Deprecated, use ichl)",
- OFFSET(user_in_ch_count ), AV_OPT_TYPE_INT, {.i64=0 }, 0 , SWR_CH_MAX, PARAM|DEPREC},
-{"in_channel_count" , "set input channel count (Deprecated, use in_chlayout)",
- OFFSET(user_in_ch_count ), AV_OPT_TYPE_INT, {.i64=0 }, 0 , SWR_CH_MAX, PARAM|DEPREC},
-{"och" , "set output channel count (Deprecated, use ochl)",
- OFFSET(user_out_ch_count ), AV_OPT_TYPE_INT, {.i64=0 }, 0 , SWR_CH_MAX, PARAM|DEPREC},
-{"out_channel_count" , "set output channel count (Deprecated, use out_chlayout)",
- OFFSET(user_out_ch_count ), AV_OPT_TYPE_INT, {.i64=0 }, 0 , SWR_CH_MAX, PARAM|DEPREC},
-{"uch" , "set used channel count" , OFFSET(user_used_ch_count), AV_OPT_TYPE_INT, {.i64=0 }, 0 , SWR_CH_MAX, PARAM|DEPREC},
-{"used_channel_count" , "set used channel count" , OFFSET(user_used_ch_count), AV_OPT_TYPE_INT, {.i64=0 }, 0 , SWR_CH_MAX, PARAM|DEPREC},
-#endif
{"isr" , "set input sample rate" , OFFSET( in_sample_rate), AV_OPT_TYPE_INT , {.i64=0 }, 0 , INT_MAX , PARAM},
{"in_sample_rate" , "set input sample rate" , OFFSET( in_sample_rate), AV_OPT_TYPE_INT , {.i64=0 }, 0 , INT_MAX , PARAM},
{"osr" , "set output sample rate" , OFFSET(out_sample_rate), AV_OPT_TYPE_INT , {.i64=0 }, 0 , INT_MAX , PARAM},
@@ -59,16 +47,6 @@ static const AVOption options[]={
{"out_sample_fmt" , "set output sample format" , OFFSET(out_sample_fmt ), AV_OPT_TYPE_SAMPLE_FMT , {.i64=AV_SAMPLE_FMT_NONE}, -1 , INT_MAX, PARAM},
{"tsf" , "set internal sample format" , OFFSET(user_int_sample_fmt), AV_OPT_TYPE_SAMPLE_FMT , {.i64=AV_SAMPLE_FMT_NONE}, -1 , INT_MAX, PARAM},
{"internal_sample_fmt" , "set internal sample format" , OFFSET(user_int_sample_fmt), AV_OPT_TYPE_SAMPLE_FMT , {.i64=AV_SAMPLE_FMT_NONE}, -1 , INT_MAX, PARAM},
-#if FF_API_OLD_CHANNEL_LAYOUT
-{"icl" , "set input channel layout (Deprecated, use ichl)",
- OFFSET(user_in_ch_layout), AV_OPT_TYPE_CHANNEL_LAYOUT, {.i64=0 }, INT64_MIN, INT64_MAX, PARAM|DEPREC, "channel_layout"},
-{"in_channel_layout" , "set input channel layout (Deprecated, use in_chlayout)",
- OFFSET(user_in_ch_layout), AV_OPT_TYPE_CHANNEL_LAYOUT, {.i64=0 }, INT64_MIN, INT64_MAX, PARAM|DEPREC, "channel_layout"},
-{"ocl" , "set output channel layout (Deprecated, use ochl)",
- OFFSET(user_out_ch_layout), AV_OPT_TYPE_CHANNEL_LAYOUT, {.i64=0 }, INT64_MIN, INT64_MAX, PARAM|DEPREC, "channel_layout"},
-{"out_channel_layout" , "set output channel layout (Deprecated, use out_chlayout)",
- OFFSET(user_out_ch_layout), AV_OPT_TYPE_CHANNEL_LAYOUT, {.i64=0 }, INT64_MIN, INT64_MAX, PARAM|DEPREC, "channel_layout"},
-#endif
{"ichl" , "set input channel layout" , OFFSET(user_in_chlayout ), AV_OPT_TYPE_CHLAYOUT, {.str=NULL }, 0, 0 , PARAM, "chlayout"},
{"in_chlayout" , "set input channel layout" , OFFSET(user_in_chlayout ), AV_OPT_TYPE_CHLAYOUT, {.str=NULL }, 0, 0 , PARAM, "chlayout"},
{"ochl" , "set output channel layout" , OFFSET(user_out_chlayout), AV_OPT_TYPE_CHLAYOUT, {.str=NULL }, 0, 0 , PARAM, "chlayout"},
diff --git a/libswresample/rematrix.c b/libswresample/rematrix.c
index 79e8a43eac..fb4d9aecf0 100644
--- a/libswresample/rematrix.c
+++ b/libswresample/rematrix.c
@@ -64,37 +64,14 @@
int swr_set_matrix(struct SwrContext *s, const double *matrix, int stride)
{
int nb_in, nb_out, in, out;
- int user_in_chlayout_nb_channels, user_out_chlayout_nb_channels;
if (!s || s->in_convert) // s needs to be allocated but not initialized
return AVERROR(EINVAL);
memset(s->matrix, 0, sizeof(s->matrix));
memset(s->matrix_flt, 0, sizeof(s->matrix_flt));
-#if FF_API_OLD_CHANNEL_LAYOUT
-FF_DISABLE_DEPRECATION_WARNINGS
- user_in_chlayout_nb_channels = av_get_channel_layout_nb_channels(s->user_in_ch_layout);
-FF_ENABLE_DEPRECATION_WARNINGS
- if (!user_in_chlayout_nb_channels)
-#endif
- user_in_chlayout_nb_channels = s->user_in_chlayout.nb_channels;
- nb_in =
-#if FF_API_OLD_CHANNEL_LAYOUT
- (s->user_in_ch_count > 0) ? s->user_in_ch_count :
-#endif
- user_in_chlayout_nb_channels;
-#if FF_API_OLD_CHANNEL_LAYOUT
-FF_DISABLE_DEPRECATION_WARNINGS
- user_out_chlayout_nb_channels = av_get_channel_layout_nb_channels(s->user_out_ch_layout);
-FF_ENABLE_DEPRECATION_WARNINGS
- if (!user_out_chlayout_nb_channels)
-#endif
- user_out_chlayout_nb_channels = s->user_out_chlayout.nb_channels;
- nb_out =
-#if FF_API_OLD_CHANNEL_LAYOUT
- (s->user_out_ch_count > 0) ? s->user_out_ch_count :
-#endif
- user_out_chlayout_nb_channels;
+ nb_in = s->user_in_chlayout.nb_channels;
+ nb_out = s->user_out_chlayout.nb_channels;
for (out = 0; out < nb_out; out++) {
for (in = 0; in < nb_in; in++)
s->matrix_flt[out][in] = s->matrix[out][in] = matrix[in];
@@ -146,27 +123,6 @@ static int sane_layout(AVChannelLayout *ch_layout) {
return 1;
}
-#if FF_API_OLD_CHANNEL_LAYOUT
-av_cold int swr_build_matrix(uint64_t in_ch_layout_param, uint64_t out_ch_layout_param,
- double center_mix_level, double surround_mix_level,
- double lfe_mix_level, double maxval,
- double rematrix_volume, double *matrix_param,
- int stride, enum AVMatrixEncoding matrix_encoding, void *log_context)
-{
- AVChannelLayout in_ch_layout = { 0 }, out_ch_layout = { 0 };
- int ret;
-
- ret = av_channel_layout_from_mask(&in_ch_layout, in_ch_layout_param);
- ret |= av_channel_layout_from_mask(&out_ch_layout, out_ch_layout_param);
- if (ret < 0)
- return ret;
-
- return swr_build_matrix2(&in_ch_layout, &out_ch_layout, center_mix_level, surround_mix_level,
- lfe_mix_level, maxval, rematrix_volume, matrix_param,
- stride, matrix_encoding, log_context);
-}
-#endif
-
av_cold int swr_build_matrix2(const AVChannelLayout *in_layout, const AVChannelLayout *out_layout,
double center_mix_level, double surround_mix_level,
double lfe_mix_level, double maxval,
diff --git a/libswresample/swresample.c b/libswresample/swresample.c
index 1cf83a803f..7e1a9997f1 100644
--- a/libswresample/swresample.c
+++ b/libswresample/swresample.c
@@ -36,52 +36,6 @@ int swr_set_channel_mapping(struct SwrContext *s, const int *channel_map){
return 0;
}
-#if FF_API_OLD_CHANNEL_LAYOUT
-FF_DISABLE_DEPRECATION_WARNINGS
-struct SwrContext *swr_alloc_set_opts(struct SwrContext *s,
- int64_t out_ch_layout, enum AVSampleFormat out_sample_fmt, int out_sample_rate,
- int64_t in_ch_layout, enum AVSampleFormat in_sample_fmt, int in_sample_rate,
- int log_offset, void *log_ctx){
- if(!s) s= swr_alloc();
- if(!s) return NULL;
-
- s->log_level_offset= log_offset;
- s->log_ctx= log_ctx;
-
- if (av_opt_set_int(s, "ocl", out_ch_layout, 0) < 0)
- goto fail;
-
- if (av_opt_set_int(s, "osf", out_sample_fmt, 0) < 0)
- goto fail;
-
- if (av_opt_set_int(s, "osr", out_sample_rate, 0) < 0)
- goto fail;
-
- if (av_opt_set_int(s, "icl", in_ch_layout, 0) < 0)
- goto fail;
-
- if (av_opt_set_int(s, "isf", in_sample_fmt, 0) < 0)
- goto fail;
-
- if (av_opt_set_int(s, "isr", in_sample_rate, 0) < 0)
- goto fail;
-
- if (av_opt_set_int(s, "ich", av_get_channel_layout_nb_channels(s-> user_in_ch_layout), 0) < 0)
- goto fail;
-
- if (av_opt_set_int(s, "och", av_get_channel_layout_nb_channels(s->user_out_ch_layout), 0) < 0)
- goto fail;
-
- av_opt_set_int(s, "uch", 0, 0);
- return s;
-fail:
- av_log(s, AV_LOG_ERROR, "Failed to set option\n");
- swr_free(&s);
- return NULL;
-}
-FF_ENABLE_DEPRECATION_WARNINGS
-#endif
-
int swr_alloc_set_opts2(struct SwrContext **ps,
const AVChannelLayout *out_ch_layout, enum AVSampleFormat out_sample_fmt, int out_sample_rate,
const AVChannelLayout *in_ch_layout, enum AVSampleFormat in_sample_fmt, int in_sample_rate,
@@ -117,14 +71,6 @@ int swr_alloc_set_opts2(struct SwrContext **ps,
av_opt_set_int(s, "uch", 0, 0);
-#if FF_API_OLD_CHANNEL_LAYOUT
- // Clear old API values so they don't take precedence in swr_init()
- av_opt_set_int(s, "icl", 0, 0);
- av_opt_set_int(s, "ocl", 0, 0);
- av_opt_set_int(s, "ich", 0, 0);
- av_opt_set_int(s, "och", 0, 0);
-#endif
-
return 0;
fail:
av_log(s, AV_LOG_ERROR, "Failed to set option\n");
@@ -213,65 +159,7 @@ av_cold int swr_init(struct SwrContext *s){
av_log(s, AV_LOG_ERROR, "Requested output sample rate %d is invalid\n", s->out_sample_rate);
return AVERROR(EINVAL);
}
-#if FF_API_OLD_CHANNEL_LAYOUT
- s->out.ch_count = s-> user_out_ch_count;
- s-> in.ch_count = s-> user_in_ch_count;
-
- // if the old/new fields are set inconsistently, prefer the old ones
- if (s->user_used_ch_count && s->user_used_ch_count != s->user_used_chlayout.nb_channels) {
- av_channel_layout_uninit(&s->used_ch_layout);
- s->used_ch_layout.order = AV_CHANNEL_ORDER_UNSPEC;
- s->used_ch_layout.nb_channels = s->user_used_ch_count;
- } else if (av_channel_layout_check(&s->user_used_chlayout)) {
- ret = av_channel_layout_copy(&s->used_ch_layout, &s->user_used_chlayout);
- if (ret < 0)
- return ret;
- }
- if ((s->user_in_ch_count && s->user_in_ch_count != s->user_in_chlayout.nb_channels) ||
- (s->user_in_ch_layout && (s->user_in_chlayout.order != AV_CHANNEL_ORDER_NATIVE ||
- s->user_in_chlayout.u.mask != s->user_in_ch_layout))) {
- av_channel_layout_uninit(&s->in_ch_layout);
- if (s->user_in_ch_layout)
- av_channel_layout_from_mask(&s->in_ch_layout, s->user_in_ch_layout);
- else {
- s->in_ch_layout.order = AV_CHANNEL_ORDER_UNSPEC;
- s->in_ch_layout.nb_channels = s->user_in_ch_count;
- }
- } else if (av_channel_layout_check(&s->user_in_chlayout))
- av_channel_layout_copy(&s->in_ch_layout, &s->user_in_chlayout);
-
- if ((s->user_out_ch_count && s->user_out_ch_count != s->user_out_chlayout.nb_channels) ||
- (s->user_out_ch_layout && (s->user_out_chlayout.order != AV_CHANNEL_ORDER_NATIVE ||
- s->user_out_chlayout.u.mask != s->user_out_ch_layout))) {
- av_channel_layout_uninit(&s->out_ch_layout);
- if (s->user_out_ch_layout)
- av_channel_layout_from_mask(&s->out_ch_layout, s->user_out_ch_layout);
- else {
- s->out_ch_layout.order = AV_CHANNEL_ORDER_UNSPEC;
- s->out_ch_layout.nb_channels = s->user_out_ch_count;
- }
- } else if (av_channel_layout_check(&s->user_out_chlayout))
- av_channel_layout_copy(&s->out_ch_layout, &s->user_out_chlayout);
-
- if (!s->out.ch_count)
- s->out.ch_count = s->out_ch_layout.nb_channels;
- if (!s-> in.ch_count)
- s-> in.ch_count = s->in_ch_layout.nb_channels;
-
- if (!(ret = av_channel_layout_check(&s->in_ch_layout)) || s->in_ch_layout.nb_channels > SWR_CH_MAX) {
- if (ret)
- av_channel_layout_describe(&s->in_ch_layout, l1, sizeof(l1));
- av_log(s, AV_LOG_WARNING, "Input channel layout \"%s\" is invalid or unsupported.\n", ret ? l1 : "");
- return AVERROR(EINVAL);
- }
- if (!(ret = av_channel_layout_check(&s->out_ch_layout)) || s->out_ch_layout.nb_channels > SWR_CH_MAX) {
- if (ret)
- av_channel_layout_describe(&s->out_ch_layout, l2, sizeof(l2));
- av_log(s, AV_LOG_WARNING, "Output channel layout \"%s\" is invalid or unsupported.\n", ret ? l2 : "");
- return AVERROR(EINVAL);
- }
-#else
s->out.ch_count = s-> user_out_chlayout.nb_channels;
s-> in.ch_count = s-> user_in_chlayout.nb_channels;
@@ -294,7 +182,6 @@ av_cold int swr_init(struct SwrContext *s){
ret |= av_channel_layout_copy(&s->used_ch_layout, &s->user_used_chlayout);
if (ret < 0)
return ret;
-#endif
s->int_sample_fmt= s->user_int_sample_fmt;
@@ -423,13 +310,6 @@ av_cold int swr_init(struct SwrContext *s){
}
av_channel_layout_describe(&s->out_ch_layout, l2, sizeof(l2));
-#if FF_API_OLD_CHANNEL_LAYOUT
- if (s->out_ch_layout.order != AV_CHANNEL_ORDER_UNSPEC && s->out.ch_count != s->out_ch_layout.nb_channels) {
- av_log(s, AV_LOG_ERROR, "Output channel layout %s mismatches specified channel count %d\n", l2, s->out.ch_count);
- ret = AVERROR(EINVAL);
- goto fail;
- }
-#endif
av_channel_layout_describe(&s->in_ch_layout, l1, sizeof(l1));
if (s->in_ch_layout.order != AV_CHANNEL_ORDER_UNSPEC && s->used_ch_layout.nb_channels != s->in_ch_layout.nb_channels) {
av_log(s, AV_LOG_ERROR, "Input channel layout %s mismatches specified channel count %d\n", l1, s->used_ch_layout.nb_channels);
diff --git a/libswresample/swresample.h b/libswresample/swresample.h
index d4dcaebdcf..6c245845db 100644
--- a/libswresample/swresample.h
+++ b/libswresample/swresample.h
@@ -234,35 +234,6 @@ int swr_init(struct SwrContext *s);
*/
int swr_is_initialized(struct SwrContext *s);
-#if FF_API_OLD_CHANNEL_LAYOUT
-/**
- * Allocate SwrContext if needed and set/reset common parameters.
- *
- * This function does not require s to be allocated with swr_alloc(). On the
- * other hand, swr_alloc() can use swr_alloc_set_opts() to set the parameters
- * on the allocated context.
- *
- * @param s existing Swr context if available, or NULL if not
- * @param out_ch_layout output channel layout (AV_CH_LAYOUT_*)
- * @param out_sample_fmt output sample format (AV_SAMPLE_FMT_*).
- * @param out_sample_rate output sample rate (frequency in Hz)
- * @param in_ch_layout input channel layout (AV_CH_LAYOUT_*)
- * @param in_sample_fmt input sample format (AV_SAMPLE_FMT_*).
- * @param in_sample_rate input sample rate (frequency in Hz)
- * @param log_offset logging level offset
- * @param log_ctx parent logging context, can be NULL
- *
- * @see swr_init(), swr_free()
- * @return NULL on error, allocated context otherwise
- * @deprecated use @ref swr_alloc_set_opts2()
- */
-attribute_deprecated
-struct SwrContext *swr_alloc_set_opts(struct SwrContext *s,
- int64_t out_ch_layout, enum AVSampleFormat out_sample_fmt, int out_sample_rate,
- int64_t in_ch_layout, enum AVSampleFormat in_sample_fmt, int in_sample_rate,
- int log_offset, void *log_ctx);
-#endif
-
/**
* Allocate SwrContext if needed and set/reset common parameters.
*
@@ -399,40 +370,6 @@ int swr_set_compensation(struct SwrContext *s, int sample_delta, int compensatio
*/
int swr_set_channel_mapping(struct SwrContext *s, const int *channel_map);
-#if FF_API_OLD_CHANNEL_LAYOUT
-/**
- * Generate a channel mixing matrix.
- *
- * This function is the one used internally by libswresample for building the
- * default mixing matrix. It is made public just as a utility function for
- * building custom matrices.
- *
- * @param in_layout input channel layout
- * @param out_layout output channel layout
- * @param center_mix_level mix level for the center channel
- * @param surround_mix_level mix level for the surround channel(s)
- * @param lfe_mix_level mix level for the low-frequency effects channel
- * @param rematrix_maxval if 1.0, coefficients will be normalized to prevent
- * overflow. if INT_MAX, coefficients will not be
- * normalized.
- * @param[out] matrix mixing coefficients; matrix[i + stride * o] is
- * the weight of input channel i in output channel o.
- * @param stride distance between adjacent input channels in the
- * matrix array
- * @param matrix_encoding matrixed stereo downmix mode (e.g. dplii)
- * @param log_ctx parent logging context, can be NULL
- * @return 0 on success, negative AVERROR code on failure
- * @deprecated use @ref swr_build_matrix2()
- */
-attribute_deprecated
-int swr_build_matrix(uint64_t in_layout, uint64_t out_layout,
- double center_mix_level, double surround_mix_level,
- double lfe_mix_level, double rematrix_maxval,
- double rematrix_volume, double *matrix,
- int stride, enum AVMatrixEncoding matrix_encoding,
- void *log_ctx);
-#endif
-
/**
* Generate a channel mixing matrix.
*
diff --git a/libswresample/swresample_frame.c b/libswresample/swresample_frame.c
index 8726ee58e9..52e942f9c6 100644
--- a/libswresample/swresample_frame.c
+++ b/libswresample/swresample_frame.c
@@ -32,15 +32,6 @@ int swr_config_frame(SwrContext *s, const AVFrame *out, const AVFrame *in)
swr_close(s);
if (in) {
-#if FF_API_OLD_CHANNEL_LAYOUT
-FF_DISABLE_DEPRECATION_WARNINGS
- // if the old/new fields are set inconsistently, prefer the old ones
- if ((in->channel_layout && (in->ch_layout.order != AV_CHANNEL_ORDER_NATIVE ||
- in->ch_layout.u.mask != in->channel_layout))) {
- av_channel_layout_from_mask(&ch_layout, in->channel_layout);
-FF_ENABLE_DEPRECATION_WARNINGS
- } else
-#endif
if ((ret = av_channel_layout_copy(&ch_layout, &in->ch_layout)) < 0)
goto fail;
if ((ret = av_opt_set_chlayout(s, "ichl", &ch_layout, 0)) < 0)
@@ -52,16 +43,6 @@ FF_ENABLE_DEPRECATION_WARNINGS
}
if (out) {
-#if FF_API_OLD_CHANNEL_LAYOUT
-FF_DISABLE_DEPRECATION_WARNINGS
- // if the old/new fields are set inconsistently, prefer the old ones
- if ((out->channel_layout && (out->ch_layout.order != AV_CHANNEL_ORDER_NATIVE ||
- out->ch_layout.u.mask != out->channel_layout))) {
- av_channel_layout_uninit(&ch_layout);
- av_channel_layout_from_mask(&ch_layout, out->channel_layout);
-FF_ENABLE_DEPRECATION_WARNINGS
- } else
-#endif
if ((ret = av_channel_layout_copy(&ch_layout, &out->ch_layout)) < 0)
goto fail;
if ((ret = av_opt_set_chlayout(s, "ochl", &ch_layout, 0)) < 0)
@@ -87,15 +68,6 @@ static int config_changed(SwrContext *s,
int ret = 0, err;
if (in) {
-#if FF_API_OLD_CHANNEL_LAYOUT
-FF_DISABLE_DEPRECATION_WARNINGS
- // if the old/new fields are set inconsistently, prefer the old ones
- if ((in->channel_layout && (in->ch_layout.order != AV_CHANNEL_ORDER_NATIVE ||
- in->ch_layout.u.mask != in->channel_layout))) {
- av_channel_layout_from_mask(&ch_layout, in->channel_layout);
-FF_ENABLE_DEPRECATION_WARNINGS
- } else
-#endif
if ((err = av_channel_layout_copy(&ch_layout, &in->ch_layout)) < 0)
return err;
if (av_channel_layout_compare(&s->in_ch_layout, &ch_layout) ||
@@ -106,16 +78,6 @@ FF_ENABLE_DEPRECATION_WARNINGS
}
if (out) {
-#if FF_API_OLD_CHANNEL_LAYOUT
-FF_DISABLE_DEPRECATION_WARNINGS
- // if the old/new fields are set inconsistently, prefer the old ones
- if ((out->channel_layout && (out->ch_layout.order != AV_CHANNEL_ORDER_NATIVE ||
- out->ch_layout.u.mask != out->channel_layout))) {
- av_channel_layout_uninit(&ch_layout);
- av_channel_layout_from_mask(&ch_layout, out->channel_layout);
-FF_ENABLE_DEPRECATION_WARNINGS
- } else
-#endif
if ((err = av_channel_layout_copy(&ch_layout, &out->ch_layout)) < 0)
return err;
if (av_channel_layout_compare(&s->out_ch_layout, &ch_layout) ||
@@ -169,14 +131,7 @@ static inline int available_samples(AVFrame *out)
if (av_sample_fmt_is_planar(out->format)) {
return samples;
} else {
- int channels;
-#if FF_API_OLD_CHANNEL_LAYOUT
-FF_DISABLE_DEPRECATION_WARNINGS
- channels = av_get_channel_layout_nb_channels(out->channel_layout);
-FF_ENABLE_DEPRECATION_WARNINGS
- if (!channels)
-#endif
- channels = out->ch_layout.nb_channels;
+ int channels = out->ch_layout.nb_channels;
return samples / channels;
}
}
diff --git a/libswresample/swresample_internal.h b/libswresample/swresample_internal.h
index ad902d73fa..7e46b16fb2 100644
--- a/libswresample/swresample_internal.h
+++ b/libswresample/swresample_internal.h
@@ -114,13 +114,6 @@ struct SwrContext {
const int *channel_map; ///< channel index (or -1 if muted channel) map
int engine;
-#if FF_API_OLD_CHANNEL_LAYOUT
- int user_used_ch_count; ///< User set used channel count
- int user_in_ch_count; ///< User set input channel count
- int user_out_ch_count; ///< User set output channel count
- int64_t user_in_ch_layout; ///< User set input channel layout
- int64_t user_out_ch_layout; ///< User set output channel layout
-#endif
AVChannelLayout user_used_chlayout; ///< User set used channel layout
AVChannelLayout user_in_chlayout; ///< User set input channel layout
AVChannelLayout user_out_chlayout; ///< User set output channel layout
diff --git a/tests/ref/fate/filter-formats b/tests/ref/fate/filter-formats
index a4fc2f921f..75d7c1e21a 100644
--- a/tests/ref/fate/filter-formats
+++ b/tests/ref/fate/filter-formats
@@ -82,7 +82,4 @@ quad(side)
0 = ff_parse_channel_layout(0000000000000000, 65, 65C);
0 = ff_parse_channel_layout(000000000000003F, 6, 5.1);
0 = ff_parse_channel_layout(0000000000000003, 2, stereo);
-0 = ff_parse_channel_layout(0000000000000001, 1, 1+1+1+1);
-0 = ff_parse_channel_layout(0000000000000004, 1, 1c+1c+1c+1c);
-0 = ff_parse_channel_layout(0000000000000007, 3, 2c+1c);
0 = ff_parse_channel_layout(0000000000000003, 2, 0x3);
--
2.43.0
_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
To unsubscribe, visit link above, or email
ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".
^ permalink raw reply [flat|nested] 60+ messages in thread
* [FFmpeg-devel] [PATCH 17/24] avutil: remove deprecated FF_API_AV_FOPEN_UTF8
2024-01-25 13:43 [FFmpeg-devel] [PATCH 00/24] Major library version bump James Almer
` (15 preceding siblings ...)
2024-01-25 13:43 ` [FFmpeg-devel] [PATCH 16/24] avutil: remove deprecated FF_API_OLD_CHANNEL_LAYOUT James Almer
@ 2024-01-25 13:43 ` James Almer
2024-01-25 13:43 ` [FFmpeg-devel] [PATCH 18/24] avutil: remove deprecated FF_API_PKT_DURATION James Almer
` (24 subsequent siblings)
41 siblings, 0 replies; 60+ messages in thread
From: James Almer @ 2024-01-25 13:43 UTC (permalink / raw)
To: ffmpeg-devel
Signed-off-by: James Almer <jamrial@gmail.com>
---
libavutil/avutil.h | 13 -------------
libavutil/file.c | 6 ------
libavutil/file.h | 17 -----------------
libavutil/file_open.c | 7 -------
libavutil/version.h | 1 -
5 files changed, 44 deletions(-)
diff --git a/libavutil/avutil.h b/libavutil/avutil.h
index a362c8baa8..d2900dcb48 100644
--- a/libavutil/avutil.h
+++ b/libavutil/avutil.h
@@ -335,19 +335,6 @@ unsigned av_int_list_length_for_size(unsigned elsize,
#define av_int_list_length(list, term) \
av_int_list_length_for_size(sizeof(*(list)), list, term)
-#if FF_API_AV_FOPEN_UTF8
-/**
- * Open a file using a UTF-8 filename.
- * The API of this function matches POSIX fopen(), errors are returned through
- * errno.
- * @deprecated Avoid using it, as on Windows, the FILE* allocated by this
- * function may be allocated with a different CRT than the caller
- * who uses the FILE*. No replacement provided in public API.
- */
-attribute_deprecated
-FILE *av_fopen_utf8(const char *path, const char *mode);
-#endif
-
/**
* Return the fractional representation of the internal time base.
*/
diff --git a/libavutil/file.c b/libavutil/file.c
index cc17885bcc..2d1063b6a2 100644
--- a/libavutil/file.c
+++ b/libavutil/file.c
@@ -155,9 +155,3 @@ void av_file_unmap(uint8_t *bufptr, size_t size)
av_free(bufptr);
#endif
}
-
-#if FF_API_AV_FOPEN_UTF8
-int av_tempfile(const char *prefix, char **filename, int log_offset, void *log_ctx) {
- return avpriv_tempfile(prefix, filename, log_offset, log_ctx);
-}
-#endif
diff --git a/libavutil/file.h b/libavutil/file.h
index fc87a9cd6a..b5a762c28f 100644
--- a/libavutil/file.h
+++ b/libavutil/file.h
@@ -60,21 +60,4 @@ int av_file_map(const char *filename, uint8_t **bufptr, size_t *size,
*/
void av_file_unmap(uint8_t *bufptr, size_t size);
-#if FF_API_AV_FOPEN_UTF8
-/**
- * Wrapper to work around the lack of mkstemp() on mingw.
- * Also, tries to create file in /tmp first, if possible.
- * *prefix can be a character constant; *filename will be allocated internally.
- * @return file descriptor of opened file (or negative value corresponding to an
- * AVERROR code on error)
- * and opened file name in **filename.
- * @note On very old libcs it is necessary to set a secure umask before
- * calling this, av_tempfile() can't call umask itself as it is used in
- * libraries and could interfere with the calling application.
- * @deprecated as fd numbers cannot be passed saftely between libs on some platforms
- */
-attribute_deprecated
-int av_tempfile(const char *prefix, char **filename, int log_offset, void *log_ctx);
-#endif
-
#endif /* AVUTIL_FILE_H */
diff --git a/libavutil/file_open.c b/libavutil/file_open.c
index 9aa4e4ac61..24ef33e3da 100644
--- a/libavutil/file_open.c
+++ b/libavutil/file_open.c
@@ -189,10 +189,3 @@ FILE *avpriv_fopen_utf8(const char *path, const char *mode)
return NULL;
return fdopen(fd, mode);
}
-
-#if FF_API_AV_FOPEN_UTF8
-FILE *av_fopen_utf8(const char *path, const char *mode)
-{
- return avpriv_fopen_utf8(path, mode);
-}
-#endif
diff --git a/libavutil/version.h b/libavutil/version.h
index 1936155e46..2dc913bbfd 100644
--- a/libavutil/version.h
+++ b/libavutil/version.h
@@ -105,7 +105,6 @@
* @{
*/
-#define FF_API_AV_FOPEN_UTF8 (LIBAVUTIL_VERSION_MAJOR < 59)
#define FF_API_PKT_DURATION (LIBAVUTIL_VERSION_MAJOR < 59)
#define FF_API_REORDERED_OPAQUE (LIBAVUTIL_VERSION_MAJOR < 59)
#define FF_API_FRAME_PICTURE_NUMBER (LIBAVUTIL_VERSION_MAJOR < 59)
--
2.43.0
_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
To unsubscribe, visit link above, or email
ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".
^ permalink raw reply [flat|nested] 60+ messages in thread
* [FFmpeg-devel] [PATCH 18/24] avutil: remove deprecated FF_API_PKT_DURATION
2024-01-25 13:43 [FFmpeg-devel] [PATCH 00/24] Major library version bump James Almer
` (16 preceding siblings ...)
2024-01-25 13:43 ` [FFmpeg-devel] [PATCH 17/24] avutil: remove deprecated FF_API_AV_FOPEN_UTF8 James Almer
@ 2024-01-25 13:43 ` James Almer
2024-02-04 20:04 ` Andreas Rheinhardt
2024-01-25 13:43 ` [FFmpeg-devel] [PATCH 19/24] avutil: remove deprecated FF_API_REORDERED_OPAQUE James Almer
` (23 subsequent siblings)
41 siblings, 1 reply; 60+ messages in thread
From: James Almer @ 2024-01-25 13:43 UTC (permalink / raw)
To: ffmpeg-devel
Signed-off-by: James Almer <jamrial@gmail.com>
---
doc/ffprobe.xsd | 2 -
fftools/ffmpeg_filter.c | 5 -
fftools/ffprobe.c | 6 -
libavcodec/decode.c | 6 -
libavdevice/alsa_enc.c | 7 -
libavdevice/pulse_audio_enc.c | 7 -
libavfilter/avfilter.c | 5 -
libavfilter/buffersrc.c | 7 -
libavfilter/vf_deshake_opencl.c | 7 -
libavfilter/vf_drawtext.c | 15 -
libavfilter/vsrc_testsrc.c | 5 -
libavformat/mux.c | 7 -
libavutil/frame.c | 10 -
libavutil/frame.h | 13 -
libavutil/version.h | 1 -
tests/ref/fate/exif-image-embedded | 44 ---
tests/ref/fate/exif-image-jpg | 2 -
tests/ref/fate/exif-image-tiff | 2 -
tests/ref/fate/exif-image-webp | 2 -
tests/ref/fate/ffprobe_compact | 28 +-
tests/ref/fate/ffprobe_csv | 28 +-
tests/ref/fate/ffprobe_default | 28 --
tests/ref/fate/ffprobe_flat | 28 --
tests/ref/fate/ffprobe_ini | 28 --
tests/ref/fate/ffprobe_json | 28 --
tests/ref/fate/ffprobe_xml | 28 +-
tests/ref/fate/ffprobe_xsd | 28 +-
tests/ref/fate/flcl1905 | 350 +++++++++----------
tests/ref/fate/gaplessenc-itunes-to-ipod-aac | 32 +-
tests/ref/fate/gaplessenc-pcm-to-mov-aac | 32 +-
tests/ref/fate/gaplessinfo-itunes1 | 32 +-
tests/ref/fate/gaplessinfo-itunes2 | 32 +-
tests/ref/fate/h264-dts_5frames | 10 -
tests/ref/fate/jpg-icc | 2 -
tests/ref/fate/mov-zombie | 130 +++----
tests/ref/fate/png-icc | 2 -
tests/ref/fate/png-side-data | 2 -
37 files changed, 360 insertions(+), 641 deletions(-)
diff --git a/doc/ffprobe.xsd b/doc/ffprobe.xsd
index 23d97ed11a..1131e2c940 100644
--- a/doc/ffprobe.xsd
+++ b/doc/ffprobe.xsd
@@ -105,8 +105,6 @@
<xsd:attribute name="pkt_dts_time" type="xsd:float"/>
<xsd:attribute name="best_effort_timestamp" type="xsd:long" />
<xsd:attribute name="best_effort_timestamp_time" type="xsd:float" />
- <xsd:attribute name="pkt_duration" type="xsd:long" />
- <xsd:attribute name="pkt_duration_time" type="xsd:float"/>
<xsd:attribute name="duration" type="xsd:long" />
<xsd:attribute name="duration_time" type="xsd:float"/>
<xsd:attribute name="pkt_pos" type="xsd:long" />
diff --git a/fftools/ffmpeg_filter.c b/fftools/ffmpeg_filter.c
index 82ee4fae7d..b5c9db04f9 100644
--- a/fftools/ffmpeg_filter.c
+++ b/fftools/ffmpeg_filter.c
@@ -2714,11 +2714,6 @@ static int send_frame(FilterGraph *fg, FilterGraphThread *fgt,
frame->pts = av_rescale_q(frame->pts, frame->time_base, ifp->time_base);
frame->duration = av_rescale_q(frame->duration, frame->time_base, ifp->time_base);
frame->time_base = ifp->time_base;
-#if LIBAVUTIL_VERSION_MAJOR < 59
- AV_NOWARN_DEPRECATED(
- frame->pkt_duration = frame->duration;
- )
-#endif
fd = frame_data(frame);
if (!fd)
diff --git a/fftools/ffprobe.c b/fftools/ffprobe.c
index f33e2471cb..122e37075e 100644
--- a/fftools/ffprobe.c
+++ b/fftools/ffprobe.c
@@ -2726,12 +2726,6 @@ static void show_frame(WriterContext *w, AVFrame *frame, AVStream *stream,
print_time("pkt_dts_time", frame->pkt_dts, &stream->time_base);
print_ts ("best_effort_timestamp", frame->best_effort_timestamp);
print_time("best_effort_timestamp_time", frame->best_effort_timestamp, &stream->time_base);
-#if LIBAVUTIL_VERSION_MAJOR < 59
- AV_NOWARN_DEPRECATED(
- print_duration_ts ("pkt_duration", frame->pkt_duration);
- print_duration_time("pkt_duration_time", frame->pkt_duration, &stream->time_base);
- )
-#endif
print_duration_ts ("duration", frame->duration);
print_duration_time("duration_time", frame->duration, &stream->time_base);
if (fd && fd->pkt_pos != -1) print_fmt ("pkt_pos", "%"PRId64, fd->pkt_pos);
diff --git a/libavcodec/decode.c b/libavcodec/decode.c
index 145138d657..4dc308ef64 100644
--- a/libavcodec/decode.c
+++ b/libavcodec/decode.c
@@ -634,12 +634,6 @@ FF_ENABLE_DEPRECATION_WARNINGS
frame->pts,
frame->pkt_dts);
-#if FF_API_PKT_DURATION
-FF_DISABLE_DEPRECATION_WARNINGS
- frame->pkt_duration = frame->duration;
-FF_ENABLE_DEPRECATION_WARNINGS
-#endif
-
/* the only case where decode data is not set should be decoders
* that do not call ff_get_buffer() */
av_assert0((frame->private_ref && frame->private_ref->size == sizeof(FrameDecodeData)) ||
diff --git a/libavdevice/alsa_enc.c b/libavdevice/alsa_enc.c
index 4c7805065e..0b4c7834f7 100644
--- a/libavdevice/alsa_enc.c
+++ b/libavdevice/alsa_enc.c
@@ -132,13 +132,6 @@ static int audio_write_frame(AVFormatContext *s1, int stream_index,
pkt.data = (*frame)->data[0];
pkt.size = (*frame)->nb_samples * s->frame_size;
pkt.dts = (*frame)->pkt_dts;
-#if FF_API_PKT_DURATION
-FF_DISABLE_DEPRECATION_WARNINGS
- if ((*frame)->pkt_duration)
- pkt.duration = (*frame)->pkt_duration;
- else
-FF_ENABLE_DEPRECATION_WARNINGS
-#endif
pkt.duration = (*frame)->duration;
return audio_write_packet(s1, &pkt);
}
diff --git a/libavdevice/pulse_audio_enc.c b/libavdevice/pulse_audio_enc.c
index f051df3e72..4955b3b884 100644
--- a/libavdevice/pulse_audio_enc.c
+++ b/libavdevice/pulse_audio_enc.c
@@ -687,13 +687,6 @@ static int pulse_write_frame(AVFormatContext *h, int stream_index,
pkt.data = (*frame)->data[0];
pkt.size = (*frame)->nb_samples * av_get_bytes_per_sample((*frame)->format) * (*frame)->ch_layout.nb_channels;
pkt.dts = (*frame)->pkt_dts;
-#if FF_API_PKT_DURATION
-FF_DISABLE_DEPRECATION_WARNINGS
- if ((*frame)->pkt_duration)
- pkt.duration = (*frame)->pkt_duration;
- else
-FF_ENABLE_DEPRECATION_WARNINGS
-#endif
pkt.duration = (*frame)->duration;
return pulse_write_packet(h, &pkt);
}
diff --git a/libavfilter/avfilter.c b/libavfilter/avfilter.c
index 31300bb515..befcda48cb 100644
--- a/libavfilter/avfilter.c
+++ b/libavfilter/avfilter.c
@@ -1020,11 +1020,6 @@ int ff_filter_frame(AVFilterLink *link, AVFrame *frame)
frame->duration = av_rescale_q(frame->nb_samples, (AVRational){ 1, frame->sample_rate },
link->time_base);
-#if FF_API_PKT_DURATION
-FF_DISABLE_DEPRECATION_WARNINGS
- frame->pkt_duration = frame->duration;
-FF_ENABLE_DEPRECATION_WARNINGS
-#endif
}
link->frame_blocked_in = link->frame_wanted_out = 0;
diff --git a/libavfilter/buffersrc.c b/libavfilter/buffersrc.c
index e98e31185b..bcb1b0cece 100644
--- a/libavfilter/buffersrc.c
+++ b/libavfilter/buffersrc.c
@@ -227,13 +227,6 @@ int attribute_align_arg av_buffersrc_add_frame_flags(AVFilterContext *ctx, AVFra
return AVERROR(ENOMEM);
}
-#if FF_API_PKT_DURATION
-FF_DISABLE_DEPRECATION_WARNINGS
- if (copy->pkt_duration && copy->pkt_duration != copy->duration)
- copy->duration = copy->pkt_duration;
-FF_ENABLE_DEPRECATION_WARNINGS
-#endif
-
#if FF_API_INTERLACED_FRAME
FF_DISABLE_DEPRECATION_WARNINGS
if (copy->interlaced_frame)
diff --git a/libavfilter/vf_deshake_opencl.c b/libavfilter/vf_deshake_opencl.c
index cddd5558e2..e49c808a8e 100644
--- a/libavfilter/vf_deshake_opencl.c
+++ b/libavfilter/vf_deshake_opencl.c
@@ -1412,13 +1412,6 @@ static int filter_frame(AVFilterLink *link, AVFrame *input_frame)
&debug_matches, 1);
}
-#if FF_API_PKT_DURATION
-FF_DISABLE_DEPRECATION_WARNINGS
- if (input_frame->pkt_duration) {
- duration = input_frame->pkt_duration;
- } else
-FF_ENABLE_DEPRECATION_WARNINGS
-#endif
if (input_frame->duration) {
duration = input_frame->duration;
} else {
diff --git a/libavfilter/vf_drawtext.c b/libavfilter/vf_drawtext.c
index fe7e6ace27..4c516f3b57 100644
--- a/libavfilter/vf_drawtext.c
+++ b/libavfilter/vf_drawtext.c
@@ -104,9 +104,6 @@ static const char *const var_names[] = {
#if FF_API_FRAME_PKT
"pkt_pos",
#endif
-#if FF_API_PKT_DURATION
- "pkt_duration",
-#endif
#if FF_API_FRAME_PKT
"pkt_size",
#endif
@@ -155,9 +152,6 @@ enum var_name {
#if FF_API_FRAME_PKT
VAR_PKT_POS,
#endif
-#if FF_API_PKT_DURATION
- VAR_PKT_DURATION,
-#endif
#if FF_API_FRAME_PKT
VAR_PKT_SIZE,
#endif
@@ -1877,15 +1871,6 @@ FF_DISABLE_DEPRECATION_WARNINGS
s->var_values[VAR_PKT_POS] = frame->pkt_pos;
s->var_values[VAR_PKT_SIZE] = frame->pkt_size;
FF_ENABLE_DEPRECATION_WARNINGS
-#endif
-#if FF_API_PKT_DURATION
-FF_DISABLE_DEPRECATION_WARNINGS
- s->var_values[VAR_PKT_DURATION] = frame->pkt_duration * av_q2d(inlink->time_base);
-
- if (frame->pkt_duration)
- s->var_values[VAR_DURATION] = frame->pkt_duration * av_q2d(inlink->time_base);
- else
-FF_ENABLE_DEPRECATION_WARNINGS
#endif
s->var_values[VAR_DURATION] = frame->duration * av_q2d(inlink->time_base);
diff --git a/libavfilter/vsrc_testsrc.c b/libavfilter/vsrc_testsrc.c
index 3b5536badc..2a92b638b6 100644
--- a/libavfilter/vsrc_testsrc.c
+++ b/libavfilter/vsrc_testsrc.c
@@ -202,11 +202,6 @@ static int activate(AVFilterContext *ctx)
return AVERROR(ENOMEM);
frame->pts = test->pts;
frame->duration = 1;
-#if FF_API_PKT_DURATION
-FF_DISABLE_DEPRECATION_WARNINGS
- frame->key_frame = 1;
-FF_ENABLE_DEPRECATION_WARNINGS
-#endif
frame->flags |= AV_FRAME_FLAG_KEY;
#if FF_API_INTERLACED_FRAME
FF_DISABLE_DEPRECATION_WARNINGS
diff --git a/libavformat/mux.c b/libavformat/mux.c
index 659fbbad10..7a27e28503 100644
--- a/libavformat/mux.c
+++ b/libavformat/mux.c
@@ -1441,13 +1441,6 @@ static int write_uncoded_frame_internal(AVFormatContext *s, int stream_index,
pkt->size = sizeof(frame);
pkt->pts =
pkt->dts = frame->pts;
-#if FF_API_PKT_DURATION
-FF_DISABLE_DEPRECATION_WARNINGS
- if (frame->pkt_duration)
- pkt->duration = frame->pkt_duration;
- else
-FF_ENABLE_DEPRECATION_WARNINGS
-#endif
pkt->duration = frame->duration;
pkt->stream_index = stream_index;
pkt->flags |= AV_PKT_FLAG_UNCODED_FRAME;
diff --git a/libavutil/frame.c b/libavutil/frame.c
index af887b1c76..dc80d71adf 100644
--- a/libavutil/frame.c
+++ b/libavutil/frame.c
@@ -36,11 +36,6 @@ static void get_frame_defaults(AVFrame *frame)
frame->pkt_dts = AV_NOPTS_VALUE;
frame->best_effort_timestamp = AV_NOPTS_VALUE;
frame->duration = 0;
-#if FF_API_PKT_DURATION
-FF_DISABLE_DEPRECATION_WARNINGS
- frame->pkt_duration = 0;
-FF_ENABLE_DEPRECATION_WARNINGS
-#endif
#if FF_API_FRAME_PKT
FF_DISABLE_DEPRECATION_WARNINGS
frame->pkt_pos = -1;
@@ -269,11 +264,6 @@ FF_DISABLE_DEPRECATION_WARNINGS
dst->pkt_pos = src->pkt_pos;
dst->pkt_size = src->pkt_size;
FF_ENABLE_DEPRECATION_WARNINGS
-#endif
-#if FF_API_PKT_DURATION
-FF_DISABLE_DEPRECATION_WARNINGS
- dst->pkt_duration = src->pkt_duration;
-FF_ENABLE_DEPRECATION_WARNINGS
#endif
dst->time_base = src->time_base;
#if FF_API_REORDERED_OPAQUE
diff --git a/libavutil/frame.h b/libavutil/frame.h
index 96463def3b..84a431f14c 100644
--- a/libavutil/frame.h
+++ b/libavutil/frame.h
@@ -678,19 +678,6 @@ typedef struct AVFrame {
int64_t pkt_pos;
#endif
-#if FF_API_PKT_DURATION
- /**
- * duration of the corresponding packet, expressed in
- * AVStream->time_base units, 0 if unknown.
- * - encoding: unused
- * - decoding: Read by user.
- *
- * @deprecated use duration instead
- */
- attribute_deprecated
- int64_t pkt_duration;
-#endif
-
/**
* metadata.
* - encoding: Set by user.
diff --git a/libavutil/version.h b/libavutil/version.h
index 2dc913bbfd..8a20312016 100644
--- a/libavutil/version.h
+++ b/libavutil/version.h
@@ -105,7 +105,6 @@
* @{
*/
-#define FF_API_PKT_DURATION (LIBAVUTIL_VERSION_MAJOR < 59)
#define FF_API_REORDERED_OPAQUE (LIBAVUTIL_VERSION_MAJOR < 59)
#define FF_API_FRAME_PICTURE_NUMBER (LIBAVUTIL_VERSION_MAJOR < 59)
#define FF_API_HDR_VIVID_THREE_SPLINE (LIBAVUTIL_VERSION_MAJOR < 59)
diff --git a/tests/ref/fate/exif-image-embedded b/tests/ref/fate/exif-image-embedded
index d5937e9f86..3e0cc69490 100644
--- a/tests/ref/fate/exif-image-embedded
+++ b/tests/ref/fate/exif-image-embedded
@@ -8,8 +8,6 @@ pkt_dts=N/A
pkt_dts_time=N/A
best_effort_timestamp=N/A
best_effort_timestamp_time=N/A
-pkt_duration=N/A
-pkt_duration_time=N/A
duration=N/A
duration_time=N/A
pkt_pos=N/A
@@ -46,8 +44,6 @@ pkt_dts=353600
pkt_dts_time=0.025057
best_effort_timestamp=353600
best_effort_timestamp_time=0.025057
-pkt_duration=15040
-pkt_duration_time=0.001066
duration=15040
duration_time=0.001066
pkt_pos=16292
@@ -67,8 +63,6 @@ pkt_dts=368640
pkt_dts_time=0.026122
best_effort_timestamp=368640
best_effort_timestamp_time=0.026122
-pkt_duration=368640
-pkt_duration_time=0.026122
duration=368640
duration_time=0.026122
pkt_pos=16709
@@ -88,8 +82,6 @@ pkt_dts=737280
pkt_dts_time=0.052245
best_effort_timestamp=737280
best_effort_timestamp_time=0.052245
-pkt_duration=368640
-pkt_duration_time=0.026122
duration=368640
duration_time=0.026122
pkt_pos=17127
@@ -109,8 +101,6 @@ pkt_dts=1105920
pkt_dts_time=0.078367
best_effort_timestamp=1105920
best_effort_timestamp_time=0.078367
-pkt_duration=368640
-pkt_duration_time=0.026122
duration=368640
duration_time=0.026122
pkt_pos=17545
@@ -130,8 +120,6 @@ pkt_dts=1474560
pkt_dts_time=0.104490
best_effort_timestamp=1474560
best_effort_timestamp_time=0.104490
-pkt_duration=368640
-pkt_duration_time=0.026122
duration=368640
duration_time=0.026122
pkt_pos=17963
@@ -151,8 +139,6 @@ pkt_dts=1843200
pkt_dts_time=0.130612
best_effort_timestamp=1843200
best_effort_timestamp_time=0.130612
-pkt_duration=368640
-pkt_duration_time=0.026122
duration=368640
duration_time=0.026122
pkt_pos=18381
@@ -172,8 +158,6 @@ pkt_dts=2211840
pkt_dts_time=0.156735
best_effort_timestamp=2211840
best_effort_timestamp_time=0.156735
-pkt_duration=368640
-pkt_duration_time=0.026122
duration=368640
duration_time=0.026122
pkt_pos=18799
@@ -193,8 +177,6 @@ pkt_dts=2580480
pkt_dts_time=0.182857
best_effort_timestamp=2580480
best_effort_timestamp_time=0.182857
-pkt_duration=368640
-pkt_duration_time=0.026122
duration=368640
duration_time=0.026122
pkt_pos=19217
@@ -214,8 +196,6 @@ pkt_dts=2949120
pkt_dts_time=0.208980
best_effort_timestamp=2949120
best_effort_timestamp_time=0.208980
-pkt_duration=368640
-pkt_duration_time=0.026122
duration=368640
duration_time=0.026122
pkt_pos=19635
@@ -235,8 +215,6 @@ pkt_dts=3317760
pkt_dts_time=0.235102
best_effort_timestamp=3317760
best_effort_timestamp_time=0.235102
-pkt_duration=368640
-pkt_duration_time=0.026122
duration=368640
duration_time=0.026122
pkt_pos=20053
@@ -256,8 +234,6 @@ pkt_dts=3686400
pkt_dts_time=0.261224
best_effort_timestamp=3686400
best_effort_timestamp_time=0.261224
-pkt_duration=368640
-pkt_duration_time=0.026122
duration=368640
duration_time=0.026122
pkt_pos=20471
@@ -277,8 +253,6 @@ pkt_dts=4055040
pkt_dts_time=0.287347
best_effort_timestamp=4055040
best_effort_timestamp_time=0.287347
-pkt_duration=368640
-pkt_duration_time=0.026122
duration=368640
duration_time=0.026122
pkt_pos=20889
@@ -298,8 +272,6 @@ pkt_dts=4423680
pkt_dts_time=0.313469
best_effort_timestamp=4423680
best_effort_timestamp_time=0.313469
-pkt_duration=368640
-pkt_duration_time=0.026122
duration=368640
duration_time=0.026122
pkt_pos=21307
@@ -319,8 +291,6 @@ pkt_dts=4792320
pkt_dts_time=0.339592
best_effort_timestamp=4792320
best_effort_timestamp_time=0.339592
-pkt_duration=368640
-pkt_duration_time=0.026122
duration=368640
duration_time=0.026122
pkt_pos=21725
@@ -340,8 +310,6 @@ pkt_dts=5160960
pkt_dts_time=0.365714
best_effort_timestamp=5160960
best_effort_timestamp_time=0.365714
-pkt_duration=368640
-pkt_duration_time=0.026122
duration=368640
duration_time=0.026122
pkt_pos=22143
@@ -361,8 +329,6 @@ pkt_dts=5529600
pkt_dts_time=0.391837
best_effort_timestamp=5529600
best_effort_timestamp_time=0.391837
-pkt_duration=368640
-pkt_duration_time=0.026122
duration=368640
duration_time=0.026122
pkt_pos=22561
@@ -382,8 +348,6 @@ pkt_dts=5898240
pkt_dts_time=0.417959
best_effort_timestamp=5898240
best_effort_timestamp_time=0.417959
-pkt_duration=368640
-pkt_duration_time=0.026122
duration=368640
duration_time=0.026122
pkt_pos=22979
@@ -403,8 +367,6 @@ pkt_dts=6266880
pkt_dts_time=0.444082
best_effort_timestamp=6266880
best_effort_timestamp_time=0.444082
-pkt_duration=368640
-pkt_duration_time=0.026122
duration=368640
duration_time=0.026122
pkt_pos=23397
@@ -424,8 +386,6 @@ pkt_dts=6635520
pkt_dts_time=0.470204
best_effort_timestamp=6635520
best_effort_timestamp_time=0.470204
-pkt_duration=368640
-pkt_duration_time=0.026122
duration=368640
duration_time=0.026122
pkt_pos=23815
@@ -445,8 +405,6 @@ pkt_dts=7004160
pkt_dts_time=0.496327
best_effort_timestamp=7004160
best_effort_timestamp_time=0.496327
-pkt_duration=368640
-pkt_duration_time=0.026122
duration=368640
duration_time=0.026122
pkt_pos=24233
@@ -466,8 +424,6 @@ pkt_dts=7372800
pkt_dts_time=0.522449
best_effort_timestamp=7372800
best_effort_timestamp_time=0.522449
-pkt_duration=368640
-pkt_duration_time=0.026122
duration=368640
duration_time=0.026122
pkt_pos=24651
diff --git a/tests/ref/fate/exif-image-jpg b/tests/ref/fate/exif-image-jpg
index bed265b717..239f4c3366 100644
--- a/tests/ref/fate/exif-image-jpg
+++ b/tests/ref/fate/exif-image-jpg
@@ -8,8 +8,6 @@ pkt_dts=0
pkt_dts_time=0.000000
best_effort_timestamp=0
best_effort_timestamp_time=0.000000
-pkt_duration=1
-pkt_duration_time=0.040000
duration=1
duration_time=0.040000
pkt_pos=N/A
diff --git a/tests/ref/fate/exif-image-tiff b/tests/ref/fate/exif-image-tiff
index 6b1c4dca66..7741edb0f4 100644
--- a/tests/ref/fate/exif-image-tiff
+++ b/tests/ref/fate/exif-image-tiff
@@ -8,8 +8,6 @@ pkt_dts=0
pkt_dts_time=0.000000
best_effort_timestamp=0
best_effort_timestamp_time=0.000000
-pkt_duration=1
-pkt_duration_time=0.040000
duration=1
duration_time=0.040000
pkt_pos=0
diff --git a/tests/ref/fate/exif-image-webp b/tests/ref/fate/exif-image-webp
index 783abefc60..e51e36c788 100644
--- a/tests/ref/fate/exif-image-webp
+++ b/tests/ref/fate/exif-image-webp
@@ -8,8 +8,6 @@ pkt_dts=0
pkt_dts_time=0.000000
best_effort_timestamp=0
best_effort_timestamp_time=0.000000
-pkt_duration=1
-pkt_duration_time=0.040000
duration=1
duration_time=0.040000
pkt_pos=0
diff --git a/tests/ref/fate/ffprobe_compact b/tests/ref/fate/ffprobe_compact
index dfcd7d3f3c..2b751b214d 100644
--- a/tests/ref/fate/ffprobe_compact
+++ b/tests/ref/fate/ffprobe_compact
@@ -1,31 +1,31 @@
packet|codec_type=audio|stream_index=0|pts=0|pts_time=0.000000|dts=0|dts_time=0.000000|duration=1024|duration_time=0.023220|size=2048|pos=669|flags=K__
-frame|media_type=audio|stream_index=0|key_frame=1|pts=0|pts_time=0.000000|pkt_dts=0|pkt_dts_time=0.000000|best_effort_timestamp=0|best_effort_timestamp_time=0.000000|pkt_duration=1024|pkt_duration_time=0.023220|duration=1024|duration_time=0.023220|pkt_pos=669|pkt_size=2048|sample_fmt=s16|nb_samples=1024|channels=1|channel_layout=unknown
+frame|media_type=audio|stream_index=0|key_frame=1|pts=0|pts_time=0.000000|pkt_dts=0|pkt_dts_time=0.000000|best_effort_timestamp=0|best_effort_timestamp_time=0.000000|duration=1024|duration_time=0.023220|pkt_pos=669|pkt_size=2048|sample_fmt=s16|nb_samples=1024|channels=1|channel_layout=unknown
packet|codec_type=video|stream_index=1|pts=0|pts_time=0.000000|dts=0|dts_time=0.000000|duration=2048|duration_time=0.040000|size=230400|pos=2744|flags=K__
-frame|media_type=video|stream_index=1|key_frame=1|pts=0|pts_time=0.000000|pkt_dts=0|pkt_dts_time=0.000000|best_effort_timestamp=0|best_effort_timestamp_time=0.000000|pkt_duration=2048|pkt_duration_time=0.040000|duration=2048|duration_time=0.040000|pkt_pos=2744|pkt_size=230400|width=320|height=240|crop_top=0|crop_bottom=0|crop_left=0|crop_right=0|pix_fmt=rgb24|sample_aspect_ratio=1:1|pict_type=I|coded_picture_number=0|display_picture_number=0|interlaced_frame=0|top_field_first=0|repeat_pict=0|color_range=unknown|color_space=unknown|color_primaries=unknown|color_transfer=unknown|chroma_location=unspecified
+frame|media_type=video|stream_index=1|key_frame=1|pts=0|pts_time=0.000000|pkt_dts=0|pkt_dts_time=0.000000|best_effort_timestamp=0|best_effort_timestamp_time=0.000000|duration=2048|duration_time=0.040000|pkt_pos=2744|pkt_size=230400|width=320|height=240|crop_top=0|crop_bottom=0|crop_left=0|crop_right=0|pix_fmt=rgb24|sample_aspect_ratio=1:1|pict_type=I|coded_picture_number=0|display_picture_number=0|interlaced_frame=0|top_field_first=0|repeat_pict=0|color_range=unknown|color_space=unknown|color_primaries=unknown|color_transfer=unknown|chroma_location=unspecified
packet|codec_type=video|stream_index=2|pts=0|pts_time=0.000000|dts=0|dts_time=0.000000|duration=2048|duration_time=0.040000|size=30000|pos=233165|flags=K__
-frame|media_type=video|stream_index=2|key_frame=1|pts=0|pts_time=0.000000|pkt_dts=0|pkt_dts_time=0.000000|best_effort_timestamp=0|best_effort_timestamp_time=0.000000|pkt_duration=2048|pkt_duration_time=0.040000|duration=2048|duration_time=0.040000|pkt_pos=233165|pkt_size=30000|width=100|height=100|crop_top=0|crop_bottom=0|crop_left=0|crop_right=0|pix_fmt=rgb24|sample_aspect_ratio=1:1|pict_type=I|coded_picture_number=0|display_picture_number=0|interlaced_frame=0|top_field_first=0|repeat_pict=0|color_range=unknown|color_space=unknown|color_primaries=unknown|color_transfer=unknown|chroma_location=unspecified
+frame|media_type=video|stream_index=2|key_frame=1|pts=0|pts_time=0.000000|pkt_dts=0|pkt_dts_time=0.000000|best_effort_timestamp=0|best_effort_timestamp_time=0.000000|duration=2048|duration_time=0.040000|pkt_pos=233165|pkt_size=30000|width=100|height=100|crop_top=0|crop_bottom=0|crop_left=0|crop_right=0|pix_fmt=rgb24|sample_aspect_ratio=1:1|pict_type=I|coded_picture_number=0|display_picture_number=0|interlaced_frame=0|top_field_first=0|repeat_pict=0|color_range=unknown|color_space=unknown|color_primaries=unknown|color_transfer=unknown|chroma_location=unspecified
packet|codec_type=audio|stream_index=0|pts=1024|pts_time=0.023220|dts=1024|dts_time=0.023220|duration=1024|duration_time=0.023220|size=2048|pos=263170|flags=K__
-frame|media_type=audio|stream_index=0|key_frame=1|pts=1024|pts_time=0.023220|pkt_dts=1024|pkt_dts_time=0.023220|best_effort_timestamp=1024|best_effort_timestamp_time=0.023220|pkt_duration=1024|pkt_duration_time=0.023220|duration=1024|duration_time=0.023220|pkt_pos=263170|pkt_size=2048|sample_fmt=s16|nb_samples=1024|channels=1|channel_layout=unknown
+frame|media_type=audio|stream_index=0|key_frame=1|pts=1024|pts_time=0.023220|pkt_dts=1024|pkt_dts_time=0.023220|best_effort_timestamp=1024|best_effort_timestamp_time=0.023220|duration=1024|duration_time=0.023220|pkt_pos=263170|pkt_size=2048|sample_fmt=s16|nb_samples=1024|channels=1|channel_layout=unknown
packet|codec_type=video|stream_index=1|pts=2048|pts_time=0.040000|dts=2048|dts_time=0.040000|duration=2048|duration_time=0.040000|size=230400|pos=265248|flags=K__
-frame|media_type=video|stream_index=1|key_frame=1|pts=2048|pts_time=0.040000|pkt_dts=2048|pkt_dts_time=0.040000|best_effort_timestamp=2048|best_effort_timestamp_time=0.040000|pkt_duration=2048|pkt_duration_time=0.040000|duration=2048|duration_time=0.040000|pkt_pos=265248|pkt_size=230400|width=320|height=240|crop_top=0|crop_bottom=0|crop_left=0|crop_right=0|pix_fmt=rgb24|sample_aspect_ratio=1:1|pict_type=I|coded_picture_number=0|display_picture_number=0|interlaced_frame=0|top_field_first=0|repeat_pict=0|color_range=unknown|color_space=unknown|color_primaries=unknown|color_transfer=unknown|chroma_location=unspecified
+frame|media_type=video|stream_index=1|key_frame=1|pts=2048|pts_time=0.040000|pkt_dts=2048|pkt_dts_time=0.040000|best_effort_timestamp=2048|best_effort_timestamp_time=0.040000|duration=2048|duration_time=0.040000|pkt_pos=265248|pkt_size=230400|width=320|height=240|crop_top=0|crop_bottom=0|crop_left=0|crop_right=0|pix_fmt=rgb24|sample_aspect_ratio=1:1|pict_type=I|coded_picture_number=0|display_picture_number=0|interlaced_frame=0|top_field_first=0|repeat_pict=0|color_range=unknown|color_space=unknown|color_primaries=unknown|color_transfer=unknown|chroma_location=unspecified
packet|codec_type=video|stream_index=2|pts=2048|pts_time=0.040000|dts=2048|dts_time=0.040000|duration=2048|duration_time=0.040000|size=30000|pos=495672|flags=K__
-frame|media_type=video|stream_index=2|key_frame=1|pts=2048|pts_time=0.040000|pkt_dts=2048|pkt_dts_time=0.040000|best_effort_timestamp=2048|best_effort_timestamp_time=0.040000|pkt_duration=2048|pkt_duration_time=0.040000|duration=2048|duration_time=0.040000|pkt_pos=495672|pkt_size=30000|width=100|height=100|crop_top=0|crop_bottom=0|crop_left=0|crop_right=0|pix_fmt=rgb24|sample_aspect_ratio=1:1|pict_type=I|coded_picture_number=0|display_picture_number=0|interlaced_frame=0|top_field_first=0|repeat_pict=0|color_range=unknown|color_space=unknown|color_primaries=unknown|color_transfer=unknown|chroma_location=unspecified
+frame|media_type=video|stream_index=2|key_frame=1|pts=2048|pts_time=0.040000|pkt_dts=2048|pkt_dts_time=0.040000|best_effort_timestamp=2048|best_effort_timestamp_time=0.040000|duration=2048|duration_time=0.040000|pkt_pos=495672|pkt_size=30000|width=100|height=100|crop_top=0|crop_bottom=0|crop_left=0|crop_right=0|pix_fmt=rgb24|sample_aspect_ratio=1:1|pict_type=I|coded_picture_number=0|display_picture_number=0|interlaced_frame=0|top_field_first=0|repeat_pict=0|color_range=unknown|color_space=unknown|color_primaries=unknown|color_transfer=unknown|chroma_location=unspecified
packet|codec_type=audio|stream_index=0|pts=2048|pts_time=0.046440|dts=2048|dts_time=0.046440|duration=1024|duration_time=0.023220|size=2048|pos=525677|flags=K__
-frame|media_type=audio|stream_index=0|key_frame=1|pts=2048|pts_time=0.046440|pkt_dts=2048|pkt_dts_time=0.046440|best_effort_timestamp=2048|best_effort_timestamp_time=0.046440|pkt_duration=1024|pkt_duration_time=0.023220|duration=1024|duration_time=0.023220|pkt_pos=525677|pkt_size=2048|sample_fmt=s16|nb_samples=1024|channels=1|channel_layout=unknown
+frame|media_type=audio|stream_index=0|key_frame=1|pts=2048|pts_time=0.046440|pkt_dts=2048|pkt_dts_time=0.046440|best_effort_timestamp=2048|best_effort_timestamp_time=0.046440|duration=1024|duration_time=0.023220|pkt_pos=525677|pkt_size=2048|sample_fmt=s16|nb_samples=1024|channels=1|channel_layout=unknown
packet|codec_type=audio|stream_index=0|pts=3072|pts_time=0.069660|dts=3072|dts_time=0.069660|duration=1024|duration_time=0.023220|size=2048|pos=527748|flags=K__
-frame|media_type=audio|stream_index=0|key_frame=1|pts=3072|pts_time=0.069660|pkt_dts=3072|pkt_dts_time=0.069660|best_effort_timestamp=3072|best_effort_timestamp_time=0.069660|pkt_duration=1024|pkt_duration_time=0.023220|duration=1024|duration_time=0.023220|pkt_pos=527748|pkt_size=2048|sample_fmt=s16|nb_samples=1024|channels=1|channel_layout=unknown
+frame|media_type=audio|stream_index=0|key_frame=1|pts=3072|pts_time=0.069660|pkt_dts=3072|pkt_dts_time=0.069660|best_effort_timestamp=3072|best_effort_timestamp_time=0.069660|duration=1024|duration_time=0.023220|pkt_pos=527748|pkt_size=2048|sample_fmt=s16|nb_samples=1024|channels=1|channel_layout=unknown
packet|codec_type=video|stream_index=1|pts=4096|pts_time=0.080000|dts=4096|dts_time=0.080000|duration=2048|duration_time=0.040000|size=230400|pos=529826|flags=K__
-frame|media_type=video|stream_index=1|key_frame=1|pts=4096|pts_time=0.080000|pkt_dts=4096|pkt_dts_time=0.080000|best_effort_timestamp=4096|best_effort_timestamp_time=0.080000|pkt_duration=2048|pkt_duration_time=0.040000|duration=2048|duration_time=0.040000|pkt_pos=529826|pkt_size=230400|width=320|height=240|crop_top=0|crop_bottom=0|crop_left=0|crop_right=0|pix_fmt=rgb24|sample_aspect_ratio=1:1|pict_type=I|coded_picture_number=0|display_picture_number=0|interlaced_frame=0|top_field_first=0|repeat_pict=0|color_range=unknown|color_space=unknown|color_primaries=unknown|color_transfer=unknown|chroma_location=unspecified
+frame|media_type=video|stream_index=1|key_frame=1|pts=4096|pts_time=0.080000|pkt_dts=4096|pkt_dts_time=0.080000|best_effort_timestamp=4096|best_effort_timestamp_time=0.080000|duration=2048|duration_time=0.040000|pkt_pos=529826|pkt_size=230400|width=320|height=240|crop_top=0|crop_bottom=0|crop_left=0|crop_right=0|pix_fmt=rgb24|sample_aspect_ratio=1:1|pict_type=I|coded_picture_number=0|display_picture_number=0|interlaced_frame=0|top_field_first=0|repeat_pict=0|color_range=unknown|color_space=unknown|color_primaries=unknown|color_transfer=unknown|chroma_location=unspecified
packet|codec_type=video|stream_index=2|pts=4096|pts_time=0.080000|dts=4096|dts_time=0.080000|duration=2048|duration_time=0.040000|size=30000|pos=760250|flags=K__
-frame|media_type=video|stream_index=2|key_frame=1|pts=4096|pts_time=0.080000|pkt_dts=4096|pkt_dts_time=0.080000|best_effort_timestamp=4096|best_effort_timestamp_time=0.080000|pkt_duration=2048|pkt_duration_time=0.040000|duration=2048|duration_time=0.040000|pkt_pos=760250|pkt_size=30000|width=100|height=100|crop_top=0|crop_bottom=0|crop_left=0|crop_right=0|pix_fmt=rgb24|sample_aspect_ratio=1:1|pict_type=I|coded_picture_number=0|display_picture_number=0|interlaced_frame=0|top_field_first=0|repeat_pict=0|color_range=unknown|color_space=unknown|color_primaries=unknown|color_transfer=unknown|chroma_location=unspecified
+frame|media_type=video|stream_index=2|key_frame=1|pts=4096|pts_time=0.080000|pkt_dts=4096|pkt_dts_time=0.080000|best_effort_timestamp=4096|best_effort_timestamp_time=0.080000|duration=2048|duration_time=0.040000|pkt_pos=760250|pkt_size=30000|width=100|height=100|crop_top=0|crop_bottom=0|crop_left=0|crop_right=0|pix_fmt=rgb24|sample_aspect_ratio=1:1|pict_type=I|coded_picture_number=0|display_picture_number=0|interlaced_frame=0|top_field_first=0|repeat_pict=0|color_range=unknown|color_space=unknown|color_primaries=unknown|color_transfer=unknown|chroma_location=unspecified
packet|codec_type=audio|stream_index=0|pts=4096|pts_time=0.092880|dts=4096|dts_time=0.092880|duration=1024|duration_time=0.023220|size=2048|pos=790255|flags=K__
-frame|media_type=audio|stream_index=0|key_frame=1|pts=4096|pts_time=0.092880|pkt_dts=4096|pkt_dts_time=0.092880|best_effort_timestamp=4096|best_effort_timestamp_time=0.092880|pkt_duration=1024|pkt_duration_time=0.023220|duration=1024|duration_time=0.023220|pkt_pos=790255|pkt_size=2048|sample_fmt=s16|nb_samples=1024|channels=1|channel_layout=unknown
+frame|media_type=audio|stream_index=0|key_frame=1|pts=4096|pts_time=0.092880|pkt_dts=4096|pkt_dts_time=0.092880|best_effort_timestamp=4096|best_effort_timestamp_time=0.092880|duration=1024|duration_time=0.023220|pkt_pos=790255|pkt_size=2048|sample_fmt=s16|nb_samples=1024|channels=1|channel_layout=unknown
packet|codec_type=audio|stream_index=0|pts=5120|pts_time=0.116100|dts=5120|dts_time=0.116100|duration=393|duration_time=0.008912|size=786|pos=792326|flags=K__
-frame|media_type=audio|stream_index=0|key_frame=1|pts=5120|pts_time=0.116100|pkt_dts=5120|pkt_dts_time=0.116100|best_effort_timestamp=5120|best_effort_timestamp_time=0.116100|pkt_duration=393|pkt_duration_time=0.008912|duration=393|duration_time=0.008912|pkt_pos=792326|pkt_size=786|sample_fmt=s16|nb_samples=393|channels=1|channel_layout=unknown
+frame|media_type=audio|stream_index=0|key_frame=1|pts=5120|pts_time=0.116100|pkt_dts=5120|pkt_dts_time=0.116100|best_effort_timestamp=5120|best_effort_timestamp_time=0.116100|duration=393|duration_time=0.008912|pkt_pos=792326|pkt_size=786|sample_fmt=s16|nb_samples=393|channels=1|channel_layout=unknown
packet|codec_type=video|stream_index=1|pts=6144|pts_time=0.120000|dts=6144|dts_time=0.120000|duration=2048|duration_time=0.040000|size=230400|pos=793142|flags=K__
-frame|media_type=video|stream_index=1|key_frame=1|pts=6144|pts_time=0.120000|pkt_dts=6144|pkt_dts_time=0.120000|best_effort_timestamp=6144|best_effort_timestamp_time=0.120000|pkt_duration=2048|pkt_duration_time=0.040000|duration=2048|duration_time=0.040000|pkt_pos=793142|pkt_size=230400|width=320|height=240|crop_top=0|crop_bottom=0|crop_left=0|crop_right=0|pix_fmt=rgb24|sample_aspect_ratio=1:1|pict_type=I|coded_picture_number=0|display_picture_number=0|interlaced_frame=0|top_field_first=0|repeat_pict=0|color_range=unknown|color_space=unknown|color_primaries=unknown|color_transfer=unknown|chroma_location=unspecified
+frame|media_type=video|stream_index=1|key_frame=1|pts=6144|pts_time=0.120000|pkt_dts=6144|pkt_dts_time=0.120000|best_effort_timestamp=6144|best_effort_timestamp_time=0.120000|duration=2048|duration_time=0.040000|pkt_pos=793142|pkt_size=230400|width=320|height=240|crop_top=0|crop_bottom=0|crop_left=0|crop_right=0|pix_fmt=rgb24|sample_aspect_ratio=1:1|pict_type=I|coded_picture_number=0|display_picture_number=0|interlaced_frame=0|top_field_first=0|repeat_pict=0|color_range=unknown|color_space=unknown|color_primaries=unknown|color_transfer=unknown|chroma_location=unspecified
packet|codec_type=video|stream_index=2|pts=6144|pts_time=0.120000|dts=6144|dts_time=0.120000|duration=2048|duration_time=0.040000|size=30000|pos=1023566|flags=K__
-frame|media_type=video|stream_index=2|key_frame=1|pts=6144|pts_time=0.120000|pkt_dts=6144|pkt_dts_time=0.120000|best_effort_timestamp=6144|best_effort_timestamp_time=0.120000|pkt_duration=2048|pkt_duration_time=0.040000|duration=2048|duration_time=0.040000|pkt_pos=1023566|pkt_size=30000|width=100|height=100|crop_top=0|crop_bottom=0|crop_left=0|crop_right=0|pix_fmt=rgb24|sample_aspect_ratio=1:1|pict_type=I|coded_picture_number=0|display_picture_number=0|interlaced_frame=0|top_field_first=0|repeat_pict=0|color_range=unknown|color_space=unknown|color_primaries=unknown|color_transfer=unknown|chroma_location=unspecified
+frame|media_type=video|stream_index=2|key_frame=1|pts=6144|pts_time=0.120000|pkt_dts=6144|pkt_dts_time=0.120000|best_effort_timestamp=6144|best_effort_timestamp_time=0.120000|duration=2048|duration_time=0.040000|pkt_pos=1023566|pkt_size=30000|width=100|height=100|crop_top=0|crop_bottom=0|crop_left=0|crop_right=0|pix_fmt=rgb24|sample_aspect_ratio=1:1|pict_type=I|coded_picture_number=0|display_picture_number=0|interlaced_frame=0|top_field_first=0|repeat_pict=0|color_range=unknown|color_space=unknown|color_primaries=unknown|color_transfer=unknown|chroma_location=unspecified
stream|index=0|codec_name=pcm_s16le|profile=unknown|codec_type=audio|codec_tag_string=PSD[16]|codec_tag=0x10445350|sample_fmt=s16|sample_rate=44100|channels=1|channel_layout=unknown|bits_per_sample=16|initial_padding=0|id=N/A|r_frame_rate=0/0|avg_frame_rate=0/0|time_base=1/44100|start_pts=0|start_time=0.000000|duration_ts=N/A|duration=N/A|bit_rate=705600|max_bit_rate=N/A|bits_per_raw_sample=N/A|nb_frames=N/A|nb_read_frames=6|nb_read_packets=6|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|tag:E=mc²|tag:encoder=Lavc pcm_s16le
stream|index=1|codec_name=rawvideo|profile=unknown|codec_type=video|codec_tag_string=RGB[24]|codec_tag=0x18424752|width=320|height=240|coded_width=320|coded_height=240|closed_captions=0|film_grain=0|has_b_frames=0|sample_aspect_ratio=1:1|display_aspect_ratio=4:3|pix_fmt=rgb24|level=-99|color_range=unknown|color_space=unknown|color_transfer=unknown|color_primaries=unknown|chroma_location=unspecified|field_order=unknown|refs=1|id=N/A|r_frame_rate=25/1|avg_frame_rate=25/1|time_base=1/51200|start_pts=0|start_time=0.000000|duration_ts=N/A|duration=N/A|bit_rate=N/A|max_bit_rate=N/A|bits_per_raw_sample=N/A|nb_frames=N/A|nb_read_frames=4|nb_read_packets=4|disposition:default=1|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|tag:title=foobar|tag:duration_ts=field-and-tags-conflict-attempt|tag:encoder=Lavc rawvideo
stream|index=2|codec_name=rawvideo|profile=unknown|codec_type=video|codec_tag_string=RGB[24]|codec_tag=0x18424752|width=100|height=100|coded_width=100|coded_height=100|closed_captions=0|film_grain=0|has_b_frames=0|sample_aspect_ratio=1:1|display_aspect_ratio=1:1|pix_fmt=rgb24|level=-99|color_range=unknown|color_space=unknown|color_transfer=unknown|color_primaries=unknown|chroma_location=unspecified|field_order=unknown|refs=1|id=N/A|r_frame_rate=25/1|avg_frame_rate=25/1|time_base=1/51200|start_pts=0|start_time=0.000000|duration_ts=N/A|duration=N/A|bit_rate=N/A|max_bit_rate=N/A|bits_per_raw_sample=N/A|nb_frames=N/A|nb_read_frames=4|nb_read_packets=4|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|tag:encoder=Lavc rawvideo
diff --git a/tests/ref/fate/ffprobe_csv b/tests/ref/fate/ffprobe_csv
index 677b352dfd..1bbb996a48 100644
--- a/tests/ref/fate/ffprobe_csv
+++ b/tests/ref/fate/ffprobe_csv
@@ -1,31 +1,31 @@
packet,audio,0,0,0.000000,0,0.000000,1024,0.023220,2048,669,K__
-frame,audio,0,1,0,0.000000,0,0.000000,0,0.000000,1024,0.023220,1024,0.023220,669,2048,s16,1024,1,unknown
+frame,audio,0,1,0,0.000000,0,0.000000,0,0.000000,1024,0.023220,669,2048,s16,1024,1,unknown
packet,video,1,0,0.000000,0,0.000000,2048,0.040000,230400,2744,K__
-frame,video,1,1,0,0.000000,0,0.000000,0,0.000000,2048,0.040000,2048,0.040000,2744,230400,320,240,0,0,0,0,rgb24,1:1,I,0,0,0,0,0,unknown,unknown,unknown,unknown,unspecified
+frame,video,1,1,0,0.000000,0,0.000000,0,0.000000,2048,0.040000,2744,230400,320,240,0,0,0,0,rgb24,1:1,I,0,0,0,0,0,unknown,unknown,unknown,unknown,unspecified
packet,video,2,0,0.000000,0,0.000000,2048,0.040000,30000,233165,K__
-frame,video,2,1,0,0.000000,0,0.000000,0,0.000000,2048,0.040000,2048,0.040000,233165,30000,100,100,0,0,0,0,rgb24,1:1,I,0,0,0,0,0,unknown,unknown,unknown,unknown,unspecified
+frame,video,2,1,0,0.000000,0,0.000000,0,0.000000,2048,0.040000,233165,30000,100,100,0,0,0,0,rgb24,1:1,I,0,0,0,0,0,unknown,unknown,unknown,unknown,unspecified
packet,audio,0,1024,0.023220,1024,0.023220,1024,0.023220,2048,263170,K__
-frame,audio,0,1,1024,0.023220,1024,0.023220,1024,0.023220,1024,0.023220,1024,0.023220,263170,2048,s16,1024,1,unknown
+frame,audio,0,1,1024,0.023220,1024,0.023220,1024,0.023220,1024,0.023220,263170,2048,s16,1024,1,unknown
packet,video,1,2048,0.040000,2048,0.040000,2048,0.040000,230400,265248,K__
-frame,video,1,1,2048,0.040000,2048,0.040000,2048,0.040000,2048,0.040000,2048,0.040000,265248,230400,320,240,0,0,0,0,rgb24,1:1,I,0,0,0,0,0,unknown,unknown,unknown,unknown,unspecified
+frame,video,1,1,2048,0.040000,2048,0.040000,2048,0.040000,2048,0.040000,265248,230400,320,240,0,0,0,0,rgb24,1:1,I,0,0,0,0,0,unknown,unknown,unknown,unknown,unspecified
packet,video,2,2048,0.040000,2048,0.040000,2048,0.040000,30000,495672,K__
-frame,video,2,1,2048,0.040000,2048,0.040000,2048,0.040000,2048,0.040000,2048,0.040000,495672,30000,100,100,0,0,0,0,rgb24,1:1,I,0,0,0,0,0,unknown,unknown,unknown,unknown,unspecified
+frame,video,2,1,2048,0.040000,2048,0.040000,2048,0.040000,2048,0.040000,495672,30000,100,100,0,0,0,0,rgb24,1:1,I,0,0,0,0,0,unknown,unknown,unknown,unknown,unspecified
packet,audio,0,2048,0.046440,2048,0.046440,1024,0.023220,2048,525677,K__
-frame,audio,0,1,2048,0.046440,2048,0.046440,2048,0.046440,1024,0.023220,1024,0.023220,525677,2048,s16,1024,1,unknown
+frame,audio,0,1,2048,0.046440,2048,0.046440,2048,0.046440,1024,0.023220,525677,2048,s16,1024,1,unknown
packet,audio,0,3072,0.069660,3072,0.069660,1024,0.023220,2048,527748,K__
-frame,audio,0,1,3072,0.069660,3072,0.069660,3072,0.069660,1024,0.023220,1024,0.023220,527748,2048,s16,1024,1,unknown
+frame,audio,0,1,3072,0.069660,3072,0.069660,3072,0.069660,1024,0.023220,527748,2048,s16,1024,1,unknown
packet,video,1,4096,0.080000,4096,0.080000,2048,0.040000,230400,529826,K__
-frame,video,1,1,4096,0.080000,4096,0.080000,4096,0.080000,2048,0.040000,2048,0.040000,529826,230400,320,240,0,0,0,0,rgb24,1:1,I,0,0,0,0,0,unknown,unknown,unknown,unknown,unspecified
+frame,video,1,1,4096,0.080000,4096,0.080000,4096,0.080000,2048,0.040000,529826,230400,320,240,0,0,0,0,rgb24,1:1,I,0,0,0,0,0,unknown,unknown,unknown,unknown,unspecified
packet,video,2,4096,0.080000,4096,0.080000,2048,0.040000,30000,760250,K__
-frame,video,2,1,4096,0.080000,4096,0.080000,4096,0.080000,2048,0.040000,2048,0.040000,760250,30000,100,100,0,0,0,0,rgb24,1:1,I,0,0,0,0,0,unknown,unknown,unknown,unknown,unspecified
+frame,video,2,1,4096,0.080000,4096,0.080000,4096,0.080000,2048,0.040000,760250,30000,100,100,0,0,0,0,rgb24,1:1,I,0,0,0,0,0,unknown,unknown,unknown,unknown,unspecified
packet,audio,0,4096,0.092880,4096,0.092880,1024,0.023220,2048,790255,K__
-frame,audio,0,1,4096,0.092880,4096,0.092880,4096,0.092880,1024,0.023220,1024,0.023220,790255,2048,s16,1024,1,unknown
+frame,audio,0,1,4096,0.092880,4096,0.092880,4096,0.092880,1024,0.023220,790255,2048,s16,1024,1,unknown
packet,audio,0,5120,0.116100,5120,0.116100,393,0.008912,786,792326,K__
-frame,audio,0,1,5120,0.116100,5120,0.116100,5120,0.116100,393,0.008912,393,0.008912,792326,786,s16,393,1,unknown
+frame,audio,0,1,5120,0.116100,5120,0.116100,5120,0.116100,393,0.008912,792326,786,s16,393,1,unknown
packet,video,1,6144,0.120000,6144,0.120000,2048,0.040000,230400,793142,K__
-frame,video,1,1,6144,0.120000,6144,0.120000,6144,0.120000,2048,0.040000,2048,0.040000,793142,230400,320,240,0,0,0,0,rgb24,1:1,I,0,0,0,0,0,unknown,unknown,unknown,unknown,unspecified
+frame,video,1,1,6144,0.120000,6144,0.120000,6144,0.120000,2048,0.040000,793142,230400,320,240,0,0,0,0,rgb24,1:1,I,0,0,0,0,0,unknown,unknown,unknown,unknown,unspecified
packet,video,2,6144,0.120000,6144,0.120000,2048,0.040000,30000,1023566,K__
-frame,video,2,1,6144,0.120000,6144,0.120000,6144,0.120000,2048,0.040000,2048,0.040000,1023566,30000,100,100,0,0,0,0,rgb24,1:1,I,0,0,0,0,0,unknown,unknown,unknown,unknown,unspecified
+frame,video,2,1,6144,0.120000,6144,0.120000,6144,0.120000,2048,0.040000,1023566,30000,100,100,0,0,0,0,rgb24,1:1,I,0,0,0,0,0,unknown,unknown,unknown,unknown,unspecified
stream,0,pcm_s16le,unknown,audio,PSD[16],0x10445350,s16,44100,1,unknown,16,0,N/A,0/0,0/0,1/44100,0,0.000000,N/A,N/A,705600,N/A,N/A,N/A,6,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,mc²,Lavc pcm_s16le
stream,1,rawvideo,unknown,video,RGB[24],0x18424752,320,240,320,240,0,0,0,1:1,4:3,rgb24,-99,unknown,unknown,unknown,unknown,unspecified,unknown,1,N/A,25/1,25/1,1/51200,0,0.000000,N/A,N/A,N/A,N/A,N/A,N/A,4,4,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,foobar,field-and-tags-conflict-attempt,Lavc rawvideo
stream,2,rawvideo,unknown,video,RGB[24],0x18424752,100,100,100,100,0,0,0,1:1,1:1,rgb24,-99,unknown,unknown,unknown,unknown,unspecified,unknown,1,N/A,25/1,25/1,1/51200,0,0.000000,N/A,N/A,N/A,N/A,N/A,N/A,4,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,Lavc rawvideo
diff --git a/tests/ref/fate/ffprobe_default b/tests/ref/fate/ffprobe_default
index 954725b91b..229c004042 100644
--- a/tests/ref/fate/ffprobe_default
+++ b/tests/ref/fate/ffprobe_default
@@ -21,8 +21,6 @@ pkt_dts=0
pkt_dts_time=0.000000
best_effort_timestamp=0
best_effort_timestamp_time=0.000000
-pkt_duration=1024
-pkt_duration_time=0.023220
duration=1024
duration_time=0.023220
pkt_pos=669
@@ -55,8 +53,6 @@ pkt_dts=0
pkt_dts_time=0.000000
best_effort_timestamp=0
best_effort_timestamp_time=0.000000
-pkt_duration=2048
-pkt_duration_time=0.040000
duration=2048
duration_time=0.040000
pkt_pos=2744
@@ -104,8 +100,6 @@ pkt_dts=0
pkt_dts_time=0.000000
best_effort_timestamp=0
best_effort_timestamp_time=0.000000
-pkt_duration=2048
-pkt_duration_time=0.040000
duration=2048
duration_time=0.040000
pkt_pos=233165
@@ -153,8 +147,6 @@ pkt_dts=1024
pkt_dts_time=0.023220
best_effort_timestamp=1024
best_effort_timestamp_time=0.023220
-pkt_duration=1024
-pkt_duration_time=0.023220
duration=1024
duration_time=0.023220
pkt_pos=263170
@@ -187,8 +179,6 @@ pkt_dts=2048
pkt_dts_time=0.040000
best_effort_timestamp=2048
best_effort_timestamp_time=0.040000
-pkt_duration=2048
-pkt_duration_time=0.040000
duration=2048
duration_time=0.040000
pkt_pos=265248
@@ -236,8 +226,6 @@ pkt_dts=2048
pkt_dts_time=0.040000
best_effort_timestamp=2048
best_effort_timestamp_time=0.040000
-pkt_duration=2048
-pkt_duration_time=0.040000
duration=2048
duration_time=0.040000
pkt_pos=495672
@@ -285,8 +273,6 @@ pkt_dts=2048
pkt_dts_time=0.046440
best_effort_timestamp=2048
best_effort_timestamp_time=0.046440
-pkt_duration=1024
-pkt_duration_time=0.023220
duration=1024
duration_time=0.023220
pkt_pos=525677
@@ -319,8 +305,6 @@ pkt_dts=3072
pkt_dts_time=0.069660
best_effort_timestamp=3072
best_effort_timestamp_time=0.069660
-pkt_duration=1024
-pkt_duration_time=0.023220
duration=1024
duration_time=0.023220
pkt_pos=527748
@@ -353,8 +337,6 @@ pkt_dts=4096
pkt_dts_time=0.080000
best_effort_timestamp=4096
best_effort_timestamp_time=0.080000
-pkt_duration=2048
-pkt_duration_time=0.040000
duration=2048
duration_time=0.040000
pkt_pos=529826
@@ -402,8 +384,6 @@ pkt_dts=4096
pkt_dts_time=0.080000
best_effort_timestamp=4096
best_effort_timestamp_time=0.080000
-pkt_duration=2048
-pkt_duration_time=0.040000
duration=2048
duration_time=0.040000
pkt_pos=760250
@@ -451,8 +431,6 @@ pkt_dts=4096
pkt_dts_time=0.092880
best_effort_timestamp=4096
best_effort_timestamp_time=0.092880
-pkt_duration=1024
-pkt_duration_time=0.023220
duration=1024
duration_time=0.023220
pkt_pos=790255
@@ -485,8 +463,6 @@ pkt_dts=5120
pkt_dts_time=0.116100
best_effort_timestamp=5120
best_effort_timestamp_time=0.116100
-pkt_duration=393
-pkt_duration_time=0.008912
duration=393
duration_time=0.008912
pkt_pos=792326
@@ -519,8 +495,6 @@ pkt_dts=6144
pkt_dts_time=0.120000
best_effort_timestamp=6144
best_effort_timestamp_time=0.120000
-pkt_duration=2048
-pkt_duration_time=0.040000
duration=2048
duration_time=0.040000
pkt_pos=793142
@@ -568,8 +542,6 @@ pkt_dts=6144
pkt_dts_time=0.120000
best_effort_timestamp=6144
best_effort_timestamp_time=0.120000
-pkt_duration=2048
-pkt_duration_time=0.040000
duration=2048
duration_time=0.040000
pkt_pos=1023566
diff --git a/tests/ref/fate/ffprobe_flat b/tests/ref/fate/ffprobe_flat
index cea6039307..d1e290ddda 100644
--- a/tests/ref/fate/ffprobe_flat
+++ b/tests/ref/fate/ffprobe_flat
@@ -18,8 +18,6 @@ packets_and_frames.frame.0.pkt_dts=0
packets_and_frames.frame.0.pkt_dts_time="0.000000"
packets_and_frames.frame.0.best_effort_timestamp=0
packets_and_frames.frame.0.best_effort_timestamp_time="0.000000"
-packets_and_frames.frame.0.pkt_duration=1024
-packets_and_frames.frame.0.pkt_duration_time="0.023220"
packets_and_frames.frame.0.duration=1024
packets_and_frames.frame.0.duration_time="0.023220"
packets_and_frames.frame.0.pkt_pos="669"
@@ -48,8 +46,6 @@ packets_and_frames.frame.1.pkt_dts=0
packets_and_frames.frame.1.pkt_dts_time="0.000000"
packets_and_frames.frame.1.best_effort_timestamp=0
packets_and_frames.frame.1.best_effort_timestamp_time="0.000000"
-packets_and_frames.frame.1.pkt_duration=2048
-packets_and_frames.frame.1.pkt_duration_time="0.040000"
packets_and_frames.frame.1.duration=2048
packets_and_frames.frame.1.duration_time="0.040000"
packets_and_frames.frame.1.pkt_pos="2744"
@@ -93,8 +89,6 @@ packets_and_frames.frame.2.pkt_dts=0
packets_and_frames.frame.2.pkt_dts_time="0.000000"
packets_and_frames.frame.2.best_effort_timestamp=0
packets_and_frames.frame.2.best_effort_timestamp_time="0.000000"
-packets_and_frames.frame.2.pkt_duration=2048
-packets_and_frames.frame.2.pkt_duration_time="0.040000"
packets_and_frames.frame.2.duration=2048
packets_and_frames.frame.2.duration_time="0.040000"
packets_and_frames.frame.2.pkt_pos="233165"
@@ -138,8 +132,6 @@ packets_and_frames.frame.3.pkt_dts=1024
packets_and_frames.frame.3.pkt_dts_time="0.023220"
packets_and_frames.frame.3.best_effort_timestamp=1024
packets_and_frames.frame.3.best_effort_timestamp_time="0.023220"
-packets_and_frames.frame.3.pkt_duration=1024
-packets_and_frames.frame.3.pkt_duration_time="0.023220"
packets_and_frames.frame.3.duration=1024
packets_and_frames.frame.3.duration_time="0.023220"
packets_and_frames.frame.3.pkt_pos="263170"
@@ -168,8 +160,6 @@ packets_and_frames.frame.4.pkt_dts=2048
packets_and_frames.frame.4.pkt_dts_time="0.040000"
packets_and_frames.frame.4.best_effort_timestamp=2048
packets_and_frames.frame.4.best_effort_timestamp_time="0.040000"
-packets_and_frames.frame.4.pkt_duration=2048
-packets_and_frames.frame.4.pkt_duration_time="0.040000"
packets_and_frames.frame.4.duration=2048
packets_and_frames.frame.4.duration_time="0.040000"
packets_and_frames.frame.4.pkt_pos="265248"
@@ -213,8 +203,6 @@ packets_and_frames.frame.5.pkt_dts=2048
packets_and_frames.frame.5.pkt_dts_time="0.040000"
packets_and_frames.frame.5.best_effort_timestamp=2048
packets_and_frames.frame.5.best_effort_timestamp_time="0.040000"
-packets_and_frames.frame.5.pkt_duration=2048
-packets_and_frames.frame.5.pkt_duration_time="0.040000"
packets_and_frames.frame.5.duration=2048
packets_and_frames.frame.5.duration_time="0.040000"
packets_and_frames.frame.5.pkt_pos="495672"
@@ -258,8 +246,6 @@ packets_and_frames.frame.6.pkt_dts=2048
packets_and_frames.frame.6.pkt_dts_time="0.046440"
packets_and_frames.frame.6.best_effort_timestamp=2048
packets_and_frames.frame.6.best_effort_timestamp_time="0.046440"
-packets_and_frames.frame.6.pkt_duration=1024
-packets_and_frames.frame.6.pkt_duration_time="0.023220"
packets_and_frames.frame.6.duration=1024
packets_and_frames.frame.6.duration_time="0.023220"
packets_and_frames.frame.6.pkt_pos="525677"
@@ -288,8 +274,6 @@ packets_and_frames.frame.7.pkt_dts=3072
packets_and_frames.frame.7.pkt_dts_time="0.069660"
packets_and_frames.frame.7.best_effort_timestamp=3072
packets_and_frames.frame.7.best_effort_timestamp_time="0.069660"
-packets_and_frames.frame.7.pkt_duration=1024
-packets_and_frames.frame.7.pkt_duration_time="0.023220"
packets_and_frames.frame.7.duration=1024
packets_and_frames.frame.7.duration_time="0.023220"
packets_and_frames.frame.7.pkt_pos="527748"
@@ -318,8 +302,6 @@ packets_and_frames.frame.8.pkt_dts=4096
packets_and_frames.frame.8.pkt_dts_time="0.080000"
packets_and_frames.frame.8.best_effort_timestamp=4096
packets_and_frames.frame.8.best_effort_timestamp_time="0.080000"
-packets_and_frames.frame.8.pkt_duration=2048
-packets_and_frames.frame.8.pkt_duration_time="0.040000"
packets_and_frames.frame.8.duration=2048
packets_and_frames.frame.8.duration_time="0.040000"
packets_and_frames.frame.8.pkt_pos="529826"
@@ -363,8 +345,6 @@ packets_and_frames.frame.9.pkt_dts=4096
packets_and_frames.frame.9.pkt_dts_time="0.080000"
packets_and_frames.frame.9.best_effort_timestamp=4096
packets_and_frames.frame.9.best_effort_timestamp_time="0.080000"
-packets_and_frames.frame.9.pkt_duration=2048
-packets_and_frames.frame.9.pkt_duration_time="0.040000"
packets_and_frames.frame.9.duration=2048
packets_and_frames.frame.9.duration_time="0.040000"
packets_and_frames.frame.9.pkt_pos="760250"
@@ -408,8 +388,6 @@ packets_and_frames.frame.10.pkt_dts=4096
packets_and_frames.frame.10.pkt_dts_time="0.092880"
packets_and_frames.frame.10.best_effort_timestamp=4096
packets_and_frames.frame.10.best_effort_timestamp_time="0.092880"
-packets_and_frames.frame.10.pkt_duration=1024
-packets_and_frames.frame.10.pkt_duration_time="0.023220"
packets_and_frames.frame.10.duration=1024
packets_and_frames.frame.10.duration_time="0.023220"
packets_and_frames.frame.10.pkt_pos="790255"
@@ -438,8 +416,6 @@ packets_and_frames.frame.11.pkt_dts=5120
packets_and_frames.frame.11.pkt_dts_time="0.116100"
packets_and_frames.frame.11.best_effort_timestamp=5120
packets_and_frames.frame.11.best_effort_timestamp_time="0.116100"
-packets_and_frames.frame.11.pkt_duration=393
-packets_and_frames.frame.11.pkt_duration_time="0.008912"
packets_and_frames.frame.11.duration=393
packets_and_frames.frame.11.duration_time="0.008912"
packets_and_frames.frame.11.pkt_pos="792326"
@@ -468,8 +444,6 @@ packets_and_frames.frame.12.pkt_dts=6144
packets_and_frames.frame.12.pkt_dts_time="0.120000"
packets_and_frames.frame.12.best_effort_timestamp=6144
packets_and_frames.frame.12.best_effort_timestamp_time="0.120000"
-packets_and_frames.frame.12.pkt_duration=2048
-packets_and_frames.frame.12.pkt_duration_time="0.040000"
packets_and_frames.frame.12.duration=2048
packets_and_frames.frame.12.duration_time="0.040000"
packets_and_frames.frame.12.pkt_pos="793142"
@@ -513,8 +487,6 @@ packets_and_frames.frame.13.pkt_dts=6144
packets_and_frames.frame.13.pkt_dts_time="0.120000"
packets_and_frames.frame.13.best_effort_timestamp=6144
packets_and_frames.frame.13.best_effort_timestamp_time="0.120000"
-packets_and_frames.frame.13.pkt_duration=2048
-packets_and_frames.frame.13.pkt_duration_time="0.040000"
packets_and_frames.frame.13.duration=2048
packets_and_frames.frame.13.duration_time="0.040000"
packets_and_frames.frame.13.pkt_pos="1023566"
diff --git a/tests/ref/fate/ffprobe_ini b/tests/ref/fate/ffprobe_ini
index 497154ee7e..6716094d68 100644
--- a/tests/ref/fate/ffprobe_ini
+++ b/tests/ref/fate/ffprobe_ini
@@ -23,8 +23,6 @@ pkt_dts=0
pkt_dts_time=0.000000
best_effort_timestamp=0
best_effort_timestamp_time=0.000000
-pkt_duration=1024
-pkt_duration_time=0.023220
duration=1024
duration_time=0.023220
pkt_pos=669
@@ -57,8 +55,6 @@ pkt_dts=0
pkt_dts_time=0.000000
best_effort_timestamp=0
best_effort_timestamp_time=0.000000
-pkt_duration=2048
-pkt_duration_time=0.040000
duration=2048
duration_time=0.040000
pkt_pos=2744
@@ -106,8 +102,6 @@ pkt_dts=0
pkt_dts_time=0.000000
best_effort_timestamp=0
best_effort_timestamp_time=0.000000
-pkt_duration=2048
-pkt_duration_time=0.040000
duration=2048
duration_time=0.040000
pkt_pos=233165
@@ -155,8 +149,6 @@ pkt_dts=1024
pkt_dts_time=0.023220
best_effort_timestamp=1024
best_effort_timestamp_time=0.023220
-pkt_duration=1024
-pkt_duration_time=0.023220
duration=1024
duration_time=0.023220
pkt_pos=263170
@@ -189,8 +181,6 @@ pkt_dts=2048
pkt_dts_time=0.040000
best_effort_timestamp=2048
best_effort_timestamp_time=0.040000
-pkt_duration=2048
-pkt_duration_time=0.040000
duration=2048
duration_time=0.040000
pkt_pos=265248
@@ -238,8 +228,6 @@ pkt_dts=2048
pkt_dts_time=0.040000
best_effort_timestamp=2048
best_effort_timestamp_time=0.040000
-pkt_duration=2048
-pkt_duration_time=0.040000
duration=2048
duration_time=0.040000
pkt_pos=495672
@@ -287,8 +275,6 @@ pkt_dts=2048
pkt_dts_time=0.046440
best_effort_timestamp=2048
best_effort_timestamp_time=0.046440
-pkt_duration=1024
-pkt_duration_time=0.023220
duration=1024
duration_time=0.023220
pkt_pos=525677
@@ -321,8 +307,6 @@ pkt_dts=3072
pkt_dts_time=0.069660
best_effort_timestamp=3072
best_effort_timestamp_time=0.069660
-pkt_duration=1024
-pkt_duration_time=0.023220
duration=1024
duration_time=0.023220
pkt_pos=527748
@@ -355,8 +339,6 @@ pkt_dts=4096
pkt_dts_time=0.080000
best_effort_timestamp=4096
best_effort_timestamp_time=0.080000
-pkt_duration=2048
-pkt_duration_time=0.040000
duration=2048
duration_time=0.040000
pkt_pos=529826
@@ -404,8 +386,6 @@ pkt_dts=4096
pkt_dts_time=0.080000
best_effort_timestamp=4096
best_effort_timestamp_time=0.080000
-pkt_duration=2048
-pkt_duration_time=0.040000
duration=2048
duration_time=0.040000
pkt_pos=760250
@@ -453,8 +433,6 @@ pkt_dts=4096
pkt_dts_time=0.092880
best_effort_timestamp=4096
best_effort_timestamp_time=0.092880
-pkt_duration=1024
-pkt_duration_time=0.023220
duration=1024
duration_time=0.023220
pkt_pos=790255
@@ -487,8 +465,6 @@ pkt_dts=5120
pkt_dts_time=0.116100
best_effort_timestamp=5120
best_effort_timestamp_time=0.116100
-pkt_duration=393
-pkt_duration_time=0.008912
duration=393
duration_time=0.008912
pkt_pos=792326
@@ -521,8 +497,6 @@ pkt_dts=6144
pkt_dts_time=0.120000
best_effort_timestamp=6144
best_effort_timestamp_time=0.120000
-pkt_duration=2048
-pkt_duration_time=0.040000
duration=2048
duration_time=0.040000
pkt_pos=793142
@@ -570,8 +544,6 @@ pkt_dts=6144
pkt_dts_time=0.120000
best_effort_timestamp=6144
best_effort_timestamp_time=0.120000
-pkt_duration=2048
-pkt_duration_time=0.040000
duration=2048
duration_time=0.040000
pkt_pos=1023566
diff --git a/tests/ref/fate/ffprobe_json b/tests/ref/fate/ffprobe_json
index fe392fb47a..cf5b4eae1e 100644
--- a/tests/ref/fate/ffprobe_json
+++ b/tests/ref/fate/ffprobe_json
@@ -25,8 +25,6 @@
"pkt_dts_time": "0.000000",
"best_effort_timestamp": 0,
"best_effort_timestamp_time": "0.000000",
- "pkt_duration": 1024,
- "pkt_duration_time": "0.023220",
"duration": 1024,
"duration_time": "0.023220",
"pkt_pos": "669",
@@ -60,8 +58,6 @@
"pkt_dts_time": "0.000000",
"best_effort_timestamp": 0,
"best_effort_timestamp_time": "0.000000",
- "pkt_duration": 2048,
- "pkt_duration_time": "0.040000",
"duration": 2048,
"duration_time": "0.040000",
"pkt_pos": "2744",
@@ -106,8 +102,6 @@
"pkt_dts_time": "0.000000",
"best_effort_timestamp": 0,
"best_effort_timestamp_time": "0.000000",
- "pkt_duration": 2048,
- "pkt_duration_time": "0.040000",
"duration": 2048,
"duration_time": "0.040000",
"pkt_pos": "233165",
@@ -152,8 +146,6 @@
"pkt_dts_time": "0.023220",
"best_effort_timestamp": 1024,
"best_effort_timestamp_time": "0.023220",
- "pkt_duration": 1024,
- "pkt_duration_time": "0.023220",
"duration": 1024,
"duration_time": "0.023220",
"pkt_pos": "263170",
@@ -187,8 +179,6 @@
"pkt_dts_time": "0.040000",
"best_effort_timestamp": 2048,
"best_effort_timestamp_time": "0.040000",
- "pkt_duration": 2048,
- "pkt_duration_time": "0.040000",
"duration": 2048,
"duration_time": "0.040000",
"pkt_pos": "265248",
@@ -233,8 +223,6 @@
"pkt_dts_time": "0.040000",
"best_effort_timestamp": 2048,
"best_effort_timestamp_time": "0.040000",
- "pkt_duration": 2048,
- "pkt_duration_time": "0.040000",
"duration": 2048,
"duration_time": "0.040000",
"pkt_pos": "495672",
@@ -279,8 +267,6 @@
"pkt_dts_time": "0.046440",
"best_effort_timestamp": 2048,
"best_effort_timestamp_time": "0.046440",
- "pkt_duration": 1024,
- "pkt_duration_time": "0.023220",
"duration": 1024,
"duration_time": "0.023220",
"pkt_pos": "525677",
@@ -314,8 +300,6 @@
"pkt_dts_time": "0.069660",
"best_effort_timestamp": 3072,
"best_effort_timestamp_time": "0.069660",
- "pkt_duration": 1024,
- "pkt_duration_time": "0.023220",
"duration": 1024,
"duration_time": "0.023220",
"pkt_pos": "527748",
@@ -349,8 +333,6 @@
"pkt_dts_time": "0.080000",
"best_effort_timestamp": 4096,
"best_effort_timestamp_time": "0.080000",
- "pkt_duration": 2048,
- "pkt_duration_time": "0.040000",
"duration": 2048,
"duration_time": "0.040000",
"pkt_pos": "529826",
@@ -395,8 +377,6 @@
"pkt_dts_time": "0.080000",
"best_effort_timestamp": 4096,
"best_effort_timestamp_time": "0.080000",
- "pkt_duration": 2048,
- "pkt_duration_time": "0.040000",
"duration": 2048,
"duration_time": "0.040000",
"pkt_pos": "760250",
@@ -441,8 +421,6 @@
"pkt_dts_time": "0.092880",
"best_effort_timestamp": 4096,
"best_effort_timestamp_time": "0.092880",
- "pkt_duration": 1024,
- "pkt_duration_time": "0.023220",
"duration": 1024,
"duration_time": "0.023220",
"pkt_pos": "790255",
@@ -476,8 +454,6 @@
"pkt_dts_time": "0.116100",
"best_effort_timestamp": 5120,
"best_effort_timestamp_time": "0.116100",
- "pkt_duration": 393,
- "pkt_duration_time": "0.008912",
"duration": 393,
"duration_time": "0.008912",
"pkt_pos": "792326",
@@ -511,8 +487,6 @@
"pkt_dts_time": "0.120000",
"best_effort_timestamp": 6144,
"best_effort_timestamp_time": "0.120000",
- "pkt_duration": 2048,
- "pkt_duration_time": "0.040000",
"duration": 2048,
"duration_time": "0.040000",
"pkt_pos": "793142",
@@ -557,8 +531,6 @@
"pkt_dts_time": "0.120000",
"best_effort_timestamp": 6144,
"best_effort_timestamp_time": "0.120000",
- "pkt_duration": 2048,
- "pkt_duration_time": "0.040000",
"duration": 2048,
"duration_time": "0.040000",
"pkt_pos": "1023566",
diff --git a/tests/ref/fate/ffprobe_xml b/tests/ref/fate/ffprobe_xml
index 038dd36372..eb1d265100 100644
--- a/tests/ref/fate/ffprobe_xml
+++ b/tests/ref/fate/ffprobe_xml
@@ -2,33 +2,33 @@
<ffprobe>
<packets_and_frames>
<packet codec_type="audio" stream_index="0" pts="0" pts_time="0.000000" dts="0" dts_time="0.000000" duration="1024" duration_time="0.023220" size="2048" pos="669" flags="K__"/>
- <frame media_type="audio" stream_index="0" key_frame="1" pts="0" pts_time="0.000000" pkt_dts="0" pkt_dts_time="0.000000" best_effort_timestamp="0" best_effort_timestamp_time="0.000000" pkt_duration="1024" pkt_duration_time="0.023220" duration="1024" duration_time="0.023220" pkt_pos="669" pkt_size="2048" sample_fmt="s16" nb_samples="1024" channels="1"/>
+ <frame media_type="audio" stream_index="0" key_frame="1" pts="0" pts_time="0.000000" pkt_dts="0" pkt_dts_time="0.000000" best_effort_timestamp="0" best_effort_timestamp_time="0.000000" duration="1024" duration_time="0.023220" pkt_pos="669" pkt_size="2048" sample_fmt="s16" nb_samples="1024" channels="1"/>
<packet codec_type="video" stream_index="1" pts="0" pts_time="0.000000" dts="0" dts_time="0.000000" duration="2048" duration_time="0.040000" size="230400" pos="2744" flags="K__"/>
- <frame media_type="video" stream_index="1" key_frame="1" pts="0" pts_time="0.000000" pkt_dts="0" pkt_dts_time="0.000000" best_effort_timestamp="0" best_effort_timestamp_time="0.000000" pkt_duration="2048" pkt_duration_time="0.040000" duration="2048" duration_time="0.040000" pkt_pos="2744" pkt_size="230400" width="320" height="240" crop_top="0" crop_bottom="0" crop_left="0" crop_right="0" pix_fmt="rgb24" sample_aspect_ratio="1:1" pict_type="I" coded_picture_number="0" display_picture_number="0" interlaced_frame="0" top_field_first="0" repeat_pict="0"/>
+ <frame media_type="video" stream_index="1" key_frame="1" pts="0" pts_time="0.000000" pkt_dts="0" pkt_dts_time="0.000000" best_effort_timestamp="0" best_effort_timestamp_time="0.000000" duration="2048" duration_time="0.040000" pkt_pos="2744" pkt_size="230400" width="320" height="240" crop_top="0" crop_bottom="0" crop_left="0" crop_right="0" pix_fmt="rgb24" sample_aspect_ratio="1:1" pict_type="I" coded_picture_number="0" display_picture_number="0" interlaced_frame="0" top_field_first="0" repeat_pict="0"/>
<packet codec_type="video" stream_index="2" pts="0" pts_time="0.000000" dts="0" dts_time="0.000000" duration="2048" duration_time="0.040000" size="30000" pos="233165" flags="K__"/>
- <frame media_type="video" stream_index="2" key_frame="1" pts="0" pts_time="0.000000" pkt_dts="0" pkt_dts_time="0.000000" best_effort_timestamp="0" best_effort_timestamp_time="0.000000" pkt_duration="2048" pkt_duration_time="0.040000" duration="2048" duration_time="0.040000" pkt_pos="233165" pkt_size="30000" width="100" height="100" crop_top="0" crop_bottom="0" crop_left="0" crop_right="0" pix_fmt="rgb24" sample_aspect_ratio="1:1" pict_type="I" coded_picture_number="0" display_picture_number="0" interlaced_frame="0" top_field_first="0" repeat_pict="0"/>
+ <frame media_type="video" stream_index="2" key_frame="1" pts="0" pts_time="0.000000" pkt_dts="0" pkt_dts_time="0.000000" best_effort_timestamp="0" best_effort_timestamp_time="0.000000" duration="2048" duration_time="0.040000" pkt_pos="233165" pkt_size="30000" width="100" height="100" crop_top="0" crop_bottom="0" crop_left="0" crop_right="0" pix_fmt="rgb24" sample_aspect_ratio="1:1" pict_type="I" coded_picture_number="0" display_picture_number="0" interlaced_frame="0" top_field_first="0" repeat_pict="0"/>
<packet codec_type="audio" stream_index="0" pts="1024" pts_time="0.023220" dts="1024" dts_time="0.023220" duration="1024" duration_time="0.023220" size="2048" pos="263170" flags="K__"/>
- <frame media_type="audio" stream_index="0" key_frame="1" pts="1024" pts_time="0.023220" pkt_dts="1024" pkt_dts_time="0.023220" best_effort_timestamp="1024" best_effort_timestamp_time="0.023220" pkt_duration="1024" pkt_duration_time="0.023220" duration="1024" duration_time="0.023220" pkt_pos="263170" pkt_size="2048" sample_fmt="s16" nb_samples="1024" channels="1"/>
+ <frame media_type="audio" stream_index="0" key_frame="1" pts="1024" pts_time="0.023220" pkt_dts="1024" pkt_dts_time="0.023220" best_effort_timestamp="1024" best_effort_timestamp_time="0.023220" duration="1024" duration_time="0.023220" pkt_pos="263170" pkt_size="2048" sample_fmt="s16" nb_samples="1024" channels="1"/>
<packet codec_type="video" stream_index="1" pts="2048" pts_time="0.040000" dts="2048" dts_time="0.040000" duration="2048" duration_time="0.040000" size="230400" pos="265248" flags="K__"/>
- <frame media_type="video" stream_index="1" key_frame="1" pts="2048" pts_time="0.040000" pkt_dts="2048" pkt_dts_time="0.040000" best_effort_timestamp="2048" best_effort_timestamp_time="0.040000" pkt_duration="2048" pkt_duration_time="0.040000" duration="2048" duration_time="0.040000" pkt_pos="265248" pkt_size="230400" width="320" height="240" crop_top="0" crop_bottom="0" crop_left="0" crop_right="0" pix_fmt="rgb24" sample_aspect_ratio="1:1" pict_type="I" coded_picture_number="0" display_picture_number="0" interlaced_frame="0" top_field_first="0" repeat_pict="0"/>
+ <frame media_type="video" stream_index="1" key_frame="1" pts="2048" pts_time="0.040000" pkt_dts="2048" pkt_dts_time="0.040000" best_effort_timestamp="2048" best_effort_timestamp_time="0.040000" duration="2048" duration_time="0.040000" pkt_pos="265248" pkt_size="230400" width="320" height="240" crop_top="0" crop_bottom="0" crop_left="0" crop_right="0" pix_fmt="rgb24" sample_aspect_ratio="1:1" pict_type="I" coded_picture_number="0" display_picture_number="0" interlaced_frame="0" top_field_first="0" repeat_pict="0"/>
<packet codec_type="video" stream_index="2" pts="2048" pts_time="0.040000" dts="2048" dts_time="0.040000" duration="2048" duration_time="0.040000" size="30000" pos="495672" flags="K__"/>
- <frame media_type="video" stream_index="2" key_frame="1" pts="2048" pts_time="0.040000" pkt_dts="2048" pkt_dts_time="0.040000" best_effort_timestamp="2048" best_effort_timestamp_time="0.040000" pkt_duration="2048" pkt_duration_time="0.040000" duration="2048" duration_time="0.040000" pkt_pos="495672" pkt_size="30000" width="100" height="100" crop_top="0" crop_bottom="0" crop_left="0" crop_right="0" pix_fmt="rgb24" sample_aspect_ratio="1:1" pict_type="I" coded_picture_number="0" display_picture_number="0" interlaced_frame="0" top_field_first="0" repeat_pict="0"/>
+ <frame media_type="video" stream_index="2" key_frame="1" pts="2048" pts_time="0.040000" pkt_dts="2048" pkt_dts_time="0.040000" best_effort_timestamp="2048" best_effort_timestamp_time="0.040000" duration="2048" duration_time="0.040000" pkt_pos="495672" pkt_size="30000" width="100" height="100" crop_top="0" crop_bottom="0" crop_left="0" crop_right="0" pix_fmt="rgb24" sample_aspect_ratio="1:1" pict_type="I" coded_picture_number="0" display_picture_number="0" interlaced_frame="0" top_field_first="0" repeat_pict="0"/>
<packet codec_type="audio" stream_index="0" pts="2048" pts_time="0.046440" dts="2048" dts_time="0.046440" duration="1024" duration_time="0.023220" size="2048" pos="525677" flags="K__"/>
- <frame media_type="audio" stream_index="0" key_frame="1" pts="2048" pts_time="0.046440" pkt_dts="2048" pkt_dts_time="0.046440" best_effort_timestamp="2048" best_effort_timestamp_time="0.046440" pkt_duration="1024" pkt_duration_time="0.023220" duration="1024" duration_time="0.023220" pkt_pos="525677" pkt_size="2048" sample_fmt="s16" nb_samples="1024" channels="1"/>
+ <frame media_type="audio" stream_index="0" key_frame="1" pts="2048" pts_time="0.046440" pkt_dts="2048" pkt_dts_time="0.046440" best_effort_timestamp="2048" best_effort_timestamp_time="0.046440" duration="1024" duration_time="0.023220" pkt_pos="525677" pkt_size="2048" sample_fmt="s16" nb_samples="1024" channels="1"/>
<packet codec_type="audio" stream_index="0" pts="3072" pts_time="0.069660" dts="3072" dts_time="0.069660" duration="1024" duration_time="0.023220" size="2048" pos="527748" flags="K__"/>
- <frame media_type="audio" stream_index="0" key_frame="1" pts="3072" pts_time="0.069660" pkt_dts="3072" pkt_dts_time="0.069660" best_effort_timestamp="3072" best_effort_timestamp_time="0.069660" pkt_duration="1024" pkt_duration_time="0.023220" duration="1024" duration_time="0.023220" pkt_pos="527748" pkt_size="2048" sample_fmt="s16" nb_samples="1024" channels="1"/>
+ <frame media_type="audio" stream_index="0" key_frame="1" pts="3072" pts_time="0.069660" pkt_dts="3072" pkt_dts_time="0.069660" best_effort_timestamp="3072" best_effort_timestamp_time="0.069660" duration="1024" duration_time="0.023220" pkt_pos="527748" pkt_size="2048" sample_fmt="s16" nb_samples="1024" channels="1"/>
<packet codec_type="video" stream_index="1" pts="4096" pts_time="0.080000" dts="4096" dts_time="0.080000" duration="2048" duration_time="0.040000" size="230400" pos="529826" flags="K__"/>
- <frame media_type="video" stream_index="1" key_frame="1" pts="4096" pts_time="0.080000" pkt_dts="4096" pkt_dts_time="0.080000" best_effort_timestamp="4096" best_effort_timestamp_time="0.080000" pkt_duration="2048" pkt_duration_time="0.040000" duration="2048" duration_time="0.040000" pkt_pos="529826" pkt_size="230400" width="320" height="240" crop_top="0" crop_bottom="0" crop_left="0" crop_right="0" pix_fmt="rgb24" sample_aspect_ratio="1:1" pict_type="I" coded_picture_number="0" display_picture_number="0" interlaced_frame="0" top_field_first="0" repeat_pict="0"/>
+ <frame media_type="video" stream_index="1" key_frame="1" pts="4096" pts_time="0.080000" pkt_dts="4096" pkt_dts_time="0.080000" best_effort_timestamp="4096" best_effort_timestamp_time="0.080000" duration="2048" duration_time="0.040000" pkt_pos="529826" pkt_size="230400" width="320" height="240" crop_top="0" crop_bottom="0" crop_left="0" crop_right="0" pix_fmt="rgb24" sample_aspect_ratio="1:1" pict_type="I" coded_picture_number="0" display_picture_number="0" interlaced_frame="0" top_field_first="0" repeat_pict="0"/>
<packet codec_type="video" stream_index="2" pts="4096" pts_time="0.080000" dts="4096" dts_time="0.080000" duration="2048" duration_time="0.040000" size="30000" pos="760250" flags="K__"/>
- <frame media_type="video" stream_index="2" key_frame="1" pts="4096" pts_time="0.080000" pkt_dts="4096" pkt_dts_time="0.080000" best_effort_timestamp="4096" best_effort_timestamp_time="0.080000" pkt_duration="2048" pkt_duration_time="0.040000" duration="2048" duration_time="0.040000" pkt_pos="760250" pkt_size="30000" width="100" height="100" crop_top="0" crop_bottom="0" crop_left="0" crop_right="0" pix_fmt="rgb24" sample_aspect_ratio="1:1" pict_type="I" coded_picture_number="0" display_picture_number="0" interlaced_frame="0" top_field_first="0" repeat_pict="0"/>
+ <frame media_type="video" stream_index="2" key_frame="1" pts="4096" pts_time="0.080000" pkt_dts="4096" pkt_dts_time="0.080000" best_effort_timestamp="4096" best_effort_timestamp_time="0.080000" duration="2048" duration_time="0.040000" pkt_pos="760250" pkt_size="30000" width="100" height="100" crop_top="0" crop_bottom="0" crop_left="0" crop_right="0" pix_fmt="rgb24" sample_aspect_ratio="1:1" pict_type="I" coded_picture_number="0" display_picture_number="0" interlaced_frame="0" top_field_first="0" repeat_pict="0"/>
<packet codec_type="audio" stream_index="0" pts="4096" pts_time="0.092880" dts="4096" dts_time="0.092880" duration="1024" duration_time="0.023220" size="2048" pos="790255" flags="K__"/>
- <frame media_type="audio" stream_index="0" key_frame="1" pts="4096" pts_time="0.092880" pkt_dts="4096" pkt_dts_time="0.092880" best_effort_timestamp="4096" best_effort_timestamp_time="0.092880" pkt_duration="1024" pkt_duration_time="0.023220" duration="1024" duration_time="0.023220" pkt_pos="790255" pkt_size="2048" sample_fmt="s16" nb_samples="1024" channels="1"/>
+ <frame media_type="audio" stream_index="0" key_frame="1" pts="4096" pts_time="0.092880" pkt_dts="4096" pkt_dts_time="0.092880" best_effort_timestamp="4096" best_effort_timestamp_time="0.092880" duration="1024" duration_time="0.023220" pkt_pos="790255" pkt_size="2048" sample_fmt="s16" nb_samples="1024" channels="1"/>
<packet codec_type="audio" stream_index="0" pts="5120" pts_time="0.116100" dts="5120" dts_time="0.116100" duration="393" duration_time="0.008912" size="786" pos="792326" flags="K__"/>
- <frame media_type="audio" stream_index="0" key_frame="1" pts="5120" pts_time="0.116100" pkt_dts="5120" pkt_dts_time="0.116100" best_effort_timestamp="5120" best_effort_timestamp_time="0.116100" pkt_duration="393" pkt_duration_time="0.008912" duration="393" duration_time="0.008912" pkt_pos="792326" pkt_size="786" sample_fmt="s16" nb_samples="393" channels="1"/>
+ <frame media_type="audio" stream_index="0" key_frame="1" pts="5120" pts_time="0.116100" pkt_dts="5120" pkt_dts_time="0.116100" best_effort_timestamp="5120" best_effort_timestamp_time="0.116100" duration="393" duration_time="0.008912" pkt_pos="792326" pkt_size="786" sample_fmt="s16" nb_samples="393" channels="1"/>
<packet codec_type="video" stream_index="1" pts="6144" pts_time="0.120000" dts="6144" dts_time="0.120000" duration="2048" duration_time="0.040000" size="230400" pos="793142" flags="K__"/>
- <frame media_type="video" stream_index="1" key_frame="1" pts="6144" pts_time="0.120000" pkt_dts="6144" pkt_dts_time="0.120000" best_effort_timestamp="6144" best_effort_timestamp_time="0.120000" pkt_duration="2048" pkt_duration_time="0.040000" duration="2048" duration_time="0.040000" pkt_pos="793142" pkt_size="230400" width="320" height="240" crop_top="0" crop_bottom="0" crop_left="0" crop_right="0" pix_fmt="rgb24" sample_aspect_ratio="1:1" pict_type="I" coded_picture_number="0" display_picture_number="0" interlaced_frame="0" top_field_first="0" repeat_pict="0"/>
+ <frame media_type="video" stream_index="1" key_frame="1" pts="6144" pts_time="0.120000" pkt_dts="6144" pkt_dts_time="0.120000" best_effort_timestamp="6144" best_effort_timestamp_time="0.120000" duration="2048" duration_time="0.040000" pkt_pos="793142" pkt_size="230400" width="320" height="240" crop_top="0" crop_bottom="0" crop_left="0" crop_right="0" pix_fmt="rgb24" sample_aspect_ratio="1:1" pict_type="I" coded_picture_number="0" display_picture_number="0" interlaced_frame="0" top_field_first="0" repeat_pict="0"/>
<packet codec_type="video" stream_index="2" pts="6144" pts_time="0.120000" dts="6144" dts_time="0.120000" duration="2048" duration_time="0.040000" size="30000" pos="1023566" flags="K__"/>
- <frame media_type="video" stream_index="2" key_frame="1" pts="6144" pts_time="0.120000" pkt_dts="6144" pkt_dts_time="0.120000" best_effort_timestamp="6144" best_effort_timestamp_time="0.120000" pkt_duration="2048" pkt_duration_time="0.040000" duration="2048" duration_time="0.040000" pkt_pos="1023566" pkt_size="30000" width="100" height="100" crop_top="0" crop_bottom="0" crop_left="0" crop_right="0" pix_fmt="rgb24" sample_aspect_ratio="1:1" pict_type="I" coded_picture_number="0" display_picture_number="0" interlaced_frame="0" top_field_first="0" repeat_pict="0"/>
+ <frame media_type="video" stream_index="2" key_frame="1" pts="6144" pts_time="0.120000" pkt_dts="6144" pkt_dts_time="0.120000" best_effort_timestamp="6144" best_effort_timestamp_time="0.120000" duration="2048" duration_time="0.040000" pkt_pos="1023566" pkt_size="30000" width="100" height="100" crop_top="0" crop_bottom="0" crop_left="0" crop_right="0" pix_fmt="rgb24" sample_aspect_ratio="1:1" pict_type="I" coded_picture_number="0" display_picture_number="0" interlaced_frame="0" top_field_first="0" repeat_pict="0"/>
</packets_and_frames>
<streams>
diff --git a/tests/ref/fate/ffprobe_xsd b/tests/ref/fate/ffprobe_xsd
index 7ecaaa4ec0..1d0a4d0e38 100644
--- a/tests/ref/fate/ffprobe_xsd
+++ b/tests/ref/fate/ffprobe_xsd
@@ -2,33 +2,33 @@
<ffprobe:ffprobe xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ffprobe="http://www.ffmpeg.org/schema/ffprobe" xsi:schemaLocation="http://www.ffmpeg.org/schema/ffprobe ffprobe.xsd">
<packets_and_frames>
<packet codec_type="audio" stream_index="0" pts="0" pts_time="0.000000" dts="0" dts_time="0.000000" duration="1024" duration_time="0.023220" size="2048" pos="669" flags="K__"/>
- <frame media_type="audio" stream_index="0" key_frame="1" pts="0" pts_time="0.000000" pkt_dts="0" pkt_dts_time="0.000000" best_effort_timestamp="0" best_effort_timestamp_time="0.000000" pkt_duration="1024" pkt_duration_time="0.023220" duration="1024" duration_time="0.023220" pkt_pos="669" pkt_size="2048" sample_fmt="s16" nb_samples="1024" channels="1"/>
+ <frame media_type="audio" stream_index="0" key_frame="1" pts="0" pts_time="0.000000" pkt_dts="0" pkt_dts_time="0.000000" best_effort_timestamp="0" best_effort_timestamp_time="0.000000" duration="1024" duration_time="0.023220" pkt_pos="669" pkt_size="2048" sample_fmt="s16" nb_samples="1024" channels="1"/>
<packet codec_type="video" stream_index="1" pts="0" pts_time="0.000000" dts="0" dts_time="0.000000" duration="2048" duration_time="0.040000" size="230400" pos="2744" flags="K__"/>
- <frame media_type="video" stream_index="1" key_frame="1" pts="0" pts_time="0.000000" pkt_dts="0" pkt_dts_time="0.000000" best_effort_timestamp="0" best_effort_timestamp_time="0.000000" pkt_duration="2048" pkt_duration_time="0.040000" duration="2048" duration_time="0.040000" pkt_pos="2744" pkt_size="230400" width="320" height="240" crop_top="0" crop_bottom="0" crop_left="0" crop_right="0" pix_fmt="rgb24" sample_aspect_ratio="1:1" pict_type="I" coded_picture_number="0" display_picture_number="0" interlaced_frame="0" top_field_first="0" repeat_pict="0"/>
+ <frame media_type="video" stream_index="1" key_frame="1" pts="0" pts_time="0.000000" pkt_dts="0" pkt_dts_time="0.000000" best_effort_timestamp="0" best_effort_timestamp_time="0.000000" duration="2048" duration_time="0.040000" pkt_pos="2744" pkt_size="230400" width="320" height="240" crop_top="0" crop_bottom="0" crop_left="0" crop_right="0" pix_fmt="rgb24" sample_aspect_ratio="1:1" pict_type="I" coded_picture_number="0" display_picture_number="0" interlaced_frame="0" top_field_first="0" repeat_pict="0"/>
<packet codec_type="video" stream_index="2" pts="0" pts_time="0.000000" dts="0" dts_time="0.000000" duration="2048" duration_time="0.040000" size="30000" pos="233165" flags="K__"/>
- <frame media_type="video" stream_index="2" key_frame="1" pts="0" pts_time="0.000000" pkt_dts="0" pkt_dts_time="0.000000" best_effort_timestamp="0" best_effort_timestamp_time="0.000000" pkt_duration="2048" pkt_duration_time="0.040000" duration="2048" duration_time="0.040000" pkt_pos="233165" pkt_size="30000" width="100" height="100" crop_top="0" crop_bottom="0" crop_left="0" crop_right="0" pix_fmt="rgb24" sample_aspect_ratio="1:1" pict_type="I" coded_picture_number="0" display_picture_number="0" interlaced_frame="0" top_field_first="0" repeat_pict="0"/>
+ <frame media_type="video" stream_index="2" key_frame="1" pts="0" pts_time="0.000000" pkt_dts="0" pkt_dts_time="0.000000" best_effort_timestamp="0" best_effort_timestamp_time="0.000000" duration="2048" duration_time="0.040000" pkt_pos="233165" pkt_size="30000" width="100" height="100" crop_top="0" crop_bottom="0" crop_left="0" crop_right="0" pix_fmt="rgb24" sample_aspect_ratio="1:1" pict_type="I" coded_picture_number="0" display_picture_number="0" interlaced_frame="0" top_field_first="0" repeat_pict="0"/>
<packet codec_type="audio" stream_index="0" pts="1024" pts_time="0.023220" dts="1024" dts_time="0.023220" duration="1024" duration_time="0.023220" size="2048" pos="263170" flags="K__"/>
- <frame media_type="audio" stream_index="0" key_frame="1" pts="1024" pts_time="0.023220" pkt_dts="1024" pkt_dts_time="0.023220" best_effort_timestamp="1024" best_effort_timestamp_time="0.023220" pkt_duration="1024" pkt_duration_time="0.023220" duration="1024" duration_time="0.023220" pkt_pos="263170" pkt_size="2048" sample_fmt="s16" nb_samples="1024" channels="1"/>
+ <frame media_type="audio" stream_index="0" key_frame="1" pts="1024" pts_time="0.023220" pkt_dts="1024" pkt_dts_time="0.023220" best_effort_timestamp="1024" best_effort_timestamp_time="0.023220" duration="1024" duration_time="0.023220" pkt_pos="263170" pkt_size="2048" sample_fmt="s16" nb_samples="1024" channels="1"/>
<packet codec_type="video" stream_index="1" pts="2048" pts_time="0.040000" dts="2048" dts_time="0.040000" duration="2048" duration_time="0.040000" size="230400" pos="265248" flags="K__"/>
- <frame media_type="video" stream_index="1" key_frame="1" pts="2048" pts_time="0.040000" pkt_dts="2048" pkt_dts_time="0.040000" best_effort_timestamp="2048" best_effort_timestamp_time="0.040000" pkt_duration="2048" pkt_duration_time="0.040000" duration="2048" duration_time="0.040000" pkt_pos="265248" pkt_size="230400" width="320" height="240" crop_top="0" crop_bottom="0" crop_left="0" crop_right="0" pix_fmt="rgb24" sample_aspect_ratio="1:1" pict_type="I" coded_picture_number="0" display_picture_number="0" interlaced_frame="0" top_field_first="0" repeat_pict="0"/>
+ <frame media_type="video" stream_index="1" key_frame="1" pts="2048" pts_time="0.040000" pkt_dts="2048" pkt_dts_time="0.040000" best_effort_timestamp="2048" best_effort_timestamp_time="0.040000" duration="2048" duration_time="0.040000" pkt_pos="265248" pkt_size="230400" width="320" height="240" crop_top="0" crop_bottom="0" crop_left="0" crop_right="0" pix_fmt="rgb24" sample_aspect_ratio="1:1" pict_type="I" coded_picture_number="0" display_picture_number="0" interlaced_frame="0" top_field_first="0" repeat_pict="0"/>
<packet codec_type="video" stream_index="2" pts="2048" pts_time="0.040000" dts="2048" dts_time="0.040000" duration="2048" duration_time="0.040000" size="30000" pos="495672" flags="K__"/>
- <frame media_type="video" stream_index="2" key_frame="1" pts="2048" pts_time="0.040000" pkt_dts="2048" pkt_dts_time="0.040000" best_effort_timestamp="2048" best_effort_timestamp_time="0.040000" pkt_duration="2048" pkt_duration_time="0.040000" duration="2048" duration_time="0.040000" pkt_pos="495672" pkt_size="30000" width="100" height="100" crop_top="0" crop_bottom="0" crop_left="0" crop_right="0" pix_fmt="rgb24" sample_aspect_ratio="1:1" pict_type="I" coded_picture_number="0" display_picture_number="0" interlaced_frame="0" top_field_first="0" repeat_pict="0"/>
+ <frame media_type="video" stream_index="2" key_frame="1" pts="2048" pts_time="0.040000" pkt_dts="2048" pkt_dts_time="0.040000" best_effort_timestamp="2048" best_effort_timestamp_time="0.040000" duration="2048" duration_time="0.040000" pkt_pos="495672" pkt_size="30000" width="100" height="100" crop_top="0" crop_bottom="0" crop_left="0" crop_right="0" pix_fmt="rgb24" sample_aspect_ratio="1:1" pict_type="I" coded_picture_number="0" display_picture_number="0" interlaced_frame="0" top_field_first="0" repeat_pict="0"/>
<packet codec_type="audio" stream_index="0" pts="2048" pts_time="0.046440" dts="2048" dts_time="0.046440" duration="1024" duration_time="0.023220" size="2048" pos="525677" flags="K__"/>
- <frame media_type="audio" stream_index="0" key_frame="1" pts="2048" pts_time="0.046440" pkt_dts="2048" pkt_dts_time="0.046440" best_effort_timestamp="2048" best_effort_timestamp_time="0.046440" pkt_duration="1024" pkt_duration_time="0.023220" duration="1024" duration_time="0.023220" pkt_pos="525677" pkt_size="2048" sample_fmt="s16" nb_samples="1024" channels="1"/>
+ <frame media_type="audio" stream_index="0" key_frame="1" pts="2048" pts_time="0.046440" pkt_dts="2048" pkt_dts_time="0.046440" best_effort_timestamp="2048" best_effort_timestamp_time="0.046440" duration="1024" duration_time="0.023220" pkt_pos="525677" pkt_size="2048" sample_fmt="s16" nb_samples="1024" channels="1"/>
<packet codec_type="audio" stream_index="0" pts="3072" pts_time="0.069660" dts="3072" dts_time="0.069660" duration="1024" duration_time="0.023220" size="2048" pos="527748" flags="K__"/>
- <frame media_type="audio" stream_index="0" key_frame="1" pts="3072" pts_time="0.069660" pkt_dts="3072" pkt_dts_time="0.069660" best_effort_timestamp="3072" best_effort_timestamp_time="0.069660" pkt_duration="1024" pkt_duration_time="0.023220" duration="1024" duration_time="0.023220" pkt_pos="527748" pkt_size="2048" sample_fmt="s16" nb_samples="1024" channels="1"/>
+ <frame media_type="audio" stream_index="0" key_frame="1" pts="3072" pts_time="0.069660" pkt_dts="3072" pkt_dts_time="0.069660" best_effort_timestamp="3072" best_effort_timestamp_time="0.069660" duration="1024" duration_time="0.023220" pkt_pos="527748" pkt_size="2048" sample_fmt="s16" nb_samples="1024" channels="1"/>
<packet codec_type="video" stream_index="1" pts="4096" pts_time="0.080000" dts="4096" dts_time="0.080000" duration="2048" duration_time="0.040000" size="230400" pos="529826" flags="K__"/>
- <frame media_type="video" stream_index="1" key_frame="1" pts="4096" pts_time="0.080000" pkt_dts="4096" pkt_dts_time="0.080000" best_effort_timestamp="4096" best_effort_timestamp_time="0.080000" pkt_duration="2048" pkt_duration_time="0.040000" duration="2048" duration_time="0.040000" pkt_pos="529826" pkt_size="230400" width="320" height="240" crop_top="0" crop_bottom="0" crop_left="0" crop_right="0" pix_fmt="rgb24" sample_aspect_ratio="1:1" pict_type="I" coded_picture_number="0" display_picture_number="0" interlaced_frame="0" top_field_first="0" repeat_pict="0"/>
+ <frame media_type="video" stream_index="1" key_frame="1" pts="4096" pts_time="0.080000" pkt_dts="4096" pkt_dts_time="0.080000" best_effort_timestamp="4096" best_effort_timestamp_time="0.080000" duration="2048" duration_time="0.040000" pkt_pos="529826" pkt_size="230400" width="320" height="240" crop_top="0" crop_bottom="0" crop_left="0" crop_right="0" pix_fmt="rgb24" sample_aspect_ratio="1:1" pict_type="I" coded_picture_number="0" display_picture_number="0" interlaced_frame="0" top_field_first="0" repeat_pict="0"/>
<packet codec_type="video" stream_index="2" pts="4096" pts_time="0.080000" dts="4096" dts_time="0.080000" duration="2048" duration_time="0.040000" size="30000" pos="760250" flags="K__"/>
- <frame media_type="video" stream_index="2" key_frame="1" pts="4096" pts_time="0.080000" pkt_dts="4096" pkt_dts_time="0.080000" best_effort_timestamp="4096" best_effort_timestamp_time="0.080000" pkt_duration="2048" pkt_duration_time="0.040000" duration="2048" duration_time="0.040000" pkt_pos="760250" pkt_size="30000" width="100" height="100" crop_top="0" crop_bottom="0" crop_left="0" crop_right="0" pix_fmt="rgb24" sample_aspect_ratio="1:1" pict_type="I" coded_picture_number="0" display_picture_number="0" interlaced_frame="0" top_field_first="0" repeat_pict="0"/>
+ <frame media_type="video" stream_index="2" key_frame="1" pts="4096" pts_time="0.080000" pkt_dts="4096" pkt_dts_time="0.080000" best_effort_timestamp="4096" best_effort_timestamp_time="0.080000" duration="2048" duration_time="0.040000" pkt_pos="760250" pkt_size="30000" width="100" height="100" crop_top="0" crop_bottom="0" crop_left="0" crop_right="0" pix_fmt="rgb24" sample_aspect_ratio="1:1" pict_type="I" coded_picture_number="0" display_picture_number="0" interlaced_frame="0" top_field_first="0" repeat_pict="0"/>
<packet codec_type="audio" stream_index="0" pts="4096" pts_time="0.092880" dts="4096" dts_time="0.092880" duration="1024" duration_time="0.023220" size="2048" pos="790255" flags="K__"/>
- <frame media_type="audio" stream_index="0" key_frame="1" pts="4096" pts_time="0.092880" pkt_dts="4096" pkt_dts_time="0.092880" best_effort_timestamp="4096" best_effort_timestamp_time="0.092880" pkt_duration="1024" pkt_duration_time="0.023220" duration="1024" duration_time="0.023220" pkt_pos="790255" pkt_size="2048" sample_fmt="s16" nb_samples="1024" channels="1"/>
+ <frame media_type="audio" stream_index="0" key_frame="1" pts="4096" pts_time="0.092880" pkt_dts="4096" pkt_dts_time="0.092880" best_effort_timestamp="4096" best_effort_timestamp_time="0.092880" duration="1024" duration_time="0.023220" pkt_pos="790255" pkt_size="2048" sample_fmt="s16" nb_samples="1024" channels="1"/>
<packet codec_type="audio" stream_index="0" pts="5120" pts_time="0.116100" dts="5120" dts_time="0.116100" duration="393" duration_time="0.008912" size="786" pos="792326" flags="K__"/>
- <frame media_type="audio" stream_index="0" key_frame="1" pts="5120" pts_time="0.116100" pkt_dts="5120" pkt_dts_time="0.116100" best_effort_timestamp="5120" best_effort_timestamp_time="0.116100" pkt_duration="393" pkt_duration_time="0.008912" duration="393" duration_time="0.008912" pkt_pos="792326" pkt_size="786" sample_fmt="s16" nb_samples="393" channels="1"/>
+ <frame media_type="audio" stream_index="0" key_frame="1" pts="5120" pts_time="0.116100" pkt_dts="5120" pkt_dts_time="0.116100" best_effort_timestamp="5120" best_effort_timestamp_time="0.116100" duration="393" duration_time="0.008912" pkt_pos="792326" pkt_size="786" sample_fmt="s16" nb_samples="393" channels="1"/>
<packet codec_type="video" stream_index="1" pts="6144" pts_time="0.120000" dts="6144" dts_time="0.120000" duration="2048" duration_time="0.040000" size="230400" pos="793142" flags="K__"/>
- <frame media_type="video" stream_index="1" key_frame="1" pts="6144" pts_time="0.120000" pkt_dts="6144" pkt_dts_time="0.120000" best_effort_timestamp="6144" best_effort_timestamp_time="0.120000" pkt_duration="2048" pkt_duration_time="0.040000" duration="2048" duration_time="0.040000" pkt_pos="793142" pkt_size="230400" width="320" height="240" crop_top="0" crop_bottom="0" crop_left="0" crop_right="0" pix_fmt="rgb24" sample_aspect_ratio="1:1" pict_type="I" coded_picture_number="0" display_picture_number="0" interlaced_frame="0" top_field_first="0" repeat_pict="0"/>
+ <frame media_type="video" stream_index="1" key_frame="1" pts="6144" pts_time="0.120000" pkt_dts="6144" pkt_dts_time="0.120000" best_effort_timestamp="6144" best_effort_timestamp_time="0.120000" duration="2048" duration_time="0.040000" pkt_pos="793142" pkt_size="230400" width="320" height="240" crop_top="0" crop_bottom="0" crop_left="0" crop_right="0" pix_fmt="rgb24" sample_aspect_ratio="1:1" pict_type="I" coded_picture_number="0" display_picture_number="0" interlaced_frame="0" top_field_first="0" repeat_pict="0"/>
<packet codec_type="video" stream_index="2" pts="6144" pts_time="0.120000" dts="6144" dts_time="0.120000" duration="2048" duration_time="0.040000" size="30000" pos="1023566" flags="K__"/>
- <frame media_type="video" stream_index="2" key_frame="1" pts="6144" pts_time="0.120000" pkt_dts="6144" pkt_dts_time="0.120000" best_effort_timestamp="6144" best_effort_timestamp_time="0.120000" pkt_duration="2048" pkt_duration_time="0.040000" duration="2048" duration_time="0.040000" pkt_pos="1023566" pkt_size="30000" width="100" height="100" crop_top="0" crop_bottom="0" crop_left="0" crop_right="0" pix_fmt="rgb24" sample_aspect_ratio="1:1" pict_type="I" coded_picture_number="0" display_picture_number="0" interlaced_frame="0" top_field_first="0" repeat_pict="0"/>
+ <frame media_type="video" stream_index="2" key_frame="1" pts="6144" pts_time="0.120000" pkt_dts="6144" pkt_dts_time="0.120000" best_effort_timestamp="6144" best_effort_timestamp_time="0.120000" duration="2048" duration_time="0.040000" pkt_pos="1023566" pkt_size="30000" width="100" height="100" crop_top="0" crop_bottom="0" crop_left="0" crop_right="0" pix_fmt="rgb24" sample_aspect_ratio="1:1" pict_type="I" coded_picture_number="0" display_picture_number="0" interlaced_frame="0" top_field_first="0" repeat_pict="0"/>
</packets_and_frames>
<streams>
diff --git a/tests/ref/fate/flcl1905 b/tests/ref/fate/flcl1905
index c8b9d8bce4..9cc192f230 100644
--- a/tests/ref/fate/flcl1905
+++ b/tests/ref/fate/flcl1905
@@ -1,192 +1,192 @@
packet|codec_type=audio|stream_index=0|pts=0|pts_time=0.000000|dts=0|dts_time=0.000000|duration=22528|duration_time=0.510839|size=4092|pos=56|flags=K__
-frame|media_type=audio|stream_index=0|key_frame=1|pts=N/A|pts_time=N/A|pkt_dts=N/A|pkt_dts_time=N/A|best_effort_timestamp=N/A|best_effort_timestamp_time=N/A|pkt_duration=22528|pkt_duration_time=0.510839|duration=22528|duration_time=0.510839|pkt_pos=56|pkt_size=4092|sample_fmt=fltp|nb_samples=2048|channels=2|channel_layout=unknown
-frame|media_type=audio|stream_index=0|key_frame=1|pts=N/A|pts_time=N/A|pkt_dts=N/A|pkt_dts_time=N/A|best_effort_timestamp=N/A|best_effort_timestamp_time=N/A|pkt_duration=22528|pkt_duration_time=0.510839|duration=22528|duration_time=0.510839|pkt_pos=56|pkt_size=4092|sample_fmt=fltp|nb_samples=2048|channels=2|channel_layout=unknown
-frame|media_type=audio|stream_index=0|key_frame=1|pts=N/A|pts_time=N/A|pkt_dts=N/A|pkt_dts_time=N/A|best_effort_timestamp=N/A|best_effort_timestamp_time=N/A|pkt_duration=22528|pkt_duration_time=0.510839|duration=22528|duration_time=0.510839|pkt_pos=56|pkt_size=4092|sample_fmt=fltp|nb_samples=2048|channels=2|channel_layout=unknown
-frame|media_type=audio|stream_index=0|key_frame=1|pts=N/A|pts_time=N/A|pkt_dts=N/A|pkt_dts_time=N/A|best_effort_timestamp=N/A|best_effort_timestamp_time=N/A|pkt_duration=22528|pkt_duration_time=0.510839|duration=22528|duration_time=0.510839|pkt_pos=56|pkt_size=4092|sample_fmt=fltp|nb_samples=2048|channels=2|channel_layout=unknown
-frame|media_type=audio|stream_index=0|key_frame=1|pts=N/A|pts_time=N/A|pkt_dts=N/A|pkt_dts_time=N/A|best_effort_timestamp=N/A|best_effort_timestamp_time=N/A|pkt_duration=22528|pkt_duration_time=0.510839|duration=22528|duration_time=0.510839|pkt_pos=56|pkt_size=4092|sample_fmt=fltp|nb_samples=2048|channels=2|channel_layout=unknown
-frame|media_type=audio|stream_index=0|key_frame=1|pts=N/A|pts_time=N/A|pkt_dts=N/A|pkt_dts_time=N/A|best_effort_timestamp=N/A|best_effort_timestamp_time=N/A|pkt_duration=22528|pkt_duration_time=0.510839|duration=22528|duration_time=0.510839|pkt_pos=56|pkt_size=4092|sample_fmt=fltp|nb_samples=2048|channels=2|channel_layout=unknown
-frame|media_type=audio|stream_index=0|key_frame=1|pts=N/A|pts_time=N/A|pkt_dts=N/A|pkt_dts_time=N/A|best_effort_timestamp=N/A|best_effort_timestamp_time=N/A|pkt_duration=22528|pkt_duration_time=0.510839|duration=22528|duration_time=0.510839|pkt_pos=56|pkt_size=4092|sample_fmt=fltp|nb_samples=2048|channels=2|channel_layout=unknown
-frame|media_type=audio|stream_index=0|key_frame=1|pts=N/A|pts_time=N/A|pkt_dts=N/A|pkt_dts_time=N/A|best_effort_timestamp=N/A|best_effort_timestamp_time=N/A|pkt_duration=22528|pkt_duration_time=0.510839|duration=22528|duration_time=0.510839|pkt_pos=56|pkt_size=4092|sample_fmt=fltp|nb_samples=2048|channels=2|channel_layout=unknown
-frame|media_type=audio|stream_index=0|key_frame=1|pts=N/A|pts_time=N/A|pkt_dts=N/A|pkt_dts_time=N/A|best_effort_timestamp=N/A|best_effort_timestamp_time=N/A|pkt_duration=22528|pkt_duration_time=0.510839|duration=22528|duration_time=0.510839|pkt_pos=56|pkt_size=4092|sample_fmt=fltp|nb_samples=2048|channels=2|channel_layout=unknown
+frame|media_type=audio|stream_index=0|key_frame=1|pts=N/A|pts_time=N/A|pkt_dts=N/A|pkt_dts_time=N/A|best_effort_timestamp=N/A|best_effort_timestamp_time=N/A|duration=22528|duration_time=0.510839|pkt_pos=56|pkt_size=4092|sample_fmt=fltp|nb_samples=2048|channels=2|channel_layout=unknown
+frame|media_type=audio|stream_index=0|key_frame=1|pts=N/A|pts_time=N/A|pkt_dts=N/A|pkt_dts_time=N/A|best_effort_timestamp=N/A|best_effort_timestamp_time=N/A|duration=22528|duration_time=0.510839|pkt_pos=56|pkt_size=4092|sample_fmt=fltp|nb_samples=2048|channels=2|channel_layout=unknown
+frame|media_type=audio|stream_index=0|key_frame=1|pts=N/A|pts_time=N/A|pkt_dts=N/A|pkt_dts_time=N/A|best_effort_timestamp=N/A|best_effort_timestamp_time=N/A|duration=22528|duration_time=0.510839|pkt_pos=56|pkt_size=4092|sample_fmt=fltp|nb_samples=2048|channels=2|channel_layout=unknown
+frame|media_type=audio|stream_index=0|key_frame=1|pts=N/A|pts_time=N/A|pkt_dts=N/A|pkt_dts_time=N/A|best_effort_timestamp=N/A|best_effort_timestamp_time=N/A|duration=22528|duration_time=0.510839|pkt_pos=56|pkt_size=4092|sample_fmt=fltp|nb_samples=2048|channels=2|channel_layout=unknown
+frame|media_type=audio|stream_index=0|key_frame=1|pts=N/A|pts_time=N/A|pkt_dts=N/A|pkt_dts_time=N/A|best_effort_timestamp=N/A|best_effort_timestamp_time=N/A|duration=22528|duration_time=0.510839|pkt_pos=56|pkt_size=4092|sample_fmt=fltp|nb_samples=2048|channels=2|channel_layout=unknown
+frame|media_type=audio|stream_index=0|key_frame=1|pts=N/A|pts_time=N/A|pkt_dts=N/A|pkt_dts_time=N/A|best_effort_timestamp=N/A|best_effort_timestamp_time=N/A|duration=22528|duration_time=0.510839|pkt_pos=56|pkt_size=4092|sample_fmt=fltp|nb_samples=2048|channels=2|channel_layout=unknown
+frame|media_type=audio|stream_index=0|key_frame=1|pts=N/A|pts_time=N/A|pkt_dts=N/A|pkt_dts_time=N/A|best_effort_timestamp=N/A|best_effort_timestamp_time=N/A|duration=22528|duration_time=0.510839|pkt_pos=56|pkt_size=4092|sample_fmt=fltp|nb_samples=2048|channels=2|channel_layout=unknown
+frame|media_type=audio|stream_index=0|key_frame=1|pts=N/A|pts_time=N/A|pkt_dts=N/A|pkt_dts_time=N/A|best_effort_timestamp=N/A|best_effort_timestamp_time=N/A|duration=22528|duration_time=0.510839|pkt_pos=56|pkt_size=4092|sample_fmt=fltp|nb_samples=2048|channels=2|channel_layout=unknown
+frame|media_type=audio|stream_index=0|key_frame=1|pts=N/A|pts_time=N/A|pkt_dts=N/A|pkt_dts_time=N/A|best_effort_timestamp=N/A|best_effort_timestamp_time=N/A|duration=22528|duration_time=0.510839|pkt_pos=56|pkt_size=4092|sample_fmt=fltp|nb_samples=2048|channels=2|channel_layout=unknown
packet|codec_type=audio|stream_index=0|pts=22528|pts_time=0.510839|dts=22528|dts_time=0.510839|duration=22528|duration_time=0.510839|size=4092|pos=4148|flags=K__
-frame|media_type=audio|stream_index=0|key_frame=1|pts=22528|pts_time=0.510839|pkt_dts=22528|pkt_dts_time=0.510839|best_effort_timestamp=22528|best_effort_timestamp_time=0.510839|pkt_duration=22528|pkt_duration_time=0.510839|duration=22528|duration_time=0.510839|pkt_pos=4148|pkt_size=4092|sample_fmt=fltp|nb_samples=2048|channels=2|channel_layout=unknown
-frame|media_type=audio|stream_index=0|key_frame=1|pts=N/A|pts_time=N/A|pkt_dts=N/A|pkt_dts_time=N/A|best_effort_timestamp=N/A|best_effort_timestamp_time=N/A|pkt_duration=22528|pkt_duration_time=0.510839|duration=22528|duration_time=0.510839|pkt_pos=4148|pkt_size=4092|sample_fmt=fltp|nb_samples=2048|channels=2|channel_layout=unknown
-frame|media_type=audio|stream_index=0|key_frame=1|pts=N/A|pts_time=N/A|pkt_dts=N/A|pkt_dts_time=N/A|best_effort_timestamp=N/A|best_effort_timestamp_time=N/A|pkt_duration=22528|pkt_duration_time=0.510839|duration=22528|duration_time=0.510839|pkt_pos=4148|pkt_size=4092|sample_fmt=fltp|nb_samples=2048|channels=2|channel_layout=unknown
-frame|media_type=audio|stream_index=0|key_frame=1|pts=N/A|pts_time=N/A|pkt_dts=N/A|pkt_dts_time=N/A|best_effort_timestamp=N/A|best_effort_timestamp_time=N/A|pkt_duration=22528|pkt_duration_time=0.510839|duration=22528|duration_time=0.510839|pkt_pos=4148|pkt_size=4092|sample_fmt=fltp|nb_samples=2048|channels=2|channel_layout=unknown
-frame|media_type=audio|stream_index=0|key_frame=1|pts=N/A|pts_time=N/A|pkt_dts=N/A|pkt_dts_time=N/A|best_effort_timestamp=N/A|best_effort_timestamp_time=N/A|pkt_duration=22528|pkt_duration_time=0.510839|duration=22528|duration_time=0.510839|pkt_pos=4148|pkt_size=4092|sample_fmt=fltp|nb_samples=2048|channels=2|channel_layout=unknown
-frame|media_type=audio|stream_index=0|key_frame=1|pts=N/A|pts_time=N/A|pkt_dts=N/A|pkt_dts_time=N/A|best_effort_timestamp=N/A|best_effort_timestamp_time=N/A|pkt_duration=22528|pkt_duration_time=0.510839|duration=22528|duration_time=0.510839|pkt_pos=4148|pkt_size=4092|sample_fmt=fltp|nb_samples=2048|channels=2|channel_layout=unknown
-frame|media_type=audio|stream_index=0|key_frame=1|pts=N/A|pts_time=N/A|pkt_dts=N/A|pkt_dts_time=N/A|best_effort_timestamp=N/A|best_effort_timestamp_time=N/A|pkt_duration=22528|pkt_duration_time=0.510839|duration=22528|duration_time=0.510839|pkt_pos=4148|pkt_size=4092|sample_fmt=fltp|nb_samples=2048|channels=2|channel_layout=unknown
-frame|media_type=audio|stream_index=0|key_frame=1|pts=N/A|pts_time=N/A|pkt_dts=N/A|pkt_dts_time=N/A|best_effort_timestamp=N/A|best_effort_timestamp_time=N/A|pkt_duration=22528|pkt_duration_time=0.510839|duration=22528|duration_time=0.510839|pkt_pos=4148|pkt_size=4092|sample_fmt=fltp|nb_samples=2048|channels=2|channel_layout=unknown
-frame|media_type=audio|stream_index=0|key_frame=1|pts=N/A|pts_time=N/A|pkt_dts=N/A|pkt_dts_time=N/A|best_effort_timestamp=N/A|best_effort_timestamp_time=N/A|pkt_duration=22528|pkt_duration_time=0.510839|duration=22528|duration_time=0.510839|pkt_pos=4148|pkt_size=4092|sample_fmt=fltp|nb_samples=2048|channels=2|channel_layout=unknown
-frame|media_type=audio|stream_index=0|key_frame=1|pts=N/A|pts_time=N/A|pkt_dts=N/A|pkt_dts_time=N/A|best_effort_timestamp=N/A|best_effort_timestamp_time=N/A|pkt_duration=22528|pkt_duration_time=0.510839|duration=22528|duration_time=0.510839|pkt_pos=4148|pkt_size=4092|sample_fmt=fltp|nb_samples=2048|channels=2|channel_layout=unknown
-frame|media_type=audio|stream_index=0|key_frame=1|pts=N/A|pts_time=N/A|pkt_dts=N/A|pkt_dts_time=N/A|best_effort_timestamp=N/A|best_effort_timestamp_time=N/A|pkt_duration=22528|pkt_duration_time=0.510839|duration=22528|duration_time=0.510839|pkt_pos=4148|pkt_size=4092|sample_fmt=fltp|nb_samples=2048|channels=2|channel_layout=unknown
+frame|media_type=audio|stream_index=0|key_frame=1|pts=22528|pts_time=0.510839|pkt_dts=22528|pkt_dts_time=0.510839|best_effort_timestamp=22528|best_effort_timestamp_time=0.510839|duration=22528|duration_time=0.510839|pkt_pos=4148|pkt_size=4092|sample_fmt=fltp|nb_samples=2048|channels=2|channel_layout=unknown
+frame|media_type=audio|stream_index=0|key_frame=1|pts=N/A|pts_time=N/A|pkt_dts=N/A|pkt_dts_time=N/A|best_effort_timestamp=N/A|best_effort_timestamp_time=N/A|duration=22528|duration_time=0.510839|pkt_pos=4148|pkt_size=4092|sample_fmt=fltp|nb_samples=2048|channels=2|channel_layout=unknown
+frame|media_type=audio|stream_index=0|key_frame=1|pts=N/A|pts_time=N/A|pkt_dts=N/A|pkt_dts_time=N/A|best_effort_timestamp=N/A|best_effort_timestamp_time=N/A|duration=22528|duration_time=0.510839|pkt_pos=4148|pkt_size=4092|sample_fmt=fltp|nb_samples=2048|channels=2|channel_layout=unknown
+frame|media_type=audio|stream_index=0|key_frame=1|pts=N/A|pts_time=N/A|pkt_dts=N/A|pkt_dts_time=N/A|best_effort_timestamp=N/A|best_effort_timestamp_time=N/A|duration=22528|duration_time=0.510839|pkt_pos=4148|pkt_size=4092|sample_fmt=fltp|nb_samples=2048|channels=2|channel_layout=unknown
+frame|media_type=audio|stream_index=0|key_frame=1|pts=N/A|pts_time=N/A|pkt_dts=N/A|pkt_dts_time=N/A|best_effort_timestamp=N/A|best_effort_timestamp_time=N/A|duration=22528|duration_time=0.510839|pkt_pos=4148|pkt_size=4092|sample_fmt=fltp|nb_samples=2048|channels=2|channel_layout=unknown
+frame|media_type=audio|stream_index=0|key_frame=1|pts=N/A|pts_time=N/A|pkt_dts=N/A|pkt_dts_time=N/A|best_effort_timestamp=N/A|best_effort_timestamp_time=N/A|duration=22528|duration_time=0.510839|pkt_pos=4148|pkt_size=4092|sample_fmt=fltp|nb_samples=2048|channels=2|channel_layout=unknown
+frame|media_type=audio|stream_index=0|key_frame=1|pts=N/A|pts_time=N/A|pkt_dts=N/A|pkt_dts_time=N/A|best_effort_timestamp=N/A|best_effort_timestamp_time=N/A|duration=22528|duration_time=0.510839|pkt_pos=4148|pkt_size=4092|sample_fmt=fltp|nb_samples=2048|channels=2|channel_layout=unknown
+frame|media_type=audio|stream_index=0|key_frame=1|pts=N/A|pts_time=N/A|pkt_dts=N/A|pkt_dts_time=N/A|best_effort_timestamp=N/A|best_effort_timestamp_time=N/A|duration=22528|duration_time=0.510839|pkt_pos=4148|pkt_size=4092|sample_fmt=fltp|nb_samples=2048|channels=2|channel_layout=unknown
+frame|media_type=audio|stream_index=0|key_frame=1|pts=N/A|pts_time=N/A|pkt_dts=N/A|pkt_dts_time=N/A|best_effort_timestamp=N/A|best_effort_timestamp_time=N/A|duration=22528|duration_time=0.510839|pkt_pos=4148|pkt_size=4092|sample_fmt=fltp|nb_samples=2048|channels=2|channel_layout=unknown
+frame|media_type=audio|stream_index=0|key_frame=1|pts=N/A|pts_time=N/A|pkt_dts=N/A|pkt_dts_time=N/A|best_effort_timestamp=N/A|best_effort_timestamp_time=N/A|duration=22528|duration_time=0.510839|pkt_pos=4148|pkt_size=4092|sample_fmt=fltp|nb_samples=2048|channels=2|channel_layout=unknown
+frame|media_type=audio|stream_index=0|key_frame=1|pts=N/A|pts_time=N/A|pkt_dts=N/A|pkt_dts_time=N/A|best_effort_timestamp=N/A|best_effort_timestamp_time=N/A|duration=22528|duration_time=0.510839|pkt_pos=4148|pkt_size=4092|sample_fmt=fltp|nb_samples=2048|channels=2|channel_layout=unknown
packet|codec_type=audio|stream_index=0|pts=45056|pts_time=1.021678|dts=45056|dts_time=1.021678|duration=22528|duration_time=0.510839|size=4092|pos=8240|flags=K__
-frame|media_type=audio|stream_index=0|key_frame=1|pts=45056|pts_time=1.021678|pkt_dts=45056|pkt_dts_time=1.021678|best_effort_timestamp=45056|best_effort_timestamp_time=1.021678|pkt_duration=22528|pkt_duration_time=0.510839|duration=22528|duration_time=0.510839|pkt_pos=8240|pkt_size=4092|sample_fmt=fltp|nb_samples=2048|channels=2|channel_layout=unknown
-frame|media_type=audio|stream_index=0|key_frame=1|pts=N/A|pts_time=N/A|pkt_dts=N/A|pkt_dts_time=N/A|best_effort_timestamp=N/A|best_effort_timestamp_time=N/A|pkt_duration=22528|pkt_duration_time=0.510839|duration=22528|duration_time=0.510839|pkt_pos=8240|pkt_size=4092|sample_fmt=fltp|nb_samples=2048|channels=2|channel_layout=unknown
-frame|media_type=audio|stream_index=0|key_frame=1|pts=N/A|pts_time=N/A|pkt_dts=N/A|pkt_dts_time=N/A|best_effort_timestamp=N/A|best_effort_timestamp_time=N/A|pkt_duration=22528|pkt_duration_time=0.510839|duration=22528|duration_time=0.510839|pkt_pos=8240|pkt_size=4092|sample_fmt=fltp|nb_samples=2048|channels=2|channel_layout=unknown
-frame|media_type=audio|stream_index=0|key_frame=1|pts=N/A|pts_time=N/A|pkt_dts=N/A|pkt_dts_time=N/A|best_effort_timestamp=N/A|best_effort_timestamp_time=N/A|pkt_duration=22528|pkt_duration_time=0.510839|duration=22528|duration_time=0.510839|pkt_pos=8240|pkt_size=4092|sample_fmt=fltp|nb_samples=2048|channels=2|channel_layout=unknown
-frame|media_type=audio|stream_index=0|key_frame=1|pts=N/A|pts_time=N/A|pkt_dts=N/A|pkt_dts_time=N/A|best_effort_timestamp=N/A|best_effort_timestamp_time=N/A|pkt_duration=22528|pkt_duration_time=0.510839|duration=22528|duration_time=0.510839|pkt_pos=8240|pkt_size=4092|sample_fmt=fltp|nb_samples=2048|channels=2|channel_layout=unknown
-frame|media_type=audio|stream_index=0|key_frame=1|pts=N/A|pts_time=N/A|pkt_dts=N/A|pkt_dts_time=N/A|best_effort_timestamp=N/A|best_effort_timestamp_time=N/A|pkt_duration=22528|pkt_duration_time=0.510839|duration=22528|duration_time=0.510839|pkt_pos=8240|pkt_size=4092|sample_fmt=fltp|nb_samples=2048|channels=2|channel_layout=unknown
-frame|media_type=audio|stream_index=0|key_frame=1|pts=N/A|pts_time=N/A|pkt_dts=N/A|pkt_dts_time=N/A|best_effort_timestamp=N/A|best_effort_timestamp_time=N/A|pkt_duration=22528|pkt_duration_time=0.510839|duration=22528|duration_time=0.510839|pkt_pos=8240|pkt_size=4092|sample_fmt=fltp|nb_samples=2048|channels=2|channel_layout=unknown
-frame|media_type=audio|stream_index=0|key_frame=1|pts=N/A|pts_time=N/A|pkt_dts=N/A|pkt_dts_time=N/A|best_effort_timestamp=N/A|best_effort_timestamp_time=N/A|pkt_duration=22528|pkt_duration_time=0.510839|duration=22528|duration_time=0.510839|pkt_pos=8240|pkt_size=4092|sample_fmt=fltp|nb_samples=2048|channels=2|channel_layout=unknown
-frame|media_type=audio|stream_index=0|key_frame=1|pts=N/A|pts_time=N/A|pkt_dts=N/A|pkt_dts_time=N/A|best_effort_timestamp=N/A|best_effort_timestamp_time=N/A|pkt_duration=22528|pkt_duration_time=0.510839|duration=22528|duration_time=0.510839|pkt_pos=8240|pkt_size=4092|sample_fmt=fltp|nb_samples=2048|channels=2|channel_layout=unknown
-frame|media_type=audio|stream_index=0|key_frame=1|pts=N/A|pts_time=N/A|pkt_dts=N/A|pkt_dts_time=N/A|best_effort_timestamp=N/A|best_effort_timestamp_time=N/A|pkt_duration=22528|pkt_duration_time=0.510839|duration=22528|duration_time=0.510839|pkt_pos=8240|pkt_size=4092|sample_fmt=fltp|nb_samples=2048|channels=2|channel_layout=unknown
-frame|media_type=audio|stream_index=0|key_frame=1|pts=N/A|pts_time=N/A|pkt_dts=N/A|pkt_dts_time=N/A|best_effort_timestamp=N/A|best_effort_timestamp_time=N/A|pkt_duration=22528|pkt_duration_time=0.510839|duration=22528|duration_time=0.510839|pkt_pos=8240|pkt_size=4092|sample_fmt=fltp|nb_samples=2048|channels=2|channel_layout=unknown
+frame|media_type=audio|stream_index=0|key_frame=1|pts=45056|pts_time=1.021678|pkt_dts=45056|pkt_dts_time=1.021678|best_effort_timestamp=45056|best_effort_timestamp_time=1.021678|duration=22528|duration_time=0.510839|pkt_pos=8240|pkt_size=4092|sample_fmt=fltp|nb_samples=2048|channels=2|channel_layout=unknown
+frame|media_type=audio|stream_index=0|key_frame=1|pts=N/A|pts_time=N/A|pkt_dts=N/A|pkt_dts_time=N/A|best_effort_timestamp=N/A|best_effort_timestamp_time=N/A|duration=22528|duration_time=0.510839|pkt_pos=8240|pkt_size=4092|sample_fmt=fltp|nb_samples=2048|channels=2|channel_layout=unknown
+frame|media_type=audio|stream_index=0|key_frame=1|pts=N/A|pts_time=N/A|pkt_dts=N/A|pkt_dts_time=N/A|best_effort_timestamp=N/A|best_effort_timestamp_time=N/A|duration=22528|duration_time=0.510839|pkt_pos=8240|pkt_size=4092|sample_fmt=fltp|nb_samples=2048|channels=2|channel_layout=unknown
+frame|media_type=audio|stream_index=0|key_frame=1|pts=N/A|pts_time=N/A|pkt_dts=N/A|pkt_dts_time=N/A|best_effort_timestamp=N/A|best_effort_timestamp_time=N/A|duration=22528|duration_time=0.510839|pkt_pos=8240|pkt_size=4092|sample_fmt=fltp|nb_samples=2048|channels=2|channel_layout=unknown
+frame|media_type=audio|stream_index=0|key_frame=1|pts=N/A|pts_time=N/A|pkt_dts=N/A|pkt_dts_time=N/A|best_effort_timestamp=N/A|best_effort_timestamp_time=N/A|duration=22528|duration_time=0.510839|pkt_pos=8240|pkt_size=4092|sample_fmt=fltp|nb_samples=2048|channels=2|channel_layout=unknown
+frame|media_type=audio|stream_index=0|key_frame=1|pts=N/A|pts_time=N/A|pkt_dts=N/A|pkt_dts_time=N/A|best_effort_timestamp=N/A|best_effort_timestamp_time=N/A|duration=22528|duration_time=0.510839|pkt_pos=8240|pkt_size=4092|sample_fmt=fltp|nb_samples=2048|channels=2|channel_layout=unknown
+frame|media_type=audio|stream_index=0|key_frame=1|pts=N/A|pts_time=N/A|pkt_dts=N/A|pkt_dts_time=N/A|best_effort_timestamp=N/A|best_effort_timestamp_time=N/A|duration=22528|duration_time=0.510839|pkt_pos=8240|pkt_size=4092|sample_fmt=fltp|nb_samples=2048|channels=2|channel_layout=unknown
+frame|media_type=audio|stream_index=0|key_frame=1|pts=N/A|pts_time=N/A|pkt_dts=N/A|pkt_dts_time=N/A|best_effort_timestamp=N/A|best_effort_timestamp_time=N/A|duration=22528|duration_time=0.510839|pkt_pos=8240|pkt_size=4092|sample_fmt=fltp|nb_samples=2048|channels=2|channel_layout=unknown
+frame|media_type=audio|stream_index=0|key_frame=1|pts=N/A|pts_time=N/A|pkt_dts=N/A|pkt_dts_time=N/A|best_effort_timestamp=N/A|best_effort_timestamp_time=N/A|duration=22528|duration_time=0.510839|pkt_pos=8240|pkt_size=4092|sample_fmt=fltp|nb_samples=2048|channels=2|channel_layout=unknown
+frame|media_type=audio|stream_index=0|key_frame=1|pts=N/A|pts_time=N/A|pkt_dts=N/A|pkt_dts_time=N/A|best_effort_timestamp=N/A|best_effort_timestamp_time=N/A|duration=22528|duration_time=0.510839|pkt_pos=8240|pkt_size=4092|sample_fmt=fltp|nb_samples=2048|channels=2|channel_layout=unknown
+frame|media_type=audio|stream_index=0|key_frame=1|pts=N/A|pts_time=N/A|pkt_dts=N/A|pkt_dts_time=N/A|best_effort_timestamp=N/A|best_effort_timestamp_time=N/A|duration=22528|duration_time=0.510839|pkt_pos=8240|pkt_size=4092|sample_fmt=fltp|nb_samples=2048|channels=2|channel_layout=unknown
packet|codec_type=audio|stream_index=0|pts=67584|pts_time=1.532517|dts=67584|dts_time=1.532517|duration=22528|duration_time=0.510839|size=4092|pos=12332|flags=K__
-frame|media_type=audio|stream_index=0|key_frame=1|pts=67584|pts_time=1.532517|pkt_dts=67584|pkt_dts_time=1.532517|best_effort_timestamp=67584|best_effort_timestamp_time=1.532517|pkt_duration=22528|pkt_duration_time=0.510839|duration=22528|duration_time=0.510839|pkt_pos=12332|pkt_size=4092|sample_fmt=fltp|nb_samples=2048|channels=2|channel_layout=unknown
-frame|media_type=audio|stream_index=0|key_frame=1|pts=N/A|pts_time=N/A|pkt_dts=N/A|pkt_dts_time=N/A|best_effort_timestamp=N/A|best_effort_timestamp_time=N/A|pkt_duration=22528|pkt_duration_time=0.510839|duration=22528|duration_time=0.510839|pkt_pos=12332|pkt_size=4092|sample_fmt=fltp|nb_samples=2048|channels=2|channel_layout=unknown
-frame|media_type=audio|stream_index=0|key_frame=1|pts=N/A|pts_time=N/A|pkt_dts=N/A|pkt_dts_time=N/A|best_effort_timestamp=N/A|best_effort_timestamp_time=N/A|pkt_duration=22528|pkt_duration_time=0.510839|duration=22528|duration_time=0.510839|pkt_pos=12332|pkt_size=4092|sample_fmt=fltp|nb_samples=2048|channels=2|channel_layout=unknown
-frame|media_type=audio|stream_index=0|key_frame=1|pts=N/A|pts_time=N/A|pkt_dts=N/A|pkt_dts_time=N/A|best_effort_timestamp=N/A|best_effort_timestamp_time=N/A|pkt_duration=22528|pkt_duration_time=0.510839|duration=22528|duration_time=0.510839|pkt_pos=12332|pkt_size=4092|sample_fmt=fltp|nb_samples=2048|channels=2|channel_layout=unknown
-frame|media_type=audio|stream_index=0|key_frame=1|pts=N/A|pts_time=N/A|pkt_dts=N/A|pkt_dts_time=N/A|best_effort_timestamp=N/A|best_effort_timestamp_time=N/A|pkt_duration=22528|pkt_duration_time=0.510839|duration=22528|duration_time=0.510839|pkt_pos=12332|pkt_size=4092|sample_fmt=fltp|nb_samples=2048|channels=2|channel_layout=unknown
-frame|media_type=audio|stream_index=0|key_frame=1|pts=N/A|pts_time=N/A|pkt_dts=N/A|pkt_dts_time=N/A|best_effort_timestamp=N/A|best_effort_timestamp_time=N/A|pkt_duration=22528|pkt_duration_time=0.510839|duration=22528|duration_time=0.510839|pkt_pos=12332|pkt_size=4092|sample_fmt=fltp|nb_samples=2048|channels=2|channel_layout=unknown
-frame|media_type=audio|stream_index=0|key_frame=1|pts=N/A|pts_time=N/A|pkt_dts=N/A|pkt_dts_time=N/A|best_effort_timestamp=N/A|best_effort_timestamp_time=N/A|pkt_duration=22528|pkt_duration_time=0.510839|duration=22528|duration_time=0.510839|pkt_pos=12332|pkt_size=4092|sample_fmt=fltp|nb_samples=2048|channels=2|channel_layout=unknown
-frame|media_type=audio|stream_index=0|key_frame=1|pts=N/A|pts_time=N/A|pkt_dts=N/A|pkt_dts_time=N/A|best_effort_timestamp=N/A|best_effort_timestamp_time=N/A|pkt_duration=22528|pkt_duration_time=0.510839|duration=22528|duration_time=0.510839|pkt_pos=12332|pkt_size=4092|sample_fmt=fltp|nb_samples=2048|channels=2|channel_layout=unknown
-frame|media_type=audio|stream_index=0|key_frame=1|pts=N/A|pts_time=N/A|pkt_dts=N/A|pkt_dts_time=N/A|best_effort_timestamp=N/A|best_effort_timestamp_time=N/A|pkt_duration=22528|pkt_duration_time=0.510839|duration=22528|duration_time=0.510839|pkt_pos=12332|pkt_size=4092|sample_fmt=fltp|nb_samples=2048|channels=2|channel_layout=unknown
-frame|media_type=audio|stream_index=0|key_frame=1|pts=N/A|pts_time=N/A|pkt_dts=N/A|pkt_dts_time=N/A|best_effort_timestamp=N/A|best_effort_timestamp_time=N/A|pkt_duration=22528|pkt_duration_time=0.510839|duration=22528|duration_time=0.510839|pkt_pos=12332|pkt_size=4092|sample_fmt=fltp|nb_samples=2048|channels=2|channel_layout=unknown
-frame|media_type=audio|stream_index=0|key_frame=1|pts=N/A|pts_time=N/A|pkt_dts=N/A|pkt_dts_time=N/A|best_effort_timestamp=N/A|best_effort_timestamp_time=N/A|pkt_duration=22528|pkt_duration_time=0.510839|duration=22528|duration_time=0.510839|pkt_pos=12332|pkt_size=4092|sample_fmt=fltp|nb_samples=2048|channels=2|channel_layout=unknown
+frame|media_type=audio|stream_index=0|key_frame=1|pts=67584|pts_time=1.532517|pkt_dts=67584|pkt_dts_time=1.532517|best_effort_timestamp=67584|best_effort_timestamp_time=1.532517|duration=22528|duration_time=0.510839|pkt_pos=12332|pkt_size=4092|sample_fmt=fltp|nb_samples=2048|channels=2|channel_layout=unknown
+frame|media_type=audio|stream_index=0|key_frame=1|pts=N/A|pts_time=N/A|pkt_dts=N/A|pkt_dts_time=N/A|best_effort_timestamp=N/A|best_effort_timestamp_time=N/A|duration=22528|duration_time=0.510839|pkt_pos=12332|pkt_size=4092|sample_fmt=fltp|nb_samples=2048|channels=2|channel_layout=unknown
+frame|media_type=audio|stream_index=0|key_frame=1|pts=N/A|pts_time=N/A|pkt_dts=N/A|pkt_dts_time=N/A|best_effort_timestamp=N/A|best_effort_timestamp_time=N/A|duration=22528|duration_time=0.510839|pkt_pos=12332|pkt_size=4092|sample_fmt=fltp|nb_samples=2048|channels=2|channel_layout=unknown
+frame|media_type=audio|stream_index=0|key_frame=1|pts=N/A|pts_time=N/A|pkt_dts=N/A|pkt_dts_time=N/A|best_effort_timestamp=N/A|best_effort_timestamp_time=N/A|duration=22528|duration_time=0.510839|pkt_pos=12332|pkt_size=4092|sample_fmt=fltp|nb_samples=2048|channels=2|channel_layout=unknown
+frame|media_type=audio|stream_index=0|key_frame=1|pts=N/A|pts_time=N/A|pkt_dts=N/A|pkt_dts_time=N/A|best_effort_timestamp=N/A|best_effort_timestamp_time=N/A|duration=22528|duration_time=0.510839|pkt_pos=12332|pkt_size=4092|sample_fmt=fltp|nb_samples=2048|channels=2|channel_layout=unknown
+frame|media_type=audio|stream_index=0|key_frame=1|pts=N/A|pts_time=N/A|pkt_dts=N/A|pkt_dts_time=N/A|best_effort_timestamp=N/A|best_effort_timestamp_time=N/A|duration=22528|duration_time=0.510839|pkt_pos=12332|pkt_size=4092|sample_fmt=fltp|nb_samples=2048|channels=2|channel_layout=unknown
+frame|media_type=audio|stream_index=0|key_frame=1|pts=N/A|pts_time=N/A|pkt_dts=N/A|pkt_dts_time=N/A|best_effort_timestamp=N/A|best_effort_timestamp_time=N/A|duration=22528|duration_time=0.510839|pkt_pos=12332|pkt_size=4092|sample_fmt=fltp|nb_samples=2048|channels=2|channel_layout=unknown
+frame|media_type=audio|stream_index=0|key_frame=1|pts=N/A|pts_time=N/A|pkt_dts=N/A|pkt_dts_time=N/A|best_effort_timestamp=N/A|best_effort_timestamp_time=N/A|duration=22528|duration_time=0.510839|pkt_pos=12332|pkt_size=4092|sample_fmt=fltp|nb_samples=2048|channels=2|channel_layout=unknown
+frame|media_type=audio|stream_index=0|key_frame=1|pts=N/A|pts_time=N/A|pkt_dts=N/A|pkt_dts_time=N/A|best_effort_timestamp=N/A|best_effort_timestamp_time=N/A|duration=22528|duration_time=0.510839|pkt_pos=12332|pkt_size=4092|sample_fmt=fltp|nb_samples=2048|channels=2|channel_layout=unknown
+frame|media_type=audio|stream_index=0|key_frame=1|pts=N/A|pts_time=N/A|pkt_dts=N/A|pkt_dts_time=N/A|best_effort_timestamp=N/A|best_effort_timestamp_time=N/A|duration=22528|duration_time=0.510839|pkt_pos=12332|pkt_size=4092|sample_fmt=fltp|nb_samples=2048|channels=2|channel_layout=unknown
+frame|media_type=audio|stream_index=0|key_frame=1|pts=N/A|pts_time=N/A|pkt_dts=N/A|pkt_dts_time=N/A|best_effort_timestamp=N/A|best_effort_timestamp_time=N/A|duration=22528|duration_time=0.510839|pkt_pos=12332|pkt_size=4092|sample_fmt=fltp|nb_samples=2048|channels=2|channel_layout=unknown
packet|codec_type=audio|stream_index=0|pts=90112|pts_time=2.043356|dts=90112|dts_time=2.043356|duration=22528|duration_time=0.510839|size=4092|pos=16424|flags=K__
-frame|media_type=audio|stream_index=0|key_frame=1|pts=90112|pts_time=2.043356|pkt_dts=90112|pkt_dts_time=2.043356|best_effort_timestamp=90112|best_effort_timestamp_time=2.043356|pkt_duration=22528|pkt_duration_time=0.510839|duration=22528|duration_time=0.510839|pkt_pos=16424|pkt_size=4092|sample_fmt=fltp|nb_samples=2048|channels=2|channel_layout=unknown
-frame|media_type=audio|stream_index=0|key_frame=1|pts=N/A|pts_time=N/A|pkt_dts=N/A|pkt_dts_time=N/A|best_effort_timestamp=N/A|best_effort_timestamp_time=N/A|pkt_duration=22528|pkt_duration_time=0.510839|duration=22528|duration_time=0.510839|pkt_pos=16424|pkt_size=4092|sample_fmt=fltp|nb_samples=2048|channels=2|channel_layout=unknown
-frame|media_type=audio|stream_index=0|key_frame=1|pts=N/A|pts_time=N/A|pkt_dts=N/A|pkt_dts_time=N/A|best_effort_timestamp=N/A|best_effort_timestamp_time=N/A|pkt_duration=22528|pkt_duration_time=0.510839|duration=22528|duration_time=0.510839|pkt_pos=16424|pkt_size=4092|sample_fmt=fltp|nb_samples=2048|channels=2|channel_layout=unknown
-frame|media_type=audio|stream_index=0|key_frame=1|pts=N/A|pts_time=N/A|pkt_dts=N/A|pkt_dts_time=N/A|best_effort_timestamp=N/A|best_effort_timestamp_time=N/A|pkt_duration=22528|pkt_duration_time=0.510839|duration=22528|duration_time=0.510839|pkt_pos=16424|pkt_size=4092|sample_fmt=fltp|nb_samples=2048|channels=2|channel_layout=unknown
-frame|media_type=audio|stream_index=0|key_frame=1|pts=N/A|pts_time=N/A|pkt_dts=N/A|pkt_dts_time=N/A|best_effort_timestamp=N/A|best_effort_timestamp_time=N/A|pkt_duration=22528|pkt_duration_time=0.510839|duration=22528|duration_time=0.510839|pkt_pos=16424|pkt_size=4092|sample_fmt=fltp|nb_samples=2048|channels=2|channel_layout=unknown
-frame|media_type=audio|stream_index=0|key_frame=1|pts=N/A|pts_time=N/A|pkt_dts=N/A|pkt_dts_time=N/A|best_effort_timestamp=N/A|best_effort_timestamp_time=N/A|pkt_duration=22528|pkt_duration_time=0.510839|duration=22528|duration_time=0.510839|pkt_pos=16424|pkt_size=4092|sample_fmt=fltp|nb_samples=2048|channels=2|channel_layout=unknown
-frame|media_type=audio|stream_index=0|key_frame=1|pts=N/A|pts_time=N/A|pkt_dts=N/A|pkt_dts_time=N/A|best_effort_timestamp=N/A|best_effort_timestamp_time=N/A|pkt_duration=22528|pkt_duration_time=0.510839|duration=22528|duration_time=0.510839|pkt_pos=16424|pkt_size=4092|sample_fmt=fltp|nb_samples=2048|channels=2|channel_layout=unknown
-frame|media_type=audio|stream_index=0|key_frame=1|pts=N/A|pts_time=N/A|pkt_dts=N/A|pkt_dts_time=N/A|best_effort_timestamp=N/A|best_effort_timestamp_time=N/A|pkt_duration=22528|pkt_duration_time=0.510839|duration=22528|duration_time=0.510839|pkt_pos=16424|pkt_size=4092|sample_fmt=fltp|nb_samples=2048|channels=2|channel_layout=unknown
-frame|media_type=audio|stream_index=0|key_frame=1|pts=N/A|pts_time=N/A|pkt_dts=N/A|pkt_dts_time=N/A|best_effort_timestamp=N/A|best_effort_timestamp_time=N/A|pkt_duration=22528|pkt_duration_time=0.510839|duration=22528|duration_time=0.510839|pkt_pos=16424|pkt_size=4092|sample_fmt=fltp|nb_samples=2048|channels=2|channel_layout=unknown
-frame|media_type=audio|stream_index=0|key_frame=1|pts=N/A|pts_time=N/A|pkt_dts=N/A|pkt_dts_time=N/A|best_effort_timestamp=N/A|best_effort_timestamp_time=N/A|pkt_duration=22528|pkt_duration_time=0.510839|duration=22528|duration_time=0.510839|pkt_pos=16424|pkt_size=4092|sample_fmt=fltp|nb_samples=2048|channels=2|channel_layout=unknown
-frame|media_type=audio|stream_index=0|key_frame=1|pts=N/A|pts_time=N/A|pkt_dts=N/A|pkt_dts_time=N/A|best_effort_timestamp=N/A|best_effort_timestamp_time=N/A|pkt_duration=22528|pkt_duration_time=0.510839|duration=22528|duration_time=0.510839|pkt_pos=16424|pkt_size=4092|sample_fmt=fltp|nb_samples=2048|channels=2|channel_layout=unknown
+frame|media_type=audio|stream_index=0|key_frame=1|pts=90112|pts_time=2.043356|pkt_dts=90112|pkt_dts_time=2.043356|best_effort_timestamp=90112|best_effort_timestamp_time=2.043356|duration=22528|duration_time=0.510839|pkt_pos=16424|pkt_size=4092|sample_fmt=fltp|nb_samples=2048|channels=2|channel_layout=unknown
+frame|media_type=audio|stream_index=0|key_frame=1|pts=N/A|pts_time=N/A|pkt_dts=N/A|pkt_dts_time=N/A|best_effort_timestamp=N/A|best_effort_timestamp_time=N/A|duration=22528|duration_time=0.510839|pkt_pos=16424|pkt_size=4092|sample_fmt=fltp|nb_samples=2048|channels=2|channel_layout=unknown
+frame|media_type=audio|stream_index=0|key_frame=1|pts=N/A|pts_time=N/A|pkt_dts=N/A|pkt_dts_time=N/A|best_effort_timestamp=N/A|best_effort_timestamp_time=N/A|duration=22528|duration_time=0.510839|pkt_pos=16424|pkt_size=4092|sample_fmt=fltp|nb_samples=2048|channels=2|channel_layout=unknown
+frame|media_type=audio|stream_index=0|key_frame=1|pts=N/A|pts_time=N/A|pkt_dts=N/A|pkt_dts_time=N/A|best_effort_timestamp=N/A|best_effort_timestamp_time=N/A|duration=22528|duration_time=0.510839|pkt_pos=16424|pkt_size=4092|sample_fmt=fltp|nb_samples=2048|channels=2|channel_layout=unknown
+frame|media_type=audio|stream_index=0|key_frame=1|pts=N/A|pts_time=N/A|pkt_dts=N/A|pkt_dts_time=N/A|best_effort_timestamp=N/A|best_effort_timestamp_time=N/A|duration=22528|duration_time=0.510839|pkt_pos=16424|pkt_size=4092|sample_fmt=fltp|nb_samples=2048|channels=2|channel_layout=unknown
+frame|media_type=audio|stream_index=0|key_frame=1|pts=N/A|pts_time=N/A|pkt_dts=N/A|pkt_dts_time=N/A|best_effort_timestamp=N/A|best_effort_timestamp_time=N/A|duration=22528|duration_time=0.510839|pkt_pos=16424|pkt_size=4092|sample_fmt=fltp|nb_samples=2048|channels=2|channel_layout=unknown
+frame|media_type=audio|stream_index=0|key_frame=1|pts=N/A|pts_time=N/A|pkt_dts=N/A|pkt_dts_time=N/A|best_effort_timestamp=N/A|best_effort_timestamp_time=N/A|duration=22528|duration_time=0.510839|pkt_pos=16424|pkt_size=4092|sample_fmt=fltp|nb_samples=2048|channels=2|channel_layout=unknown
+frame|media_type=audio|stream_index=0|key_frame=1|pts=N/A|pts_time=N/A|pkt_dts=N/A|pkt_dts_time=N/A|best_effort_timestamp=N/A|best_effort_timestamp_time=N/A|duration=22528|duration_time=0.510839|pkt_pos=16424|pkt_size=4092|sample_fmt=fltp|nb_samples=2048|channels=2|channel_layout=unknown
+frame|media_type=audio|stream_index=0|key_frame=1|pts=N/A|pts_time=N/A|pkt_dts=N/A|pkt_dts_time=N/A|best_effort_timestamp=N/A|best_effort_timestamp_time=N/A|duration=22528|duration_time=0.510839|pkt_pos=16424|pkt_size=4092|sample_fmt=fltp|nb_samples=2048|channels=2|channel_layout=unknown
+frame|media_type=audio|stream_index=0|key_frame=1|pts=N/A|pts_time=N/A|pkt_dts=N/A|pkt_dts_time=N/A|best_effort_timestamp=N/A|best_effort_timestamp_time=N/A|duration=22528|duration_time=0.510839|pkt_pos=16424|pkt_size=4092|sample_fmt=fltp|nb_samples=2048|channels=2|channel_layout=unknown
+frame|media_type=audio|stream_index=0|key_frame=1|pts=N/A|pts_time=N/A|pkt_dts=N/A|pkt_dts_time=N/A|best_effort_timestamp=N/A|best_effort_timestamp_time=N/A|duration=22528|duration_time=0.510839|pkt_pos=16424|pkt_size=4092|sample_fmt=fltp|nb_samples=2048|channels=2|channel_layout=unknown
packet|codec_type=audio|stream_index=0|pts=112640|pts_time=2.554195|dts=112640|dts_time=2.554195|duration=22528|duration_time=0.510839|size=4092|pos=20516|flags=K__
-frame|media_type=audio|stream_index=0|key_frame=1|pts=112640|pts_time=2.554195|pkt_dts=112640|pkt_dts_time=2.554195|best_effort_timestamp=112640|best_effort_timestamp_time=2.554195|pkt_duration=22528|pkt_duration_time=0.510839|duration=22528|duration_time=0.510839|pkt_pos=20516|pkt_size=4092|sample_fmt=fltp|nb_samples=2048|channels=2|channel_layout=unknown
-frame|media_type=audio|stream_index=0|key_frame=1|pts=N/A|pts_time=N/A|pkt_dts=N/A|pkt_dts_time=N/A|best_effort_timestamp=N/A|best_effort_timestamp_time=N/A|pkt_duration=22528|pkt_duration_time=0.510839|duration=22528|duration_time=0.510839|pkt_pos=20516|pkt_size=4092|sample_fmt=fltp|nb_samples=2048|channels=2|channel_layout=unknown
-frame|media_type=audio|stream_index=0|key_frame=1|pts=N/A|pts_time=N/A|pkt_dts=N/A|pkt_dts_time=N/A|best_effort_timestamp=N/A|best_effort_timestamp_time=N/A|pkt_duration=22528|pkt_duration_time=0.510839|duration=22528|duration_time=0.510839|pkt_pos=20516|pkt_size=4092|sample_fmt=fltp|nb_samples=2048|channels=2|channel_layout=unknown
-frame|media_type=audio|stream_index=0|key_frame=1|pts=N/A|pts_time=N/A|pkt_dts=N/A|pkt_dts_time=N/A|best_effort_timestamp=N/A|best_effort_timestamp_time=N/A|pkt_duration=22528|pkt_duration_time=0.510839|duration=22528|duration_time=0.510839|pkt_pos=20516|pkt_size=4092|sample_fmt=fltp|nb_samples=2048|channels=2|channel_layout=unknown
-frame|media_type=audio|stream_index=0|key_frame=1|pts=N/A|pts_time=N/A|pkt_dts=N/A|pkt_dts_time=N/A|best_effort_timestamp=N/A|best_effort_timestamp_time=N/A|pkt_duration=22528|pkt_duration_time=0.510839|duration=22528|duration_time=0.510839|pkt_pos=20516|pkt_size=4092|sample_fmt=fltp|nb_samples=2048|channels=2|channel_layout=unknown
-frame|media_type=audio|stream_index=0|key_frame=1|pts=N/A|pts_time=N/A|pkt_dts=N/A|pkt_dts_time=N/A|best_effort_timestamp=N/A|best_effort_timestamp_time=N/A|pkt_duration=22528|pkt_duration_time=0.510839|duration=22528|duration_time=0.510839|pkt_pos=20516|pkt_size=4092|sample_fmt=fltp|nb_samples=2048|channels=2|channel_layout=unknown
-frame|media_type=audio|stream_index=0|key_frame=1|pts=N/A|pts_time=N/A|pkt_dts=N/A|pkt_dts_time=N/A|best_effort_timestamp=N/A|best_effort_timestamp_time=N/A|pkt_duration=22528|pkt_duration_time=0.510839|duration=22528|duration_time=0.510839|pkt_pos=20516|pkt_size=4092|sample_fmt=fltp|nb_samples=2048|channels=2|channel_layout=unknown
-frame|media_type=audio|stream_index=0|key_frame=1|pts=N/A|pts_time=N/A|pkt_dts=N/A|pkt_dts_time=N/A|best_effort_timestamp=N/A|best_effort_timestamp_time=N/A|pkt_duration=22528|pkt_duration_time=0.510839|duration=22528|duration_time=0.510839|pkt_pos=20516|pkt_size=4092|sample_fmt=fltp|nb_samples=2048|channels=2|channel_layout=unknown
-frame|media_type=audio|stream_index=0|key_frame=1|pts=N/A|pts_time=N/A|pkt_dts=N/A|pkt_dts_time=N/A|best_effort_timestamp=N/A|best_effort_timestamp_time=N/A|pkt_duration=22528|pkt_duration_time=0.510839|duration=22528|duration_time=0.510839|pkt_pos=20516|pkt_size=4092|sample_fmt=fltp|nb_samples=2048|channels=2|channel_layout=unknown
-frame|media_type=audio|stream_index=0|key_frame=1|pts=N/A|pts_time=N/A|pkt_dts=N/A|pkt_dts_time=N/A|best_effort_timestamp=N/A|best_effort_timestamp_time=N/A|pkt_duration=22528|pkt_duration_time=0.510839|duration=22528|duration_time=0.510839|pkt_pos=20516|pkt_size=4092|sample_fmt=fltp|nb_samples=2048|channels=2|channel_layout=unknown
-frame|media_type=audio|stream_index=0|key_frame=1|pts=N/A|pts_time=N/A|pkt_dts=N/A|pkt_dts_time=N/A|best_effort_timestamp=N/A|best_effort_timestamp_time=N/A|pkt_duration=22528|pkt_duration_time=0.510839|duration=22528|duration_time=0.510839|pkt_pos=20516|pkt_size=4092|sample_fmt=fltp|nb_samples=2048|channels=2|channel_layout=unknown
+frame|media_type=audio|stream_index=0|key_frame=1|pts=112640|pts_time=2.554195|pkt_dts=112640|pkt_dts_time=2.554195|best_effort_timestamp=112640|best_effort_timestamp_time=2.554195|duration=22528|duration_time=0.510839|pkt_pos=20516|pkt_size=4092|sample_fmt=fltp|nb_samples=2048|channels=2|channel_layout=unknown
+frame|media_type=audio|stream_index=0|key_frame=1|pts=N/A|pts_time=N/A|pkt_dts=N/A|pkt_dts_time=N/A|best_effort_timestamp=N/A|best_effort_timestamp_time=N/A|duration=22528|duration_time=0.510839|pkt_pos=20516|pkt_size=4092|sample_fmt=fltp|nb_samples=2048|channels=2|channel_layout=unknown
+frame|media_type=audio|stream_index=0|key_frame=1|pts=N/A|pts_time=N/A|pkt_dts=N/A|pkt_dts_time=N/A|best_effort_timestamp=N/A|best_effort_timestamp_time=N/A|duration=22528|duration_time=0.510839|pkt_pos=20516|pkt_size=4092|sample_fmt=fltp|nb_samples=2048|channels=2|channel_layout=unknown
+frame|media_type=audio|stream_index=0|key_frame=1|pts=N/A|pts_time=N/A|pkt_dts=N/A|pkt_dts_time=N/A|best_effort_timestamp=N/A|best_effort_timestamp_time=N/A|duration=22528|duration_time=0.510839|pkt_pos=20516|pkt_size=4092|sample_fmt=fltp|nb_samples=2048|channels=2|channel_layout=unknown
+frame|media_type=audio|stream_index=0|key_frame=1|pts=N/A|pts_time=N/A|pkt_dts=N/A|pkt_dts_time=N/A|best_effort_timestamp=N/A|best_effort_timestamp_time=N/A|duration=22528|duration_time=0.510839|pkt_pos=20516|pkt_size=4092|sample_fmt=fltp|nb_samples=2048|channels=2|channel_layout=unknown
+frame|media_type=audio|stream_index=0|key_frame=1|pts=N/A|pts_time=N/A|pkt_dts=N/A|pkt_dts_time=N/A|best_effort_timestamp=N/A|best_effort_timestamp_time=N/A|duration=22528|duration_time=0.510839|pkt_pos=20516|pkt_size=4092|sample_fmt=fltp|nb_samples=2048|channels=2|channel_layout=unknown
+frame|media_type=audio|stream_index=0|key_frame=1|pts=N/A|pts_time=N/A|pkt_dts=N/A|pkt_dts_time=N/A|best_effort_timestamp=N/A|best_effort_timestamp_time=N/A|duration=22528|duration_time=0.510839|pkt_pos=20516|pkt_size=4092|sample_fmt=fltp|nb_samples=2048|channels=2|channel_layout=unknown
+frame|media_type=audio|stream_index=0|key_frame=1|pts=N/A|pts_time=N/A|pkt_dts=N/A|pkt_dts_time=N/A|best_effort_timestamp=N/A|best_effort_timestamp_time=N/A|duration=22528|duration_time=0.510839|pkt_pos=20516|pkt_size=4092|sample_fmt=fltp|nb_samples=2048|channels=2|channel_layout=unknown
+frame|media_type=audio|stream_index=0|key_frame=1|pts=N/A|pts_time=N/A|pkt_dts=N/A|pkt_dts_time=N/A|best_effort_timestamp=N/A|best_effort_timestamp_time=N/A|duration=22528|duration_time=0.510839|pkt_pos=20516|pkt_size=4092|sample_fmt=fltp|nb_samples=2048|channels=2|channel_layout=unknown
+frame|media_type=audio|stream_index=0|key_frame=1|pts=N/A|pts_time=N/A|pkt_dts=N/A|pkt_dts_time=N/A|best_effort_timestamp=N/A|best_effort_timestamp_time=N/A|duration=22528|duration_time=0.510839|pkt_pos=20516|pkt_size=4092|sample_fmt=fltp|nb_samples=2048|channels=2|channel_layout=unknown
+frame|media_type=audio|stream_index=0|key_frame=1|pts=N/A|pts_time=N/A|pkt_dts=N/A|pkt_dts_time=N/A|best_effort_timestamp=N/A|best_effort_timestamp_time=N/A|duration=22528|duration_time=0.510839|pkt_pos=20516|pkt_size=4092|sample_fmt=fltp|nb_samples=2048|channels=2|channel_layout=unknown
packet|codec_type=audio|stream_index=0|pts=135168|pts_time=3.065034|dts=135168|dts_time=3.065034|duration=22528|duration_time=0.510839|size=4092|pos=24608|flags=K__
-frame|media_type=audio|stream_index=0|key_frame=1|pts=135168|pts_time=3.065034|pkt_dts=135168|pkt_dts_time=3.065034|best_effort_timestamp=135168|best_effort_timestamp_time=3.065034|pkt_duration=22528|pkt_duration_time=0.510839|duration=22528|duration_time=0.510839|pkt_pos=24608|pkt_size=4092|sample_fmt=fltp|nb_samples=2048|channels=2|channel_layout=unknown
-frame|media_type=audio|stream_index=0|key_frame=1|pts=N/A|pts_time=N/A|pkt_dts=N/A|pkt_dts_time=N/A|best_effort_timestamp=N/A|best_effort_timestamp_time=N/A|pkt_duration=22528|pkt_duration_time=0.510839|duration=22528|duration_time=0.510839|pkt_pos=24608|pkt_size=4092|sample_fmt=fltp|nb_samples=2048|channels=2|channel_layout=unknown
-frame|media_type=audio|stream_index=0|key_frame=1|pts=N/A|pts_time=N/A|pkt_dts=N/A|pkt_dts_time=N/A|best_effort_timestamp=N/A|best_effort_timestamp_time=N/A|pkt_duration=22528|pkt_duration_time=0.510839|duration=22528|duration_time=0.510839|pkt_pos=24608|pkt_size=4092|sample_fmt=fltp|nb_samples=2048|channels=2|channel_layout=unknown
-frame|media_type=audio|stream_index=0|key_frame=1|pts=N/A|pts_time=N/A|pkt_dts=N/A|pkt_dts_time=N/A|best_effort_timestamp=N/A|best_effort_timestamp_time=N/A|pkt_duration=22528|pkt_duration_time=0.510839|duration=22528|duration_time=0.510839|pkt_pos=24608|pkt_size=4092|sample_fmt=fltp|nb_samples=2048|channels=2|channel_layout=unknown
-frame|media_type=audio|stream_index=0|key_frame=1|pts=N/A|pts_time=N/A|pkt_dts=N/A|pkt_dts_time=N/A|best_effort_timestamp=N/A|best_effort_timestamp_time=N/A|pkt_duration=22528|pkt_duration_time=0.510839|duration=22528|duration_time=0.510839|pkt_pos=24608|pkt_size=4092|sample_fmt=fltp|nb_samples=2048|channels=2|channel_layout=unknown
-frame|media_type=audio|stream_index=0|key_frame=1|pts=N/A|pts_time=N/A|pkt_dts=N/A|pkt_dts_time=N/A|best_effort_timestamp=N/A|best_effort_timestamp_time=N/A|pkt_duration=22528|pkt_duration_time=0.510839|duration=22528|duration_time=0.510839|pkt_pos=24608|pkt_size=4092|sample_fmt=fltp|nb_samples=2048|channels=2|channel_layout=unknown
-frame|media_type=audio|stream_index=0|key_frame=1|pts=N/A|pts_time=N/A|pkt_dts=N/A|pkt_dts_time=N/A|best_effort_timestamp=N/A|best_effort_timestamp_time=N/A|pkt_duration=22528|pkt_duration_time=0.510839|duration=22528|duration_time=0.510839|pkt_pos=24608|pkt_size=4092|sample_fmt=fltp|nb_samples=2048|channels=2|channel_layout=unknown
-frame|media_type=audio|stream_index=0|key_frame=1|pts=N/A|pts_time=N/A|pkt_dts=N/A|pkt_dts_time=N/A|best_effort_timestamp=N/A|best_effort_timestamp_time=N/A|pkt_duration=22528|pkt_duration_time=0.510839|duration=22528|duration_time=0.510839|pkt_pos=24608|pkt_size=4092|sample_fmt=fltp|nb_samples=2048|channels=2|channel_layout=unknown
-frame|media_type=audio|stream_index=0|key_frame=1|pts=N/A|pts_time=N/A|pkt_dts=N/A|pkt_dts_time=N/A|best_effort_timestamp=N/A|best_effort_timestamp_time=N/A|pkt_duration=22528|pkt_duration_time=0.510839|duration=22528|duration_time=0.510839|pkt_pos=24608|pkt_size=4092|sample_fmt=fltp|nb_samples=2048|channels=2|channel_layout=unknown
-frame|media_type=audio|stream_index=0|key_frame=1|pts=N/A|pts_time=N/A|pkt_dts=N/A|pkt_dts_time=N/A|best_effort_timestamp=N/A|best_effort_timestamp_time=N/A|pkt_duration=22528|pkt_duration_time=0.510839|duration=22528|duration_time=0.510839|pkt_pos=24608|pkt_size=4092|sample_fmt=fltp|nb_samples=2048|channels=2|channel_layout=unknown
-frame|media_type=audio|stream_index=0|key_frame=1|pts=N/A|pts_time=N/A|pkt_dts=N/A|pkt_dts_time=N/A|best_effort_timestamp=N/A|best_effort_timestamp_time=N/A|pkt_duration=22528|pkt_duration_time=0.510839|duration=22528|duration_time=0.510839|pkt_pos=24608|pkt_size=4092|sample_fmt=fltp|nb_samples=2048|channels=2|channel_layout=unknown
+frame|media_type=audio|stream_index=0|key_frame=1|pts=135168|pts_time=3.065034|pkt_dts=135168|pkt_dts_time=3.065034|best_effort_timestamp=135168|best_effort_timestamp_time=3.065034|duration=22528|duration_time=0.510839|pkt_pos=24608|pkt_size=4092|sample_fmt=fltp|nb_samples=2048|channels=2|channel_layout=unknown
+frame|media_type=audio|stream_index=0|key_frame=1|pts=N/A|pts_time=N/A|pkt_dts=N/A|pkt_dts_time=N/A|best_effort_timestamp=N/A|best_effort_timestamp_time=N/A|duration=22528|duration_time=0.510839|pkt_pos=24608|pkt_size=4092|sample_fmt=fltp|nb_samples=2048|channels=2|channel_layout=unknown
+frame|media_type=audio|stream_index=0|key_frame=1|pts=N/A|pts_time=N/A|pkt_dts=N/A|pkt_dts_time=N/A|best_effort_timestamp=N/A|best_effort_timestamp_time=N/A|duration=22528|duration_time=0.510839|pkt_pos=24608|pkt_size=4092|sample_fmt=fltp|nb_samples=2048|channels=2|channel_layout=unknown
+frame|media_type=audio|stream_index=0|key_frame=1|pts=N/A|pts_time=N/A|pkt_dts=N/A|pkt_dts_time=N/A|best_effort_timestamp=N/A|best_effort_timestamp_time=N/A|duration=22528|duration_time=0.510839|pkt_pos=24608|pkt_size=4092|sample_fmt=fltp|nb_samples=2048|channels=2|channel_layout=unknown
+frame|media_type=audio|stream_index=0|key_frame=1|pts=N/A|pts_time=N/A|pkt_dts=N/A|pkt_dts_time=N/A|best_effort_timestamp=N/A|best_effort_timestamp_time=N/A|duration=22528|duration_time=0.510839|pkt_pos=24608|pkt_size=4092|sample_fmt=fltp|nb_samples=2048|channels=2|channel_layout=unknown
+frame|media_type=audio|stream_index=0|key_frame=1|pts=N/A|pts_time=N/A|pkt_dts=N/A|pkt_dts_time=N/A|best_effort_timestamp=N/A|best_effort_timestamp_time=N/A|duration=22528|duration_time=0.510839|pkt_pos=24608|pkt_size=4092|sample_fmt=fltp|nb_samples=2048|channels=2|channel_layout=unknown
+frame|media_type=audio|stream_index=0|key_frame=1|pts=N/A|pts_time=N/A|pkt_dts=N/A|pkt_dts_time=N/A|best_effort_timestamp=N/A|best_effort_timestamp_time=N/A|duration=22528|duration_time=0.510839|pkt_pos=24608|pkt_size=4092|sample_fmt=fltp|nb_samples=2048|channels=2|channel_layout=unknown
+frame|media_type=audio|stream_index=0|key_frame=1|pts=N/A|pts_time=N/A|pkt_dts=N/A|pkt_dts_time=N/A|best_effort_timestamp=N/A|best_effort_timestamp_time=N/A|duration=22528|duration_time=0.510839|pkt_pos=24608|pkt_size=4092|sample_fmt=fltp|nb_samples=2048|channels=2|channel_layout=unknown
+frame|media_type=audio|stream_index=0|key_frame=1|pts=N/A|pts_time=N/A|pkt_dts=N/A|pkt_dts_time=N/A|best_effort_timestamp=N/A|best_effort_timestamp_time=N/A|duration=22528|duration_time=0.510839|pkt_pos=24608|pkt_size=4092|sample_fmt=fltp|nb_samples=2048|channels=2|channel_layout=unknown
+frame|media_type=audio|stream_index=0|key_frame=1|pts=N/A|pts_time=N/A|pkt_dts=N/A|pkt_dts_time=N/A|best_effort_timestamp=N/A|best_effort_timestamp_time=N/A|duration=22528|duration_time=0.510839|pkt_pos=24608|pkt_size=4092|sample_fmt=fltp|nb_samples=2048|channels=2|channel_layout=unknown
+frame|media_type=audio|stream_index=0|key_frame=1|pts=N/A|pts_time=N/A|pkt_dts=N/A|pkt_dts_time=N/A|best_effort_timestamp=N/A|best_effort_timestamp_time=N/A|duration=22528|duration_time=0.510839|pkt_pos=24608|pkt_size=4092|sample_fmt=fltp|nb_samples=2048|channels=2|channel_layout=unknown
packet|codec_type=audio|stream_index=0|pts=157696|pts_time=3.575873|dts=157696|dts_time=3.575873|duration=22528|duration_time=0.510839|size=4092|pos=28700|flags=K__
-frame|media_type=audio|stream_index=0|key_frame=1|pts=157696|pts_time=3.575873|pkt_dts=157696|pkt_dts_time=3.575873|best_effort_timestamp=157696|best_effort_timestamp_time=3.575873|pkt_duration=22528|pkt_duration_time=0.510839|duration=22528|duration_time=0.510839|pkt_pos=28700|pkt_size=4092|sample_fmt=fltp|nb_samples=2048|channels=2|channel_layout=unknown
-frame|media_type=audio|stream_index=0|key_frame=1|pts=N/A|pts_time=N/A|pkt_dts=N/A|pkt_dts_time=N/A|best_effort_timestamp=N/A|best_effort_timestamp_time=N/A|pkt_duration=22528|pkt_duration_time=0.510839|duration=22528|duration_time=0.510839|pkt_pos=28700|pkt_size=4092|sample_fmt=fltp|nb_samples=2048|channels=2|channel_layout=unknown
-frame|media_type=audio|stream_index=0|key_frame=1|pts=N/A|pts_time=N/A|pkt_dts=N/A|pkt_dts_time=N/A|best_effort_timestamp=N/A|best_effort_timestamp_time=N/A|pkt_duration=22528|pkt_duration_time=0.510839|duration=22528|duration_time=0.510839|pkt_pos=28700|pkt_size=4092|sample_fmt=fltp|nb_samples=2048|channels=2|channel_layout=unknown
-frame|media_type=audio|stream_index=0|key_frame=1|pts=N/A|pts_time=N/A|pkt_dts=N/A|pkt_dts_time=N/A|best_effort_timestamp=N/A|best_effort_timestamp_time=N/A|pkt_duration=22528|pkt_duration_time=0.510839|duration=22528|duration_time=0.510839|pkt_pos=28700|pkt_size=4092|sample_fmt=fltp|nb_samples=2048|channels=2|channel_layout=unknown
-frame|media_type=audio|stream_index=0|key_frame=1|pts=N/A|pts_time=N/A|pkt_dts=N/A|pkt_dts_time=N/A|best_effort_timestamp=N/A|best_effort_timestamp_time=N/A|pkt_duration=22528|pkt_duration_time=0.510839|duration=22528|duration_time=0.510839|pkt_pos=28700|pkt_size=4092|sample_fmt=fltp|nb_samples=2048|channels=2|channel_layout=unknown
-frame|media_type=audio|stream_index=0|key_frame=1|pts=N/A|pts_time=N/A|pkt_dts=N/A|pkt_dts_time=N/A|best_effort_timestamp=N/A|best_effort_timestamp_time=N/A|pkt_duration=22528|pkt_duration_time=0.510839|duration=22528|duration_time=0.510839|pkt_pos=28700|pkt_size=4092|sample_fmt=fltp|nb_samples=2048|channels=2|channel_layout=unknown
-frame|media_type=audio|stream_index=0|key_frame=1|pts=N/A|pts_time=N/A|pkt_dts=N/A|pkt_dts_time=N/A|best_effort_timestamp=N/A|best_effort_timestamp_time=N/A|pkt_duration=22528|pkt_duration_time=0.510839|duration=22528|duration_time=0.510839|pkt_pos=28700|pkt_size=4092|sample_fmt=fltp|nb_samples=2048|channels=2|channel_layout=unknown
-frame|media_type=audio|stream_index=0|key_frame=1|pts=N/A|pts_time=N/A|pkt_dts=N/A|pkt_dts_time=N/A|best_effort_timestamp=N/A|best_effort_timestamp_time=N/A|pkt_duration=22528|pkt_duration_time=0.510839|duration=22528|duration_time=0.510839|pkt_pos=28700|pkt_size=4092|sample_fmt=fltp|nb_samples=2048|channels=2|channel_layout=unknown
-frame|media_type=audio|stream_index=0|key_frame=1|pts=N/A|pts_time=N/A|pkt_dts=N/A|pkt_dts_time=N/A|best_effort_timestamp=N/A|best_effort_timestamp_time=N/A|pkt_duration=22528|pkt_duration_time=0.510839|duration=22528|duration_time=0.510839|pkt_pos=28700|pkt_size=4092|sample_fmt=fltp|nb_samples=2048|channels=2|channel_layout=unknown
-frame|media_type=audio|stream_index=0|key_frame=1|pts=N/A|pts_time=N/A|pkt_dts=N/A|pkt_dts_time=N/A|best_effort_timestamp=N/A|best_effort_timestamp_time=N/A|pkt_duration=22528|pkt_duration_time=0.510839|duration=22528|duration_time=0.510839|pkt_pos=28700|pkt_size=4092|sample_fmt=fltp|nb_samples=2048|channels=2|channel_layout=unknown
-frame|media_type=audio|stream_index=0|key_frame=1|pts=N/A|pts_time=N/A|pkt_dts=N/A|pkt_dts_time=N/A|best_effort_timestamp=N/A|best_effort_timestamp_time=N/A|pkt_duration=22528|pkt_duration_time=0.510839|duration=22528|duration_time=0.510839|pkt_pos=28700|pkt_size=4092|sample_fmt=fltp|nb_samples=2048|channels=2|channel_layout=unknown
+frame|media_type=audio|stream_index=0|key_frame=1|pts=157696|pts_time=3.575873|pkt_dts=157696|pkt_dts_time=3.575873|best_effort_timestamp=157696|best_effort_timestamp_time=3.575873|duration=22528|duration_time=0.510839|pkt_pos=28700|pkt_size=4092|sample_fmt=fltp|nb_samples=2048|channels=2|channel_layout=unknown
+frame|media_type=audio|stream_index=0|key_frame=1|pts=N/A|pts_time=N/A|pkt_dts=N/A|pkt_dts_time=N/A|best_effort_timestamp=N/A|best_effort_timestamp_time=N/A|duration=22528|duration_time=0.510839|pkt_pos=28700|pkt_size=4092|sample_fmt=fltp|nb_samples=2048|channels=2|channel_layout=unknown
+frame|media_type=audio|stream_index=0|key_frame=1|pts=N/A|pts_time=N/A|pkt_dts=N/A|pkt_dts_time=N/A|best_effort_timestamp=N/A|best_effort_timestamp_time=N/A|duration=22528|duration_time=0.510839|pkt_pos=28700|pkt_size=4092|sample_fmt=fltp|nb_samples=2048|channels=2|channel_layout=unknown
+frame|media_type=audio|stream_index=0|key_frame=1|pts=N/A|pts_time=N/A|pkt_dts=N/A|pkt_dts_time=N/A|best_effort_timestamp=N/A|best_effort_timestamp_time=N/A|duration=22528|duration_time=0.510839|pkt_pos=28700|pkt_size=4092|sample_fmt=fltp|nb_samples=2048|channels=2|channel_layout=unknown
+frame|media_type=audio|stream_index=0|key_frame=1|pts=N/A|pts_time=N/A|pkt_dts=N/A|pkt_dts_time=N/A|best_effort_timestamp=N/A|best_effort_timestamp_time=N/A|duration=22528|duration_time=0.510839|pkt_pos=28700|pkt_size=4092|sample_fmt=fltp|nb_samples=2048|channels=2|channel_layout=unknown
+frame|media_type=audio|stream_index=0|key_frame=1|pts=N/A|pts_time=N/A|pkt_dts=N/A|pkt_dts_time=N/A|best_effort_timestamp=N/A|best_effort_timestamp_time=N/A|duration=22528|duration_time=0.510839|pkt_pos=28700|pkt_size=4092|sample_fmt=fltp|nb_samples=2048|channels=2|channel_layout=unknown
+frame|media_type=audio|stream_index=0|key_frame=1|pts=N/A|pts_time=N/A|pkt_dts=N/A|pkt_dts_time=N/A|best_effort_timestamp=N/A|best_effort_timestamp_time=N/A|duration=22528|duration_time=0.510839|pkt_pos=28700|pkt_size=4092|sample_fmt=fltp|nb_samples=2048|channels=2|channel_layout=unknown
+frame|media_type=audio|stream_index=0|key_frame=1|pts=N/A|pts_time=N/A|pkt_dts=N/A|pkt_dts_time=N/A|best_effort_timestamp=N/A|best_effort_timestamp_time=N/A|duration=22528|duration_time=0.510839|pkt_pos=28700|pkt_size=4092|sample_fmt=fltp|nb_samples=2048|channels=2|channel_layout=unknown
+frame|media_type=audio|stream_index=0|key_frame=1|pts=N/A|pts_time=N/A|pkt_dts=N/A|pkt_dts_time=N/A|best_effort_timestamp=N/A|best_effort_timestamp_time=N/A|duration=22528|duration_time=0.510839|pkt_pos=28700|pkt_size=4092|sample_fmt=fltp|nb_samples=2048|channels=2|channel_layout=unknown
+frame|media_type=audio|stream_index=0|key_frame=1|pts=N/A|pts_time=N/A|pkt_dts=N/A|pkt_dts_time=N/A|best_effort_timestamp=N/A|best_effort_timestamp_time=N/A|duration=22528|duration_time=0.510839|pkt_pos=28700|pkt_size=4092|sample_fmt=fltp|nb_samples=2048|channels=2|channel_layout=unknown
+frame|media_type=audio|stream_index=0|key_frame=1|pts=N/A|pts_time=N/A|pkt_dts=N/A|pkt_dts_time=N/A|best_effort_timestamp=N/A|best_effort_timestamp_time=N/A|duration=22528|duration_time=0.510839|pkt_pos=28700|pkt_size=4092|sample_fmt=fltp|nb_samples=2048|channels=2|channel_layout=unknown
packet|codec_type=audio|stream_index=0|pts=180224|pts_time=4.086712|dts=180224|dts_time=4.086712|duration=22528|duration_time=0.510839|size=4092|pos=32792|flags=K__
-frame|media_type=audio|stream_index=0|key_frame=1|pts=180224|pts_time=4.086712|pkt_dts=180224|pkt_dts_time=4.086712|best_effort_timestamp=180224|best_effort_timestamp_time=4.086712|pkt_duration=22528|pkt_duration_time=0.510839|duration=22528|duration_time=0.510839|pkt_pos=32792|pkt_size=4092|sample_fmt=fltp|nb_samples=2048|channels=2|channel_layout=unknown
-frame|media_type=audio|stream_index=0|key_frame=1|pts=N/A|pts_time=N/A|pkt_dts=N/A|pkt_dts_time=N/A|best_effort_timestamp=N/A|best_effort_timestamp_time=N/A|pkt_duration=22528|pkt_duration_time=0.510839|duration=22528|duration_time=0.510839|pkt_pos=32792|pkt_size=4092|sample_fmt=fltp|nb_samples=2048|channels=2|channel_layout=unknown
-frame|media_type=audio|stream_index=0|key_frame=1|pts=N/A|pts_time=N/A|pkt_dts=N/A|pkt_dts_time=N/A|best_effort_timestamp=N/A|best_effort_timestamp_time=N/A|pkt_duration=22528|pkt_duration_time=0.510839|duration=22528|duration_time=0.510839|pkt_pos=32792|pkt_size=4092|sample_fmt=fltp|nb_samples=2048|channels=2|channel_layout=unknown
-frame|media_type=audio|stream_index=0|key_frame=1|pts=N/A|pts_time=N/A|pkt_dts=N/A|pkt_dts_time=N/A|best_effort_timestamp=N/A|best_effort_timestamp_time=N/A|pkt_duration=22528|pkt_duration_time=0.510839|duration=22528|duration_time=0.510839|pkt_pos=32792|pkt_size=4092|sample_fmt=fltp|nb_samples=2048|channels=2|channel_layout=unknown
-frame|media_type=audio|stream_index=0|key_frame=1|pts=N/A|pts_time=N/A|pkt_dts=N/A|pkt_dts_time=N/A|best_effort_timestamp=N/A|best_effort_timestamp_time=N/A|pkt_duration=22528|pkt_duration_time=0.510839|duration=22528|duration_time=0.510839|pkt_pos=32792|pkt_size=4092|sample_fmt=fltp|nb_samples=2048|channels=2|channel_layout=unknown
-frame|media_type=audio|stream_index=0|key_frame=1|pts=N/A|pts_time=N/A|pkt_dts=N/A|pkt_dts_time=N/A|best_effort_timestamp=N/A|best_effort_timestamp_time=N/A|pkt_duration=22528|pkt_duration_time=0.510839|duration=22528|duration_time=0.510839|pkt_pos=32792|pkt_size=4092|sample_fmt=fltp|nb_samples=2048|channels=2|channel_layout=unknown
-frame|media_type=audio|stream_index=0|key_frame=1|pts=N/A|pts_time=N/A|pkt_dts=N/A|pkt_dts_time=N/A|best_effort_timestamp=N/A|best_effort_timestamp_time=N/A|pkt_duration=22528|pkt_duration_time=0.510839|duration=22528|duration_time=0.510839|pkt_pos=32792|pkt_size=4092|sample_fmt=fltp|nb_samples=2048|channels=2|channel_layout=unknown
-frame|media_type=audio|stream_index=0|key_frame=1|pts=N/A|pts_time=N/A|pkt_dts=N/A|pkt_dts_time=N/A|best_effort_timestamp=N/A|best_effort_timestamp_time=N/A|pkt_duration=22528|pkt_duration_time=0.510839|duration=22528|duration_time=0.510839|pkt_pos=32792|pkt_size=4092|sample_fmt=fltp|nb_samples=2048|channels=2|channel_layout=unknown
-frame|media_type=audio|stream_index=0|key_frame=1|pts=N/A|pts_time=N/A|pkt_dts=N/A|pkt_dts_time=N/A|best_effort_timestamp=N/A|best_effort_timestamp_time=N/A|pkt_duration=22528|pkt_duration_time=0.510839|duration=22528|duration_time=0.510839|pkt_pos=32792|pkt_size=4092|sample_fmt=fltp|nb_samples=2048|channels=2|channel_layout=unknown
-frame|media_type=audio|stream_index=0|key_frame=1|pts=N/A|pts_time=N/A|pkt_dts=N/A|pkt_dts_time=N/A|best_effort_timestamp=N/A|best_effort_timestamp_time=N/A|pkt_duration=22528|pkt_duration_time=0.510839|duration=22528|duration_time=0.510839|pkt_pos=32792|pkt_size=4092|sample_fmt=fltp|nb_samples=2048|channels=2|channel_layout=unknown
-frame|media_type=audio|stream_index=0|key_frame=1|pts=N/A|pts_time=N/A|pkt_dts=N/A|pkt_dts_time=N/A|best_effort_timestamp=N/A|best_effort_timestamp_time=N/A|pkt_duration=22528|pkt_duration_time=0.510839|duration=22528|duration_time=0.510839|pkt_pos=32792|pkt_size=4092|sample_fmt=fltp|nb_samples=2048|channels=2|channel_layout=unknown
+frame|media_type=audio|stream_index=0|key_frame=1|pts=180224|pts_time=4.086712|pkt_dts=180224|pkt_dts_time=4.086712|best_effort_timestamp=180224|best_effort_timestamp_time=4.086712|duration=22528|duration_time=0.510839|pkt_pos=32792|pkt_size=4092|sample_fmt=fltp|nb_samples=2048|channels=2|channel_layout=unknown
+frame|media_type=audio|stream_index=0|key_frame=1|pts=N/A|pts_time=N/A|pkt_dts=N/A|pkt_dts_time=N/A|best_effort_timestamp=N/A|best_effort_timestamp_time=N/A|duration=22528|duration_time=0.510839|pkt_pos=32792|pkt_size=4092|sample_fmt=fltp|nb_samples=2048|channels=2|channel_layout=unknown
+frame|media_type=audio|stream_index=0|key_frame=1|pts=N/A|pts_time=N/A|pkt_dts=N/A|pkt_dts_time=N/A|best_effort_timestamp=N/A|best_effort_timestamp_time=N/A|duration=22528|duration_time=0.510839|pkt_pos=32792|pkt_size=4092|sample_fmt=fltp|nb_samples=2048|channels=2|channel_layout=unknown
+frame|media_type=audio|stream_index=0|key_frame=1|pts=N/A|pts_time=N/A|pkt_dts=N/A|pkt_dts_time=N/A|best_effort_timestamp=N/A|best_effort_timestamp_time=N/A|duration=22528|duration_time=0.510839|pkt_pos=32792|pkt_size=4092|sample_fmt=fltp|nb_samples=2048|channels=2|channel_layout=unknown
+frame|media_type=audio|stream_index=0|key_frame=1|pts=N/A|pts_time=N/A|pkt_dts=N/A|pkt_dts_time=N/A|best_effort_timestamp=N/A|best_effort_timestamp_time=N/A|duration=22528|duration_time=0.510839|pkt_pos=32792|pkt_size=4092|sample_fmt=fltp|nb_samples=2048|channels=2|channel_layout=unknown
+frame|media_type=audio|stream_index=0|key_frame=1|pts=N/A|pts_time=N/A|pkt_dts=N/A|pkt_dts_time=N/A|best_effort_timestamp=N/A|best_effort_timestamp_time=N/A|duration=22528|duration_time=0.510839|pkt_pos=32792|pkt_size=4092|sample_fmt=fltp|nb_samples=2048|channels=2|channel_layout=unknown
+frame|media_type=audio|stream_index=0|key_frame=1|pts=N/A|pts_time=N/A|pkt_dts=N/A|pkt_dts_time=N/A|best_effort_timestamp=N/A|best_effort_timestamp_time=N/A|duration=22528|duration_time=0.510839|pkt_pos=32792|pkt_size=4092|sample_fmt=fltp|nb_samples=2048|channels=2|channel_layout=unknown
+frame|media_type=audio|stream_index=0|key_frame=1|pts=N/A|pts_time=N/A|pkt_dts=N/A|pkt_dts_time=N/A|best_effort_timestamp=N/A|best_effort_timestamp_time=N/A|duration=22528|duration_time=0.510839|pkt_pos=32792|pkt_size=4092|sample_fmt=fltp|nb_samples=2048|channels=2|channel_layout=unknown
+frame|media_type=audio|stream_index=0|key_frame=1|pts=N/A|pts_time=N/A|pkt_dts=N/A|pkt_dts_time=N/A|best_effort_timestamp=N/A|best_effort_timestamp_time=N/A|duration=22528|duration_time=0.510839|pkt_pos=32792|pkt_size=4092|sample_fmt=fltp|nb_samples=2048|channels=2|channel_layout=unknown
+frame|media_type=audio|stream_index=0|key_frame=1|pts=N/A|pts_time=N/A|pkt_dts=N/A|pkt_dts_time=N/A|best_effort_timestamp=N/A|best_effort_timestamp_time=N/A|duration=22528|duration_time=0.510839|pkt_pos=32792|pkt_size=4092|sample_fmt=fltp|nb_samples=2048|channels=2|channel_layout=unknown
+frame|media_type=audio|stream_index=0|key_frame=1|pts=N/A|pts_time=N/A|pkt_dts=N/A|pkt_dts_time=N/A|best_effort_timestamp=N/A|best_effort_timestamp_time=N/A|duration=22528|duration_time=0.510839|pkt_pos=32792|pkt_size=4092|sample_fmt=fltp|nb_samples=2048|channels=2|channel_layout=unknown
packet|codec_type=audio|stream_index=0|pts=202752|pts_time=4.597551|dts=202752|dts_time=4.597551|duration=22528|duration_time=0.510839|size=4092|pos=36884|flags=K__
-frame|media_type=audio|stream_index=0|key_frame=1|pts=202752|pts_time=4.597551|pkt_dts=202752|pkt_dts_time=4.597551|best_effort_timestamp=202752|best_effort_timestamp_time=4.597551|pkt_duration=22528|pkt_duration_time=0.510839|duration=22528|duration_time=0.510839|pkt_pos=36884|pkt_size=4092|sample_fmt=fltp|nb_samples=2048|channels=2|channel_layout=unknown
-frame|media_type=audio|stream_index=0|key_frame=1|pts=N/A|pts_time=N/A|pkt_dts=N/A|pkt_dts_time=N/A|best_effort_timestamp=N/A|best_effort_timestamp_time=N/A|pkt_duration=22528|pkt_duration_time=0.510839|duration=22528|duration_time=0.510839|pkt_pos=36884|pkt_size=4092|sample_fmt=fltp|nb_samples=2048|channels=2|channel_layout=unknown
-frame|media_type=audio|stream_index=0|key_frame=1|pts=N/A|pts_time=N/A|pkt_dts=N/A|pkt_dts_time=N/A|best_effort_timestamp=N/A|best_effort_timestamp_time=N/A|pkt_duration=22528|pkt_duration_time=0.510839|duration=22528|duration_time=0.510839|pkt_pos=36884|pkt_size=4092|sample_fmt=fltp|nb_samples=2048|channels=2|channel_layout=unknown
-frame|media_type=audio|stream_index=0|key_frame=1|pts=N/A|pts_time=N/A|pkt_dts=N/A|pkt_dts_time=N/A|best_effort_timestamp=N/A|best_effort_timestamp_time=N/A|pkt_duration=22528|pkt_duration_time=0.510839|duration=22528|duration_time=0.510839|pkt_pos=36884|pkt_size=4092|sample_fmt=fltp|nb_samples=2048|channels=2|channel_layout=unknown
-frame|media_type=audio|stream_index=0|key_frame=1|pts=N/A|pts_time=N/A|pkt_dts=N/A|pkt_dts_time=N/A|best_effort_timestamp=N/A|best_effort_timestamp_time=N/A|pkt_duration=22528|pkt_duration_time=0.510839|duration=22528|duration_time=0.510839|pkt_pos=36884|pkt_size=4092|sample_fmt=fltp|nb_samples=2048|channels=2|channel_layout=unknown
-frame|media_type=audio|stream_index=0|key_frame=1|pts=N/A|pts_time=N/A|pkt_dts=N/A|pkt_dts_time=N/A|best_effort_timestamp=N/A|best_effort_timestamp_time=N/A|pkt_duration=22528|pkt_duration_time=0.510839|duration=22528|duration_time=0.510839|pkt_pos=36884|pkt_size=4092|sample_fmt=fltp|nb_samples=2048|channels=2|channel_layout=unknown
-frame|media_type=audio|stream_index=0|key_frame=1|pts=N/A|pts_time=N/A|pkt_dts=N/A|pkt_dts_time=N/A|best_effort_timestamp=N/A|best_effort_timestamp_time=N/A|pkt_duration=22528|pkt_duration_time=0.510839|duration=22528|duration_time=0.510839|pkt_pos=36884|pkt_size=4092|sample_fmt=fltp|nb_samples=2048|channels=2|channel_layout=unknown
-frame|media_type=audio|stream_index=0|key_frame=1|pts=N/A|pts_time=N/A|pkt_dts=N/A|pkt_dts_time=N/A|best_effort_timestamp=N/A|best_effort_timestamp_time=N/A|pkt_duration=22528|pkt_duration_time=0.510839|duration=22528|duration_time=0.510839|pkt_pos=36884|pkt_size=4092|sample_fmt=fltp|nb_samples=2048|channels=2|channel_layout=unknown
-frame|media_type=audio|stream_index=0|key_frame=1|pts=N/A|pts_time=N/A|pkt_dts=N/A|pkt_dts_time=N/A|best_effort_timestamp=N/A|best_effort_timestamp_time=N/A|pkt_duration=22528|pkt_duration_time=0.510839|duration=22528|duration_time=0.510839|pkt_pos=36884|pkt_size=4092|sample_fmt=fltp|nb_samples=2048|channels=2|channel_layout=unknown
-frame|media_type=audio|stream_index=0|key_frame=1|pts=N/A|pts_time=N/A|pkt_dts=N/A|pkt_dts_time=N/A|best_effort_timestamp=N/A|best_effort_timestamp_time=N/A|pkt_duration=22528|pkt_duration_time=0.510839|duration=22528|duration_time=0.510839|pkt_pos=36884|pkt_size=4092|sample_fmt=fltp|nb_samples=2048|channels=2|channel_layout=unknown
-frame|media_type=audio|stream_index=0|key_frame=1|pts=N/A|pts_time=N/A|pkt_dts=N/A|pkt_dts_time=N/A|best_effort_timestamp=N/A|best_effort_timestamp_time=N/A|pkt_duration=22528|pkt_duration_time=0.510839|duration=22528|duration_time=0.510839|pkt_pos=36884|pkt_size=4092|sample_fmt=fltp|nb_samples=2048|channels=2|channel_layout=unknown
+frame|media_type=audio|stream_index=0|key_frame=1|pts=202752|pts_time=4.597551|pkt_dts=202752|pkt_dts_time=4.597551|best_effort_timestamp=202752|best_effort_timestamp_time=4.597551|duration=22528|duration_time=0.510839|pkt_pos=36884|pkt_size=4092|sample_fmt=fltp|nb_samples=2048|channels=2|channel_layout=unknown
+frame|media_type=audio|stream_index=0|key_frame=1|pts=N/A|pts_time=N/A|pkt_dts=N/A|pkt_dts_time=N/A|best_effort_timestamp=N/A|best_effort_timestamp_time=N/A|duration=22528|duration_time=0.510839|pkt_pos=36884|pkt_size=4092|sample_fmt=fltp|nb_samples=2048|channels=2|channel_layout=unknown
+frame|media_type=audio|stream_index=0|key_frame=1|pts=N/A|pts_time=N/A|pkt_dts=N/A|pkt_dts_time=N/A|best_effort_timestamp=N/A|best_effort_timestamp_time=N/A|duration=22528|duration_time=0.510839|pkt_pos=36884|pkt_size=4092|sample_fmt=fltp|nb_samples=2048|channels=2|channel_layout=unknown
+frame|media_type=audio|stream_index=0|key_frame=1|pts=N/A|pts_time=N/A|pkt_dts=N/A|pkt_dts_time=N/A|best_effort_timestamp=N/A|best_effort_timestamp_time=N/A|duration=22528|duration_time=0.510839|pkt_pos=36884|pkt_size=4092|sample_fmt=fltp|nb_samples=2048|channels=2|channel_layout=unknown
+frame|media_type=audio|stream_index=0|key_frame=1|pts=N/A|pts_time=N/A|pkt_dts=N/A|pkt_dts_time=N/A|best_effort_timestamp=N/A|best_effort_timestamp_time=N/A|duration=22528|duration_time=0.510839|pkt_pos=36884|pkt_size=4092|sample_fmt=fltp|nb_samples=2048|channels=2|channel_layout=unknown
+frame|media_type=audio|stream_index=0|key_frame=1|pts=N/A|pts_time=N/A|pkt_dts=N/A|pkt_dts_time=N/A|best_effort_timestamp=N/A|best_effort_timestamp_time=N/A|duration=22528|duration_time=0.510839|pkt_pos=36884|pkt_size=4092|sample_fmt=fltp|nb_samples=2048|channels=2|channel_layout=unknown
+frame|media_type=audio|stream_index=0|key_frame=1|pts=N/A|pts_time=N/A|pkt_dts=N/A|pkt_dts_time=N/A|best_effort_timestamp=N/A|best_effort_timestamp_time=N/A|duration=22528|duration_time=0.510839|pkt_pos=36884|pkt_size=4092|sample_fmt=fltp|nb_samples=2048|channels=2|channel_layout=unknown
+frame|media_type=audio|stream_index=0|key_frame=1|pts=N/A|pts_time=N/A|pkt_dts=N/A|pkt_dts_time=N/A|best_effort_timestamp=N/A|best_effort_timestamp_time=N/A|duration=22528|duration_time=0.510839|pkt_pos=36884|pkt_size=4092|sample_fmt=fltp|nb_samples=2048|channels=2|channel_layout=unknown
+frame|media_type=audio|stream_index=0|key_frame=1|pts=N/A|pts_time=N/A|pkt_dts=N/A|pkt_dts_time=N/A|best_effort_timestamp=N/A|best_effort_timestamp_time=N/A|duration=22528|duration_time=0.510839|pkt_pos=36884|pkt_size=4092|sample_fmt=fltp|nb_samples=2048|channels=2|channel_layout=unknown
+frame|media_type=audio|stream_index=0|key_frame=1|pts=N/A|pts_time=N/A|pkt_dts=N/A|pkt_dts_time=N/A|best_effort_timestamp=N/A|best_effort_timestamp_time=N/A|duration=22528|duration_time=0.510839|pkt_pos=36884|pkt_size=4092|sample_fmt=fltp|nb_samples=2048|channels=2|channel_layout=unknown
+frame|media_type=audio|stream_index=0|key_frame=1|pts=N/A|pts_time=N/A|pkt_dts=N/A|pkt_dts_time=N/A|best_effort_timestamp=N/A|best_effort_timestamp_time=N/A|duration=22528|duration_time=0.510839|pkt_pos=36884|pkt_size=4092|sample_fmt=fltp|nb_samples=2048|channels=2|channel_layout=unknown
packet|codec_type=audio|stream_index=0|pts=225280|pts_time=5.108390|dts=225280|dts_time=5.108390|duration=22528|duration_time=0.510839|size=4092|pos=40976|flags=K__
-frame|media_type=audio|stream_index=0|key_frame=1|pts=225280|pts_time=5.108390|pkt_dts=225280|pkt_dts_time=5.108390|best_effort_timestamp=225280|best_effort_timestamp_time=5.108390|pkt_duration=22528|pkt_duration_time=0.510839|duration=22528|duration_time=0.510839|pkt_pos=40976|pkt_size=4092|sample_fmt=fltp|nb_samples=2048|channels=2|channel_layout=unknown
-frame|media_type=audio|stream_index=0|key_frame=1|pts=N/A|pts_time=N/A|pkt_dts=N/A|pkt_dts_time=N/A|best_effort_timestamp=N/A|best_effort_timestamp_time=N/A|pkt_duration=22528|pkt_duration_time=0.510839|duration=22528|duration_time=0.510839|pkt_pos=40976|pkt_size=4092|sample_fmt=fltp|nb_samples=2048|channels=2|channel_layout=unknown
-frame|media_type=audio|stream_index=0|key_frame=1|pts=N/A|pts_time=N/A|pkt_dts=N/A|pkt_dts_time=N/A|best_effort_timestamp=N/A|best_effort_timestamp_time=N/A|pkt_duration=22528|pkt_duration_time=0.510839|duration=22528|duration_time=0.510839|pkt_pos=40976|pkt_size=4092|sample_fmt=fltp|nb_samples=2048|channels=2|channel_layout=unknown
-frame|media_type=audio|stream_index=0|key_frame=1|pts=N/A|pts_time=N/A|pkt_dts=N/A|pkt_dts_time=N/A|best_effort_timestamp=N/A|best_effort_timestamp_time=N/A|pkt_duration=22528|pkt_duration_time=0.510839|duration=22528|duration_time=0.510839|pkt_pos=40976|pkt_size=4092|sample_fmt=fltp|nb_samples=2048|channels=2|channel_layout=unknown
-frame|media_type=audio|stream_index=0|key_frame=1|pts=N/A|pts_time=N/A|pkt_dts=N/A|pkt_dts_time=N/A|best_effort_timestamp=N/A|best_effort_timestamp_time=N/A|pkt_duration=22528|pkt_duration_time=0.510839|duration=22528|duration_time=0.510839|pkt_pos=40976|pkt_size=4092|sample_fmt=fltp|nb_samples=2048|channels=2|channel_layout=unknown
-frame|media_type=audio|stream_index=0|key_frame=1|pts=N/A|pts_time=N/A|pkt_dts=N/A|pkt_dts_time=N/A|best_effort_timestamp=N/A|best_effort_timestamp_time=N/A|pkt_duration=22528|pkt_duration_time=0.510839|duration=22528|duration_time=0.510839|pkt_pos=40976|pkt_size=4092|sample_fmt=fltp|nb_samples=2048|channels=2|channel_layout=unknown
-frame|media_type=audio|stream_index=0|key_frame=1|pts=N/A|pts_time=N/A|pkt_dts=N/A|pkt_dts_time=N/A|best_effort_timestamp=N/A|best_effort_timestamp_time=N/A|pkt_duration=22528|pkt_duration_time=0.510839|duration=22528|duration_time=0.510839|pkt_pos=40976|pkt_size=4092|sample_fmt=fltp|nb_samples=2048|channels=2|channel_layout=unknown
-frame|media_type=audio|stream_index=0|key_frame=1|pts=N/A|pts_time=N/A|pkt_dts=N/A|pkt_dts_time=N/A|best_effort_timestamp=N/A|best_effort_timestamp_time=N/A|pkt_duration=22528|pkt_duration_time=0.510839|duration=22528|duration_time=0.510839|pkt_pos=40976|pkt_size=4092|sample_fmt=fltp|nb_samples=2048|channels=2|channel_layout=unknown
-frame|media_type=audio|stream_index=0|key_frame=1|pts=N/A|pts_time=N/A|pkt_dts=N/A|pkt_dts_time=N/A|best_effort_timestamp=N/A|best_effort_timestamp_time=N/A|pkt_duration=22528|pkt_duration_time=0.510839|duration=22528|duration_time=0.510839|pkt_pos=40976|pkt_size=4092|sample_fmt=fltp|nb_samples=2048|channels=2|channel_layout=unknown
-frame|media_type=audio|stream_index=0|key_frame=1|pts=N/A|pts_time=N/A|pkt_dts=N/A|pkt_dts_time=N/A|best_effort_timestamp=N/A|best_effort_timestamp_time=N/A|pkt_duration=22528|pkt_duration_time=0.510839|duration=22528|duration_time=0.510839|pkt_pos=40976|pkt_size=4092|sample_fmt=fltp|nb_samples=2048|channels=2|channel_layout=unknown
-frame|media_type=audio|stream_index=0|key_frame=1|pts=N/A|pts_time=N/A|pkt_dts=N/A|pkt_dts_time=N/A|best_effort_timestamp=N/A|best_effort_timestamp_time=N/A|pkt_duration=22528|pkt_duration_time=0.510839|duration=22528|duration_time=0.510839|pkt_pos=40976|pkt_size=4092|sample_fmt=fltp|nb_samples=2048|channels=2|channel_layout=unknown
+frame|media_type=audio|stream_index=0|key_frame=1|pts=225280|pts_time=5.108390|pkt_dts=225280|pkt_dts_time=5.108390|best_effort_timestamp=225280|best_effort_timestamp_time=5.108390|duration=22528|duration_time=0.510839|pkt_pos=40976|pkt_size=4092|sample_fmt=fltp|nb_samples=2048|channels=2|channel_layout=unknown
+frame|media_type=audio|stream_index=0|key_frame=1|pts=N/A|pts_time=N/A|pkt_dts=N/A|pkt_dts_time=N/A|best_effort_timestamp=N/A|best_effort_timestamp_time=N/A|duration=22528|duration_time=0.510839|pkt_pos=40976|pkt_size=4092|sample_fmt=fltp|nb_samples=2048|channels=2|channel_layout=unknown
+frame|media_type=audio|stream_index=0|key_frame=1|pts=N/A|pts_time=N/A|pkt_dts=N/A|pkt_dts_time=N/A|best_effort_timestamp=N/A|best_effort_timestamp_time=N/A|duration=22528|duration_time=0.510839|pkt_pos=40976|pkt_size=4092|sample_fmt=fltp|nb_samples=2048|channels=2|channel_layout=unknown
+frame|media_type=audio|stream_index=0|key_frame=1|pts=N/A|pts_time=N/A|pkt_dts=N/A|pkt_dts_time=N/A|best_effort_timestamp=N/A|best_effort_timestamp_time=N/A|duration=22528|duration_time=0.510839|pkt_pos=40976|pkt_size=4092|sample_fmt=fltp|nb_samples=2048|channels=2|channel_layout=unknown
+frame|media_type=audio|stream_index=0|key_frame=1|pts=N/A|pts_time=N/A|pkt_dts=N/A|pkt_dts_time=N/A|best_effort_timestamp=N/A|best_effort_timestamp_time=N/A|duration=22528|duration_time=0.510839|pkt_pos=40976|pkt_size=4092|sample_fmt=fltp|nb_samples=2048|channels=2|channel_layout=unknown
+frame|media_type=audio|stream_index=0|key_frame=1|pts=N/A|pts_time=N/A|pkt_dts=N/A|pkt_dts_time=N/A|best_effort_timestamp=N/A|best_effort_timestamp_time=N/A|duration=22528|duration_time=0.510839|pkt_pos=40976|pkt_size=4092|sample_fmt=fltp|nb_samples=2048|channels=2|channel_layout=unknown
+frame|media_type=audio|stream_index=0|key_frame=1|pts=N/A|pts_time=N/A|pkt_dts=N/A|pkt_dts_time=N/A|best_effort_timestamp=N/A|best_effort_timestamp_time=N/A|duration=22528|duration_time=0.510839|pkt_pos=40976|pkt_size=4092|sample_fmt=fltp|nb_samples=2048|channels=2|channel_layout=unknown
+frame|media_type=audio|stream_index=0|key_frame=1|pts=N/A|pts_time=N/A|pkt_dts=N/A|pkt_dts_time=N/A|best_effort_timestamp=N/A|best_effort_timestamp_time=N/A|duration=22528|duration_time=0.510839|pkt_pos=40976|pkt_size=4092|sample_fmt=fltp|nb_samples=2048|channels=2|channel_layout=unknown
+frame|media_type=audio|stream_index=0|key_frame=1|pts=N/A|pts_time=N/A|pkt_dts=N/A|pkt_dts_time=N/A|best_effort_timestamp=N/A|best_effort_timestamp_time=N/A|duration=22528|duration_time=0.510839|pkt_pos=40976|pkt_size=4092|sample_fmt=fltp|nb_samples=2048|channels=2|channel_layout=unknown
+frame|media_type=audio|stream_index=0|key_frame=1|pts=N/A|pts_time=N/A|pkt_dts=N/A|pkt_dts_time=N/A|best_effort_timestamp=N/A|best_effort_timestamp_time=N/A|duration=22528|duration_time=0.510839|pkt_pos=40976|pkt_size=4092|sample_fmt=fltp|nb_samples=2048|channels=2|channel_layout=unknown
+frame|media_type=audio|stream_index=0|key_frame=1|pts=N/A|pts_time=N/A|pkt_dts=N/A|pkt_dts_time=N/A|best_effort_timestamp=N/A|best_effort_timestamp_time=N/A|duration=22528|duration_time=0.510839|pkt_pos=40976|pkt_size=4092|sample_fmt=fltp|nb_samples=2048|channels=2|channel_layout=unknown
packet|codec_type=audio|stream_index=0|pts=247808|pts_time=5.619229|dts=247808|dts_time=5.619229|duration=22528|duration_time=0.510839|size=4092|pos=45068|flags=K__
-frame|media_type=audio|stream_index=0|key_frame=1|pts=247808|pts_time=5.619229|pkt_dts=247808|pkt_dts_time=5.619229|best_effort_timestamp=247808|best_effort_timestamp_time=5.619229|pkt_duration=22528|pkt_duration_time=0.510839|duration=22528|duration_time=0.510839|pkt_pos=45068|pkt_size=4092|sample_fmt=fltp|nb_samples=2048|channels=2|channel_layout=unknown
-frame|media_type=audio|stream_index=0|key_frame=1|pts=N/A|pts_time=N/A|pkt_dts=N/A|pkt_dts_time=N/A|best_effort_timestamp=N/A|best_effort_timestamp_time=N/A|pkt_duration=22528|pkt_duration_time=0.510839|duration=22528|duration_time=0.510839|pkt_pos=45068|pkt_size=4092|sample_fmt=fltp|nb_samples=2048|channels=2|channel_layout=unknown
-frame|media_type=audio|stream_index=0|key_frame=1|pts=N/A|pts_time=N/A|pkt_dts=N/A|pkt_dts_time=N/A|best_effort_timestamp=N/A|best_effort_timestamp_time=N/A|pkt_duration=22528|pkt_duration_time=0.510839|duration=22528|duration_time=0.510839|pkt_pos=45068|pkt_size=4092|sample_fmt=fltp|nb_samples=2048|channels=2|channel_layout=unknown
-frame|media_type=audio|stream_index=0|key_frame=1|pts=N/A|pts_time=N/A|pkt_dts=N/A|pkt_dts_time=N/A|best_effort_timestamp=N/A|best_effort_timestamp_time=N/A|pkt_duration=22528|pkt_duration_time=0.510839|duration=22528|duration_time=0.510839|pkt_pos=45068|pkt_size=4092|sample_fmt=fltp|nb_samples=2048|channels=2|channel_layout=unknown
-frame|media_type=audio|stream_index=0|key_frame=1|pts=N/A|pts_time=N/A|pkt_dts=N/A|pkt_dts_time=N/A|best_effort_timestamp=N/A|best_effort_timestamp_time=N/A|pkt_duration=22528|pkt_duration_time=0.510839|duration=22528|duration_time=0.510839|pkt_pos=45068|pkt_size=4092|sample_fmt=fltp|nb_samples=2048|channels=2|channel_layout=unknown
-frame|media_type=audio|stream_index=0|key_frame=1|pts=N/A|pts_time=N/A|pkt_dts=N/A|pkt_dts_time=N/A|best_effort_timestamp=N/A|best_effort_timestamp_time=N/A|pkt_duration=22528|pkt_duration_time=0.510839|duration=22528|duration_time=0.510839|pkt_pos=45068|pkt_size=4092|sample_fmt=fltp|nb_samples=2048|channels=2|channel_layout=unknown
-frame|media_type=audio|stream_index=0|key_frame=1|pts=N/A|pts_time=N/A|pkt_dts=N/A|pkt_dts_time=N/A|best_effort_timestamp=N/A|best_effort_timestamp_time=N/A|pkt_duration=22528|pkt_duration_time=0.510839|duration=22528|duration_time=0.510839|pkt_pos=45068|pkt_size=4092|sample_fmt=fltp|nb_samples=2048|channels=2|channel_layout=unknown
-frame|media_type=audio|stream_index=0|key_frame=1|pts=N/A|pts_time=N/A|pkt_dts=N/A|pkt_dts_time=N/A|best_effort_timestamp=N/A|best_effort_timestamp_time=N/A|pkt_duration=22528|pkt_duration_time=0.510839|duration=22528|duration_time=0.510839|pkt_pos=45068|pkt_size=4092|sample_fmt=fltp|nb_samples=2048|channels=2|channel_layout=unknown
-frame|media_type=audio|stream_index=0|key_frame=1|pts=N/A|pts_time=N/A|pkt_dts=N/A|pkt_dts_time=N/A|best_effort_timestamp=N/A|best_effort_timestamp_time=N/A|pkt_duration=22528|pkt_duration_time=0.510839|duration=22528|duration_time=0.510839|pkt_pos=45068|pkt_size=4092|sample_fmt=fltp|nb_samples=2048|channels=2|channel_layout=unknown
-frame|media_type=audio|stream_index=0|key_frame=1|pts=N/A|pts_time=N/A|pkt_dts=N/A|pkt_dts_time=N/A|best_effort_timestamp=N/A|best_effort_timestamp_time=N/A|pkt_duration=22528|pkt_duration_time=0.510839|duration=22528|duration_time=0.510839|pkt_pos=45068|pkt_size=4092|sample_fmt=fltp|nb_samples=2048|channels=2|channel_layout=unknown
-frame|media_type=audio|stream_index=0|key_frame=1|pts=N/A|pts_time=N/A|pkt_dts=N/A|pkt_dts_time=N/A|best_effort_timestamp=N/A|best_effort_timestamp_time=N/A|pkt_duration=22528|pkt_duration_time=0.510839|duration=22528|duration_time=0.510839|pkt_pos=45068|pkt_size=4092|sample_fmt=fltp|nb_samples=2048|channels=2|channel_layout=unknown
+frame|media_type=audio|stream_index=0|key_frame=1|pts=247808|pts_time=5.619229|pkt_dts=247808|pkt_dts_time=5.619229|best_effort_timestamp=247808|best_effort_timestamp_time=5.619229|duration=22528|duration_time=0.510839|pkt_pos=45068|pkt_size=4092|sample_fmt=fltp|nb_samples=2048|channels=2|channel_layout=unknown
+frame|media_type=audio|stream_index=0|key_frame=1|pts=N/A|pts_time=N/A|pkt_dts=N/A|pkt_dts_time=N/A|best_effort_timestamp=N/A|best_effort_timestamp_time=N/A|duration=22528|duration_time=0.510839|pkt_pos=45068|pkt_size=4092|sample_fmt=fltp|nb_samples=2048|channels=2|channel_layout=unknown
+frame|media_type=audio|stream_index=0|key_frame=1|pts=N/A|pts_time=N/A|pkt_dts=N/A|pkt_dts_time=N/A|best_effort_timestamp=N/A|best_effort_timestamp_time=N/A|duration=22528|duration_time=0.510839|pkt_pos=45068|pkt_size=4092|sample_fmt=fltp|nb_samples=2048|channels=2|channel_layout=unknown
+frame|media_type=audio|stream_index=0|key_frame=1|pts=N/A|pts_time=N/A|pkt_dts=N/A|pkt_dts_time=N/A|best_effort_timestamp=N/A|best_effort_timestamp_time=N/A|duration=22528|duration_time=0.510839|pkt_pos=45068|pkt_size=4092|sample_fmt=fltp|nb_samples=2048|channels=2|channel_layout=unknown
+frame|media_type=audio|stream_index=0|key_frame=1|pts=N/A|pts_time=N/A|pkt_dts=N/A|pkt_dts_time=N/A|best_effort_timestamp=N/A|best_effort_timestamp_time=N/A|duration=22528|duration_time=0.510839|pkt_pos=45068|pkt_size=4092|sample_fmt=fltp|nb_samples=2048|channels=2|channel_layout=unknown
+frame|media_type=audio|stream_index=0|key_frame=1|pts=N/A|pts_time=N/A|pkt_dts=N/A|pkt_dts_time=N/A|best_effort_timestamp=N/A|best_effort_timestamp_time=N/A|duration=22528|duration_time=0.510839|pkt_pos=45068|pkt_size=4092|sample_fmt=fltp|nb_samples=2048|channels=2|channel_layout=unknown
+frame|media_type=audio|stream_index=0|key_frame=1|pts=N/A|pts_time=N/A|pkt_dts=N/A|pkt_dts_time=N/A|best_effort_timestamp=N/A|best_effort_timestamp_time=N/A|duration=22528|duration_time=0.510839|pkt_pos=45068|pkt_size=4092|sample_fmt=fltp|nb_samples=2048|channels=2|channel_layout=unknown
+frame|media_type=audio|stream_index=0|key_frame=1|pts=N/A|pts_time=N/A|pkt_dts=N/A|pkt_dts_time=N/A|best_effort_timestamp=N/A|best_effort_timestamp_time=N/A|duration=22528|duration_time=0.510839|pkt_pos=45068|pkt_size=4092|sample_fmt=fltp|nb_samples=2048|channels=2|channel_layout=unknown
+frame|media_type=audio|stream_index=0|key_frame=1|pts=N/A|pts_time=N/A|pkt_dts=N/A|pkt_dts_time=N/A|best_effort_timestamp=N/A|best_effort_timestamp_time=N/A|duration=22528|duration_time=0.510839|pkt_pos=45068|pkt_size=4092|sample_fmt=fltp|nb_samples=2048|channels=2|channel_layout=unknown
+frame|media_type=audio|stream_index=0|key_frame=1|pts=N/A|pts_time=N/A|pkt_dts=N/A|pkt_dts_time=N/A|best_effort_timestamp=N/A|best_effort_timestamp_time=N/A|duration=22528|duration_time=0.510839|pkt_pos=45068|pkt_size=4092|sample_fmt=fltp|nb_samples=2048|channels=2|channel_layout=unknown
+frame|media_type=audio|stream_index=0|key_frame=1|pts=N/A|pts_time=N/A|pkt_dts=N/A|pkt_dts_time=N/A|best_effort_timestamp=N/A|best_effort_timestamp_time=N/A|duration=22528|duration_time=0.510839|pkt_pos=45068|pkt_size=4092|sample_fmt=fltp|nb_samples=2048|channels=2|channel_layout=unknown
packet|codec_type=audio|stream_index=0|pts=270336|pts_time=6.130068|dts=270336|dts_time=6.130068|duration=22528|duration_time=0.510839|size=4092|pos=49160|flags=K__
-frame|media_type=audio|stream_index=0|key_frame=1|pts=270336|pts_time=6.130068|pkt_dts=270336|pkt_dts_time=6.130068|best_effort_timestamp=270336|best_effort_timestamp_time=6.130068|pkt_duration=22528|pkt_duration_time=0.510839|duration=22528|duration_time=0.510839|pkt_pos=49160|pkt_size=4092|sample_fmt=fltp|nb_samples=2048|channels=2|channel_layout=unknown
-frame|media_type=audio|stream_index=0|key_frame=1|pts=N/A|pts_time=N/A|pkt_dts=N/A|pkt_dts_time=N/A|best_effort_timestamp=N/A|best_effort_timestamp_time=N/A|pkt_duration=22528|pkt_duration_time=0.510839|duration=22528|duration_time=0.510839|pkt_pos=49160|pkt_size=4092|sample_fmt=fltp|nb_samples=2048|channels=2|channel_layout=unknown
-frame|media_type=audio|stream_index=0|key_frame=1|pts=N/A|pts_time=N/A|pkt_dts=N/A|pkt_dts_time=N/A|best_effort_timestamp=N/A|best_effort_timestamp_time=N/A|pkt_duration=22528|pkt_duration_time=0.510839|duration=22528|duration_time=0.510839|pkt_pos=49160|pkt_size=4092|sample_fmt=fltp|nb_samples=2048|channels=2|channel_layout=unknown
-frame|media_type=audio|stream_index=0|key_frame=1|pts=N/A|pts_time=N/A|pkt_dts=N/A|pkt_dts_time=N/A|best_effort_timestamp=N/A|best_effort_timestamp_time=N/A|pkt_duration=22528|pkt_duration_time=0.510839|duration=22528|duration_time=0.510839|pkt_pos=49160|pkt_size=4092|sample_fmt=fltp|nb_samples=2048|channels=2|channel_layout=unknown
-frame|media_type=audio|stream_index=0|key_frame=1|pts=N/A|pts_time=N/A|pkt_dts=N/A|pkt_dts_time=N/A|best_effort_timestamp=N/A|best_effort_timestamp_time=N/A|pkt_duration=22528|pkt_duration_time=0.510839|duration=22528|duration_time=0.510839|pkt_pos=49160|pkt_size=4092|sample_fmt=fltp|nb_samples=2048|channels=2|channel_layout=unknown
-frame|media_type=audio|stream_index=0|key_frame=1|pts=N/A|pts_time=N/A|pkt_dts=N/A|pkt_dts_time=N/A|best_effort_timestamp=N/A|best_effort_timestamp_time=N/A|pkt_duration=22528|pkt_duration_time=0.510839|duration=22528|duration_time=0.510839|pkt_pos=49160|pkt_size=4092|sample_fmt=fltp|nb_samples=2048|channels=2|channel_layout=unknown
-frame|media_type=audio|stream_index=0|key_frame=1|pts=N/A|pts_time=N/A|pkt_dts=N/A|pkt_dts_time=N/A|best_effort_timestamp=N/A|best_effort_timestamp_time=N/A|pkt_duration=22528|pkt_duration_time=0.510839|duration=22528|duration_time=0.510839|pkt_pos=49160|pkt_size=4092|sample_fmt=fltp|nb_samples=2048|channels=2|channel_layout=unknown
-frame|media_type=audio|stream_index=0|key_frame=1|pts=N/A|pts_time=N/A|pkt_dts=N/A|pkt_dts_time=N/A|best_effort_timestamp=N/A|best_effort_timestamp_time=N/A|pkt_duration=22528|pkt_duration_time=0.510839|duration=22528|duration_time=0.510839|pkt_pos=49160|pkt_size=4092|sample_fmt=fltp|nb_samples=2048|channels=2|channel_layout=unknown
-frame|media_type=audio|stream_index=0|key_frame=1|pts=N/A|pts_time=N/A|pkt_dts=N/A|pkt_dts_time=N/A|best_effort_timestamp=N/A|best_effort_timestamp_time=N/A|pkt_duration=22528|pkt_duration_time=0.510839|duration=22528|duration_time=0.510839|pkt_pos=49160|pkt_size=4092|sample_fmt=fltp|nb_samples=2048|channels=2|channel_layout=unknown
-frame|media_type=audio|stream_index=0|key_frame=1|pts=N/A|pts_time=N/A|pkt_dts=N/A|pkt_dts_time=N/A|best_effort_timestamp=N/A|best_effort_timestamp_time=N/A|pkt_duration=22528|pkt_duration_time=0.510839|duration=22528|duration_time=0.510839|pkt_pos=49160|pkt_size=4092|sample_fmt=fltp|nb_samples=2048|channels=2|channel_layout=unknown
-frame|media_type=audio|stream_index=0|key_frame=1|pts=N/A|pts_time=N/A|pkt_dts=N/A|pkt_dts_time=N/A|best_effort_timestamp=N/A|best_effort_timestamp_time=N/A|pkt_duration=22528|pkt_duration_time=0.510839|duration=22528|duration_time=0.510839|pkt_pos=49160|pkt_size=4092|sample_fmt=fltp|nb_samples=2048|channels=2|channel_layout=unknown
+frame|media_type=audio|stream_index=0|key_frame=1|pts=270336|pts_time=6.130068|pkt_dts=270336|pkt_dts_time=6.130068|best_effort_timestamp=270336|best_effort_timestamp_time=6.130068|duration=22528|duration_time=0.510839|pkt_pos=49160|pkt_size=4092|sample_fmt=fltp|nb_samples=2048|channels=2|channel_layout=unknown
+frame|media_type=audio|stream_index=0|key_frame=1|pts=N/A|pts_time=N/A|pkt_dts=N/A|pkt_dts_time=N/A|best_effort_timestamp=N/A|best_effort_timestamp_time=N/A|duration=22528|duration_time=0.510839|pkt_pos=49160|pkt_size=4092|sample_fmt=fltp|nb_samples=2048|channels=2|channel_layout=unknown
+frame|media_type=audio|stream_index=0|key_frame=1|pts=N/A|pts_time=N/A|pkt_dts=N/A|pkt_dts_time=N/A|best_effort_timestamp=N/A|best_effort_timestamp_time=N/A|duration=22528|duration_time=0.510839|pkt_pos=49160|pkt_size=4092|sample_fmt=fltp|nb_samples=2048|channels=2|channel_layout=unknown
+frame|media_type=audio|stream_index=0|key_frame=1|pts=N/A|pts_time=N/A|pkt_dts=N/A|pkt_dts_time=N/A|best_effort_timestamp=N/A|best_effort_timestamp_time=N/A|duration=22528|duration_time=0.510839|pkt_pos=49160|pkt_size=4092|sample_fmt=fltp|nb_samples=2048|channels=2|channel_layout=unknown
+frame|media_type=audio|stream_index=0|key_frame=1|pts=N/A|pts_time=N/A|pkt_dts=N/A|pkt_dts_time=N/A|best_effort_timestamp=N/A|best_effort_timestamp_time=N/A|duration=22528|duration_time=0.510839|pkt_pos=49160|pkt_size=4092|sample_fmt=fltp|nb_samples=2048|channels=2|channel_layout=unknown
+frame|media_type=audio|stream_index=0|key_frame=1|pts=N/A|pts_time=N/A|pkt_dts=N/A|pkt_dts_time=N/A|best_effort_timestamp=N/A|best_effort_timestamp_time=N/A|duration=22528|duration_time=0.510839|pkt_pos=49160|pkt_size=4092|sample_fmt=fltp|nb_samples=2048|channels=2|channel_layout=unknown
+frame|media_type=audio|stream_index=0|key_frame=1|pts=N/A|pts_time=N/A|pkt_dts=N/A|pkt_dts_time=N/A|best_effort_timestamp=N/A|best_effort_timestamp_time=N/A|duration=22528|duration_time=0.510839|pkt_pos=49160|pkt_size=4092|sample_fmt=fltp|nb_samples=2048|channels=2|channel_layout=unknown
+frame|media_type=audio|stream_index=0|key_frame=1|pts=N/A|pts_time=N/A|pkt_dts=N/A|pkt_dts_time=N/A|best_effort_timestamp=N/A|best_effort_timestamp_time=N/A|duration=22528|duration_time=0.510839|pkt_pos=49160|pkt_size=4092|sample_fmt=fltp|nb_samples=2048|channels=2|channel_layout=unknown
+frame|media_type=audio|stream_index=0|key_frame=1|pts=N/A|pts_time=N/A|pkt_dts=N/A|pkt_dts_time=N/A|best_effort_timestamp=N/A|best_effort_timestamp_time=N/A|duration=22528|duration_time=0.510839|pkt_pos=49160|pkt_size=4092|sample_fmt=fltp|nb_samples=2048|channels=2|channel_layout=unknown
+frame|media_type=audio|stream_index=0|key_frame=1|pts=N/A|pts_time=N/A|pkt_dts=N/A|pkt_dts_time=N/A|best_effort_timestamp=N/A|best_effort_timestamp_time=N/A|duration=22528|duration_time=0.510839|pkt_pos=49160|pkt_size=4092|sample_fmt=fltp|nb_samples=2048|channels=2|channel_layout=unknown
+frame|media_type=audio|stream_index=0|key_frame=1|pts=N/A|pts_time=N/A|pkt_dts=N/A|pkt_dts_time=N/A|best_effort_timestamp=N/A|best_effort_timestamp_time=N/A|duration=22528|duration_time=0.510839|pkt_pos=49160|pkt_size=4092|sample_fmt=fltp|nb_samples=2048|channels=2|channel_layout=unknown
packet|codec_type=audio|stream_index=0|pts=292864|pts_time=6.640907|dts=292864|dts_time=6.640907|duration=22528|duration_time=0.510839|size=4092|pos=53252|flags=K__
-frame|media_type=audio|stream_index=0|key_frame=1|pts=292864|pts_time=6.640907|pkt_dts=292864|pkt_dts_time=6.640907|best_effort_timestamp=292864|best_effort_timestamp_time=6.640907|pkt_duration=22528|pkt_duration_time=0.510839|duration=22528|duration_time=0.510839|pkt_pos=53252|pkt_size=4092|sample_fmt=fltp|nb_samples=2048|channels=2|channel_layout=unknown
-frame|media_type=audio|stream_index=0|key_frame=1|pts=N/A|pts_time=N/A|pkt_dts=N/A|pkt_dts_time=N/A|best_effort_timestamp=N/A|best_effort_timestamp_time=N/A|pkt_duration=22528|pkt_duration_time=0.510839|duration=22528|duration_time=0.510839|pkt_pos=53252|pkt_size=4092|sample_fmt=fltp|nb_samples=2048|channels=2|channel_layout=unknown
-frame|media_type=audio|stream_index=0|key_frame=1|pts=N/A|pts_time=N/A|pkt_dts=N/A|pkt_dts_time=N/A|best_effort_timestamp=N/A|best_effort_timestamp_time=N/A|pkt_duration=22528|pkt_duration_time=0.510839|duration=22528|duration_time=0.510839|pkt_pos=53252|pkt_size=4092|sample_fmt=fltp|nb_samples=2048|channels=2|channel_layout=unknown
-frame|media_type=audio|stream_index=0|key_frame=1|pts=N/A|pts_time=N/A|pkt_dts=N/A|pkt_dts_time=N/A|best_effort_timestamp=N/A|best_effort_timestamp_time=N/A|pkt_duration=22528|pkt_duration_time=0.510839|duration=22528|duration_time=0.510839|pkt_pos=53252|pkt_size=4092|sample_fmt=fltp|nb_samples=2048|channels=2|channel_layout=unknown
-frame|media_type=audio|stream_index=0|key_frame=1|pts=N/A|pts_time=N/A|pkt_dts=N/A|pkt_dts_time=N/A|best_effort_timestamp=N/A|best_effort_timestamp_time=N/A|pkt_duration=22528|pkt_duration_time=0.510839|duration=22528|duration_time=0.510839|pkt_pos=53252|pkt_size=4092|sample_fmt=fltp|nb_samples=2048|channels=2|channel_layout=unknown
-frame|media_type=audio|stream_index=0|key_frame=1|pts=N/A|pts_time=N/A|pkt_dts=N/A|pkt_dts_time=N/A|best_effort_timestamp=N/A|best_effort_timestamp_time=N/A|pkt_duration=22528|pkt_duration_time=0.510839|duration=22528|duration_time=0.510839|pkt_pos=53252|pkt_size=4092|sample_fmt=fltp|nb_samples=2048|channels=2|channel_layout=unknown
-frame|media_type=audio|stream_index=0|key_frame=1|pts=N/A|pts_time=N/A|pkt_dts=N/A|pkt_dts_time=N/A|best_effort_timestamp=N/A|best_effort_timestamp_time=N/A|pkt_duration=22528|pkt_duration_time=0.510839|duration=22528|duration_time=0.510839|pkt_pos=53252|pkt_size=4092|sample_fmt=fltp|nb_samples=2048|channels=2|channel_layout=unknown
-frame|media_type=audio|stream_index=0|key_frame=1|pts=N/A|pts_time=N/A|pkt_dts=N/A|pkt_dts_time=N/A|best_effort_timestamp=N/A|best_effort_timestamp_time=N/A|pkt_duration=22528|pkt_duration_time=0.510839|duration=22528|duration_time=0.510839|pkt_pos=53252|pkt_size=4092|sample_fmt=fltp|nb_samples=2048|channels=2|channel_layout=unknown
-frame|media_type=audio|stream_index=0|key_frame=1|pts=N/A|pts_time=N/A|pkt_dts=N/A|pkt_dts_time=N/A|best_effort_timestamp=N/A|best_effort_timestamp_time=N/A|pkt_duration=22528|pkt_duration_time=0.510839|duration=22528|duration_time=0.510839|pkt_pos=53252|pkt_size=4092|sample_fmt=fltp|nb_samples=2048|channels=2|channel_layout=unknown
-frame|media_type=audio|stream_index=0|key_frame=1|pts=N/A|pts_time=N/A|pkt_dts=N/A|pkt_dts_time=N/A|best_effort_timestamp=N/A|best_effort_timestamp_time=N/A|pkt_duration=22528|pkt_duration_time=0.510839|duration=22528|duration_time=0.510839|pkt_pos=53252|pkt_size=4092|sample_fmt=fltp|nb_samples=2048|channels=2|channel_layout=unknown
-frame|media_type=audio|stream_index=0|key_frame=1|pts=N/A|pts_time=N/A|pkt_dts=N/A|pkt_dts_time=N/A|best_effort_timestamp=N/A|best_effort_timestamp_time=N/A|pkt_duration=22528|pkt_duration_time=0.510839|duration=22528|duration_time=0.510839|pkt_pos=53252|pkt_size=4092|sample_fmt=fltp|nb_samples=2048|channels=2|channel_layout=unknown
+frame|media_type=audio|stream_index=0|key_frame=1|pts=292864|pts_time=6.640907|pkt_dts=292864|pkt_dts_time=6.640907|best_effort_timestamp=292864|best_effort_timestamp_time=6.640907|duration=22528|duration_time=0.510839|pkt_pos=53252|pkt_size=4092|sample_fmt=fltp|nb_samples=2048|channels=2|channel_layout=unknown
+frame|media_type=audio|stream_index=0|key_frame=1|pts=N/A|pts_time=N/A|pkt_dts=N/A|pkt_dts_time=N/A|best_effort_timestamp=N/A|best_effort_timestamp_time=N/A|duration=22528|duration_time=0.510839|pkt_pos=53252|pkt_size=4092|sample_fmt=fltp|nb_samples=2048|channels=2|channel_layout=unknown
+frame|media_type=audio|stream_index=0|key_frame=1|pts=N/A|pts_time=N/A|pkt_dts=N/A|pkt_dts_time=N/A|best_effort_timestamp=N/A|best_effort_timestamp_time=N/A|duration=22528|duration_time=0.510839|pkt_pos=53252|pkt_size=4092|sample_fmt=fltp|nb_samples=2048|channels=2|channel_layout=unknown
+frame|media_type=audio|stream_index=0|key_frame=1|pts=N/A|pts_time=N/A|pkt_dts=N/A|pkt_dts_time=N/A|best_effort_timestamp=N/A|best_effort_timestamp_time=N/A|duration=22528|duration_time=0.510839|pkt_pos=53252|pkt_size=4092|sample_fmt=fltp|nb_samples=2048|channels=2|channel_layout=unknown
+frame|media_type=audio|stream_index=0|key_frame=1|pts=N/A|pts_time=N/A|pkt_dts=N/A|pkt_dts_time=N/A|best_effort_timestamp=N/A|best_effort_timestamp_time=N/A|duration=22528|duration_time=0.510839|pkt_pos=53252|pkt_size=4092|sample_fmt=fltp|nb_samples=2048|channels=2|channel_layout=unknown
+frame|media_type=audio|stream_index=0|key_frame=1|pts=N/A|pts_time=N/A|pkt_dts=N/A|pkt_dts_time=N/A|best_effort_timestamp=N/A|best_effort_timestamp_time=N/A|duration=22528|duration_time=0.510839|pkt_pos=53252|pkt_size=4092|sample_fmt=fltp|nb_samples=2048|channels=2|channel_layout=unknown
+frame|media_type=audio|stream_index=0|key_frame=1|pts=N/A|pts_time=N/A|pkt_dts=N/A|pkt_dts_time=N/A|best_effort_timestamp=N/A|best_effort_timestamp_time=N/A|duration=22528|duration_time=0.510839|pkt_pos=53252|pkt_size=4092|sample_fmt=fltp|nb_samples=2048|channels=2|channel_layout=unknown
+frame|media_type=audio|stream_index=0|key_frame=1|pts=N/A|pts_time=N/A|pkt_dts=N/A|pkt_dts_time=N/A|best_effort_timestamp=N/A|best_effort_timestamp_time=N/A|duration=22528|duration_time=0.510839|pkt_pos=53252|pkt_size=4092|sample_fmt=fltp|nb_samples=2048|channels=2|channel_layout=unknown
+frame|media_type=audio|stream_index=0|key_frame=1|pts=N/A|pts_time=N/A|pkt_dts=N/A|pkt_dts_time=N/A|best_effort_timestamp=N/A|best_effort_timestamp_time=N/A|duration=22528|duration_time=0.510839|pkt_pos=53252|pkt_size=4092|sample_fmt=fltp|nb_samples=2048|channels=2|channel_layout=unknown
+frame|media_type=audio|stream_index=0|key_frame=1|pts=N/A|pts_time=N/A|pkt_dts=N/A|pkt_dts_time=N/A|best_effort_timestamp=N/A|best_effort_timestamp_time=N/A|duration=22528|duration_time=0.510839|pkt_pos=53252|pkt_size=4092|sample_fmt=fltp|nb_samples=2048|channels=2|channel_layout=unknown
+frame|media_type=audio|stream_index=0|key_frame=1|pts=N/A|pts_time=N/A|pkt_dts=N/A|pkt_dts_time=N/A|best_effort_timestamp=N/A|best_effort_timestamp_time=N/A|duration=22528|duration_time=0.510839|pkt_pos=53252|pkt_size=4092|sample_fmt=fltp|nb_samples=2048|channels=2|channel_layout=unknown
packet|codec_type=audio|stream_index=0|pts=315392|pts_time=7.151746|dts=315392|dts_time=7.151746|duration=22528|duration_time=0.510839|size=4092|pos=57344|flags=K__
-frame|media_type=audio|stream_index=0|key_frame=1|pts=315392|pts_time=7.151746|pkt_dts=315392|pkt_dts_time=7.151746|best_effort_timestamp=315392|best_effort_timestamp_time=7.151746|pkt_duration=22528|pkt_duration_time=0.510839|duration=22528|duration_time=0.510839|pkt_pos=57344|pkt_size=4092|sample_fmt=fltp|nb_samples=2048|channels=2|channel_layout=unknown
-frame|media_type=audio|stream_index=0|key_frame=1|pts=N/A|pts_time=N/A|pkt_dts=N/A|pkt_dts_time=N/A|best_effort_timestamp=N/A|best_effort_timestamp_time=N/A|pkt_duration=22528|pkt_duration_time=0.510839|duration=22528|duration_time=0.510839|pkt_pos=57344|pkt_size=4092|sample_fmt=fltp|nb_samples=2048|channels=2|channel_layout=unknown
-frame|media_type=audio|stream_index=0|key_frame=1|pts=N/A|pts_time=N/A|pkt_dts=N/A|pkt_dts_time=N/A|best_effort_timestamp=N/A|best_effort_timestamp_time=N/A|pkt_duration=22528|pkt_duration_time=0.510839|duration=22528|duration_time=0.510839|pkt_pos=57344|pkt_size=4092|sample_fmt=fltp|nb_samples=2048|channels=2|channel_layout=unknown
-frame|media_type=audio|stream_index=0|key_frame=1|pts=N/A|pts_time=N/A|pkt_dts=N/A|pkt_dts_time=N/A|best_effort_timestamp=N/A|best_effort_timestamp_time=N/A|pkt_duration=22528|pkt_duration_time=0.510839|duration=22528|duration_time=0.510839|pkt_pos=57344|pkt_size=4092|sample_fmt=fltp|nb_samples=2048|channels=2|channel_layout=unknown
-frame|media_type=audio|stream_index=0|key_frame=1|pts=N/A|pts_time=N/A|pkt_dts=N/A|pkt_dts_time=N/A|best_effort_timestamp=N/A|best_effort_timestamp_time=N/A|pkt_duration=22528|pkt_duration_time=0.510839|duration=22528|duration_time=0.510839|pkt_pos=57344|pkt_size=4092|sample_fmt=fltp|nb_samples=2048|channels=2|channel_layout=unknown
-frame|media_type=audio|stream_index=0|key_frame=1|pts=N/A|pts_time=N/A|pkt_dts=N/A|pkt_dts_time=N/A|best_effort_timestamp=N/A|best_effort_timestamp_time=N/A|pkt_duration=22528|pkt_duration_time=0.510839|duration=22528|duration_time=0.510839|pkt_pos=57344|pkt_size=4092|sample_fmt=fltp|nb_samples=2048|channels=2|channel_layout=unknown
-frame|media_type=audio|stream_index=0|key_frame=1|pts=N/A|pts_time=N/A|pkt_dts=N/A|pkt_dts_time=N/A|best_effort_timestamp=N/A|best_effort_timestamp_time=N/A|pkt_duration=22528|pkt_duration_time=0.510839|duration=22528|duration_time=0.510839|pkt_pos=57344|pkt_size=4092|sample_fmt=fltp|nb_samples=2048|channels=2|channel_layout=unknown
-frame|media_type=audio|stream_index=0|key_frame=1|pts=N/A|pts_time=N/A|pkt_dts=N/A|pkt_dts_time=N/A|best_effort_timestamp=N/A|best_effort_timestamp_time=N/A|pkt_duration=22528|pkt_duration_time=0.510839|duration=22528|duration_time=0.510839|pkt_pos=57344|pkt_size=4092|sample_fmt=fltp|nb_samples=2048|channels=2|channel_layout=unknown
-frame|media_type=audio|stream_index=0|key_frame=1|pts=N/A|pts_time=N/A|pkt_dts=N/A|pkt_dts_time=N/A|best_effort_timestamp=N/A|best_effort_timestamp_time=N/A|pkt_duration=22528|pkt_duration_time=0.510839|duration=22528|duration_time=0.510839|pkt_pos=57344|pkt_size=4092|sample_fmt=fltp|nb_samples=2048|channels=2|channel_layout=unknown
-frame|media_type=audio|stream_index=0|key_frame=1|pts=N/A|pts_time=N/A|pkt_dts=N/A|pkt_dts_time=N/A|best_effort_timestamp=N/A|best_effort_timestamp_time=N/A|pkt_duration=22528|pkt_duration_time=0.510839|duration=22528|duration_time=0.510839|pkt_pos=57344|pkt_size=4092|sample_fmt=fltp|nb_samples=2048|channels=2|channel_layout=unknown
-frame|media_type=audio|stream_index=0|key_frame=1|pts=N/A|pts_time=N/A|pkt_dts=N/A|pkt_dts_time=N/A|best_effort_timestamp=N/A|best_effort_timestamp_time=N/A|pkt_duration=22528|pkt_duration_time=0.510839|duration=22528|duration_time=0.510839|pkt_pos=57344|pkt_size=4092|sample_fmt=fltp|nb_samples=2048|channels=2|channel_layout=unknown
+frame|media_type=audio|stream_index=0|key_frame=1|pts=315392|pts_time=7.151746|pkt_dts=315392|pkt_dts_time=7.151746|best_effort_timestamp=315392|best_effort_timestamp_time=7.151746|duration=22528|duration_time=0.510839|pkt_pos=57344|pkt_size=4092|sample_fmt=fltp|nb_samples=2048|channels=2|channel_layout=unknown
+frame|media_type=audio|stream_index=0|key_frame=1|pts=N/A|pts_time=N/A|pkt_dts=N/A|pkt_dts_time=N/A|best_effort_timestamp=N/A|best_effort_timestamp_time=N/A|duration=22528|duration_time=0.510839|pkt_pos=57344|pkt_size=4092|sample_fmt=fltp|nb_samples=2048|channels=2|channel_layout=unknown
+frame|media_type=audio|stream_index=0|key_frame=1|pts=N/A|pts_time=N/A|pkt_dts=N/A|pkt_dts_time=N/A|best_effort_timestamp=N/A|best_effort_timestamp_time=N/A|duration=22528|duration_time=0.510839|pkt_pos=57344|pkt_size=4092|sample_fmt=fltp|nb_samples=2048|channels=2|channel_layout=unknown
+frame|media_type=audio|stream_index=0|key_frame=1|pts=N/A|pts_time=N/A|pkt_dts=N/A|pkt_dts_time=N/A|best_effort_timestamp=N/A|best_effort_timestamp_time=N/A|duration=22528|duration_time=0.510839|pkt_pos=57344|pkt_size=4092|sample_fmt=fltp|nb_samples=2048|channels=2|channel_layout=unknown
+frame|media_type=audio|stream_index=0|key_frame=1|pts=N/A|pts_time=N/A|pkt_dts=N/A|pkt_dts_time=N/A|best_effort_timestamp=N/A|best_effort_timestamp_time=N/A|duration=22528|duration_time=0.510839|pkt_pos=57344|pkt_size=4092|sample_fmt=fltp|nb_samples=2048|channels=2|channel_layout=unknown
+frame|media_type=audio|stream_index=0|key_frame=1|pts=N/A|pts_time=N/A|pkt_dts=N/A|pkt_dts_time=N/A|best_effort_timestamp=N/A|best_effort_timestamp_time=N/A|duration=22528|duration_time=0.510839|pkt_pos=57344|pkt_size=4092|sample_fmt=fltp|nb_samples=2048|channels=2|channel_layout=unknown
+frame|media_type=audio|stream_index=0|key_frame=1|pts=N/A|pts_time=N/A|pkt_dts=N/A|pkt_dts_time=N/A|best_effort_timestamp=N/A|best_effort_timestamp_time=N/A|duration=22528|duration_time=0.510839|pkt_pos=57344|pkt_size=4092|sample_fmt=fltp|nb_samples=2048|channels=2|channel_layout=unknown
+frame|media_type=audio|stream_index=0|key_frame=1|pts=N/A|pts_time=N/A|pkt_dts=N/A|pkt_dts_time=N/A|best_effort_timestamp=N/A|best_effort_timestamp_time=N/A|duration=22528|duration_time=0.510839|pkt_pos=57344|pkt_size=4092|sample_fmt=fltp|nb_samples=2048|channels=2|channel_layout=unknown
+frame|media_type=audio|stream_index=0|key_frame=1|pts=N/A|pts_time=N/A|pkt_dts=N/A|pkt_dts_time=N/A|best_effort_timestamp=N/A|best_effort_timestamp_time=N/A|duration=22528|duration_time=0.510839|pkt_pos=57344|pkt_size=4092|sample_fmt=fltp|nb_samples=2048|channels=2|channel_layout=unknown
+frame|media_type=audio|stream_index=0|key_frame=1|pts=N/A|pts_time=N/A|pkt_dts=N/A|pkt_dts_time=N/A|best_effort_timestamp=N/A|best_effort_timestamp_time=N/A|duration=22528|duration_time=0.510839|pkt_pos=57344|pkt_size=4092|sample_fmt=fltp|nb_samples=2048|channels=2|channel_layout=unknown
+frame|media_type=audio|stream_index=0|key_frame=1|pts=N/A|pts_time=N/A|pkt_dts=N/A|pkt_dts_time=N/A|best_effort_timestamp=N/A|best_effort_timestamp_time=N/A|duration=22528|duration_time=0.510839|pkt_pos=57344|pkt_size=4092|sample_fmt=fltp|nb_samples=2048|channels=2|channel_layout=unknown
packet|codec_type=audio|stream_index=0|pts=337920|pts_time=7.662585|dts=337920|dts_time=7.662585|duration=22528|duration_time=0.510839|size=4092|pos=61436|flags=K__
-frame|media_type=audio|stream_index=0|key_frame=1|pts=337920|pts_time=7.662585|pkt_dts=337920|pkt_dts_time=7.662585|best_effort_timestamp=337920|best_effort_timestamp_time=7.662585|pkt_duration=22528|pkt_duration_time=0.510839|duration=22528|duration_time=0.510839|pkt_pos=61436|pkt_size=4092|sample_fmt=fltp|nb_samples=2048|channels=2|channel_layout=unknown
-frame|media_type=audio|stream_index=0|key_frame=1|pts=N/A|pts_time=N/A|pkt_dts=N/A|pkt_dts_time=N/A|best_effort_timestamp=N/A|best_effort_timestamp_time=N/A|pkt_duration=22528|pkt_duration_time=0.510839|duration=22528|duration_time=0.510839|pkt_pos=61436|pkt_size=4092|sample_fmt=fltp|nb_samples=2048|channels=2|channel_layout=unknown
-frame|media_type=audio|stream_index=0|key_frame=1|pts=N/A|pts_time=N/A|pkt_dts=N/A|pkt_dts_time=N/A|best_effort_timestamp=N/A|best_effort_timestamp_time=N/A|pkt_duration=22528|pkt_duration_time=0.510839|duration=22528|duration_time=0.510839|pkt_pos=61436|pkt_size=4092|sample_fmt=fltp|nb_samples=2048|channels=2|channel_layout=unknown
-frame|media_type=audio|stream_index=0|key_frame=1|pts=N/A|pts_time=N/A|pkt_dts=N/A|pkt_dts_time=N/A|best_effort_timestamp=N/A|best_effort_timestamp_time=N/A|pkt_duration=22528|pkt_duration_time=0.510839|duration=22528|duration_time=0.510839|pkt_pos=61436|pkt_size=4092|sample_fmt=fltp|nb_samples=2048|channels=2|channel_layout=unknown
-frame|media_type=audio|stream_index=0|key_frame=1|pts=N/A|pts_time=N/A|pkt_dts=N/A|pkt_dts_time=N/A|best_effort_timestamp=N/A|best_effort_timestamp_time=N/A|pkt_duration=22528|pkt_duration_time=0.510839|duration=22528|duration_time=0.510839|pkt_pos=61436|pkt_size=4092|sample_fmt=fltp|nb_samples=2048|channels=2|channel_layout=unknown
-frame|media_type=audio|stream_index=0|key_frame=1|pts=N/A|pts_time=N/A|pkt_dts=N/A|pkt_dts_time=N/A|best_effort_timestamp=N/A|best_effort_timestamp_time=N/A|pkt_duration=22528|pkt_duration_time=0.510839|duration=22528|duration_time=0.510839|pkt_pos=61436|pkt_size=4092|sample_fmt=fltp|nb_samples=2048|channels=2|channel_layout=unknown
-frame|media_type=audio|stream_index=0|key_frame=1|pts=N/A|pts_time=N/A|pkt_dts=N/A|pkt_dts_time=N/A|best_effort_timestamp=N/A|best_effort_timestamp_time=N/A|pkt_duration=22528|pkt_duration_time=0.510839|duration=22528|duration_time=0.510839|pkt_pos=61436|pkt_size=4092|sample_fmt=fltp|nb_samples=2048|channels=2|channel_layout=unknown
-frame|media_type=audio|stream_index=0|key_frame=1|pts=N/A|pts_time=N/A|pkt_dts=N/A|pkt_dts_time=N/A|best_effort_timestamp=N/A|best_effort_timestamp_time=N/A|pkt_duration=22528|pkt_duration_time=0.510839|duration=22528|duration_time=0.510839|pkt_pos=61436|pkt_size=4092|sample_fmt=fltp|nb_samples=2048|channels=2|channel_layout=unknown
-frame|media_type=audio|stream_index=0|key_frame=1|pts=N/A|pts_time=N/A|pkt_dts=N/A|pkt_dts_time=N/A|best_effort_timestamp=N/A|best_effort_timestamp_time=N/A|pkt_duration=22528|pkt_duration_time=0.510839|duration=22528|duration_time=0.510839|pkt_pos=61436|pkt_size=4092|sample_fmt=fltp|nb_samples=2048|channels=2|channel_layout=unknown
-frame|media_type=audio|stream_index=0|key_frame=1|pts=N/A|pts_time=N/A|pkt_dts=N/A|pkt_dts_time=N/A|best_effort_timestamp=N/A|best_effort_timestamp_time=N/A|pkt_duration=22528|pkt_duration_time=0.510839|duration=22528|duration_time=0.510839|pkt_pos=61436|pkt_size=4092|sample_fmt=fltp|nb_samples=2048|channels=2|channel_layout=unknown
-frame|media_type=audio|stream_index=0|key_frame=1|pts=N/A|pts_time=N/A|pkt_dts=N/A|pkt_dts_time=N/A|best_effort_timestamp=N/A|best_effort_timestamp_time=N/A|pkt_duration=22528|pkt_duration_time=0.510839|duration=22528|duration_time=0.510839|pkt_pos=61436|pkt_size=4092|sample_fmt=fltp|nb_samples=2048|channels=2|channel_layout=unknown
+frame|media_type=audio|stream_index=0|key_frame=1|pts=337920|pts_time=7.662585|pkt_dts=337920|pkt_dts_time=7.662585|best_effort_timestamp=337920|best_effort_timestamp_time=7.662585|duration=22528|duration_time=0.510839|pkt_pos=61436|pkt_size=4092|sample_fmt=fltp|nb_samples=2048|channels=2|channel_layout=unknown
+frame|media_type=audio|stream_index=0|key_frame=1|pts=N/A|pts_time=N/A|pkt_dts=N/A|pkt_dts_time=N/A|best_effort_timestamp=N/A|best_effort_timestamp_time=N/A|duration=22528|duration_time=0.510839|pkt_pos=61436|pkt_size=4092|sample_fmt=fltp|nb_samples=2048|channels=2|channel_layout=unknown
+frame|media_type=audio|stream_index=0|key_frame=1|pts=N/A|pts_time=N/A|pkt_dts=N/A|pkt_dts_time=N/A|best_effort_timestamp=N/A|best_effort_timestamp_time=N/A|duration=22528|duration_time=0.510839|pkt_pos=61436|pkt_size=4092|sample_fmt=fltp|nb_samples=2048|channels=2|channel_layout=unknown
+frame|media_type=audio|stream_index=0|key_frame=1|pts=N/A|pts_time=N/A|pkt_dts=N/A|pkt_dts_time=N/A|best_effort_timestamp=N/A|best_effort_timestamp_time=N/A|duration=22528|duration_time=0.510839|pkt_pos=61436|pkt_size=4092|sample_fmt=fltp|nb_samples=2048|channels=2|channel_layout=unknown
+frame|media_type=audio|stream_index=0|key_frame=1|pts=N/A|pts_time=N/A|pkt_dts=N/A|pkt_dts_time=N/A|best_effort_timestamp=N/A|best_effort_timestamp_time=N/A|duration=22528|duration_time=0.510839|pkt_pos=61436|pkt_size=4092|sample_fmt=fltp|nb_samples=2048|channels=2|channel_layout=unknown
+frame|media_type=audio|stream_index=0|key_frame=1|pts=N/A|pts_time=N/A|pkt_dts=N/A|pkt_dts_time=N/A|best_effort_timestamp=N/A|best_effort_timestamp_time=N/A|duration=22528|duration_time=0.510839|pkt_pos=61436|pkt_size=4092|sample_fmt=fltp|nb_samples=2048|channels=2|channel_layout=unknown
+frame|media_type=audio|stream_index=0|key_frame=1|pts=N/A|pts_time=N/A|pkt_dts=N/A|pkt_dts_time=N/A|best_effort_timestamp=N/A|best_effort_timestamp_time=N/A|duration=22528|duration_time=0.510839|pkt_pos=61436|pkt_size=4092|sample_fmt=fltp|nb_samples=2048|channels=2|channel_layout=unknown
+frame|media_type=audio|stream_index=0|key_frame=1|pts=N/A|pts_time=N/A|pkt_dts=N/A|pkt_dts_time=N/A|best_effort_timestamp=N/A|best_effort_timestamp_time=N/A|duration=22528|duration_time=0.510839|pkt_pos=61436|pkt_size=4092|sample_fmt=fltp|nb_samples=2048|channels=2|channel_layout=unknown
+frame|media_type=audio|stream_index=0|key_frame=1|pts=N/A|pts_time=N/A|pkt_dts=N/A|pkt_dts_time=N/A|best_effort_timestamp=N/A|best_effort_timestamp_time=N/A|duration=22528|duration_time=0.510839|pkt_pos=61436|pkt_size=4092|sample_fmt=fltp|nb_samples=2048|channels=2|channel_layout=unknown
+frame|media_type=audio|stream_index=0|key_frame=1|pts=N/A|pts_time=N/A|pkt_dts=N/A|pkt_dts_time=N/A|best_effort_timestamp=N/A|best_effort_timestamp_time=N/A|duration=22528|duration_time=0.510839|pkt_pos=61436|pkt_size=4092|sample_fmt=fltp|nb_samples=2048|channels=2|channel_layout=unknown
+frame|media_type=audio|stream_index=0|key_frame=1|pts=N/A|pts_time=N/A|pkt_dts=N/A|pkt_dts_time=N/A|best_effort_timestamp=N/A|best_effort_timestamp_time=N/A|duration=22528|duration_time=0.510839|pkt_pos=61436|pkt_size=4092|sample_fmt=fltp|nb_samples=2048|channels=2|channel_layout=unknown
packet|codec_type=audio|stream_index=0|pts=360448|pts_time=8.173424|dts=360448|dts_time=8.173424|duration=44|duration_time=0.000998|size=8|pos=65528|flags=K_C
-frame|media_type=audio|stream_index=0|key_frame=1|pts=N/A|pts_time=N/A|pkt_dts=N/A|pkt_dts_time=N/A|best_effort_timestamp=N/A|best_effort_timestamp_time=N/A|pkt_duration=44|pkt_duration_time=0.000998|duration=44|duration_time=0.000998|pkt_pos=65528|pkt_size=8|sample_fmt=fltp|nb_samples=2048|channels=2|channel_layout=unknown
+frame|media_type=audio|stream_index=0|key_frame=1|pts=N/A|pts_time=N/A|pkt_dts=N/A|pkt_dts_time=N/A|best_effort_timestamp=N/A|best_effort_timestamp_time=N/A|duration=44|duration_time=0.000998|pkt_pos=65528|pkt_size=8|sample_fmt=fltp|nb_samples=2048|channels=2|channel_layout=unknown
diff --git a/tests/ref/fate/gaplessenc-itunes-to-ipod-aac b/tests/ref/fate/gaplessenc-itunes-to-ipod-aac
index 5f4f27a779..41c9f03b20 100644
--- a/tests/ref/fate/gaplessenc-itunes-to-ipod-aac
+++ b/tests/ref/fate/gaplessenc-itunes-to-ipod-aac
@@ -24,20 +24,20 @@ packet|pts=100352|dts=100352|duration=1024|flags=K__
packet|pts=101376|dts=101376|duration=1024|flags=K__
packet|pts=102400|dts=102400|duration=926|flags=K__
stream|nb_read_packets=102
-frame|pts=0|pkt_dts=0|best_effort_timestamp=0|pkt_duration=1024|nb_samples=1024
-frame|pts=1024|pkt_dts=1024|best_effort_timestamp=1024|pkt_duration=1024|nb_samples=1024
-frame|pts=2048|pkt_dts=2048|best_effort_timestamp=2048|pkt_duration=1024|nb_samples=1024
-frame|pts=3072|pkt_dts=3072|best_effort_timestamp=3072|pkt_duration=1024|nb_samples=1024
-frame|pts=4096|pkt_dts=4096|best_effort_timestamp=4096|pkt_duration=1024|nb_samples=1024
-frame|pts=5120|pkt_dts=5120|best_effort_timestamp=5120|pkt_duration=1024|nb_samples=1024
-frame|pts=6144|pkt_dts=6144|best_effort_timestamp=6144|pkt_duration=1024|nb_samples=1024
-frame|pts=7168|pkt_dts=7168|best_effort_timestamp=7168|pkt_duration=1024|nb_samples=1024
-frame|pts=95232|pkt_dts=95232|best_effort_timestamp=95232|pkt_duration=1024|nb_samples=1024
-frame|pts=96256|pkt_dts=96256|best_effort_timestamp=96256|pkt_duration=1024|nb_samples=1024
-frame|pts=97280|pkt_dts=97280|best_effort_timestamp=97280|pkt_duration=1024|nb_samples=1024
-frame|pts=98304|pkt_dts=98304|best_effort_timestamp=98304|pkt_duration=1024|nb_samples=1024
-frame|pts=99328|pkt_dts=99328|best_effort_timestamp=99328|pkt_duration=1024|nb_samples=1024
-frame|pts=100352|pkt_dts=100352|best_effort_timestamp=100352|pkt_duration=1024|nb_samples=1024
-frame|pts=101376|pkt_dts=101376|best_effort_timestamp=101376|pkt_duration=1024|nb_samples=1024
-frame|pts=102400|pkt_dts=102400|best_effort_timestamp=102400|pkt_duration=926|nb_samples=1024
+frame|pts=0|pkt_dts=0|best_effort_timestamp=0|nb_samples=1024
+frame|pts=1024|pkt_dts=1024|best_effort_timestamp=1024|nb_samples=1024
+frame|pts=2048|pkt_dts=2048|best_effort_timestamp=2048|nb_samples=1024
+frame|pts=3072|pkt_dts=3072|best_effort_timestamp=3072|nb_samples=1024
+frame|pts=4096|pkt_dts=4096|best_effort_timestamp=4096|nb_samples=1024
+frame|pts=5120|pkt_dts=5120|best_effort_timestamp=5120|nb_samples=1024
+frame|pts=6144|pkt_dts=6144|best_effort_timestamp=6144|nb_samples=1024
+frame|pts=7168|pkt_dts=7168|best_effort_timestamp=7168|nb_samples=1024
+frame|pts=95232|pkt_dts=95232|best_effort_timestamp=95232|nb_samples=1024
+frame|pts=96256|pkt_dts=96256|best_effort_timestamp=96256|nb_samples=1024
+frame|pts=97280|pkt_dts=97280|best_effort_timestamp=97280|nb_samples=1024
+frame|pts=98304|pkt_dts=98304|best_effort_timestamp=98304|nb_samples=1024
+frame|pts=99328|pkt_dts=99328|best_effort_timestamp=99328|nb_samples=1024
+frame|pts=100352|pkt_dts=100352|best_effort_timestamp=100352|nb_samples=1024
+frame|pts=101376|pkt_dts=101376|best_effort_timestamp=101376|nb_samples=1024
+frame|pts=102400|pkt_dts=102400|best_effort_timestamp=102400|nb_samples=1024
stream|nb_read_frames=101
diff --git a/tests/ref/fate/gaplessenc-pcm-to-mov-aac b/tests/ref/fate/gaplessenc-pcm-to-mov-aac
index 76a3118b47..09ffaed58d 100644
--- a/tests/ref/fate/gaplessenc-pcm-to-mov-aac
+++ b/tests/ref/fate/gaplessenc-pcm-to-mov-aac
@@ -24,20 +24,20 @@ packet|pts=526336|dts=526336|duration=1024|flags=K__
packet|pts=527360|dts=527360|duration=1024|flags=K__
packet|pts=528384|dts=528384|duration=816|flags=K__
stream|nb_read_packets=518
-frame|pts=0|pkt_dts=0|best_effort_timestamp=0|pkt_duration=1024|nb_samples=1024
-frame|pts=1024|pkt_dts=1024|best_effort_timestamp=1024|pkt_duration=1024|nb_samples=1024
-frame|pts=2048|pkt_dts=2048|best_effort_timestamp=2048|pkt_duration=1024|nb_samples=1024
-frame|pts=3072|pkt_dts=3072|best_effort_timestamp=3072|pkt_duration=1024|nb_samples=1024
-frame|pts=4096|pkt_dts=4096|best_effort_timestamp=4096|pkt_duration=1024|nb_samples=1024
-frame|pts=5120|pkt_dts=5120|best_effort_timestamp=5120|pkt_duration=1024|nb_samples=1024
-frame|pts=6144|pkt_dts=6144|best_effort_timestamp=6144|pkt_duration=1024|nb_samples=1024
-frame|pts=7168|pkt_dts=7168|best_effort_timestamp=7168|pkt_duration=1024|nb_samples=1024
-frame|pts=521216|pkt_dts=521216|best_effort_timestamp=521216|pkt_duration=1024|nb_samples=1024
-frame|pts=522240|pkt_dts=522240|best_effort_timestamp=522240|pkt_duration=1024|nb_samples=1024
-frame|pts=523264|pkt_dts=523264|best_effort_timestamp=523264|pkt_duration=1024|nb_samples=1024
-frame|pts=524288|pkt_dts=524288|best_effort_timestamp=524288|pkt_duration=1024|nb_samples=1024
-frame|pts=525312|pkt_dts=525312|best_effort_timestamp=525312|pkt_duration=1024|nb_samples=1024
-frame|pts=526336|pkt_dts=526336|best_effort_timestamp=526336|pkt_duration=1024|nb_samples=1024
-frame|pts=527360|pkt_dts=527360|best_effort_timestamp=527360|pkt_duration=1024|nb_samples=1024
-frame|pts=528384|pkt_dts=528384|best_effort_timestamp=528384|pkt_duration=816|nb_samples=1024
+frame|pts=0|pkt_dts=0|best_effort_timestamp=0|nb_samples=1024
+frame|pts=1024|pkt_dts=1024|best_effort_timestamp=1024|nb_samples=1024
+frame|pts=2048|pkt_dts=2048|best_effort_timestamp=2048|nb_samples=1024
+frame|pts=3072|pkt_dts=3072|best_effort_timestamp=3072|nb_samples=1024
+frame|pts=4096|pkt_dts=4096|best_effort_timestamp=4096|nb_samples=1024
+frame|pts=5120|pkt_dts=5120|best_effort_timestamp=5120|nb_samples=1024
+frame|pts=6144|pkt_dts=6144|best_effort_timestamp=6144|nb_samples=1024
+frame|pts=7168|pkt_dts=7168|best_effort_timestamp=7168|nb_samples=1024
+frame|pts=521216|pkt_dts=521216|best_effort_timestamp=521216|nb_samples=1024
+frame|pts=522240|pkt_dts=522240|best_effort_timestamp=522240|nb_samples=1024
+frame|pts=523264|pkt_dts=523264|best_effort_timestamp=523264|nb_samples=1024
+frame|pts=524288|pkt_dts=524288|best_effort_timestamp=524288|nb_samples=1024
+frame|pts=525312|pkt_dts=525312|best_effort_timestamp=525312|nb_samples=1024
+frame|pts=526336|pkt_dts=526336|best_effort_timestamp=526336|nb_samples=1024
+frame|pts=527360|pkt_dts=527360|best_effort_timestamp=527360|nb_samples=1024
+frame|pts=528384|pkt_dts=528384|best_effort_timestamp=528384|nb_samples=1024
stream|nb_read_frames=517
diff --git a/tests/ref/fate/gaplessinfo-itunes1 b/tests/ref/fate/gaplessinfo-itunes1
index 82c471fa51..f888130d8a 100644
--- a/tests/ref/fate/gaplessinfo-itunes1
+++ b/tests/ref/fate/gaplessinfo-itunes1
@@ -24,20 +24,20 @@ packet|pts=1291264|dts=1291264|duration=1024|flags=K__
packet|pts=1292288|dts=1292288|duration=1024|flags=K__
packet|pts=1293312|dts=1293312|duration=1024|flags=K__
stream|nb_read_packets=1264
-frame|pts=2112|pkt_dts=2112|best_effort_timestamp=2112|pkt_duration=960|nb_samples=960
-frame|pts=3072|pkt_dts=3072|best_effort_timestamp=3072|pkt_duration=1024|nb_samples=1024
-frame|pts=4096|pkt_dts=4096|best_effort_timestamp=4096|pkt_duration=1024|nb_samples=1024
-frame|pts=5120|pkt_dts=5120|best_effort_timestamp=5120|pkt_duration=1024|nb_samples=1024
-frame|pts=6144|pkt_dts=6144|best_effort_timestamp=6144|pkt_duration=1024|nb_samples=1024
-frame|pts=7168|pkt_dts=7168|best_effort_timestamp=7168|pkt_duration=1024|nb_samples=1024
-frame|pts=8192|pkt_dts=8192|best_effort_timestamp=8192|pkt_duration=1024|nb_samples=1024
-frame|pts=9216|pkt_dts=9216|best_effort_timestamp=9216|pkt_duration=1024|nb_samples=1024
-frame|pts=1286144|pkt_dts=1286144|best_effort_timestamp=1286144|pkt_duration=1024|nb_samples=1024
-frame|pts=1287168|pkt_dts=1287168|best_effort_timestamp=1287168|pkt_duration=1024|nb_samples=1024
-frame|pts=1288192|pkt_dts=1288192|best_effort_timestamp=1288192|pkt_duration=1024|nb_samples=1024
-frame|pts=1289216|pkt_dts=1289216|best_effort_timestamp=1289216|pkt_duration=1024|nb_samples=1024
-frame|pts=1290240|pkt_dts=1290240|best_effort_timestamp=1290240|pkt_duration=1024|nb_samples=1024
-frame|pts=1291264|pkt_dts=1291264|best_effort_timestamp=1291264|pkt_duration=1024|nb_samples=1024
-frame|pts=1292288|pkt_dts=1292288|best_effort_timestamp=1292288|pkt_duration=1024|nb_samples=1024
-frame|pts=1293312|pkt_dts=1293312|best_effort_timestamp=1293312|pkt_duration=1024|nb_samples=1024
+frame|pts=2112|pkt_dts=2112|best_effort_timestamp=2112|nb_samples=960
+frame|pts=3072|pkt_dts=3072|best_effort_timestamp=3072|nb_samples=1024
+frame|pts=4096|pkt_dts=4096|best_effort_timestamp=4096|nb_samples=1024
+frame|pts=5120|pkt_dts=5120|best_effort_timestamp=5120|nb_samples=1024
+frame|pts=6144|pkt_dts=6144|best_effort_timestamp=6144|nb_samples=1024
+frame|pts=7168|pkt_dts=7168|best_effort_timestamp=7168|nb_samples=1024
+frame|pts=8192|pkt_dts=8192|best_effort_timestamp=8192|nb_samples=1024
+frame|pts=9216|pkt_dts=9216|best_effort_timestamp=9216|nb_samples=1024
+frame|pts=1286144|pkt_dts=1286144|best_effort_timestamp=1286144|nb_samples=1024
+frame|pts=1287168|pkt_dts=1287168|best_effort_timestamp=1287168|nb_samples=1024
+frame|pts=1288192|pkt_dts=1288192|best_effort_timestamp=1288192|nb_samples=1024
+frame|pts=1289216|pkt_dts=1289216|best_effort_timestamp=1289216|nb_samples=1024
+frame|pts=1290240|pkt_dts=1290240|best_effort_timestamp=1290240|nb_samples=1024
+frame|pts=1291264|pkt_dts=1291264|best_effort_timestamp=1291264|nb_samples=1024
+frame|pts=1292288|pkt_dts=1292288|best_effort_timestamp=1292288|nb_samples=1024
+frame|pts=1293312|pkt_dts=1293312|best_effort_timestamp=1293312|nb_samples=1024
stream|nb_read_frames=1262
diff --git a/tests/ref/fate/gaplessinfo-itunes2 b/tests/ref/fate/gaplessinfo-itunes2
index 7581b4dfae..057e282305 100644
--- a/tests/ref/fate/gaplessinfo-itunes2
+++ b/tests/ref/fate/gaplessinfo-itunes2
@@ -24,20 +24,20 @@ packet|pts=102400|dts=102400|duration=1024|flags=K__
packet|pts=103424|dts=103424|duration=1024|flags=K__
packet|pts=104448|dts=104448|duration=1024|flags=K__
stream|nb_read_packets=103
-frame|pts=2112|pkt_dts=2112|best_effort_timestamp=2112|pkt_duration=960|nb_samples=960
-frame|pts=3072|pkt_dts=3072|best_effort_timestamp=3072|pkt_duration=1024|nb_samples=1024
-frame|pts=4096|pkt_dts=4096|best_effort_timestamp=4096|pkt_duration=1024|nb_samples=1024
-frame|pts=5120|pkt_dts=5120|best_effort_timestamp=5120|pkt_duration=1024|nb_samples=1024
-frame|pts=6144|pkt_dts=6144|best_effort_timestamp=6144|pkt_duration=1024|nb_samples=1024
-frame|pts=7168|pkt_dts=7168|best_effort_timestamp=7168|pkt_duration=1024|nb_samples=1024
-frame|pts=8192|pkt_dts=8192|best_effort_timestamp=8192|pkt_duration=1024|nb_samples=1024
-frame|pts=9216|pkt_dts=9216|best_effort_timestamp=9216|pkt_duration=1024|nb_samples=1024
-frame|pts=97280|pkt_dts=97280|best_effort_timestamp=97280|pkt_duration=1024|nb_samples=1024
-frame|pts=98304|pkt_dts=98304|best_effort_timestamp=98304|pkt_duration=1024|nb_samples=1024
-frame|pts=99328|pkt_dts=99328|best_effort_timestamp=99328|pkt_duration=1024|nb_samples=1024
-frame|pts=100352|pkt_dts=100352|best_effort_timestamp=100352|pkt_duration=1024|nb_samples=1024
-frame|pts=101376|pkt_dts=101376|best_effort_timestamp=101376|pkt_duration=1024|nb_samples=1024
-frame|pts=102400|pkt_dts=102400|best_effort_timestamp=102400|pkt_duration=1024|nb_samples=1024
-frame|pts=103424|pkt_dts=103424|best_effort_timestamp=103424|pkt_duration=1024|nb_samples=1024
-frame|pts=104448|pkt_dts=104448|best_effort_timestamp=104448|pkt_duration=1024|nb_samples=1024
+frame|pts=2112|pkt_dts=2112|best_effort_timestamp=2112|nb_samples=960
+frame|pts=3072|pkt_dts=3072|best_effort_timestamp=3072|nb_samples=1024
+frame|pts=4096|pkt_dts=4096|best_effort_timestamp=4096|nb_samples=1024
+frame|pts=5120|pkt_dts=5120|best_effort_timestamp=5120|nb_samples=1024
+frame|pts=6144|pkt_dts=6144|best_effort_timestamp=6144|nb_samples=1024
+frame|pts=7168|pkt_dts=7168|best_effort_timestamp=7168|nb_samples=1024
+frame|pts=8192|pkt_dts=8192|best_effort_timestamp=8192|nb_samples=1024
+frame|pts=9216|pkt_dts=9216|best_effort_timestamp=9216|nb_samples=1024
+frame|pts=97280|pkt_dts=97280|best_effort_timestamp=97280|nb_samples=1024
+frame|pts=98304|pkt_dts=98304|best_effort_timestamp=98304|nb_samples=1024
+frame|pts=99328|pkt_dts=99328|best_effort_timestamp=99328|nb_samples=1024
+frame|pts=100352|pkt_dts=100352|best_effort_timestamp=100352|nb_samples=1024
+frame|pts=101376|pkt_dts=101376|best_effort_timestamp=101376|nb_samples=1024
+frame|pts=102400|pkt_dts=102400|best_effort_timestamp=102400|nb_samples=1024
+frame|pts=103424|pkt_dts=103424|best_effort_timestamp=103424|nb_samples=1024
+frame|pts=104448|pkt_dts=104448|best_effort_timestamp=104448|nb_samples=1024
stream|nb_read_frames=101
diff --git a/tests/ref/fate/h264-dts_5frames b/tests/ref/fate/h264-dts_5frames
index f0a9258717..74f6582814 100644
--- a/tests/ref/fate/h264-dts_5frames
+++ b/tests/ref/fate/h264-dts_5frames
@@ -8,8 +8,6 @@ pkt_dts=0
pkt_dts_time=0.000000
best_effort_timestamp=0
best_effort_timestamp_time=0.000000
-pkt_duration=166
-pkt_duration_time=0.166000
duration=166
duration_time=0.166000
pkt_pos=651
@@ -44,8 +42,6 @@ pkt_dts=167
pkt_dts_time=0.167000
best_effort_timestamp=167
best_effort_timestamp_time=0.167000
-pkt_duration=166
-pkt_duration_time=0.166000
duration=166
duration_time=0.166000
pkt_pos=15085
@@ -80,8 +76,6 @@ pkt_dts=333
pkt_dts_time=0.333000
best_effort_timestamp=333
best_effort_timestamp_time=0.333000
-pkt_duration=166
-pkt_duration_time=0.166000
duration=166
duration_time=0.166000
pkt_pos=15102
@@ -116,8 +110,6 @@ pkt_dts=500
pkt_dts_time=0.500000
best_effort_timestamp=500
best_effort_timestamp_time=0.500000
-pkt_duration=166
-pkt_duration_time=0.166000
duration=166
duration_time=0.166000
pkt_pos=15119
@@ -152,8 +144,6 @@ pkt_dts=667
pkt_dts_time=0.667000
best_effort_timestamp=667
best_effort_timestamp_time=0.667000
-pkt_duration=166
-pkt_duration_time=0.166000
duration=166
duration_time=0.166000
pkt_pos=15136
diff --git a/tests/ref/fate/jpg-icc b/tests/ref/fate/jpg-icc
index cc7ab604e1..8e4c382747 100644
--- a/tests/ref/fate/jpg-icc
+++ b/tests/ref/fate/jpg-icc
@@ -16,8 +16,6 @@ pkt_dts=0
pkt_dts_time=0.000000
best_effort_timestamp=0
best_effort_timestamp_time=0.000000
-pkt_duration=1
-pkt_duration_time=0.040000
duration=1
duration_time=0.040000
pkt_pos=0
diff --git a/tests/ref/fate/mov-zombie b/tests/ref/fate/mov-zombie
index 553b753474..955b8a4767 100644
--- a/tests/ref/fate/mov-zombie
+++ b/tests/ref/fate/mov-zombie
@@ -1,132 +1,132 @@
packet|codec_type=video|stream_index=0|pts=0|pts_time=0.000000|dts=-3004|dts_time=-0.033378|duration=3003|duration_time=0.033367|size=4133|pos=11309|flags=K__
packet|codec_type=video|stream_index=0|pts=5440|pts_time=0.060444|dts=-567|dts_time=-0.006300|duration=3003|duration_time=0.033367|size=1077|pos=15442|flags=___
-frame|media_type=video|stream_index=0|key_frame=1|pts=0|pts_time=0.000000|pkt_dts=-567|pkt_dts_time=-0.006300|best_effort_timestamp=0|best_effort_timestamp_time=0.000000|pkt_duration=3003|pkt_duration_time=0.033367|duration=3003|duration_time=0.033367|pkt_pos=11309|pkt_size=4133|width=160|height=240|crop_top=0|crop_bottom=0|crop_left=0|crop_right=0|pix_fmt=yuv420p|sample_aspect_ratio=2:1|pict_type=I|coded_picture_number=0|display_picture_number=0|interlaced_frame=0|top_field_first=0|repeat_pict=0|color_range=tv|color_space=smpte170m|color_primaries=smpte170m|color_transfer=bt709|chroma_location=topleft|side_datum/3x3_displaymatrix:side_data_type=3x3 displaymatrix|side_datum/3x3_displaymatrix:displaymatrix=\n00000000: 131072 0 0\n00000001: 0 65536 0\n00000002: 0 0 1073741824\n|side_datum/3x3_displaymatrix:rotation=0|side_datum/h_26_45__user_data_unregistered_sei_message:side_data_type=H.26[45] User Data Unregistered SEI message
+frame|media_type=video|stream_index=0|key_frame=1|pts=0|pts_time=0.000000|pkt_dts=-567|pkt_dts_time=-0.006300|best_effort_timestamp=0|best_effort_timestamp_time=0.000000|duration=3003|duration_time=0.033367|pkt_pos=11309|pkt_size=4133|width=160|height=240|crop_top=0|crop_bottom=0|crop_left=0|crop_right=0|pix_fmt=yuv420p|sample_aspect_ratio=2:1|pict_type=I|coded_picture_number=0|display_picture_number=0|interlaced_frame=0|top_field_first=0|repeat_pict=0|color_range=tv|color_space=smpte170m|color_primaries=smpte170m|color_transfer=bt709|chroma_location=topleft|side_datum/3x3_displaymatrix:side_data_type=3x3 displaymatrix|side_datum/3x3_displaymatrix:displaymatrix=\n00000000: 131072 0 0\n00000001: 0 65536 0\n00000002: 0 0 1073741824\n|side_datum/3x3_displaymatrix:rotation=0|side_datum/h_26_45__user_data_unregistered_sei_message:side_data_type=H.26[45] User Data Unregistered SEI message
packet|codec_type=video|stream_index=0|pts=2437|pts_time=0.027078|dts=2436|dts_time=0.027067|duration=3003|duration_time=0.033367|size=355|pos=16519|flags=___
-frame|media_type=video|stream_index=0|key_frame=0|pts=2437|pts_time=0.027078|pkt_dts=2436|pkt_dts_time=0.027067|best_effort_timestamp=2437|best_effort_timestamp_time=0.027078|pkt_duration=3003|pkt_duration_time=0.033367|duration=3003|duration_time=0.033367|pkt_pos=16519|pkt_size=355|width=160|height=240|crop_top=0|crop_bottom=0|crop_left=0|crop_right=0|pix_fmt=yuv420p|sample_aspect_ratio=2:1|pict_type=B|coded_picture_number=2|display_picture_number=0|interlaced_frame=0|top_field_first=0|repeat_pict=0|color_range=tv|color_space=smpte170m|color_primaries=smpte170m|color_transfer=bt709|chroma_location=topleft|side_datum/3x3_displaymatrix:side_data_type=3x3 displaymatrix|side_datum/3x3_displaymatrix:displaymatrix=\n00000000: 131072 0 0\n00000001: 0 65536 0\n00000002: 0 0 1073741824\n|side_datum/3x3_displaymatrix:rotation=0|side_datum/h_26_45__user_data_unregistered_sei_message:side_data_type=H.26[45] User Data Unregistered SEI message
+frame|media_type=video|stream_index=0|key_frame=0|pts=2437|pts_time=0.027078|pkt_dts=2436|pkt_dts_time=0.027067|best_effort_timestamp=2437|best_effort_timestamp_time=0.027078|duration=3003|duration_time=0.033367|pkt_pos=16519|pkt_size=355|width=160|height=240|crop_top=0|crop_bottom=0|crop_left=0|crop_right=0|pix_fmt=yuv420p|sample_aspect_ratio=2:1|pict_type=B|coded_picture_number=2|display_picture_number=0|interlaced_frame=0|top_field_first=0|repeat_pict=0|color_range=tv|color_space=smpte170m|color_primaries=smpte170m|color_transfer=bt709|chroma_location=topleft|side_datum/3x3_displaymatrix:side_data_type=3x3 displaymatrix|side_datum/3x3_displaymatrix:displaymatrix=\n00000000: 131072 0 0\n00000001: 0 65536 0\n00000002: 0 0 1073741824\n|side_datum/3x3_displaymatrix:rotation=0|side_datum/h_26_45__user_data_unregistered_sei_message:side_data_type=H.26[45] User Data Unregistered SEI message
packet|codec_type=video|stream_index=0|pts=11446|pts_time=0.127178|dts=5439|dts_time=0.060433|duration=3003|duration_time=0.033367|size=1110|pos=16874|flags=___
-frame|media_type=video|stream_index=0|key_frame=0|pts=5440|pts_time=0.060444|pkt_dts=5439|pkt_dts_time=0.060433|best_effort_timestamp=5440|best_effort_timestamp_time=0.060444|pkt_duration=3003|pkt_duration_time=0.033367|duration=3003|duration_time=0.033367|pkt_pos=15442|pkt_size=1077|width=160|height=240|crop_top=0|crop_bottom=0|crop_left=0|crop_right=0|pix_fmt=yuv420p|sample_aspect_ratio=2:1|pict_type=P|coded_picture_number=1|display_picture_number=0|interlaced_frame=0|top_field_first=0|repeat_pict=0|color_range=tv|color_space=smpte170m|color_primaries=smpte170m|color_transfer=bt709|chroma_location=topleft|side_datum/3x3_displaymatrix:side_data_type=3x3 displaymatrix|side_datum/3x3_displaymatrix:displaymatrix=\n00000000: 131072 0 0\n00000001: 0 65536 0\n00000002: 0 0 1073741824\n|side_datum/3x3_displaymatrix:rotation=0|side_datum/h_26_45__user_data_unregistered_sei_message:side_data_type=H.26[45] User Data Unregistered SEI message
+frame|media_type=video|stream_index=0|key_frame=0|pts=5440|pts_time=0.060444|pkt_dts=5439|pkt_dts_time=0.060433|best_effort_timestamp=5440|best_effort_timestamp_time=0.060444|duration=3003|duration_time=0.033367|pkt_pos=15442|pkt_size=1077|width=160|height=240|crop_top=0|crop_bottom=0|crop_left=0|crop_right=0|pix_fmt=yuv420p|sample_aspect_ratio=2:1|pict_type=P|coded_picture_number=1|display_picture_number=0|interlaced_frame=0|top_field_first=0|repeat_pict=0|color_range=tv|color_space=smpte170m|color_primaries=smpte170m|color_transfer=bt709|chroma_location=topleft|side_datum/3x3_displaymatrix:side_data_type=3x3 displaymatrix|side_datum/3x3_displaymatrix:displaymatrix=\n00000000: 131072 0 0\n00000001: 0 65536 0\n00000002: 0 0 1073741824\n|side_datum/3x3_displaymatrix:rotation=0|side_datum/h_26_45__user_data_unregistered_sei_message:side_data_type=H.26[45] User Data Unregistered SEI message
packet|codec_type=video|stream_index=0|pts=8443|pts_time=0.093811|dts=8442|dts_time=0.093800|duration=3003|duration_time=0.033367|size=430|pos=17984|flags=___
-frame|media_type=video|stream_index=0|key_frame=0|pts=8443|pts_time=0.093811|pkt_dts=8442|pkt_dts_time=0.093800|best_effort_timestamp=8443|best_effort_timestamp_time=0.093811|pkt_duration=3003|pkt_duration_time=0.033367|duration=3003|duration_time=0.033367|pkt_pos=17984|pkt_size=430|width=160|height=240|crop_top=0|crop_bottom=0|crop_left=0|crop_right=0|pix_fmt=yuv420p|sample_aspect_ratio=2:1|pict_type=B|coded_picture_number=4|display_picture_number=0|interlaced_frame=0|top_field_first=0|repeat_pict=0|color_range=tv|color_space=smpte170m|color_primaries=smpte170m|color_transfer=bt709|chroma_location=topleft|side_datum/3x3_displaymatrix:side_data_type=3x3 displaymatrix|side_datum/3x3_displaymatrix:displaymatrix=\n00000000: 131072 0 0\n00000001: 0 65536 0\n00000002: 0 0 1073741824\n|side_datum/3x3_displaymatrix:rotation=0|side_datum/h_26_45__user_data_unregistered_sei_message:side_data_type=H.26[45] User Data Unregistered SEI message
+frame|media_type=video|stream_index=0|key_frame=0|pts=8443|pts_time=0.093811|pkt_dts=8442|pkt_dts_time=0.093800|best_effort_timestamp=8443|best_effort_timestamp_time=0.093811|duration=3003|duration_time=0.033367|pkt_pos=17984|pkt_size=430|width=160|height=240|crop_top=0|crop_bottom=0|crop_left=0|crop_right=0|pix_fmt=yuv420p|sample_aspect_ratio=2:1|pict_type=B|coded_picture_number=4|display_picture_number=0|interlaced_frame=0|top_field_first=0|repeat_pict=0|color_range=tv|color_space=smpte170m|color_primaries=smpte170m|color_transfer=bt709|chroma_location=topleft|side_datum/3x3_displaymatrix:side_data_type=3x3 displaymatrix|side_datum/3x3_displaymatrix:displaymatrix=\n00000000: 131072 0 0\n00000001: 0 65536 0\n00000002: 0 0 1073741824\n|side_datum/3x3_displaymatrix:rotation=0|side_datum/h_26_45__user_data_unregistered_sei_message:side_data_type=H.26[45] User Data Unregistered SEI message
packet|codec_type=video|stream_index=0|pts=17452|pts_time=0.193911|dts=11445|dts_time=0.127167|duration=3003|duration_time=0.033367|size=1485|pos=18414|flags=___
-frame|media_type=video|stream_index=0|key_frame=0|pts=11446|pts_time=0.127178|pkt_dts=11445|pkt_dts_time=0.127167|best_effort_timestamp=11446|best_effort_timestamp_time=0.127178|pkt_duration=3003|pkt_duration_time=0.033367|duration=3003|duration_time=0.033367|pkt_pos=16874|pkt_size=1110|width=160|height=240|crop_top=0|crop_bottom=0|crop_left=0|crop_right=0|pix_fmt=yuv420p|sample_aspect_ratio=2:1|pict_type=P|coded_picture_number=3|display_picture_number=0|interlaced_frame=0|top_field_first=0|repeat_pict=0|color_range=tv|color_space=smpte170m|color_primaries=smpte170m|color_transfer=bt709|chroma_location=topleft|side_datum/3x3_displaymatrix:side_data_type=3x3 displaymatrix|side_datum/3x3_displaymatrix:displaymatrix=\n00000000: 131072 0 0\n00000001: 0 65536 0\n00000002: 0 0 1073741824\n|side_datum/3x3_displaymatrix:rotation=0|side_datum/h_26_45__user_data_unregistered_sei_message:side_data_type=H.26[45] User Data Unregistered SEI message
+frame|media_type=video|stream_index=0|key_frame=0|pts=11446|pts_time=0.127178|pkt_dts=11445|pkt_dts_time=0.127167|best_effort_timestamp=11446|best_effort_timestamp_time=0.127178|duration=3003|duration_time=0.033367|pkt_pos=16874|pkt_size=1110|width=160|height=240|crop_top=0|crop_bottom=0|crop_left=0|crop_right=0|pix_fmt=yuv420p|sample_aspect_ratio=2:1|pict_type=P|coded_picture_number=3|display_picture_number=0|interlaced_frame=0|top_field_first=0|repeat_pict=0|color_range=tv|color_space=smpte170m|color_primaries=smpte170m|color_transfer=bt709|chroma_location=topleft|side_datum/3x3_displaymatrix:side_data_type=3x3 displaymatrix|side_datum/3x3_displaymatrix:displaymatrix=\n00000000: 131072 0 0\n00000001: 0 65536 0\n00000002: 0 0 1073741824\n|side_datum/3x3_displaymatrix:rotation=0|side_datum/h_26_45__user_data_unregistered_sei_message:side_data_type=H.26[45] User Data Unregistered SEI message
packet|codec_type=video|stream_index=0|pts=14449|pts_time=0.160544|dts=14448|dts_time=0.160533|duration=3003|duration_time=0.033367|size=1005|pos=19899|flags=___
-frame|media_type=video|stream_index=0|key_frame=0|pts=14449|pts_time=0.160544|pkt_dts=14448|pkt_dts_time=0.160533|best_effort_timestamp=14449|best_effort_timestamp_time=0.160544|pkt_duration=3003|pkt_duration_time=0.033367|duration=3003|duration_time=0.033367|pkt_pos=19899|pkt_size=1005|width=160|height=240|crop_top=0|crop_bottom=0|crop_left=0|crop_right=0|pix_fmt=yuv420p|sample_aspect_ratio=2:1|pict_type=B|coded_picture_number=6|display_picture_number=0|interlaced_frame=0|top_field_first=0|repeat_pict=0|color_range=tv|color_space=smpte170m|color_primaries=smpte170m|color_transfer=bt709|chroma_location=topleft|side_datum/3x3_displaymatrix:side_data_type=3x3 displaymatrix|side_datum/3x3_displaymatrix:displaymatrix=\n00000000: 131072 0 0\n00000001: 0 65536 0\n00000002: 0 0 1073741824\n|side_datum/3x3_displaymatrix:rotation=0|side_datum/h_26_45__user_data_unregistered_sei_message:side_data_type=H.26[45] User Data Unregistered SEI message
+frame|media_type=video|stream_index=0|key_frame=0|pts=14449|pts_time=0.160544|pkt_dts=14448|pkt_dts_time=0.160533|best_effort_timestamp=14449|best_effort_timestamp_time=0.160544|duration=3003|duration_time=0.033367|pkt_pos=19899|pkt_size=1005|width=160|height=240|crop_top=0|crop_bottom=0|crop_left=0|crop_right=0|pix_fmt=yuv420p|sample_aspect_ratio=2:1|pict_type=B|coded_picture_number=6|display_picture_number=0|interlaced_frame=0|top_field_first=0|repeat_pict=0|color_range=tv|color_space=smpte170m|color_primaries=smpte170m|color_transfer=bt709|chroma_location=topleft|side_datum/3x3_displaymatrix:side_data_type=3x3 displaymatrix|side_datum/3x3_displaymatrix:displaymatrix=\n00000000: 131072 0 0\n00000001: 0 65536 0\n00000002: 0 0 1073741824\n|side_datum/3x3_displaymatrix:rotation=0|side_datum/h_26_45__user_data_unregistered_sei_message:side_data_type=H.26[45] User Data Unregistered SEI message
packet|codec_type=video|stream_index=0|pts=23458|pts_time=0.260644|dts=17451|dts_time=0.193900|duration=3003|duration_time=0.033367|size=1976|pos=20904|flags=___
-frame|media_type=video|stream_index=0|key_frame=0|pts=17452|pts_time=0.193911|pkt_dts=17451|pkt_dts_time=0.193900|best_effort_timestamp=17452|best_effort_timestamp_time=0.193911|pkt_duration=3003|pkt_duration_time=0.033367|duration=3003|duration_time=0.033367|pkt_pos=18414|pkt_size=1485|width=160|height=240|crop_top=0|crop_bottom=0|crop_left=0|crop_right=0|pix_fmt=yuv420p|sample_aspect_ratio=2:1|pict_type=P|coded_picture_number=5|display_picture_number=0|interlaced_frame=0|top_field_first=0|repeat_pict=0|color_range=tv|color_space=smpte170m|color_primaries=smpte170m|color_transfer=bt709|chroma_location=topleft|side_datum/3x3_displaymatrix:side_data_type=3x3 displaymatrix|side_datum/3x3_displaymatrix:displaymatrix=\n00000000: 131072 0 0\n00000001: 0 65536 0\n00000002: 0 0 1073741824\n|side_datum/3x3_displaymatrix:rotation=0|side_datum/h_26_45__user_data_unregistered_sei_message:side_data_type=H.26[45] User Data Unregistered SEI message
+frame|media_type=video|stream_index=0|key_frame=0|pts=17452|pts_time=0.193911|pkt_dts=17451|pkt_dts_time=0.193900|best_effort_timestamp=17452|best_effort_timestamp_time=0.193911|duration=3003|duration_time=0.033367|pkt_pos=18414|pkt_size=1485|width=160|height=240|crop_top=0|crop_bottom=0|crop_left=0|crop_right=0|pix_fmt=yuv420p|sample_aspect_ratio=2:1|pict_type=P|coded_picture_number=5|display_picture_number=0|interlaced_frame=0|top_field_first=0|repeat_pict=0|color_range=tv|color_space=smpte170m|color_primaries=smpte170m|color_transfer=bt709|chroma_location=topleft|side_datum/3x3_displaymatrix:side_data_type=3x3 displaymatrix|side_datum/3x3_displaymatrix:displaymatrix=\n00000000: 131072 0 0\n00000001: 0 65536 0\n00000002: 0 0 1073741824\n|side_datum/3x3_displaymatrix:rotation=0|side_datum/h_26_45__user_data_unregistered_sei_message:side_data_type=H.26[45] User Data Unregistered SEI message
packet|codec_type=video|stream_index=0|pts=20455|pts_time=0.227278|dts=20454|dts_time=0.227267|duration=3003|duration_time=0.033367|size=904|pos=22880|flags=___
-frame|media_type=video|stream_index=0|key_frame=0|pts=20455|pts_time=0.227278|pkt_dts=20454|pkt_dts_time=0.227267|best_effort_timestamp=20455|best_effort_timestamp_time=0.227278|pkt_duration=3003|pkt_duration_time=0.033367|duration=3003|duration_time=0.033367|pkt_pos=22880|pkt_size=904|width=160|height=240|crop_top=0|crop_bottom=0|crop_left=0|crop_right=0|pix_fmt=yuv420p|sample_aspect_ratio=2:1|pict_type=B|coded_picture_number=8|display_picture_number=0|interlaced_frame=0|top_field_first=0|repeat_pict=0|color_range=tv|color_space=smpte170m|color_primaries=smpte170m|color_transfer=bt709|chroma_location=topleft|side_datum/3x3_displaymatrix:side_data_type=3x3 displaymatrix|side_datum/3x3_displaymatrix:displaymatrix=\n00000000: 131072 0 0\n00000001: 0 65536 0\n00000002: 0 0 1073741824\n|side_datum/3x3_displaymatrix:rotation=0|side_datum/h_26_45__user_data_unregistered_sei_message:side_data_type=H.26[45] User Data Unregistered SEI message
+frame|media_type=video|stream_index=0|key_frame=0|pts=20455|pts_time=0.227278|pkt_dts=20454|pkt_dts_time=0.227267|best_effort_timestamp=20455|best_effort_timestamp_time=0.227278|duration=3003|duration_time=0.033367|pkt_pos=22880|pkt_size=904|width=160|height=240|crop_top=0|crop_bottom=0|crop_left=0|crop_right=0|pix_fmt=yuv420p|sample_aspect_ratio=2:1|pict_type=B|coded_picture_number=8|display_picture_number=0|interlaced_frame=0|top_field_first=0|repeat_pict=0|color_range=tv|color_space=smpte170m|color_primaries=smpte170m|color_transfer=bt709|chroma_location=topleft|side_datum/3x3_displaymatrix:side_data_type=3x3 displaymatrix|side_datum/3x3_displaymatrix:displaymatrix=\n00000000: 131072 0 0\n00000001: 0 65536 0\n00000002: 0 0 1073741824\n|side_datum/3x3_displaymatrix:rotation=0|side_datum/h_26_45__user_data_unregistered_sei_message:side_data_type=H.26[45] User Data Unregistered SEI message
packet|codec_type=video|stream_index=0|pts=29464|pts_time=0.327378|dts=23457|dts_time=0.260633|duration=3003|duration_time=0.033367|size=1254|pos=23784|flags=___
-frame|media_type=video|stream_index=0|key_frame=0|pts=23458|pts_time=0.260644|pkt_dts=23457|pkt_dts_time=0.260633|best_effort_timestamp=23458|best_effort_timestamp_time=0.260644|pkt_duration=3003|pkt_duration_time=0.033367|duration=3003|duration_time=0.033367|pkt_pos=20904|pkt_size=1976|width=160|height=240|crop_top=0|crop_bottom=0|crop_left=0|crop_right=0|pix_fmt=yuv420p|sample_aspect_ratio=2:1|pict_type=P|coded_picture_number=7|display_picture_number=0|interlaced_frame=0|top_field_first=0|repeat_pict=0|color_range=tv|color_space=smpte170m|color_primaries=smpte170m|color_transfer=bt709|chroma_location=topleft|side_datum/3x3_displaymatrix:side_data_type=3x3 displaymatrix|side_datum/3x3_displaymatrix:displaymatrix=\n00000000: 131072 0 0\n00000001: 0 65536 0\n00000002: 0 0 1073741824\n|side_datum/3x3_displaymatrix:rotation=0|side_datum/h_26_45__user_data_unregistered_sei_message:side_data_type=H.26[45] User Data Unregistered SEI message
+frame|media_type=video|stream_index=0|key_frame=0|pts=23458|pts_time=0.260644|pkt_dts=23457|pkt_dts_time=0.260633|best_effort_timestamp=23458|best_effort_timestamp_time=0.260644|duration=3003|duration_time=0.033367|pkt_pos=20904|pkt_size=1976|width=160|height=240|crop_top=0|crop_bottom=0|crop_left=0|crop_right=0|pix_fmt=yuv420p|sample_aspect_ratio=2:1|pict_type=P|coded_picture_number=7|display_picture_number=0|interlaced_frame=0|top_field_first=0|repeat_pict=0|color_range=tv|color_space=smpte170m|color_primaries=smpte170m|color_transfer=bt709|chroma_location=topleft|side_datum/3x3_displaymatrix:side_data_type=3x3 displaymatrix|side_datum/3x3_displaymatrix:displaymatrix=\n00000000: 131072 0 0\n00000001: 0 65536 0\n00000002: 0 0 1073741824\n|side_datum/3x3_displaymatrix:rotation=0|side_datum/h_26_45__user_data_unregistered_sei_message:side_data_type=H.26[45] User Data Unregistered SEI message
packet|codec_type=video|stream_index=0|pts=26461|pts_time=0.294011|dts=26460|dts_time=0.294000|duration=3003|duration_time=0.033367|size=700|pos=25038|flags=___
-frame|media_type=video|stream_index=0|key_frame=0|pts=26461|pts_time=0.294011|pkt_dts=26460|pkt_dts_time=0.294000|best_effort_timestamp=26461|best_effort_timestamp_time=0.294011|pkt_duration=3003|pkt_duration_time=0.033367|duration=3003|duration_time=0.033367|pkt_pos=25038|pkt_size=700|width=160|height=240|crop_top=0|crop_bottom=0|crop_left=0|crop_right=0|pix_fmt=yuv420p|sample_aspect_ratio=2:1|pict_type=B|coded_picture_number=10|display_picture_number=0|interlaced_frame=0|top_field_first=0|repeat_pict=0|color_range=tv|color_space=smpte170m|color_primaries=smpte170m|color_transfer=bt709|chroma_location=topleft|side_datum/3x3_displaymatrix:side_data_type=3x3 displaymatrix|side_datum/3x3_displaymatrix:displaymatrix=\n00000000: 131072 0 0\n00000001: 0 65536 0\n00000002: 0 0 1073741824\n|side_datum/3x3_displaymatrix:rotation=0|side_datum/h_26_45__user_data_unregistered_sei_message:side_data_type=H.26[45] User Data Unregistered SEI message
+frame|media_type=video|stream_index=0|key_frame=0|pts=26461|pts_time=0.294011|pkt_dts=26460|pkt_dts_time=0.294000|best_effort_timestamp=26461|best_effort_timestamp_time=0.294011|duration=3003|duration_time=0.033367|pkt_pos=25038|pkt_size=700|width=160|height=240|crop_top=0|crop_bottom=0|crop_left=0|crop_right=0|pix_fmt=yuv420p|sample_aspect_ratio=2:1|pict_type=B|coded_picture_number=10|display_picture_number=0|interlaced_frame=0|top_field_first=0|repeat_pict=0|color_range=tv|color_space=smpte170m|color_primaries=smpte170m|color_transfer=bt709|chroma_location=topleft|side_datum/3x3_displaymatrix:side_data_type=3x3 displaymatrix|side_datum/3x3_displaymatrix:displaymatrix=\n00000000: 131072 0 0\n00000001: 0 65536 0\n00000002: 0 0 1073741824\n|side_datum/3x3_displaymatrix:rotation=0|side_datum/h_26_45__user_data_unregistered_sei_message:side_data_type=H.26[45] User Data Unregistered SEI message
packet|codec_type=video|stream_index=0|pts=35470|pts_time=0.394111|dts=29463|dts_time=0.327367|duration=3003|duration_time=0.033367|size=1311|pos=25738|flags=___
-frame|media_type=video|stream_index=0|key_frame=0|pts=29464|pts_time=0.327378|pkt_dts=29463|pkt_dts_time=0.327367|best_effort_timestamp=29464|best_effort_timestamp_time=0.327378|pkt_duration=3003|pkt_duration_time=0.033367|duration=3003|duration_time=0.033367|pkt_pos=23784|pkt_size=1254|width=160|height=240|crop_top=0|crop_bottom=0|crop_left=0|crop_right=0|pix_fmt=yuv420p|sample_aspect_ratio=2:1|pict_type=P|coded_picture_number=9|display_picture_number=0|interlaced_frame=0|top_field_first=0|repeat_pict=0|color_range=tv|color_space=smpte170m|color_primaries=smpte170m|color_transfer=bt709|chroma_location=topleft|side_datum/3x3_displaymatrix:side_data_type=3x3 displaymatrix|side_datum/3x3_displaymatrix:displaymatrix=\n00000000: 131072 0 0\n00000001: 0 65536 0\n00000002: 0 0 1073741824\n|side_datum/3x3_displaymatrix:rotation=0|side_datum/h_26_45__user_data_unregistered_sei_message:side_data_type=H.26[45] User Data Unregistered SEI message
+frame|media_type=video|stream_index=0|key_frame=0|pts=29464|pts_time=0.327378|pkt_dts=29463|pkt_dts_time=0.327367|best_effort_timestamp=29464|best_effort_timestamp_time=0.327378|duration=3003|duration_time=0.033367|pkt_pos=23784|pkt_size=1254|width=160|height=240|crop_top=0|crop_bottom=0|crop_left=0|crop_right=0|pix_fmt=yuv420p|sample_aspect_ratio=2:1|pict_type=P|coded_picture_number=9|display_picture_number=0|interlaced_frame=0|top_field_first=0|repeat_pict=0|color_range=tv|color_space=smpte170m|color_primaries=smpte170m|color_transfer=bt709|chroma_location=topleft|side_datum/3x3_displaymatrix:side_data_type=3x3 displaymatrix|side_datum/3x3_displaymatrix:displaymatrix=\n00000000: 131072 0 0\n00000001: 0 65536 0\n00000002: 0 0 1073741824\n|side_datum/3x3_displaymatrix:rotation=0|side_datum/h_26_45__user_data_unregistered_sei_message:side_data_type=H.26[45] User Data Unregistered SEI message
packet|codec_type=video|stream_index=0|pts=32467|pts_time=0.360744|dts=32466|dts_time=0.360733|duration=3003|duration_time=0.033367|size=631|pos=27049|flags=___
-frame|media_type=video|stream_index=0|key_frame=0|pts=32467|pts_time=0.360744|pkt_dts=32466|pkt_dts_time=0.360733|best_effort_timestamp=32467|best_effort_timestamp_time=0.360744|pkt_duration=3003|pkt_duration_time=0.033367|duration=3003|duration_time=0.033367|pkt_pos=27049|pkt_size=631|width=160|height=240|crop_top=0|crop_bottom=0|crop_left=0|crop_right=0|pix_fmt=yuv420p|sample_aspect_ratio=2:1|pict_type=B|coded_picture_number=12|display_picture_number=0|interlaced_frame=0|top_field_first=0|repeat_pict=0|color_range=tv|color_space=smpte170m|color_primaries=smpte170m|color_transfer=bt709|chroma_location=topleft|side_datum/3x3_displaymatrix:side_data_type=3x3 displaymatrix|side_datum/3x3_displaymatrix:displaymatrix=\n00000000: 131072 0 0\n00000001: 0 65536 0\n00000002: 0 0 1073741824\n|side_datum/3x3_displaymatrix:rotation=0|side_datum/h_26_45__user_data_unregistered_sei_message:side_data_type=H.26[45] User Data Unregistered SEI message
+frame|media_type=video|stream_index=0|key_frame=0|pts=32467|pts_time=0.360744|pkt_dts=32466|pkt_dts_time=0.360733|best_effort_timestamp=32467|best_effort_timestamp_time=0.360744|duration=3003|duration_time=0.033367|pkt_pos=27049|pkt_size=631|width=160|height=240|crop_top=0|crop_bottom=0|crop_left=0|crop_right=0|pix_fmt=yuv420p|sample_aspect_ratio=2:1|pict_type=B|coded_picture_number=12|display_picture_number=0|interlaced_frame=0|top_field_first=0|repeat_pict=0|color_range=tv|color_space=smpte170m|color_primaries=smpte170m|color_transfer=bt709|chroma_location=topleft|side_datum/3x3_displaymatrix:side_data_type=3x3 displaymatrix|side_datum/3x3_displaymatrix:displaymatrix=\n00000000: 131072 0 0\n00000001: 0 65536 0\n00000002: 0 0 1073741824\n|side_datum/3x3_displaymatrix:rotation=0|side_datum/h_26_45__user_data_unregistered_sei_message:side_data_type=H.26[45] User Data Unregistered SEI message
packet|codec_type=video|stream_index=0|pts=41476|pts_time=0.460844|dts=35469|dts_time=0.394100|duration=3003|duration_time=0.033367|size=1296|pos=27680|flags=___
-frame|media_type=video|stream_index=0|key_frame=0|pts=35470|pts_time=0.394111|pkt_dts=35469|pkt_dts_time=0.394100|best_effort_timestamp=35470|best_effort_timestamp_time=0.394111|pkt_duration=3003|pkt_duration_time=0.033367|duration=3003|duration_time=0.033367|pkt_pos=25738|pkt_size=1311|width=160|height=240|crop_top=0|crop_bottom=0|crop_left=0|crop_right=0|pix_fmt=yuv420p|sample_aspect_ratio=2:1|pict_type=P|coded_picture_number=11|display_picture_number=0|interlaced_frame=0|top_field_first=0|repeat_pict=0|color_range=tv|color_space=smpte170m|color_primaries=smpte170m|color_transfer=bt709|chroma_location=topleft|side_datum/3x3_displaymatrix:side_data_type=3x3 displaymatrix|side_datum/3x3_displaymatrix:displaymatrix=\n00000000: 131072 0 0\n00000001: 0 65536 0\n00000002: 0 0 1073741824\n|side_datum/3x3_displaymatrix:rotation=0|side_datum/h_26_45__user_data_unregistered_sei_message:side_data_type=H.26[45] User Data Unregistered SEI message
+frame|media_type=video|stream_index=0|key_frame=0|pts=35470|pts_time=0.394111|pkt_dts=35469|pkt_dts_time=0.394100|best_effort_timestamp=35470|best_effort_timestamp_time=0.394111|duration=3003|duration_time=0.033367|pkt_pos=25738|pkt_size=1311|width=160|height=240|crop_top=0|crop_bottom=0|crop_left=0|crop_right=0|pix_fmt=yuv420p|sample_aspect_ratio=2:1|pict_type=P|coded_picture_number=11|display_picture_number=0|interlaced_frame=0|top_field_first=0|repeat_pict=0|color_range=tv|color_space=smpte170m|color_primaries=smpte170m|color_transfer=bt709|chroma_location=topleft|side_datum/3x3_displaymatrix:side_data_type=3x3 displaymatrix|side_datum/3x3_displaymatrix:displaymatrix=\n00000000: 131072 0 0\n00000001: 0 65536 0\n00000002: 0 0 1073741824\n|side_datum/3x3_displaymatrix:rotation=0|side_datum/h_26_45__user_data_unregistered_sei_message:side_data_type=H.26[45] User Data Unregistered SEI message
packet|codec_type=video|stream_index=0|pts=38473|pts_time=0.427478|dts=38472|dts_time=0.427467|duration=3003|duration_time=0.033367|size=466|pos=28976|flags=___
-frame|media_type=video|stream_index=0|key_frame=0|pts=38473|pts_time=0.427478|pkt_dts=38472|pkt_dts_time=0.427467|best_effort_timestamp=38473|best_effort_timestamp_time=0.427478|pkt_duration=3003|pkt_duration_time=0.033367|duration=3003|duration_time=0.033367|pkt_pos=28976|pkt_size=466|width=160|height=240|crop_top=0|crop_bottom=0|crop_left=0|crop_right=0|pix_fmt=yuv420p|sample_aspect_ratio=2:1|pict_type=B|coded_picture_number=14|display_picture_number=0|interlaced_frame=0|top_field_first=0|repeat_pict=0|color_range=tv|color_space=smpte170m|color_primaries=smpte170m|color_transfer=bt709|chroma_location=topleft|side_datum/3x3_displaymatrix:side_data_type=3x3 displaymatrix|side_datum/3x3_displaymatrix:displaymatrix=\n00000000: 131072 0 0\n00000001: 0 65536 0\n00000002: 0 0 1073741824\n|side_datum/3x3_displaymatrix:rotation=0|side_datum/h_26_45__user_data_unregistered_sei_message:side_data_type=H.26[45] User Data Unregistered SEI message
+frame|media_type=video|stream_index=0|key_frame=0|pts=38473|pts_time=0.427478|pkt_dts=38472|pkt_dts_time=0.427467|best_effort_timestamp=38473|best_effort_timestamp_time=0.427478|duration=3003|duration_time=0.033367|pkt_pos=28976|pkt_size=466|width=160|height=240|crop_top=0|crop_bottom=0|crop_left=0|crop_right=0|pix_fmt=yuv420p|sample_aspect_ratio=2:1|pict_type=B|coded_picture_number=14|display_picture_number=0|interlaced_frame=0|top_field_first=0|repeat_pict=0|color_range=tv|color_space=smpte170m|color_primaries=smpte170m|color_transfer=bt709|chroma_location=topleft|side_datum/3x3_displaymatrix:side_data_type=3x3 displaymatrix|side_datum/3x3_displaymatrix:displaymatrix=\n00000000: 131072 0 0\n00000001: 0 65536 0\n00000002: 0 0 1073741824\n|side_datum/3x3_displaymatrix:rotation=0|side_datum/h_26_45__user_data_unregistered_sei_message:side_data_type=H.26[45] User Data Unregistered SEI message
packet|codec_type=video|stream_index=0|pts=47482|pts_time=0.527578|dts=41475|dts_time=0.460833|duration=3003|duration_time=0.033367|size=1638|pos=29442|flags=___
-frame|media_type=video|stream_index=0|key_frame=0|pts=41476|pts_time=0.460844|pkt_dts=41475|pkt_dts_time=0.460833|best_effort_timestamp=41476|best_effort_timestamp_time=0.460844|pkt_duration=3003|pkt_duration_time=0.033367|duration=3003|duration_time=0.033367|pkt_pos=27680|pkt_size=1296|width=160|height=240|crop_top=0|crop_bottom=0|crop_left=0|crop_right=0|pix_fmt=yuv420p|sample_aspect_ratio=2:1|pict_type=P|coded_picture_number=13|display_picture_number=0|interlaced_frame=0|top_field_first=0|repeat_pict=0|color_range=tv|color_space=smpte170m|color_primaries=smpte170m|color_transfer=bt709|chroma_location=topleft|side_datum/3x3_displaymatrix:side_data_type=3x3 displaymatrix|side_datum/3x3_displaymatrix:displaymatrix=\n00000000: 131072 0 0\n00000001: 0 65536 0\n00000002: 0 0 1073741824\n|side_datum/3x3_displaymatrix:rotation=0|side_datum/h_26_45__user_data_unregistered_sei_message:side_data_type=H.26[45] User Data Unregistered SEI message
+frame|media_type=video|stream_index=0|key_frame=0|pts=41476|pts_time=0.460844|pkt_dts=41475|pkt_dts_time=0.460833|best_effort_timestamp=41476|best_effort_timestamp_time=0.460844|duration=3003|duration_time=0.033367|pkt_pos=27680|pkt_size=1296|width=160|height=240|crop_top=0|crop_bottom=0|crop_left=0|crop_right=0|pix_fmt=yuv420p|sample_aspect_ratio=2:1|pict_type=P|coded_picture_number=13|display_picture_number=0|interlaced_frame=0|top_field_first=0|repeat_pict=0|color_range=tv|color_space=smpte170m|color_primaries=smpte170m|color_transfer=bt709|chroma_location=topleft|side_datum/3x3_displaymatrix:side_data_type=3x3 displaymatrix|side_datum/3x3_displaymatrix:displaymatrix=\n00000000: 131072 0 0\n00000001: 0 65536 0\n00000002: 0 0 1073741824\n|side_datum/3x3_displaymatrix:rotation=0|side_datum/h_26_45__user_data_unregistered_sei_message:side_data_type=H.26[45] User Data Unregistered SEI message
packet|codec_type=video|stream_index=0|pts=44479|pts_time=0.494211|dts=44478|dts_time=0.494200|duration=3003|duration_time=0.033367|size=907|pos=31080|flags=___
-frame|media_type=video|stream_index=0|key_frame=0|pts=44479|pts_time=0.494211|pkt_dts=44478|pkt_dts_time=0.494200|best_effort_timestamp=44479|best_effort_timestamp_time=0.494211|pkt_duration=3003|pkt_duration_time=0.033367|duration=3003|duration_time=0.033367|pkt_pos=31080|pkt_size=907|width=160|height=240|crop_top=0|crop_bottom=0|crop_left=0|crop_right=0|pix_fmt=yuv420p|sample_aspect_ratio=2:1|pict_type=B|coded_picture_number=16|display_picture_number=0|interlaced_frame=0|top_field_first=0|repeat_pict=0|color_range=tv|color_space=smpte170m|color_primaries=smpte170m|color_transfer=bt709|chroma_location=topleft|side_datum/3x3_displaymatrix:side_data_type=3x3 displaymatrix|side_datum/3x3_displaymatrix:displaymatrix=\n00000000: 131072 0 0\n00000001: 0 65536 0\n00000002: 0 0 1073741824\n|side_datum/3x3_displaymatrix:rotation=0|side_datum/h_26_45__user_data_unregistered_sei_message:side_data_type=H.26[45] User Data Unregistered SEI message
+frame|media_type=video|stream_index=0|key_frame=0|pts=44479|pts_time=0.494211|pkt_dts=44478|pkt_dts_time=0.494200|best_effort_timestamp=44479|best_effort_timestamp_time=0.494211|duration=3003|duration_time=0.033367|pkt_pos=31080|pkt_size=907|width=160|height=240|crop_top=0|crop_bottom=0|crop_left=0|crop_right=0|pix_fmt=yuv420p|sample_aspect_ratio=2:1|pict_type=B|coded_picture_number=16|display_picture_number=0|interlaced_frame=0|top_field_first=0|repeat_pict=0|color_range=tv|color_space=smpte170m|color_primaries=smpte170m|color_transfer=bt709|chroma_location=topleft|side_datum/3x3_displaymatrix:side_data_type=3x3 displaymatrix|side_datum/3x3_displaymatrix:displaymatrix=\n00000000: 131072 0 0\n00000001: 0 65536 0\n00000002: 0 0 1073741824\n|side_datum/3x3_displaymatrix:rotation=0|side_datum/h_26_45__user_data_unregistered_sei_message:side_data_type=H.26[45] User Data Unregistered SEI message
packet|codec_type=video|stream_index=0|pts=53488|pts_time=0.594311|dts=47481|dts_time=0.527567|duration=3003|duration_time=0.033367|size=1362|pos=31987|flags=___
-frame|media_type=video|stream_index=0|key_frame=0|pts=47482|pts_time=0.527578|pkt_dts=47481|pkt_dts_time=0.527567|best_effort_timestamp=47482|best_effort_timestamp_time=0.527578|pkt_duration=3003|pkt_duration_time=0.033367|duration=3003|duration_time=0.033367|pkt_pos=29442|pkt_size=1638|width=160|height=240|crop_top=0|crop_bottom=0|crop_left=0|crop_right=0|pix_fmt=yuv420p|sample_aspect_ratio=2:1|pict_type=P|coded_picture_number=15|display_picture_number=0|interlaced_frame=0|top_field_first=0|repeat_pict=0|color_range=tv|color_space=smpte170m|color_primaries=smpte170m|color_transfer=bt709|chroma_location=topleft|side_datum/3x3_displaymatrix:side_data_type=3x3 displaymatrix|side_datum/3x3_displaymatrix:displaymatrix=\n00000000: 131072 0 0\n00000001: 0 65536 0\n00000002: 0 0 1073741824\n|side_datum/3x3_displaymatrix:rotation=0|side_datum/h_26_45__user_data_unregistered_sei_message:side_data_type=H.26[45] User Data Unregistered SEI message
+frame|media_type=video|stream_index=0|key_frame=0|pts=47482|pts_time=0.527578|pkt_dts=47481|pkt_dts_time=0.527567|best_effort_timestamp=47482|best_effort_timestamp_time=0.527578|duration=3003|duration_time=0.033367|pkt_pos=29442|pkt_size=1638|width=160|height=240|crop_top=0|crop_bottom=0|crop_left=0|crop_right=0|pix_fmt=yuv420p|sample_aspect_ratio=2:1|pict_type=P|coded_picture_number=15|display_picture_number=0|interlaced_frame=0|top_field_first=0|repeat_pict=0|color_range=tv|color_space=smpte170m|color_primaries=smpte170m|color_transfer=bt709|chroma_location=topleft|side_datum/3x3_displaymatrix:side_data_type=3x3 displaymatrix|side_datum/3x3_displaymatrix:displaymatrix=\n00000000: 131072 0 0\n00000001: 0 65536 0\n00000002: 0 0 1073741824\n|side_datum/3x3_displaymatrix:rotation=0|side_datum/h_26_45__user_data_unregistered_sei_message:side_data_type=H.26[45] User Data Unregistered SEI message
packet|codec_type=video|stream_index=0|pts=50485|pts_time=0.560944|dts=50484|dts_time=0.560933|duration=3003|duration_time=0.033367|size=682|pos=33349|flags=___
-frame|media_type=video|stream_index=0|key_frame=0|pts=50485|pts_time=0.560944|pkt_dts=50484|pkt_dts_time=0.560933|best_effort_timestamp=50485|best_effort_timestamp_time=0.560944|pkt_duration=3003|pkt_duration_time=0.033367|duration=3003|duration_time=0.033367|pkt_pos=33349|pkt_size=682|width=160|height=240|crop_top=0|crop_bottom=0|crop_left=0|crop_right=0|pix_fmt=yuv420p|sample_aspect_ratio=2:1|pict_type=B|coded_picture_number=18|display_picture_number=0|interlaced_frame=0|top_field_first=0|repeat_pict=0|color_range=tv|color_space=smpte170m|color_primaries=smpte170m|color_transfer=bt709|chroma_location=topleft|side_datum/3x3_displaymatrix:side_data_type=3x3 displaymatrix|side_datum/3x3_displaymatrix:displaymatrix=\n00000000: 131072 0 0\n00000001: 0 65536 0\n00000002: 0 0 1073741824\n|side_datum/3x3_displaymatrix:rotation=0|side_datum/h_26_45__user_data_unregistered_sei_message:side_data_type=H.26[45] User Data Unregistered SEI message
+frame|media_type=video|stream_index=0|key_frame=0|pts=50485|pts_time=0.560944|pkt_dts=50484|pkt_dts_time=0.560933|best_effort_timestamp=50485|best_effort_timestamp_time=0.560944|duration=3003|duration_time=0.033367|pkt_pos=33349|pkt_size=682|width=160|height=240|crop_top=0|crop_bottom=0|crop_left=0|crop_right=0|pix_fmt=yuv420p|sample_aspect_ratio=2:1|pict_type=B|coded_picture_number=18|display_picture_number=0|interlaced_frame=0|top_field_first=0|repeat_pict=0|color_range=tv|color_space=smpte170m|color_primaries=smpte170m|color_transfer=bt709|chroma_location=topleft|side_datum/3x3_displaymatrix:side_data_type=3x3 displaymatrix|side_datum/3x3_displaymatrix:displaymatrix=\n00000000: 131072 0 0\n00000001: 0 65536 0\n00000002: 0 0 1073741824\n|side_datum/3x3_displaymatrix:rotation=0|side_datum/h_26_45__user_data_unregistered_sei_message:side_data_type=H.26[45] User Data Unregistered SEI message
packet|codec_type=video|stream_index=0|pts=59494|pts_time=0.661044|dts=53487|dts_time=0.594300|duration=3003|duration_time=0.033367|size=2917|pos=34031|flags=___
-frame|media_type=video|stream_index=0|key_frame=0|pts=53488|pts_time=0.594311|pkt_dts=53487|pkt_dts_time=0.594300|best_effort_timestamp=53488|best_effort_timestamp_time=0.594311|pkt_duration=3003|pkt_duration_time=0.033367|duration=3003|duration_time=0.033367|pkt_pos=31987|pkt_size=1362|width=160|height=240|crop_top=0|crop_bottom=0|crop_left=0|crop_right=0|pix_fmt=yuv420p|sample_aspect_ratio=2:1|pict_type=P|coded_picture_number=17|display_picture_number=0|interlaced_frame=0|top_field_first=0|repeat_pict=0|color_range=tv|color_space=smpte170m|color_primaries=smpte170m|color_transfer=bt709|chroma_location=topleft|side_datum/3x3_displaymatrix:side_data_type=3x3 displaymatrix|side_datum/3x3_displaymatrix:displaymatrix=\n00000000: 131072 0 0\n00000001: 0 65536 0\n00000002: 0 0 1073741824\n|side_datum/3x3_displaymatrix:rotation=0|side_datum/h_26_45__user_data_unregistered_sei_message:side_data_type=H.26[45] User Data Unregistered SEI message
+frame|media_type=video|stream_index=0|key_frame=0|pts=53488|pts_time=0.594311|pkt_dts=53487|pkt_dts_time=0.594300|best_effort_timestamp=53488|best_effort_timestamp_time=0.594311|duration=3003|duration_time=0.033367|pkt_pos=31987|pkt_size=1362|width=160|height=240|crop_top=0|crop_bottom=0|crop_left=0|crop_right=0|pix_fmt=yuv420p|sample_aspect_ratio=2:1|pict_type=P|coded_picture_number=17|display_picture_number=0|interlaced_frame=0|top_field_first=0|repeat_pict=0|color_range=tv|color_space=smpte170m|color_primaries=smpte170m|color_transfer=bt709|chroma_location=topleft|side_datum/3x3_displaymatrix:side_data_type=3x3 displaymatrix|side_datum/3x3_displaymatrix:displaymatrix=\n00000000: 131072 0 0\n00000001: 0 65536 0\n00000002: 0 0 1073741824\n|side_datum/3x3_displaymatrix:rotation=0|side_datum/h_26_45__user_data_unregistered_sei_message:side_data_type=H.26[45] User Data Unregistered SEI message
packet|codec_type=video|stream_index=0|pts=56491|pts_time=0.627678|dts=56490|dts_time=0.627667|duration=3003|duration_time=0.033367|size=1174|pos=36948|flags=___
-frame|media_type=video|stream_index=0|key_frame=0|pts=56491|pts_time=0.627678|pkt_dts=56490|pkt_dts_time=0.627667|best_effort_timestamp=56491|best_effort_timestamp_time=0.627678|pkt_duration=3003|pkt_duration_time=0.033367|duration=3003|duration_time=0.033367|pkt_pos=36948|pkt_size=1174|width=160|height=240|crop_top=0|crop_bottom=0|crop_left=0|crop_right=0|pix_fmt=yuv420p|sample_aspect_ratio=2:1|pict_type=B|coded_picture_number=20|display_picture_number=0|interlaced_frame=0|top_field_first=0|repeat_pict=0|color_range=tv|color_space=smpte170m|color_primaries=smpte170m|color_transfer=bt709|chroma_location=topleft|side_datum/3x3_displaymatrix:side_data_type=3x3 displaymatrix|side_datum/3x3_displaymatrix:displaymatrix=\n00000000: 131072 0 0\n00000001: 0 65536 0\n00000002: 0 0 1073741824\n|side_datum/3x3_displaymatrix:rotation=0|side_datum/h_26_45__user_data_unregistered_sei_message:side_data_type=H.26[45] User Data Unregistered SEI message
+frame|media_type=video|stream_index=0|key_frame=0|pts=56491|pts_time=0.627678|pkt_dts=56490|pkt_dts_time=0.627667|best_effort_timestamp=56491|best_effort_timestamp_time=0.627678|duration=3003|duration_time=0.033367|pkt_pos=36948|pkt_size=1174|width=160|height=240|crop_top=0|crop_bottom=0|crop_left=0|crop_right=0|pix_fmt=yuv420p|sample_aspect_ratio=2:1|pict_type=B|coded_picture_number=20|display_picture_number=0|interlaced_frame=0|top_field_first=0|repeat_pict=0|color_range=tv|color_space=smpte170m|color_primaries=smpte170m|color_transfer=bt709|chroma_location=topleft|side_datum/3x3_displaymatrix:side_data_type=3x3 displaymatrix|side_datum/3x3_displaymatrix:displaymatrix=\n00000000: 131072 0 0\n00000001: 0 65536 0\n00000002: 0 0 1073741824\n|side_datum/3x3_displaymatrix:rotation=0|side_datum/h_26_45__user_data_unregistered_sei_message:side_data_type=H.26[45] User Data Unregistered SEI message
packet|codec_type=video|stream_index=0|pts=65500|pts_time=0.727778|dts=59493|dts_time=0.661033|duration=3003|duration_time=0.033367|size=1748|pos=38122|flags=___
-frame|media_type=video|stream_index=0|key_frame=0|pts=59494|pts_time=0.661044|pkt_dts=59493|pkt_dts_time=0.661033|best_effort_timestamp=59494|best_effort_timestamp_time=0.661044|pkt_duration=3003|pkt_duration_time=0.033367|duration=3003|duration_time=0.033367|pkt_pos=34031|pkt_size=2917|width=160|height=240|crop_top=0|crop_bottom=0|crop_left=0|crop_right=0|pix_fmt=yuv420p|sample_aspect_ratio=2:1|pict_type=P|coded_picture_number=19|display_picture_number=0|interlaced_frame=0|top_field_first=0|repeat_pict=0|color_range=tv|color_space=smpte170m|color_primaries=smpte170m|color_transfer=bt709|chroma_location=topleft|side_datum/3x3_displaymatrix:side_data_type=3x3 displaymatrix|side_datum/3x3_displaymatrix:displaymatrix=\n00000000: 131072 0 0\n00000001: 0 65536 0\n00000002: 0 0 1073741824\n|side_datum/3x3_displaymatrix:rotation=0|side_datum/h_26_45__user_data_unregistered_sei_message:side_data_type=H.26[45] User Data Unregistered SEI message
+frame|media_type=video|stream_index=0|key_frame=0|pts=59494|pts_time=0.661044|pkt_dts=59493|pkt_dts_time=0.661033|best_effort_timestamp=59494|best_effort_timestamp_time=0.661044|duration=3003|duration_time=0.033367|pkt_pos=34031|pkt_size=2917|width=160|height=240|crop_top=0|crop_bottom=0|crop_left=0|crop_right=0|pix_fmt=yuv420p|sample_aspect_ratio=2:1|pict_type=P|coded_picture_number=19|display_picture_number=0|interlaced_frame=0|top_field_first=0|repeat_pict=0|color_range=tv|color_space=smpte170m|color_primaries=smpte170m|color_transfer=bt709|chroma_location=topleft|side_datum/3x3_displaymatrix:side_data_type=3x3 displaymatrix|side_datum/3x3_displaymatrix:displaymatrix=\n00000000: 131072 0 0\n00000001: 0 65536 0\n00000002: 0 0 1073741824\n|side_datum/3x3_displaymatrix:rotation=0|side_datum/h_26_45__user_data_unregistered_sei_message:side_data_type=H.26[45] User Data Unregistered SEI message
packet|codec_type=video|stream_index=0|pts=62497|pts_time=0.694411|dts=62496|dts_time=0.694400|duration=3003|duration_time=0.033367|size=926|pos=39870|flags=___
-frame|media_type=video|stream_index=0|key_frame=0|pts=62497|pts_time=0.694411|pkt_dts=62496|pkt_dts_time=0.694400|best_effort_timestamp=62497|best_effort_timestamp_time=0.694411|pkt_duration=3003|pkt_duration_time=0.033367|duration=3003|duration_time=0.033367|pkt_pos=39870|pkt_size=926|width=160|height=240|crop_top=0|crop_bottom=0|crop_left=0|crop_right=0|pix_fmt=yuv420p|sample_aspect_ratio=2:1|pict_type=B|coded_picture_number=22|display_picture_number=0|interlaced_frame=0|top_field_first=0|repeat_pict=0|color_range=tv|color_space=smpte170m|color_primaries=smpte170m|color_transfer=bt709|chroma_location=topleft|side_datum/3x3_displaymatrix:side_data_type=3x3 displaymatrix|side_datum/3x3_displaymatrix:displaymatrix=\n00000000: 131072 0 0\n00000001: 0 65536 0\n00000002: 0 0 1073741824\n|side_datum/3x3_displaymatrix:rotation=0|side_datum/h_26_45__user_data_unregistered_sei_message:side_data_type=H.26[45] User Data Unregistered SEI message
+frame|media_type=video|stream_index=0|key_frame=0|pts=62497|pts_time=0.694411|pkt_dts=62496|pkt_dts_time=0.694400|best_effort_timestamp=62497|best_effort_timestamp_time=0.694411|duration=3003|duration_time=0.033367|pkt_pos=39870|pkt_size=926|width=160|height=240|crop_top=0|crop_bottom=0|crop_left=0|crop_right=0|pix_fmt=yuv420p|sample_aspect_ratio=2:1|pict_type=B|coded_picture_number=22|display_picture_number=0|interlaced_frame=0|top_field_first=0|repeat_pict=0|color_range=tv|color_space=smpte170m|color_primaries=smpte170m|color_transfer=bt709|chroma_location=topleft|side_datum/3x3_displaymatrix:side_data_type=3x3 displaymatrix|side_datum/3x3_displaymatrix:displaymatrix=\n00000000: 131072 0 0\n00000001: 0 65536 0\n00000002: 0 0 1073741824\n|side_datum/3x3_displaymatrix:rotation=0|side_datum/h_26_45__user_data_unregistered_sei_message:side_data_type=H.26[45] User Data Unregistered SEI message
packet|codec_type=video|stream_index=0|pts=68503|pts_time=0.761144|dts=65499|dts_time=0.727767|duration=3003|duration_time=0.033367|size=918|pos=40796|flags=___
-frame|media_type=video|stream_index=0|key_frame=0|pts=65500|pts_time=0.727778|pkt_dts=65499|pkt_dts_time=0.727767|best_effort_timestamp=65500|best_effort_timestamp_time=0.727778|pkt_duration=3003|pkt_duration_time=0.033367|duration=3003|duration_time=0.033367|pkt_pos=38122|pkt_size=1748|width=160|height=240|crop_top=0|crop_bottom=0|crop_left=0|crop_right=0|pix_fmt=yuv420p|sample_aspect_ratio=2:1|pict_type=P|coded_picture_number=21|display_picture_number=0|interlaced_frame=0|top_field_first=0|repeat_pict=0|color_range=tv|color_space=smpte170m|color_primaries=smpte170m|color_transfer=bt709|chroma_location=topleft|side_datum/3x3_displaymatrix:side_data_type=3x3 displaymatrix|side_datum/3x3_displaymatrix:displaymatrix=\n00000000: 131072 0 0\n00000001: 0 65536 0\n00000002: 0 0 1073741824\n|side_datum/3x3_displaymatrix:rotation=0|side_datum/h_26_45__user_data_unregistered_sei_message:side_data_type=H.26[45] User Data Unregistered SEI message
+frame|media_type=video|stream_index=0|key_frame=0|pts=65500|pts_time=0.727778|pkt_dts=65499|pkt_dts_time=0.727767|best_effort_timestamp=65500|best_effort_timestamp_time=0.727778|duration=3003|duration_time=0.033367|pkt_pos=38122|pkt_size=1748|width=160|height=240|crop_top=0|crop_bottom=0|crop_left=0|crop_right=0|pix_fmt=yuv420p|sample_aspect_ratio=2:1|pict_type=P|coded_picture_number=21|display_picture_number=0|interlaced_frame=0|top_field_first=0|repeat_pict=0|color_range=tv|color_space=smpte170m|color_primaries=smpte170m|color_transfer=bt709|chroma_location=topleft|side_datum/3x3_displaymatrix:side_data_type=3x3 displaymatrix|side_datum/3x3_displaymatrix:displaymatrix=\n00000000: 131072 0 0\n00000001: 0 65536 0\n00000002: 0 0 1073741824\n|side_datum/3x3_displaymatrix:rotation=0|side_datum/h_26_45__user_data_unregistered_sei_message:side_data_type=H.26[45] User Data Unregistered SEI message
packet|codec_type=video|stream_index=0|pts=71506|pts_time=0.794511|dts=68502|dts_time=0.761133|duration=3003|duration_time=0.033367|size=3846|pos=41714|flags=K__
-frame|media_type=video|stream_index=0|key_frame=0|pts=68503|pts_time=0.761144|pkt_dts=68502|pkt_dts_time=0.761133|best_effort_timestamp=68503|best_effort_timestamp_time=0.761144|pkt_duration=3003|pkt_duration_time=0.033367|duration=3003|duration_time=0.033367|pkt_pos=40796|pkt_size=918|width=160|height=240|crop_top=0|crop_bottom=0|crop_left=0|crop_right=0|pix_fmt=yuv420p|sample_aspect_ratio=2:1|pict_type=P|coded_picture_number=23|display_picture_number=0|interlaced_frame=0|top_field_first=0|repeat_pict=0|color_range=tv|color_space=smpte170m|color_primaries=smpte170m|color_transfer=bt709|chroma_location=topleft|side_datum/3x3_displaymatrix:side_data_type=3x3 displaymatrix|side_datum/3x3_displaymatrix:displaymatrix=\n00000000: 131072 0 0\n00000001: 0 65536 0\n00000002: 0 0 1073741824\n|side_datum/3x3_displaymatrix:rotation=0|side_datum/h_26_45__user_data_unregistered_sei_message:side_data_type=H.26[45] User Data Unregistered SEI message
+frame|media_type=video|stream_index=0|key_frame=0|pts=68503|pts_time=0.761144|pkt_dts=68502|pkt_dts_time=0.761133|best_effort_timestamp=68503|best_effort_timestamp_time=0.761144|duration=3003|duration_time=0.033367|pkt_pos=40796|pkt_size=918|width=160|height=240|crop_top=0|crop_bottom=0|crop_left=0|crop_right=0|pix_fmt=yuv420p|sample_aspect_ratio=2:1|pict_type=P|coded_picture_number=23|display_picture_number=0|interlaced_frame=0|top_field_first=0|repeat_pict=0|color_range=tv|color_space=smpte170m|color_primaries=smpte170m|color_transfer=bt709|chroma_location=topleft|side_datum/3x3_displaymatrix:side_data_type=3x3 displaymatrix|side_datum/3x3_displaymatrix:displaymatrix=\n00000000: 131072 0 0\n00000001: 0 65536 0\n00000002: 0 0 1073741824\n|side_datum/3x3_displaymatrix:rotation=0|side_datum/h_26_45__user_data_unregistered_sei_message:side_data_type=H.26[45] User Data Unregistered SEI message
packet|codec_type=video|stream_index=0|pts=77512|pts_time=0.861244|dts=71505|dts_time=0.794500|duration=3003|duration_time=0.033367|size=1932|pos=45560|flags=___
-frame|media_type=video|stream_index=0|key_frame=1|pts=71506|pts_time=0.794511|pkt_dts=71505|pkt_dts_time=0.794500|best_effort_timestamp=71506|best_effort_timestamp_time=0.794511|pkt_duration=3003|pkt_duration_time=0.033367|duration=3003|duration_time=0.033367|pkt_pos=41714|pkt_size=3846|width=160|height=240|crop_top=0|crop_bottom=0|crop_left=0|crop_right=0|pix_fmt=yuv420p|sample_aspect_ratio=2:1|pict_type=I|coded_picture_number=24|display_picture_number=0|interlaced_frame=0|top_field_first=0|repeat_pict=0|color_range=tv|color_space=smpte170m|color_primaries=smpte170m|color_transfer=bt709|chroma_location=topleft|side_datum/3x3_displaymatrix:side_data_type=3x3 displaymatrix|side_datum/3x3_displaymatrix:displaymatrix=\n00000000: 131072 0 0\n00000001: 0 65536 0\n00000002: 0 0 1073741824\n|side_datum/3x3_displaymatrix:rotation=0|side_datum/h_26_45__user_data_unregistered_sei_message:side_data_type=H.26[45] User Data Unregistered SEI message
+frame|media_type=video|stream_index=0|key_frame=1|pts=71506|pts_time=0.794511|pkt_dts=71505|pkt_dts_time=0.794500|best_effort_timestamp=71506|best_effort_timestamp_time=0.794511|duration=3003|duration_time=0.033367|pkt_pos=41714|pkt_size=3846|width=160|height=240|crop_top=0|crop_bottom=0|crop_left=0|crop_right=0|pix_fmt=yuv420p|sample_aspect_ratio=2:1|pict_type=I|coded_picture_number=24|display_picture_number=0|interlaced_frame=0|top_field_first=0|repeat_pict=0|color_range=tv|color_space=smpte170m|color_primaries=smpte170m|color_transfer=bt709|chroma_location=topleft|side_datum/3x3_displaymatrix:side_data_type=3x3 displaymatrix|side_datum/3x3_displaymatrix:displaymatrix=\n00000000: 131072 0 0\n00000001: 0 65536 0\n00000002: 0 0 1073741824\n|side_datum/3x3_displaymatrix:rotation=0|side_datum/h_26_45__user_data_unregistered_sei_message:side_data_type=H.26[45] User Data Unregistered SEI message
packet|codec_type=video|stream_index=0|pts=74509|pts_time=0.827878|dts=74508|dts_time=0.827867|duration=3003|duration_time=0.033367|size=1159|pos=47492|flags=___
-frame|media_type=video|stream_index=0|key_frame=0|pts=74509|pts_time=0.827878|pkt_dts=74508|pkt_dts_time=0.827867|best_effort_timestamp=74509|best_effort_timestamp_time=0.827878|pkt_duration=3003|pkt_duration_time=0.033367|duration=3003|duration_time=0.033367|pkt_pos=47492|pkt_size=1159|width=160|height=240|crop_top=0|crop_bottom=0|crop_left=0|crop_right=0|pix_fmt=yuv420p|sample_aspect_ratio=2:1|pict_type=B|coded_picture_number=26|display_picture_number=0|interlaced_frame=0|top_field_first=0|repeat_pict=0|color_range=tv|color_space=smpte170m|color_primaries=smpte170m|color_transfer=bt709|chroma_location=topleft|side_datum/3x3_displaymatrix:side_data_type=3x3 displaymatrix|side_datum/3x3_displaymatrix:displaymatrix=\n00000000: 131072 0 0\n00000001: 0 65536 0\n00000002: 0 0 1073741824\n|side_datum/3x3_displaymatrix:rotation=0|side_datum/h_26_45__user_data_unregistered_sei_message:side_data_type=H.26[45] User Data Unregistered SEI message
+frame|media_type=video|stream_index=0|key_frame=0|pts=74509|pts_time=0.827878|pkt_dts=74508|pkt_dts_time=0.827867|best_effort_timestamp=74509|best_effort_timestamp_time=0.827878|duration=3003|duration_time=0.033367|pkt_pos=47492|pkt_size=1159|width=160|height=240|crop_top=0|crop_bottom=0|crop_left=0|crop_right=0|pix_fmt=yuv420p|sample_aspect_ratio=2:1|pict_type=B|coded_picture_number=26|display_picture_number=0|interlaced_frame=0|top_field_first=0|repeat_pict=0|color_range=tv|color_space=smpte170m|color_primaries=smpte170m|color_transfer=bt709|chroma_location=topleft|side_datum/3x3_displaymatrix:side_data_type=3x3 displaymatrix|side_datum/3x3_displaymatrix:displaymatrix=\n00000000: 131072 0 0\n00000001: 0 65536 0\n00000002: 0 0 1073741824\n|side_datum/3x3_displaymatrix:rotation=0|side_datum/h_26_45__user_data_unregistered_sei_message:side_data_type=H.26[45] User Data Unregistered SEI message
packet|codec_type=video|stream_index=0|pts=83518|pts_time=0.927978|dts=77511|dts_time=0.861233|duration=3003|duration_time=0.033367|size=1522|pos=48651|flags=___
-frame|media_type=video|stream_index=0|key_frame=0|pts=77512|pts_time=0.861244|pkt_dts=77511|pkt_dts_time=0.861233|best_effort_timestamp=77512|best_effort_timestamp_time=0.861244|pkt_duration=3003|pkt_duration_time=0.033367|duration=3003|duration_time=0.033367|pkt_pos=45560|pkt_size=1932|width=160|height=240|crop_top=0|crop_bottom=0|crop_left=0|crop_right=0|pix_fmt=yuv420p|sample_aspect_ratio=2:1|pict_type=P|coded_picture_number=25|display_picture_number=0|interlaced_frame=0|top_field_first=0|repeat_pict=0|color_range=tv|color_space=smpte170m|color_primaries=smpte170m|color_transfer=bt709|chroma_location=topleft|side_datum/3x3_displaymatrix:side_data_type=3x3 displaymatrix|side_datum/3x3_displaymatrix:displaymatrix=\n00000000: 131072 0 0\n00000001: 0 65536 0\n00000002: 0 0 1073741824\n|side_datum/3x3_displaymatrix:rotation=0|side_datum/h_26_45__user_data_unregistered_sei_message:side_data_type=H.26[45] User Data Unregistered SEI message
+frame|media_type=video|stream_index=0|key_frame=0|pts=77512|pts_time=0.861244|pkt_dts=77511|pkt_dts_time=0.861233|best_effort_timestamp=77512|best_effort_timestamp_time=0.861244|duration=3003|duration_time=0.033367|pkt_pos=45560|pkt_size=1932|width=160|height=240|crop_top=0|crop_bottom=0|crop_left=0|crop_right=0|pix_fmt=yuv420p|sample_aspect_ratio=2:1|pict_type=P|coded_picture_number=25|display_picture_number=0|interlaced_frame=0|top_field_first=0|repeat_pict=0|color_range=tv|color_space=smpte170m|color_primaries=smpte170m|color_transfer=bt709|chroma_location=topleft|side_datum/3x3_displaymatrix:side_data_type=3x3 displaymatrix|side_datum/3x3_displaymatrix:displaymatrix=\n00000000: 131072 0 0\n00000001: 0 65536 0\n00000002: 0 0 1073741824\n|side_datum/3x3_displaymatrix:rotation=0|side_datum/h_26_45__user_data_unregistered_sei_message:side_data_type=H.26[45] User Data Unregistered SEI message
packet|codec_type=video|stream_index=0|pts=80515|pts_time=0.894611|dts=80514|dts_time=0.894600|duration=3003|duration_time=0.033367|size=719|pos=50173|flags=___
-frame|media_type=video|stream_index=0|key_frame=0|pts=80515|pts_time=0.894611|pkt_dts=80514|pkt_dts_time=0.894600|best_effort_timestamp=80515|best_effort_timestamp_time=0.894611|pkt_duration=3003|pkt_duration_time=0.033367|duration=3003|duration_time=0.033367|pkt_pos=50173|pkt_size=719|width=160|height=240|crop_top=0|crop_bottom=0|crop_left=0|crop_right=0|pix_fmt=yuv420p|sample_aspect_ratio=2:1|pict_type=B|coded_picture_number=28|display_picture_number=0|interlaced_frame=0|top_field_first=0|repeat_pict=0|color_range=tv|color_space=smpte170m|color_primaries=smpte170m|color_transfer=bt709|chroma_location=topleft|side_datum/3x3_displaymatrix:side_data_type=3x3 displaymatrix|side_datum/3x3_displaymatrix:displaymatrix=\n00000000: 131072 0 0\n00000001: 0 65536 0\n00000002: 0 0 1073741824\n|side_datum/3x3_displaymatrix:rotation=0|side_datum/h_26_45__user_data_unregistered_sei_message:side_data_type=H.26[45] User Data Unregistered SEI message
+frame|media_type=video|stream_index=0|key_frame=0|pts=80515|pts_time=0.894611|pkt_dts=80514|pkt_dts_time=0.894600|best_effort_timestamp=80515|best_effort_timestamp_time=0.894611|duration=3003|duration_time=0.033367|pkt_pos=50173|pkt_size=719|width=160|height=240|crop_top=0|crop_bottom=0|crop_left=0|crop_right=0|pix_fmt=yuv420p|sample_aspect_ratio=2:1|pict_type=B|coded_picture_number=28|display_picture_number=0|interlaced_frame=0|top_field_first=0|repeat_pict=0|color_range=tv|color_space=smpte170m|color_primaries=smpte170m|color_transfer=bt709|chroma_location=topleft|side_datum/3x3_displaymatrix:side_data_type=3x3 displaymatrix|side_datum/3x3_displaymatrix:displaymatrix=\n00000000: 131072 0 0\n00000001: 0 65536 0\n00000002: 0 0 1073741824\n|side_datum/3x3_displaymatrix:rotation=0|side_datum/h_26_45__user_data_unregistered_sei_message:side_data_type=H.26[45] User Data Unregistered SEI message
packet|codec_type=video|stream_index=0|pts=89524|pts_time=0.994711|dts=83517|dts_time=0.927967|duration=3003|duration_time=0.033367|size=1700|pos=50892|flags=___
-frame|media_type=video|stream_index=0|key_frame=0|pts=83518|pts_time=0.927978|pkt_dts=83517|pkt_dts_time=0.927967|best_effort_timestamp=83518|best_effort_timestamp_time=0.927978|pkt_duration=3003|pkt_duration_time=0.033367|duration=3003|duration_time=0.033367|pkt_pos=48651|pkt_size=1522|width=160|height=240|crop_top=0|crop_bottom=0|crop_left=0|crop_right=0|pix_fmt=yuv420p|sample_aspect_ratio=2:1|pict_type=P|coded_picture_number=27|display_picture_number=0|interlaced_frame=0|top_field_first=0|repeat_pict=0|color_range=tv|color_space=smpte170m|color_primaries=smpte170m|color_transfer=bt709|chroma_location=topleft|side_datum/3x3_displaymatrix:side_data_type=3x3 displaymatrix|side_datum/3x3_displaymatrix:displaymatrix=\n00000000: 131072 0 0\n00000001: 0 65536 0\n00000002: 0 0 1073741824\n|side_datum/3x3_displaymatrix:rotation=0|side_datum/h_26_45__user_data_unregistered_sei_message:side_data_type=H.26[45] User Data Unregistered SEI message
+frame|media_type=video|stream_index=0|key_frame=0|pts=83518|pts_time=0.927978|pkt_dts=83517|pkt_dts_time=0.927967|best_effort_timestamp=83518|best_effort_timestamp_time=0.927978|duration=3003|duration_time=0.033367|pkt_pos=48651|pkt_size=1522|width=160|height=240|crop_top=0|crop_bottom=0|crop_left=0|crop_right=0|pix_fmt=yuv420p|sample_aspect_ratio=2:1|pict_type=P|coded_picture_number=27|display_picture_number=0|interlaced_frame=0|top_field_first=0|repeat_pict=0|color_range=tv|color_space=smpte170m|color_primaries=smpte170m|color_transfer=bt709|chroma_location=topleft|side_datum/3x3_displaymatrix:side_data_type=3x3 displaymatrix|side_datum/3x3_displaymatrix:displaymatrix=\n00000000: 131072 0 0\n00000001: 0 65536 0\n00000002: 0 0 1073741824\n|side_datum/3x3_displaymatrix:rotation=0|side_datum/h_26_45__user_data_unregistered_sei_message:side_data_type=H.26[45] User Data Unregistered SEI message
packet|codec_type=video|stream_index=0|pts=86521|pts_time=0.961344|dts=86520|dts_time=0.961333|duration=3003|duration_time=0.033367|size=1099|pos=52592|flags=___
-frame|media_type=video|stream_index=0|key_frame=0|pts=86521|pts_time=0.961344|pkt_dts=86520|pkt_dts_time=0.961333|best_effort_timestamp=86521|best_effort_timestamp_time=0.961344|pkt_duration=3003|pkt_duration_time=0.033367|duration=3003|duration_time=0.033367|pkt_pos=52592|pkt_size=1099|width=160|height=240|crop_top=0|crop_bottom=0|crop_left=0|crop_right=0|pix_fmt=yuv420p|sample_aspect_ratio=2:1|pict_type=B|coded_picture_number=30|display_picture_number=0|interlaced_frame=0|top_field_first=0|repeat_pict=0|color_range=tv|color_space=smpte170m|color_primaries=smpte170m|color_transfer=bt709|chroma_location=topleft|side_datum/3x3_displaymatrix:side_data_type=3x3 displaymatrix|side_datum/3x3_displaymatrix:displaymatrix=\n00000000: 131072 0 0\n00000001: 0 65536 0\n00000002: 0 0 1073741824\n|side_datum/3x3_displaymatrix:rotation=0|side_datum/h_26_45__user_data_unregistered_sei_message:side_data_type=H.26[45] User Data Unregistered SEI message
+frame|media_type=video|stream_index=0|key_frame=0|pts=86521|pts_time=0.961344|pkt_dts=86520|pkt_dts_time=0.961333|best_effort_timestamp=86521|best_effort_timestamp_time=0.961344|duration=3003|duration_time=0.033367|pkt_pos=52592|pkt_size=1099|width=160|height=240|crop_top=0|crop_bottom=0|crop_left=0|crop_right=0|pix_fmt=yuv420p|sample_aspect_ratio=2:1|pict_type=B|coded_picture_number=30|display_picture_number=0|interlaced_frame=0|top_field_first=0|repeat_pict=0|color_range=tv|color_space=smpte170m|color_primaries=smpte170m|color_transfer=bt709|chroma_location=topleft|side_datum/3x3_displaymatrix:side_data_type=3x3 displaymatrix|side_datum/3x3_displaymatrix:displaymatrix=\n00000000: 131072 0 0\n00000001: 0 65536 0\n00000002: 0 0 1073741824\n|side_datum/3x3_displaymatrix:rotation=0|side_datum/h_26_45__user_data_unregistered_sei_message:side_data_type=H.26[45] User Data Unregistered SEI message
packet|codec_type=video|stream_index=0|pts=95530|pts_time=1.061444|dts=89523|dts_time=0.994700|duration=3003|duration_time=0.033367|size=2558|pos=53691|flags=___
-frame|media_type=video|stream_index=0|key_frame=0|pts=89524|pts_time=0.994711|pkt_dts=89523|pkt_dts_time=0.994700|best_effort_timestamp=89524|best_effort_timestamp_time=0.994711|pkt_duration=3003|pkt_duration_time=0.033367|duration=3003|duration_time=0.033367|pkt_pos=50892|pkt_size=1700|width=160|height=240|crop_top=0|crop_bottom=0|crop_left=0|crop_right=0|pix_fmt=yuv420p|sample_aspect_ratio=2:1|pict_type=P|coded_picture_number=29|display_picture_number=0|interlaced_frame=0|top_field_first=0|repeat_pict=0|color_range=tv|color_space=smpte170m|color_primaries=smpte170m|color_transfer=bt709|chroma_location=topleft|side_datum/3x3_displaymatrix:side_data_type=3x3 displaymatrix|side_datum/3x3_displaymatrix:displaymatrix=\n00000000: 131072 0 0\n00000001: 0 65536 0\n00000002: 0 0 1073741824\n|side_datum/3x3_displaymatrix:rotation=0|side_datum/h_26_45__user_data_unregistered_sei_message:side_data_type=H.26[45] User Data Unregistered SEI message
+frame|media_type=video|stream_index=0|key_frame=0|pts=89524|pts_time=0.994711|pkt_dts=89523|pkt_dts_time=0.994700|best_effort_timestamp=89524|best_effort_timestamp_time=0.994711|duration=3003|duration_time=0.033367|pkt_pos=50892|pkt_size=1700|width=160|height=240|crop_top=0|crop_bottom=0|crop_left=0|crop_right=0|pix_fmt=yuv420p|sample_aspect_ratio=2:1|pict_type=P|coded_picture_number=29|display_picture_number=0|interlaced_frame=0|top_field_first=0|repeat_pict=0|color_range=tv|color_space=smpte170m|color_primaries=smpte170m|color_transfer=bt709|chroma_location=topleft|side_datum/3x3_displaymatrix:side_data_type=3x3 displaymatrix|side_datum/3x3_displaymatrix:displaymatrix=\n00000000: 131072 0 0\n00000001: 0 65536 0\n00000002: 0 0 1073741824\n|side_datum/3x3_displaymatrix:rotation=0|side_datum/h_26_45__user_data_unregistered_sei_message:side_data_type=H.26[45] User Data Unregistered SEI message
packet|codec_type=video|stream_index=0|pts=92527|pts_time=1.028078|dts=92526|dts_time=1.028067|duration=3003|duration_time=0.033367|size=1008|pos=56249|flags=___
-frame|media_type=video|stream_index=0|key_frame=0|pts=92527|pts_time=1.028078|pkt_dts=92526|pkt_dts_time=1.028067|best_effort_timestamp=92527|best_effort_timestamp_time=1.028078|pkt_duration=3003|pkt_duration_time=0.033367|duration=3003|duration_time=0.033367|pkt_pos=56249|pkt_size=1008|width=160|height=240|crop_top=0|crop_bottom=0|crop_left=0|crop_right=0|pix_fmt=yuv420p|sample_aspect_ratio=2:1|pict_type=B|coded_picture_number=32|display_picture_number=0|interlaced_frame=0|top_field_first=0|repeat_pict=0|color_range=tv|color_space=smpte170m|color_primaries=smpte170m|color_transfer=bt709|chroma_location=topleft|side_datum/3x3_displaymatrix:side_data_type=3x3 displaymatrix|side_datum/3x3_displaymatrix:displaymatrix=\n00000000: 131072 0 0\n00000001: 0 65536 0\n00000002: 0 0 1073741824\n|side_datum/3x3_displaymatrix:rotation=0|side_datum/h_26_45__user_data_unregistered_sei_message:side_data_type=H.26[45] User Data Unregistered SEI message
+frame|media_type=video|stream_index=0|key_frame=0|pts=92527|pts_time=1.028078|pkt_dts=92526|pkt_dts_time=1.028067|best_effort_timestamp=92527|best_effort_timestamp_time=1.028078|duration=3003|duration_time=0.033367|pkt_pos=56249|pkt_size=1008|width=160|height=240|crop_top=0|crop_bottom=0|crop_left=0|crop_right=0|pix_fmt=yuv420p|sample_aspect_ratio=2:1|pict_type=B|coded_picture_number=32|display_picture_number=0|interlaced_frame=0|top_field_first=0|repeat_pict=0|color_range=tv|color_space=smpte170m|color_primaries=smpte170m|color_transfer=bt709|chroma_location=topleft|side_datum/3x3_displaymatrix:side_data_type=3x3 displaymatrix|side_datum/3x3_displaymatrix:displaymatrix=\n00000000: 131072 0 0\n00000001: 0 65536 0\n00000002: 0 0 1073741824\n|side_datum/3x3_displaymatrix:rotation=0|side_datum/h_26_45__user_data_unregistered_sei_message:side_data_type=H.26[45] User Data Unregistered SEI message
packet|codec_type=video|stream_index=0|pts=101536|pts_time=1.128178|dts=95529|dts_time=1.061433|duration=3003|duration_time=0.033367|size=1236|pos=57257|flags=___
-frame|media_type=video|stream_index=0|key_frame=0|pts=95530|pts_time=1.061444|pkt_dts=95529|pkt_dts_time=1.061433|best_effort_timestamp=95530|best_effort_timestamp_time=1.061444|pkt_duration=3003|pkt_duration_time=0.033367|duration=3003|duration_time=0.033367|pkt_pos=53691|pkt_size=2558|width=160|height=240|crop_top=0|crop_bottom=0|crop_left=0|crop_right=0|pix_fmt=yuv420p|sample_aspect_ratio=2:1|pict_type=P|coded_picture_number=31|display_picture_number=0|interlaced_frame=0|top_field_first=0|repeat_pict=0|color_range=tv|color_space=smpte170m|color_primaries=smpte170m|color_transfer=bt709|chroma_location=topleft|side_datum/3x3_displaymatrix:side_data_type=3x3 displaymatrix|side_datum/3x3_displaymatrix:displaymatrix=\n00000000: 131072 0 0\n00000001: 0 65536 0\n00000002: 0 0 1073741824\n|side_datum/3x3_displaymatrix:rotation=0|side_datum/h_26_45__user_data_unregistered_sei_message:side_data_type=H.26[45] User Data Unregistered SEI message
+frame|media_type=video|stream_index=0|key_frame=0|pts=95530|pts_time=1.061444|pkt_dts=95529|pkt_dts_time=1.061433|best_effort_timestamp=95530|best_effort_timestamp_time=1.061444|duration=3003|duration_time=0.033367|pkt_pos=53691|pkt_size=2558|width=160|height=240|crop_top=0|crop_bottom=0|crop_left=0|crop_right=0|pix_fmt=yuv420p|sample_aspect_ratio=2:1|pict_type=P|coded_picture_number=31|display_picture_number=0|interlaced_frame=0|top_field_first=0|repeat_pict=0|color_range=tv|color_space=smpte170m|color_primaries=smpte170m|color_transfer=bt709|chroma_location=topleft|side_datum/3x3_displaymatrix:side_data_type=3x3 displaymatrix|side_datum/3x3_displaymatrix:displaymatrix=\n00000000: 131072 0 0\n00000001: 0 65536 0\n00000002: 0 0 1073741824\n|side_datum/3x3_displaymatrix:rotation=0|side_datum/h_26_45__user_data_unregistered_sei_message:side_data_type=H.26[45] User Data Unregistered SEI message
packet|codec_type=video|stream_index=0|pts=98533|pts_time=1.094811|dts=98532|dts_time=1.094800|duration=3003|duration_time=0.033367|size=607|pos=58493|flags=___
-frame|media_type=video|stream_index=0|key_frame=0|pts=98533|pts_time=1.094811|pkt_dts=98532|pkt_dts_time=1.094800|best_effort_timestamp=98533|best_effort_timestamp_time=1.094811|pkt_duration=3003|pkt_duration_time=0.033367|duration=3003|duration_time=0.033367|pkt_pos=58493|pkt_size=607|width=160|height=240|crop_top=0|crop_bottom=0|crop_left=0|crop_right=0|pix_fmt=yuv420p|sample_aspect_ratio=2:1|pict_type=B|coded_picture_number=34|display_picture_number=0|interlaced_frame=0|top_field_first=0|repeat_pict=0|color_range=tv|color_space=smpte170m|color_primaries=smpte170m|color_transfer=bt709|chroma_location=topleft|side_datum/3x3_displaymatrix:side_data_type=3x3 displaymatrix|side_datum/3x3_displaymatrix:displaymatrix=\n00000000: 131072 0 0\n00000001: 0 65536 0\n00000002: 0 0 1073741824\n|side_datum/3x3_displaymatrix:rotation=0|side_datum/h_26_45__user_data_unregistered_sei_message:side_data_type=H.26[45] User Data Unregistered SEI message
+frame|media_type=video|stream_index=0|key_frame=0|pts=98533|pts_time=1.094811|pkt_dts=98532|pkt_dts_time=1.094800|best_effort_timestamp=98533|best_effort_timestamp_time=1.094811|duration=3003|duration_time=0.033367|pkt_pos=58493|pkt_size=607|width=160|height=240|crop_top=0|crop_bottom=0|crop_left=0|crop_right=0|pix_fmt=yuv420p|sample_aspect_ratio=2:1|pict_type=B|coded_picture_number=34|display_picture_number=0|interlaced_frame=0|top_field_first=0|repeat_pict=0|color_range=tv|color_space=smpte170m|color_primaries=smpte170m|color_transfer=bt709|chroma_location=topleft|side_datum/3x3_displaymatrix:side_data_type=3x3 displaymatrix|side_datum/3x3_displaymatrix:displaymatrix=\n00000000: 131072 0 0\n00000001: 0 65536 0\n00000002: 0 0 1073741824\n|side_datum/3x3_displaymatrix:rotation=0|side_datum/h_26_45__user_data_unregistered_sei_message:side_data_type=H.26[45] User Data Unregistered SEI message
packet|codec_type=video|stream_index=0|pts=107542|pts_time=1.194911|dts=101535|dts_time=1.128167|duration=3003|duration_time=0.033367|size=1883|pos=59100|flags=___
-frame|media_type=video|stream_index=0|key_frame=0|pts=101536|pts_time=1.128178|pkt_dts=101535|pkt_dts_time=1.128167|best_effort_timestamp=101536|best_effort_timestamp_time=1.128178|pkt_duration=3003|pkt_duration_time=0.033367|duration=3003|duration_time=0.033367|pkt_pos=57257|pkt_size=1236|width=160|height=240|crop_top=0|crop_bottom=0|crop_left=0|crop_right=0|pix_fmt=yuv420p|sample_aspect_ratio=2:1|pict_type=P|coded_picture_number=33|display_picture_number=0|interlaced_frame=0|top_field_first=0|repeat_pict=0|color_range=tv|color_space=smpte170m|color_primaries=smpte170m|color_transfer=bt709|chroma_location=topleft|side_datum/3x3_displaymatrix:side_data_type=3x3 displaymatrix|side_datum/3x3_displaymatrix:displaymatrix=\n00000000: 131072 0 0\n00000001: 0 65536 0\n00000002: 0 0 1073741824\n|side_datum/3x3_displaymatrix:rotation=0|side_datum/h_26_45__user_data_unregistered_sei_message:side_data_type=H.26[45] User Data Unregistered SEI message
+frame|media_type=video|stream_index=0|key_frame=0|pts=101536|pts_time=1.128178|pkt_dts=101535|pkt_dts_time=1.128167|best_effort_timestamp=101536|best_effort_timestamp_time=1.128178|duration=3003|duration_time=0.033367|pkt_pos=57257|pkt_size=1236|width=160|height=240|crop_top=0|crop_bottom=0|crop_left=0|crop_right=0|pix_fmt=yuv420p|sample_aspect_ratio=2:1|pict_type=P|coded_picture_number=33|display_picture_number=0|interlaced_frame=0|top_field_first=0|repeat_pict=0|color_range=tv|color_space=smpte170m|color_primaries=smpte170m|color_transfer=bt709|chroma_location=topleft|side_datum/3x3_displaymatrix:side_data_type=3x3 displaymatrix|side_datum/3x3_displaymatrix:displaymatrix=\n00000000: 131072 0 0\n00000001: 0 65536 0\n00000002: 0 0 1073741824\n|side_datum/3x3_displaymatrix:rotation=0|side_datum/h_26_45__user_data_unregistered_sei_message:side_data_type=H.26[45] User Data Unregistered SEI message
packet|codec_type=video|stream_index=0|pts=104539|pts_time=1.161544|dts=104538|dts_time=1.161533|duration=3003|duration_time=0.033367|size=893|pos=60983|flags=___
-frame|media_type=video|stream_index=0|key_frame=0|pts=104539|pts_time=1.161544|pkt_dts=104538|pkt_dts_time=1.161533|best_effort_timestamp=104539|best_effort_timestamp_time=1.161544|pkt_duration=3003|pkt_duration_time=0.033367|duration=3003|duration_time=0.033367|pkt_pos=60983|pkt_size=893|width=160|height=240|crop_top=0|crop_bottom=0|crop_left=0|crop_right=0|pix_fmt=yuv420p|sample_aspect_ratio=2:1|pict_type=B|coded_picture_number=36|display_picture_number=0|interlaced_frame=0|top_field_first=0|repeat_pict=0|color_range=tv|color_space=smpte170m|color_primaries=smpte170m|color_transfer=bt709|chroma_location=topleft|side_datum/3x3_displaymatrix:side_data_type=3x3 displaymatrix|side_datum/3x3_displaymatrix:displaymatrix=\n00000000: 131072 0 0\n00000001: 0 65536 0\n00000002: 0 0 1073741824\n|side_datum/3x3_displaymatrix:rotation=0|side_datum/h_26_45__user_data_unregistered_sei_message:side_data_type=H.26[45] User Data Unregistered SEI message
+frame|media_type=video|stream_index=0|key_frame=0|pts=104539|pts_time=1.161544|pkt_dts=104538|pkt_dts_time=1.161533|best_effort_timestamp=104539|best_effort_timestamp_time=1.161544|duration=3003|duration_time=0.033367|pkt_pos=60983|pkt_size=893|width=160|height=240|crop_top=0|crop_bottom=0|crop_left=0|crop_right=0|pix_fmt=yuv420p|sample_aspect_ratio=2:1|pict_type=B|coded_picture_number=36|display_picture_number=0|interlaced_frame=0|top_field_first=0|repeat_pict=0|color_range=tv|color_space=smpte170m|color_primaries=smpte170m|color_transfer=bt709|chroma_location=topleft|side_datum/3x3_displaymatrix:side_data_type=3x3 displaymatrix|side_datum/3x3_displaymatrix:displaymatrix=\n00000000: 131072 0 0\n00000001: 0 65536 0\n00000002: 0 0 1073741824\n|side_datum/3x3_displaymatrix:rotation=0|side_datum/h_26_45__user_data_unregistered_sei_message:side_data_type=H.26[45] User Data Unregistered SEI message
packet|codec_type=video|stream_index=0|pts=113548|pts_time=1.261644|dts=107541|dts_time=1.194900|duration=3003|duration_time=0.033367|size=1305|pos=61876|flags=___
-frame|media_type=video|stream_index=0|key_frame=0|pts=107542|pts_time=1.194911|pkt_dts=107541|pkt_dts_time=1.194900|best_effort_timestamp=107542|best_effort_timestamp_time=1.194911|pkt_duration=3003|pkt_duration_time=0.033367|duration=3003|duration_time=0.033367|pkt_pos=59100|pkt_size=1883|width=160|height=240|crop_top=0|crop_bottom=0|crop_left=0|crop_right=0|pix_fmt=yuv420p|sample_aspect_ratio=2:1|pict_type=P|coded_picture_number=35|display_picture_number=0|interlaced_frame=0|top_field_first=0|repeat_pict=0|color_range=tv|color_space=smpte170m|color_primaries=smpte170m|color_transfer=bt709|chroma_location=topleft|side_datum/3x3_displaymatrix:side_data_type=3x3 displaymatrix|side_datum/3x3_displaymatrix:displaymatrix=\n00000000: 131072 0 0\n00000001: 0 65536 0\n00000002: 0 0 1073741824\n|side_datum/3x3_displaymatrix:rotation=0|side_datum/h_26_45__user_data_unregistered_sei_message:side_data_type=H.26[45] User Data Unregistered SEI message
+frame|media_type=video|stream_index=0|key_frame=0|pts=107542|pts_time=1.194911|pkt_dts=107541|pkt_dts_time=1.194900|best_effort_timestamp=107542|best_effort_timestamp_time=1.194911|duration=3003|duration_time=0.033367|pkt_pos=59100|pkt_size=1883|width=160|height=240|crop_top=0|crop_bottom=0|crop_left=0|crop_right=0|pix_fmt=yuv420p|sample_aspect_ratio=2:1|pict_type=P|coded_picture_number=35|display_picture_number=0|interlaced_frame=0|top_field_first=0|repeat_pict=0|color_range=tv|color_space=smpte170m|color_primaries=smpte170m|color_transfer=bt709|chroma_location=topleft|side_datum/3x3_displaymatrix:side_data_type=3x3 displaymatrix|side_datum/3x3_displaymatrix:displaymatrix=\n00000000: 131072 0 0\n00000001: 0 65536 0\n00000002: 0 0 1073741824\n|side_datum/3x3_displaymatrix:rotation=0|side_datum/h_26_45__user_data_unregistered_sei_message:side_data_type=H.26[45] User Data Unregistered SEI message
packet|codec_type=video|stream_index=0|pts=110545|pts_time=1.228278|dts=110544|dts_time=1.228267|duration=3003|duration_time=0.033367|size=472|pos=63181|flags=___
-frame|media_type=video|stream_index=0|key_frame=0|pts=110545|pts_time=1.228278|pkt_dts=110544|pkt_dts_time=1.228267|best_effort_timestamp=110545|best_effort_timestamp_time=1.228278|pkt_duration=3003|pkt_duration_time=0.033367|duration=3003|duration_time=0.033367|pkt_pos=63181|pkt_size=472|width=160|height=240|crop_top=0|crop_bottom=0|crop_left=0|crop_right=0|pix_fmt=yuv420p|sample_aspect_ratio=2:1|pict_type=B|coded_picture_number=38|display_picture_number=0|interlaced_frame=0|top_field_first=0|repeat_pict=0|color_range=tv|color_space=smpte170m|color_primaries=smpte170m|color_transfer=bt709|chroma_location=topleft|side_datum/3x3_displaymatrix:side_data_type=3x3 displaymatrix|side_datum/3x3_displaymatrix:displaymatrix=\n00000000: 131072 0 0\n00000001: 0 65536 0\n00000002: 0 0 1073741824\n|side_datum/3x3_displaymatrix:rotation=0|side_datum/h_26_45__user_data_unregistered_sei_message:side_data_type=H.26[45] User Data Unregistered SEI message
+frame|media_type=video|stream_index=0|key_frame=0|pts=110545|pts_time=1.228278|pkt_dts=110544|pkt_dts_time=1.228267|best_effort_timestamp=110545|best_effort_timestamp_time=1.228278|duration=3003|duration_time=0.033367|pkt_pos=63181|pkt_size=472|width=160|height=240|crop_top=0|crop_bottom=0|crop_left=0|crop_right=0|pix_fmt=yuv420p|sample_aspect_ratio=2:1|pict_type=B|coded_picture_number=38|display_picture_number=0|interlaced_frame=0|top_field_first=0|repeat_pict=0|color_range=tv|color_space=smpte170m|color_primaries=smpte170m|color_transfer=bt709|chroma_location=topleft|side_datum/3x3_displaymatrix:side_data_type=3x3 displaymatrix|side_datum/3x3_displaymatrix:displaymatrix=\n00000000: 131072 0 0\n00000001: 0 65536 0\n00000002: 0 0 1073741824\n|side_datum/3x3_displaymatrix:rotation=0|side_datum/h_26_45__user_data_unregistered_sei_message:side_data_type=H.26[45] User Data Unregistered SEI message
packet|codec_type=video|stream_index=0|pts=119554|pts_time=1.328378|dts=113547|dts_time=1.261633|duration=3003|duration_time=0.033367|size=1411|pos=63653|flags=___
-frame|media_type=video|stream_index=0|key_frame=0|pts=113548|pts_time=1.261644|pkt_dts=113547|pkt_dts_time=1.261633|best_effort_timestamp=113548|best_effort_timestamp_time=1.261644|pkt_duration=3003|pkt_duration_time=0.033367|duration=3003|duration_time=0.033367|pkt_pos=61876|pkt_size=1305|width=160|height=240|crop_top=0|crop_bottom=0|crop_left=0|crop_right=0|pix_fmt=yuv420p|sample_aspect_ratio=2:1|pict_type=P|coded_picture_number=37|display_picture_number=0|interlaced_frame=0|top_field_first=0|repeat_pict=0|color_range=tv|color_space=smpte170m|color_primaries=smpte170m|color_transfer=bt709|chroma_location=topleft|side_datum/3x3_displaymatrix:side_data_type=3x3 displaymatrix|side_datum/3x3_displaymatrix:displaymatrix=\n00000000: 131072 0 0\n00000001: 0 65536 0\n00000002: 0 0 1073741824\n|side_datum/3x3_displaymatrix:rotation=0|side_datum/h_26_45__user_data_unregistered_sei_message:side_data_type=H.26[45] User Data Unregistered SEI message
+frame|media_type=video|stream_index=0|key_frame=0|pts=113548|pts_time=1.261644|pkt_dts=113547|pkt_dts_time=1.261633|best_effort_timestamp=113548|best_effort_timestamp_time=1.261644|duration=3003|duration_time=0.033367|pkt_pos=61876|pkt_size=1305|width=160|height=240|crop_top=0|crop_bottom=0|crop_left=0|crop_right=0|pix_fmt=yuv420p|sample_aspect_ratio=2:1|pict_type=P|coded_picture_number=37|display_picture_number=0|interlaced_frame=0|top_field_first=0|repeat_pict=0|color_range=tv|color_space=smpte170m|color_primaries=smpte170m|color_transfer=bt709|chroma_location=topleft|side_datum/3x3_displaymatrix:side_data_type=3x3 displaymatrix|side_datum/3x3_displaymatrix:displaymatrix=\n00000000: 131072 0 0\n00000001: 0 65536 0\n00000002: 0 0 1073741824\n|side_datum/3x3_displaymatrix:rotation=0|side_datum/h_26_45__user_data_unregistered_sei_message:side_data_type=H.26[45] User Data Unregistered SEI message
packet|codec_type=video|stream_index=0|pts=116551|pts_time=1.295011|dts=116550|dts_time=1.295000|duration=3003|duration_time=0.033367|size=616|pos=65064|flags=___
-frame|media_type=video|stream_index=0|key_frame=0|pts=116551|pts_time=1.295011|pkt_dts=116550|pkt_dts_time=1.295000|best_effort_timestamp=116551|best_effort_timestamp_time=1.295011|pkt_duration=3003|pkt_duration_time=0.033367|duration=3003|duration_time=0.033367|pkt_pos=65064|pkt_size=616|width=160|height=240|crop_top=0|crop_bottom=0|crop_left=0|crop_right=0|pix_fmt=yuv420p|sample_aspect_ratio=2:1|pict_type=B|coded_picture_number=40|display_picture_number=0|interlaced_frame=0|top_field_first=0|repeat_pict=0|color_range=tv|color_space=smpte170m|color_primaries=smpte170m|color_transfer=bt709|chroma_location=topleft|side_datum/3x3_displaymatrix:side_data_type=3x3 displaymatrix|side_datum/3x3_displaymatrix:displaymatrix=\n00000000: 131072 0 0\n00000001: 0 65536 0\n00000002: 0 0 1073741824\n|side_datum/3x3_displaymatrix:rotation=0|side_datum/h_26_45__user_data_unregistered_sei_message:side_data_type=H.26[45] User Data Unregistered SEI message
+frame|media_type=video|stream_index=0|key_frame=0|pts=116551|pts_time=1.295011|pkt_dts=116550|pkt_dts_time=1.295000|best_effort_timestamp=116551|best_effort_timestamp_time=1.295011|duration=3003|duration_time=0.033367|pkt_pos=65064|pkt_size=616|width=160|height=240|crop_top=0|crop_bottom=0|crop_left=0|crop_right=0|pix_fmt=yuv420p|sample_aspect_ratio=2:1|pict_type=B|coded_picture_number=40|display_picture_number=0|interlaced_frame=0|top_field_first=0|repeat_pict=0|color_range=tv|color_space=smpte170m|color_primaries=smpte170m|color_transfer=bt709|chroma_location=topleft|side_datum/3x3_displaymatrix:side_data_type=3x3 displaymatrix|side_datum/3x3_displaymatrix:displaymatrix=\n00000000: 131072 0 0\n00000001: 0 65536 0\n00000002: 0 0 1073741824\n|side_datum/3x3_displaymatrix:rotation=0|side_datum/h_26_45__user_data_unregistered_sei_message:side_data_type=H.26[45] User Data Unregistered SEI message
packet|codec_type=video|stream_index=0|pts=125560|pts_time=1.395111|dts=119553|dts_time=1.328367|duration=3003|duration_time=0.033367|size=1291|pos=65680|flags=___
-frame|media_type=video|stream_index=0|key_frame=0|pts=119554|pts_time=1.328378|pkt_dts=119553|pkt_dts_time=1.328367|best_effort_timestamp=119554|best_effort_timestamp_time=1.328378|pkt_duration=3003|pkt_duration_time=0.033367|duration=3003|duration_time=0.033367|pkt_pos=63653|pkt_size=1411|width=160|height=240|crop_top=0|crop_bottom=0|crop_left=0|crop_right=0|pix_fmt=yuv420p|sample_aspect_ratio=2:1|pict_type=P|coded_picture_number=39|display_picture_number=0|interlaced_frame=0|top_field_first=0|repeat_pict=0|color_range=tv|color_space=smpte170m|color_primaries=smpte170m|color_transfer=bt709|chroma_location=topleft|side_datum/3x3_displaymatrix:side_data_type=3x3 displaymatrix|side_datum/3x3_displaymatrix:displaymatrix=\n00000000: 131072 0 0\n00000001: 0 65536 0\n00000002: 0 0 1073741824\n|side_datum/3x3_displaymatrix:rotation=0|side_datum/h_26_45__user_data_unregistered_sei_message:side_data_type=H.26[45] User Data Unregistered SEI message
+frame|media_type=video|stream_index=0|key_frame=0|pts=119554|pts_time=1.328378|pkt_dts=119553|pkt_dts_time=1.328367|best_effort_timestamp=119554|best_effort_timestamp_time=1.328378|duration=3003|duration_time=0.033367|pkt_pos=63653|pkt_size=1411|width=160|height=240|crop_top=0|crop_bottom=0|crop_left=0|crop_right=0|pix_fmt=yuv420p|sample_aspect_ratio=2:1|pict_type=P|coded_picture_number=39|display_picture_number=0|interlaced_frame=0|top_field_first=0|repeat_pict=0|color_range=tv|color_space=smpte170m|color_primaries=smpte170m|color_transfer=bt709|chroma_location=topleft|side_datum/3x3_displaymatrix:side_data_type=3x3 displaymatrix|side_datum/3x3_displaymatrix:displaymatrix=\n00000000: 131072 0 0\n00000001: 0 65536 0\n00000002: 0 0 1073741824\n|side_datum/3x3_displaymatrix:rotation=0|side_datum/h_26_45__user_data_unregistered_sei_message:side_data_type=H.26[45] User Data Unregistered SEI message
packet|codec_type=video|stream_index=0|pts=122557|pts_time=1.361744|dts=122556|dts_time=1.361733|duration=3003|duration_time=0.033367|size=470|pos=66971|flags=___
-frame|media_type=video|stream_index=0|key_frame=0|pts=122557|pts_time=1.361744|pkt_dts=122556|pkt_dts_time=1.361733|best_effort_timestamp=122557|best_effort_timestamp_time=1.361744|pkt_duration=3003|pkt_duration_time=0.033367|duration=3003|duration_time=0.033367|pkt_pos=66971|pkt_size=470|width=160|height=240|crop_top=0|crop_bottom=0|crop_left=0|crop_right=0|pix_fmt=yuv420p|sample_aspect_ratio=2:1|pict_type=B|coded_picture_number=42|display_picture_number=0|interlaced_frame=0|top_field_first=0|repeat_pict=0|color_range=tv|color_space=smpte170m|color_primaries=smpte170m|color_transfer=bt709|chroma_location=topleft|side_datum/3x3_displaymatrix:side_data_type=3x3 displaymatrix|side_datum/3x3_displaymatrix:displaymatrix=\n00000000: 131072 0 0\n00000001: 0 65536 0\n00000002: 0 0 1073741824\n|side_datum/3x3_displaymatrix:rotation=0|side_datum/h_26_45__user_data_unregistered_sei_message:side_data_type=H.26[45] User Data Unregistered SEI message
+frame|media_type=video|stream_index=0|key_frame=0|pts=122557|pts_time=1.361744|pkt_dts=122556|pkt_dts_time=1.361733|best_effort_timestamp=122557|best_effort_timestamp_time=1.361744|duration=3003|duration_time=0.033367|pkt_pos=66971|pkt_size=470|width=160|height=240|crop_top=0|crop_bottom=0|crop_left=0|crop_right=0|pix_fmt=yuv420p|sample_aspect_ratio=2:1|pict_type=B|coded_picture_number=42|display_picture_number=0|interlaced_frame=0|top_field_first=0|repeat_pict=0|color_range=tv|color_space=smpte170m|color_primaries=smpte170m|color_transfer=bt709|chroma_location=topleft|side_datum/3x3_displaymatrix:side_data_type=3x3 displaymatrix|side_datum/3x3_displaymatrix:displaymatrix=\n00000000: 131072 0 0\n00000001: 0 65536 0\n00000002: 0 0 1073741824\n|side_datum/3x3_displaymatrix:rotation=0|side_datum/h_26_45__user_data_unregistered_sei_message:side_data_type=H.26[45] User Data Unregistered SEI message
packet|codec_type=video|stream_index=0|pts=131566|pts_time=1.461844|dts=125559|dts_time=1.395100|duration=3003|duration_time=0.033367|size=1977|pos=67441|flags=___
-frame|media_type=video|stream_index=0|key_frame=0|pts=125560|pts_time=1.395111|pkt_dts=125559|pkt_dts_time=1.395100|best_effort_timestamp=125560|best_effort_timestamp_time=1.395111|pkt_duration=3003|pkt_duration_time=0.033367|duration=3003|duration_time=0.033367|pkt_pos=65680|pkt_size=1291|width=160|height=240|crop_top=0|crop_bottom=0|crop_left=0|crop_right=0|pix_fmt=yuv420p|sample_aspect_ratio=2:1|pict_type=P|coded_picture_number=41|display_picture_number=0|interlaced_frame=0|top_field_first=0|repeat_pict=0|color_range=tv|color_space=smpte170m|color_primaries=smpte170m|color_transfer=bt709|chroma_location=topleft|side_datum/3x3_displaymatrix:side_data_type=3x3 displaymatrix|side_datum/3x3_displaymatrix:displaymatrix=\n00000000: 131072 0 0\n00000001: 0 65536 0\n00000002: 0 0 1073741824\n|side_datum/3x3_displaymatrix:rotation=0|side_datum/h_26_45__user_data_unregistered_sei_message:side_data_type=H.26[45] User Data Unregistered SEI message
+frame|media_type=video|stream_index=0|key_frame=0|pts=125560|pts_time=1.395111|pkt_dts=125559|pkt_dts_time=1.395100|best_effort_timestamp=125560|best_effort_timestamp_time=1.395111|duration=3003|duration_time=0.033367|pkt_pos=65680|pkt_size=1291|width=160|height=240|crop_top=0|crop_bottom=0|crop_left=0|crop_right=0|pix_fmt=yuv420p|sample_aspect_ratio=2:1|pict_type=P|coded_picture_number=41|display_picture_number=0|interlaced_frame=0|top_field_first=0|repeat_pict=0|color_range=tv|color_space=smpte170m|color_primaries=smpte170m|color_transfer=bt709|chroma_location=topleft|side_datum/3x3_displaymatrix:side_data_type=3x3 displaymatrix|side_datum/3x3_displaymatrix:displaymatrix=\n00000000: 131072 0 0\n00000001: 0 65536 0\n00000002: 0 0 1073741824\n|side_datum/3x3_displaymatrix:rotation=0|side_datum/h_26_45__user_data_unregistered_sei_message:side_data_type=H.26[45] User Data Unregistered SEI message
packet|codec_type=video|stream_index=0|pts=128563|pts_time=1.428478|dts=128562|dts_time=1.428467|duration=3003|duration_time=0.033367|size=436|pos=69418|flags=___
-frame|media_type=video|stream_index=0|key_frame=0|pts=128563|pts_time=1.428478|pkt_dts=128562|pkt_dts_time=1.428467|best_effort_timestamp=128563|best_effort_timestamp_time=1.428478|pkt_duration=3003|pkt_duration_time=0.033367|duration=3003|duration_time=0.033367|pkt_pos=69418|pkt_size=436|width=160|height=240|crop_top=0|crop_bottom=0|crop_left=0|crop_right=0|pix_fmt=yuv420p|sample_aspect_ratio=2:1|pict_type=B|coded_picture_number=44|display_picture_number=0|interlaced_frame=0|top_field_first=0|repeat_pict=0|color_range=tv|color_space=smpte170m|color_primaries=smpte170m|color_transfer=bt709|chroma_location=topleft|side_datum/3x3_displaymatrix:side_data_type=3x3 displaymatrix|side_datum/3x3_displaymatrix:displaymatrix=\n00000000: 131072 0 0\n00000001: 0 65536 0\n00000002: 0 0 1073741824\n|side_datum/3x3_displaymatrix:rotation=0|side_datum/h_26_45__user_data_unregistered_sei_message:side_data_type=H.26[45] User Data Unregistered SEI message
+frame|media_type=video|stream_index=0|key_frame=0|pts=128563|pts_time=1.428478|pkt_dts=128562|pkt_dts_time=1.428467|best_effort_timestamp=128563|best_effort_timestamp_time=1.428478|duration=3003|duration_time=0.033367|pkt_pos=69418|pkt_size=436|width=160|height=240|crop_top=0|crop_bottom=0|crop_left=0|crop_right=0|pix_fmt=yuv420p|sample_aspect_ratio=2:1|pict_type=B|coded_picture_number=44|display_picture_number=0|interlaced_frame=0|top_field_first=0|repeat_pict=0|color_range=tv|color_space=smpte170m|color_primaries=smpte170m|color_transfer=bt709|chroma_location=topleft|side_datum/3x3_displaymatrix:side_data_type=3x3 displaymatrix|side_datum/3x3_displaymatrix:displaymatrix=\n00000000: 131072 0 0\n00000001: 0 65536 0\n00000002: 0 0 1073741824\n|side_datum/3x3_displaymatrix:rotation=0|side_datum/h_26_45__user_data_unregistered_sei_message:side_data_type=H.26[45] User Data Unregistered SEI message
packet|codec_type=video|stream_index=0|pts=137572|pts_time=1.528578|dts=131565|dts_time=1.461833|duration=3003|duration_time=0.033367|size=2566|pos=69854|flags=___
-frame|media_type=video|stream_index=0|key_frame=0|pts=131566|pts_time=1.461844|pkt_dts=131565|pkt_dts_time=1.461833|best_effort_timestamp=131566|best_effort_timestamp_time=1.461844|pkt_duration=3003|pkt_duration_time=0.033367|duration=3003|duration_time=0.033367|pkt_pos=67441|pkt_size=1977|width=160|height=240|crop_top=0|crop_bottom=0|crop_left=0|crop_right=0|pix_fmt=yuv420p|sample_aspect_ratio=2:1|pict_type=P|coded_picture_number=43|display_picture_number=0|interlaced_frame=0|top_field_first=0|repeat_pict=0|color_range=tv|color_space=smpte170m|color_primaries=smpte170m|color_transfer=bt709|chroma_location=topleft|side_datum/3x3_displaymatrix:side_data_type=3x3 displaymatrix|side_datum/3x3_displaymatrix:displaymatrix=\n00000000: 131072 0 0\n00000001: 0 65536 0\n00000002: 0 0 1073741824\n|side_datum/3x3_displaymatrix:rotation=0|side_datum/h_26_45__user_data_unregistered_sei_message:side_data_type=H.26[45] User Data Unregistered SEI message
+frame|media_type=video|stream_index=0|key_frame=0|pts=131566|pts_time=1.461844|pkt_dts=131565|pkt_dts_time=1.461833|best_effort_timestamp=131566|best_effort_timestamp_time=1.461844|duration=3003|duration_time=0.033367|pkt_pos=67441|pkt_size=1977|width=160|height=240|crop_top=0|crop_bottom=0|crop_left=0|crop_right=0|pix_fmt=yuv420p|sample_aspect_ratio=2:1|pict_type=P|coded_picture_number=43|display_picture_number=0|interlaced_frame=0|top_field_first=0|repeat_pict=0|color_range=tv|color_space=smpte170m|color_primaries=smpte170m|color_transfer=bt709|chroma_location=topleft|side_datum/3x3_displaymatrix:side_data_type=3x3 displaymatrix|side_datum/3x3_displaymatrix:displaymatrix=\n00000000: 131072 0 0\n00000001: 0 65536 0\n00000002: 0 0 1073741824\n|side_datum/3x3_displaymatrix:rotation=0|side_datum/h_26_45__user_data_unregistered_sei_message:side_data_type=H.26[45] User Data Unregistered SEI message
packet|codec_type=video|stream_index=0|pts=134569|pts_time=1.495211|dts=134568|dts_time=1.495200|duration=3003|duration_time=0.033367|size=886|pos=72420|flags=___
-frame|media_type=video|stream_index=0|key_frame=0|pts=134569|pts_time=1.495211|pkt_dts=134568|pkt_dts_time=1.495200|best_effort_timestamp=134569|best_effort_timestamp_time=1.495211|pkt_duration=3003|pkt_duration_time=0.033367|duration=3003|duration_time=0.033367|pkt_pos=72420|pkt_size=886|width=160|height=240|crop_top=0|crop_bottom=0|crop_left=0|crop_right=0|pix_fmt=yuv420p|sample_aspect_ratio=2:1|pict_type=B|coded_picture_number=46|display_picture_number=0|interlaced_frame=0|top_field_first=0|repeat_pict=0|color_range=tv|color_space=smpte170m|color_primaries=smpte170m|color_transfer=bt709|chroma_location=topleft|side_datum/3x3_displaymatrix:side_data_type=3x3 displaymatrix|side_datum/3x3_displaymatrix:displaymatrix=\n00000000: 131072 0 0\n00000001: 0 65536 0\n00000002: 0 0 1073741824\n|side_datum/3x3_displaymatrix:rotation=0|side_datum/h_26_45__user_data_unregistered_sei_message:side_data_type=H.26[45] User Data Unregistered SEI message
+frame|media_type=video|stream_index=0|key_frame=0|pts=134569|pts_time=1.495211|pkt_dts=134568|pkt_dts_time=1.495200|best_effort_timestamp=134569|best_effort_timestamp_time=1.495211|duration=3003|duration_time=0.033367|pkt_pos=72420|pkt_size=886|width=160|height=240|crop_top=0|crop_bottom=0|crop_left=0|crop_right=0|pix_fmt=yuv420p|sample_aspect_ratio=2:1|pict_type=B|coded_picture_number=46|display_picture_number=0|interlaced_frame=0|top_field_first=0|repeat_pict=0|color_range=tv|color_space=smpte170m|color_primaries=smpte170m|color_transfer=bt709|chroma_location=topleft|side_datum/3x3_displaymatrix:side_data_type=3x3 displaymatrix|side_datum/3x3_displaymatrix:displaymatrix=\n00000000: 131072 0 0\n00000001: 0 65536 0\n00000002: 0 0 1073741824\n|side_datum/3x3_displaymatrix:rotation=0|side_datum/h_26_45__user_data_unregistered_sei_message:side_data_type=H.26[45] User Data Unregistered SEI message
packet|codec_type=video|stream_index=0|pts=140575|pts_time=1.561944|dts=137571|dts_time=1.528567|duration=3003|duration_time=0.033367|size=1330|pos=73306|flags=___
-frame|media_type=video|stream_index=0|key_frame=0|pts=137572|pts_time=1.528578|pkt_dts=137571|pkt_dts_time=1.528567|best_effort_timestamp=137572|best_effort_timestamp_time=1.528578|pkt_duration=3003|pkt_duration_time=0.033367|duration=3003|duration_time=0.033367|pkt_pos=69854|pkt_size=2566|width=160|height=240|crop_top=0|crop_bottom=0|crop_left=0|crop_right=0|pix_fmt=yuv420p|sample_aspect_ratio=2:1|pict_type=P|coded_picture_number=45|display_picture_number=0|interlaced_frame=0|top_field_first=0|repeat_pict=0|color_range=tv|color_space=smpte170m|color_primaries=smpte170m|color_transfer=bt709|chroma_location=topleft|side_datum/3x3_displaymatrix:side_data_type=3x3 displaymatrix|side_datum/3x3_displaymatrix:displaymatrix=\n00000000: 131072 0 0\n00000001: 0 65536 0\n00000002: 0 0 1073741824\n|side_datum/3x3_displaymatrix:rotation=0|side_datum/h_26_45__user_data_unregistered_sei_message:side_data_type=H.26[45] User Data Unregistered SEI message
+frame|media_type=video|stream_index=0|key_frame=0|pts=137572|pts_time=1.528578|pkt_dts=137571|pkt_dts_time=1.528567|best_effort_timestamp=137572|best_effort_timestamp_time=1.528578|duration=3003|duration_time=0.033367|pkt_pos=69854|pkt_size=2566|width=160|height=240|crop_top=0|crop_bottom=0|crop_left=0|crop_right=0|pix_fmt=yuv420p|sample_aspect_ratio=2:1|pict_type=P|coded_picture_number=45|display_picture_number=0|interlaced_frame=0|top_field_first=0|repeat_pict=0|color_range=tv|color_space=smpte170m|color_primaries=smpte170m|color_transfer=bt709|chroma_location=topleft|side_datum/3x3_displaymatrix:side_data_type=3x3 displaymatrix|side_datum/3x3_displaymatrix:displaymatrix=\n00000000: 131072 0 0\n00000001: 0 65536 0\n00000002: 0 0 1073741824\n|side_datum/3x3_displaymatrix:rotation=0|side_datum/h_26_45__user_data_unregistered_sei_message:side_data_type=H.26[45] User Data Unregistered SEI message
packet|codec_type=video|stream_index=0|pts=143578|pts_time=1.595311|dts=140574|dts_time=1.561933|duration=3003|duration_time=0.033367|size=2227|pos=74636|flags=K__
-frame|media_type=video|stream_index=0|key_frame=0|pts=140575|pts_time=1.561944|pkt_dts=140574|pkt_dts_time=1.561933|best_effort_timestamp=140575|best_effort_timestamp_time=1.561944|pkt_duration=3003|pkt_duration_time=0.033367|duration=3003|duration_time=0.033367|pkt_pos=73306|pkt_size=1330|width=160|height=240|crop_top=0|crop_bottom=0|crop_left=0|crop_right=0|pix_fmt=yuv420p|sample_aspect_ratio=2:1|pict_type=P|coded_picture_number=47|display_picture_number=0|interlaced_frame=0|top_field_first=0|repeat_pict=0|color_range=tv|color_space=smpte170m|color_primaries=smpte170m|color_transfer=bt709|chroma_location=topleft|side_datum/3x3_displaymatrix:side_data_type=3x3 displaymatrix|side_datum/3x3_displaymatrix:displaymatrix=\n00000000: 131072 0 0\n00000001: 0 65536 0\n00000002: 0 0 1073741824\n|side_datum/3x3_displaymatrix:rotation=0|side_datum/h_26_45__user_data_unregistered_sei_message:side_data_type=H.26[45] User Data Unregistered SEI message
+frame|media_type=video|stream_index=0|key_frame=0|pts=140575|pts_time=1.561944|pkt_dts=140574|pkt_dts_time=1.561933|best_effort_timestamp=140575|best_effort_timestamp_time=1.561944|duration=3003|duration_time=0.033367|pkt_pos=73306|pkt_size=1330|width=160|height=240|crop_top=0|crop_bottom=0|crop_left=0|crop_right=0|pix_fmt=yuv420p|sample_aspect_ratio=2:1|pict_type=P|coded_picture_number=47|display_picture_number=0|interlaced_frame=0|top_field_first=0|repeat_pict=0|color_range=tv|color_space=smpte170m|color_primaries=smpte170m|color_transfer=bt709|chroma_location=topleft|side_datum/3x3_displaymatrix:side_data_type=3x3 displaymatrix|side_datum/3x3_displaymatrix:displaymatrix=\n00000000: 131072 0 0\n00000001: 0 65536 0\n00000002: 0 0 1073741824\n|side_datum/3x3_displaymatrix:rotation=0|side_datum/h_26_45__user_data_unregistered_sei_message:side_data_type=H.26[45] User Data Unregistered SEI message
packet|codec_type=video|stream_index=0|pts=149584|pts_time=1.662044|dts=143577|dts_time=1.595300|duration=3003|duration_time=0.033367|size=2210|pos=76863|flags=___
-frame|media_type=video|stream_index=0|key_frame=1|pts=143578|pts_time=1.595311|pkt_dts=143577|pkt_dts_time=1.595300|best_effort_timestamp=143578|best_effort_timestamp_time=1.595311|pkt_duration=3003|pkt_duration_time=0.033367|duration=3003|duration_time=0.033367|pkt_pos=74636|pkt_size=2227|width=160|height=240|crop_top=0|crop_bottom=0|crop_left=0|crop_right=0|pix_fmt=yuv420p|sample_aspect_ratio=2:1|pict_type=I|coded_picture_number=48|display_picture_number=0|interlaced_frame=0|top_field_first=0|repeat_pict=0|color_range=tv|color_space=smpte170m|color_primaries=smpte170m|color_transfer=bt709|chroma_location=topleft|side_datum/3x3_displaymatrix:side_data_type=3x3 displaymatrix|side_datum/3x3_displaymatrix:displaymatrix=\n00000000: 131072 0 0\n00000001: 0 65536 0\n00000002: 0 0 1073741824\n|side_datum/3x3_displaymatrix:rotation=0|side_datum/h_26_45__user_data_unregistered_sei_message:side_data_type=H.26[45] User Data Unregistered SEI message
+frame|media_type=video|stream_index=0|key_frame=1|pts=143578|pts_time=1.595311|pkt_dts=143577|pkt_dts_time=1.595300|best_effort_timestamp=143578|best_effort_timestamp_time=1.595311|duration=3003|duration_time=0.033367|pkt_pos=74636|pkt_size=2227|width=160|height=240|crop_top=0|crop_bottom=0|crop_left=0|crop_right=0|pix_fmt=yuv420p|sample_aspect_ratio=2:1|pict_type=I|coded_picture_number=48|display_picture_number=0|interlaced_frame=0|top_field_first=0|repeat_pict=0|color_range=tv|color_space=smpte170m|color_primaries=smpte170m|color_transfer=bt709|chroma_location=topleft|side_datum/3x3_displaymatrix:side_data_type=3x3 displaymatrix|side_datum/3x3_displaymatrix:displaymatrix=\n00000000: 131072 0 0\n00000001: 0 65536 0\n00000002: 0 0 1073741824\n|side_datum/3x3_displaymatrix:rotation=0|side_datum/h_26_45__user_data_unregistered_sei_message:side_data_type=H.26[45] User Data Unregistered SEI message
packet|codec_type=video|stream_index=0|pts=146581|pts_time=1.628678|dts=146580|dts_time=1.628667|duration=3003|duration_time=0.033367|size=1498|pos=79073|flags=___
-frame|media_type=video|stream_index=0|key_frame=0|pts=146581|pts_time=1.628678|pkt_dts=146580|pkt_dts_time=1.628667|best_effort_timestamp=146581|best_effort_timestamp_time=1.628678|pkt_duration=3003|pkt_duration_time=0.033367|duration=3003|duration_time=0.033367|pkt_pos=79073|pkt_size=1498|width=160|height=240|crop_top=0|crop_bottom=0|crop_left=0|crop_right=0|pix_fmt=yuv420p|sample_aspect_ratio=2:1|pict_type=B|coded_picture_number=50|display_picture_number=0|interlaced_frame=0|top_field_first=0|repeat_pict=0|color_range=tv|color_space=smpte170m|color_primaries=smpte170m|color_transfer=bt709|chroma_location=topleft|side_datum/3x3_displaymatrix:side_data_type=3x3 displaymatrix|side_datum/3x3_displaymatrix:displaymatrix=\n00000000: 131072 0 0\n00000001: 0 65536 0\n00000002: 0 0 1073741824\n|side_datum/3x3_displaymatrix:rotation=0|side_datum/h_26_45__user_data_unregistered_sei_message:side_data_type=H.26[45] User Data Unregistered SEI message
+frame|media_type=video|stream_index=0|key_frame=0|pts=146581|pts_time=1.628678|pkt_dts=146580|pkt_dts_time=1.628667|best_effort_timestamp=146581|best_effort_timestamp_time=1.628678|duration=3003|duration_time=0.033367|pkt_pos=79073|pkt_size=1498|width=160|height=240|crop_top=0|crop_bottom=0|crop_left=0|crop_right=0|pix_fmt=yuv420p|sample_aspect_ratio=2:1|pict_type=B|coded_picture_number=50|display_picture_number=0|interlaced_frame=0|top_field_first=0|repeat_pict=0|color_range=tv|color_space=smpte170m|color_primaries=smpte170m|color_transfer=bt709|chroma_location=topleft|side_datum/3x3_displaymatrix:side_data_type=3x3 displaymatrix|side_datum/3x3_displaymatrix:displaymatrix=\n00000000: 131072 0 0\n00000001: 0 65536 0\n00000002: 0 0 1073741824\n|side_datum/3x3_displaymatrix:rotation=0|side_datum/h_26_45__user_data_unregistered_sei_message:side_data_type=H.26[45] User Data Unregistered SEI message
packet|codec_type=video|stream_index=0|pts=155590|pts_time=1.728778|dts=149583|dts_time=1.662033|duration=3003|duration_time=0.033367|size=1721|pos=80571|flags=___
-frame|media_type=video|stream_index=0|key_frame=0|pts=149584|pts_time=1.662044|pkt_dts=149583|pkt_dts_time=1.662033|best_effort_timestamp=149584|best_effort_timestamp_time=1.662044|pkt_duration=3003|pkt_duration_time=0.033367|duration=3003|duration_time=0.033367|pkt_pos=76863|pkt_size=2210|width=160|height=240|crop_top=0|crop_bottom=0|crop_left=0|crop_right=0|pix_fmt=yuv420p|sample_aspect_ratio=2:1|pict_type=P|coded_picture_number=49|display_picture_number=0|interlaced_frame=0|top_field_first=0|repeat_pict=0|color_range=tv|color_space=smpte170m|color_primaries=smpte170m|color_transfer=bt709|chroma_location=topleft|side_datum/3x3_displaymatrix:side_data_type=3x3 displaymatrix|side_datum/3x3_displaymatrix:displaymatrix=\n00000000: 131072 0 0\n00000001: 0 65536 0\n00000002: 0 0 1073741824\n|side_datum/3x3_displaymatrix:rotation=0|side_datum/h_26_45__user_data_unregistered_sei_message:side_data_type=H.26[45] User Data Unregistered SEI message
+frame|media_type=video|stream_index=0|key_frame=0|pts=149584|pts_time=1.662044|pkt_dts=149583|pkt_dts_time=1.662033|best_effort_timestamp=149584|best_effort_timestamp_time=1.662044|duration=3003|duration_time=0.033367|pkt_pos=76863|pkt_size=2210|width=160|height=240|crop_top=0|crop_bottom=0|crop_left=0|crop_right=0|pix_fmt=yuv420p|sample_aspect_ratio=2:1|pict_type=P|coded_picture_number=49|display_picture_number=0|interlaced_frame=0|top_field_first=0|repeat_pict=0|color_range=tv|color_space=smpte170m|color_primaries=smpte170m|color_transfer=bt709|chroma_location=topleft|side_datum/3x3_displaymatrix:side_data_type=3x3 displaymatrix|side_datum/3x3_displaymatrix:displaymatrix=\n00000000: 131072 0 0\n00000001: 0 65536 0\n00000002: 0 0 1073741824\n|side_datum/3x3_displaymatrix:rotation=0|side_datum/h_26_45__user_data_unregistered_sei_message:side_data_type=H.26[45] User Data Unregistered SEI message
packet|codec_type=video|stream_index=0|pts=152587|pts_time=1.695411|dts=152586|dts_time=1.695400|duration=3003|duration_time=0.033367|size=1238|pos=82292|flags=___
-frame|media_type=video|stream_index=0|key_frame=0|pts=152587|pts_time=1.695411|pkt_dts=152586|pkt_dts_time=1.695400|best_effort_timestamp=152587|best_effort_timestamp_time=1.695411|pkt_duration=3003|pkt_duration_time=0.033367|duration=3003|duration_time=0.033367|pkt_pos=82292|pkt_size=1238|width=160|height=240|crop_top=0|crop_bottom=0|crop_left=0|crop_right=0|pix_fmt=yuv420p|sample_aspect_ratio=2:1|pict_type=B|coded_picture_number=52|display_picture_number=0|interlaced_frame=0|top_field_first=0|repeat_pict=0|color_range=tv|color_space=smpte170m|color_primaries=smpte170m|color_transfer=bt709|chroma_location=topleft|side_datum/3x3_displaymatrix:side_data_type=3x3 displaymatrix|side_datum/3x3_displaymatrix:displaymatrix=\n00000000: 131072 0 0\n00000001: 0 65536 0\n00000002: 0 0 1073741824\n|side_datum/3x3_displaymatrix:rotation=0|side_datum/h_26_45__user_data_unregistered_sei_message:side_data_type=H.26[45] User Data Unregistered SEI message
+frame|media_type=video|stream_index=0|key_frame=0|pts=152587|pts_time=1.695411|pkt_dts=152586|pkt_dts_time=1.695400|best_effort_timestamp=152587|best_effort_timestamp_time=1.695411|duration=3003|duration_time=0.033367|pkt_pos=82292|pkt_size=1238|width=160|height=240|crop_top=0|crop_bottom=0|crop_left=0|crop_right=0|pix_fmt=yuv420p|sample_aspect_ratio=2:1|pict_type=B|coded_picture_number=52|display_picture_number=0|interlaced_frame=0|top_field_first=0|repeat_pict=0|color_range=tv|color_space=smpte170m|color_primaries=smpte170m|color_transfer=bt709|chroma_location=topleft|side_datum/3x3_displaymatrix:side_data_type=3x3 displaymatrix|side_datum/3x3_displaymatrix:displaymatrix=\n00000000: 131072 0 0\n00000001: 0 65536 0\n00000002: 0 0 1073741824\n|side_datum/3x3_displaymatrix:rotation=0|side_datum/h_26_45__user_data_unregistered_sei_message:side_data_type=H.26[45] User Data Unregistered SEI message
packet|codec_type=video|stream_index=0|pts=161596|pts_time=1.795511|dts=155589|dts_time=1.728767|duration=3003|duration_time=0.033367|size=1753|pos=83530|flags=___
-frame|media_type=video|stream_index=0|key_frame=0|pts=155590|pts_time=1.728778|pkt_dts=155589|pkt_dts_time=1.728767|best_effort_timestamp=155590|best_effort_timestamp_time=1.728778|pkt_duration=3003|pkt_duration_time=0.033367|duration=3003|duration_time=0.033367|pkt_pos=80571|pkt_size=1721|width=160|height=240|crop_top=0|crop_bottom=0|crop_left=0|crop_right=0|pix_fmt=yuv420p|sample_aspect_ratio=2:1|pict_type=P|coded_picture_number=51|display_picture_number=0|interlaced_frame=0|top_field_first=0|repeat_pict=0|color_range=tv|color_space=smpte170m|color_primaries=smpte170m|color_transfer=bt709|chroma_location=topleft|side_datum/3x3_displaymatrix:side_data_type=3x3 displaymatrix|side_datum/3x3_displaymatrix:displaymatrix=\n00000000: 131072 0 0\n00000001: 0 65536 0\n00000002: 0 0 1073741824\n|side_datum/3x3_displaymatrix:rotation=0|side_datum/h_26_45__user_data_unregistered_sei_message:side_data_type=H.26[45] User Data Unregistered SEI message
+frame|media_type=video|stream_index=0|key_frame=0|pts=155590|pts_time=1.728778|pkt_dts=155589|pkt_dts_time=1.728767|best_effort_timestamp=155590|best_effort_timestamp_time=1.728778|duration=3003|duration_time=0.033367|pkt_pos=80571|pkt_size=1721|width=160|height=240|crop_top=0|crop_bottom=0|crop_left=0|crop_right=0|pix_fmt=yuv420p|sample_aspect_ratio=2:1|pict_type=P|coded_picture_number=51|display_picture_number=0|interlaced_frame=0|top_field_first=0|repeat_pict=0|color_range=tv|color_space=smpte170m|color_primaries=smpte170m|color_transfer=bt709|chroma_location=topleft|side_datum/3x3_displaymatrix:side_data_type=3x3 displaymatrix|side_datum/3x3_displaymatrix:displaymatrix=\n00000000: 131072 0 0\n00000001: 0 65536 0\n00000002: 0 0 1073741824\n|side_datum/3x3_displaymatrix:rotation=0|side_datum/h_26_45__user_data_unregistered_sei_message:side_data_type=H.26[45] User Data Unregistered SEI message
packet|codec_type=video|stream_index=0|pts=158593|pts_time=1.762144|dts=158592|dts_time=1.762133|duration=3003|duration_time=0.033367|size=1014|pos=85283|flags=___
-frame|media_type=video|stream_index=0|key_frame=0|pts=158593|pts_time=1.762144|pkt_dts=158592|pkt_dts_time=1.762133|best_effort_timestamp=158593|best_effort_timestamp_time=1.762144|pkt_duration=3003|pkt_duration_time=0.033367|duration=3003|duration_time=0.033367|pkt_pos=85283|pkt_size=1014|width=160|height=240|crop_top=0|crop_bottom=0|crop_left=0|crop_right=0|pix_fmt=yuv420p|sample_aspect_ratio=2:1|pict_type=B|coded_picture_number=54|display_picture_number=0|interlaced_frame=0|top_field_first=0|repeat_pict=0|color_range=tv|color_space=smpte170m|color_primaries=smpte170m|color_transfer=bt709|chroma_location=topleft|side_datum/3x3_displaymatrix:side_data_type=3x3 displaymatrix|side_datum/3x3_displaymatrix:displaymatrix=\n00000000: 131072 0 0\n00000001: 0 65536 0\n00000002: 0 0 1073741824\n|side_datum/3x3_displaymatrix:rotation=0|side_datum/h_26_45__user_data_unregistered_sei_message:side_data_type=H.26[45] User Data Unregistered SEI message
+frame|media_type=video|stream_index=0|key_frame=0|pts=158593|pts_time=1.762144|pkt_dts=158592|pkt_dts_time=1.762133|best_effort_timestamp=158593|best_effort_timestamp_time=1.762144|duration=3003|duration_time=0.033367|pkt_pos=85283|pkt_size=1014|width=160|height=240|crop_top=0|crop_bottom=0|crop_left=0|crop_right=0|pix_fmt=yuv420p|sample_aspect_ratio=2:1|pict_type=B|coded_picture_number=54|display_picture_number=0|interlaced_frame=0|top_field_first=0|repeat_pict=0|color_range=tv|color_space=smpte170m|color_primaries=smpte170m|color_transfer=bt709|chroma_location=topleft|side_datum/3x3_displaymatrix:side_data_type=3x3 displaymatrix|side_datum/3x3_displaymatrix:displaymatrix=\n00000000: 131072 0 0\n00000001: 0 65536 0\n00000002: 0 0 1073741824\n|side_datum/3x3_displaymatrix:rotation=0|side_datum/h_26_45__user_data_unregistered_sei_message:side_data_type=H.26[45] User Data Unregistered SEI message
packet|codec_type=video|stream_index=0|pts=167602|pts_time=1.862244|dts=161595|dts_time=1.795500|duration=3003|duration_time=0.033367|size=2408|pos=86297|flags=___
-frame|media_type=video|stream_index=0|key_frame=0|pts=161596|pts_time=1.795511|pkt_dts=161595|pkt_dts_time=1.795500|best_effort_timestamp=161596|best_effort_timestamp_time=1.795511|pkt_duration=3003|pkt_duration_time=0.033367|duration=3003|duration_time=0.033367|pkt_pos=83530|pkt_size=1753|width=160|height=240|crop_top=0|crop_bottom=0|crop_left=0|crop_right=0|pix_fmt=yuv420p|sample_aspect_ratio=2:1|pict_type=P|coded_picture_number=53|display_picture_number=0|interlaced_frame=0|top_field_first=0|repeat_pict=0|color_range=tv|color_space=smpte170m|color_primaries=smpte170m|color_transfer=bt709|chroma_location=topleft|side_datum/3x3_displaymatrix:side_data_type=3x3 displaymatrix|side_datum/3x3_displaymatrix:displaymatrix=\n00000000: 131072 0 0\n00000001: 0 65536 0\n00000002: 0 0 1073741824\n|side_datum/3x3_displaymatrix:rotation=0|side_datum/h_26_45__user_data_unregistered_sei_message:side_data_type=H.26[45] User Data Unregistered SEI message
+frame|media_type=video|stream_index=0|key_frame=0|pts=161596|pts_time=1.795511|pkt_dts=161595|pkt_dts_time=1.795500|best_effort_timestamp=161596|best_effort_timestamp_time=1.795511|duration=3003|duration_time=0.033367|pkt_pos=83530|pkt_size=1753|width=160|height=240|crop_top=0|crop_bottom=0|crop_left=0|crop_right=0|pix_fmt=yuv420p|sample_aspect_ratio=2:1|pict_type=P|coded_picture_number=53|display_picture_number=0|interlaced_frame=0|top_field_first=0|repeat_pict=0|color_range=tv|color_space=smpte170m|color_primaries=smpte170m|color_transfer=bt709|chroma_location=topleft|side_datum/3x3_displaymatrix:side_data_type=3x3 displaymatrix|side_datum/3x3_displaymatrix:displaymatrix=\n00000000: 131072 0 0\n00000001: 0 65536 0\n00000002: 0 0 1073741824\n|side_datum/3x3_displaymatrix:rotation=0|side_datum/h_26_45__user_data_unregistered_sei_message:side_data_type=H.26[45] User Data Unregistered SEI message
packet|codec_type=video|stream_index=0|pts=164599|pts_time=1.828878|dts=164598|dts_time=1.828867|duration=3003|duration_time=0.033367|size=1727|pos=88705|flags=___
-frame|media_type=video|stream_index=0|key_frame=0|pts=164599|pts_time=1.828878|pkt_dts=164598|pkt_dts_time=1.828867|best_effort_timestamp=164599|best_effort_timestamp_time=1.828878|pkt_duration=3003|pkt_duration_time=0.033367|duration=3003|duration_time=0.033367|pkt_pos=88705|pkt_size=1727|width=160|height=240|crop_top=0|crop_bottom=0|crop_left=0|crop_right=0|pix_fmt=yuv420p|sample_aspect_ratio=2:1|pict_type=B|coded_picture_number=56|display_picture_number=0|interlaced_frame=0|top_field_first=0|repeat_pict=0|color_range=tv|color_space=smpte170m|color_primaries=smpte170m|color_transfer=bt709|chroma_location=topleft|side_datum/3x3_displaymatrix:side_data_type=3x3 displaymatrix|side_datum/3x3_displaymatrix:displaymatrix=\n00000000: 131072 0 0\n00000001: 0 65536 0\n00000002: 0 0 1073741824\n|side_datum/3x3_displaymatrix:rotation=0|side_datum/h_26_45__user_data_unregistered_sei_message:side_data_type=H.26[45] User Data Unregistered SEI message
+frame|media_type=video|stream_index=0|key_frame=0|pts=164599|pts_time=1.828878|pkt_dts=164598|pkt_dts_time=1.828867|best_effort_timestamp=164599|best_effort_timestamp_time=1.828878|duration=3003|duration_time=0.033367|pkt_pos=88705|pkt_size=1727|width=160|height=240|crop_top=0|crop_bottom=0|crop_left=0|crop_right=0|pix_fmt=yuv420p|sample_aspect_ratio=2:1|pict_type=B|coded_picture_number=56|display_picture_number=0|interlaced_frame=0|top_field_first=0|repeat_pict=0|color_range=tv|color_space=smpte170m|color_primaries=smpte170m|color_transfer=bt709|chroma_location=topleft|side_datum/3x3_displaymatrix:side_data_type=3x3 displaymatrix|side_datum/3x3_displaymatrix:displaymatrix=\n00000000: 131072 0 0\n00000001: 0 65536 0\n00000002: 0 0 1073741824\n|side_datum/3x3_displaymatrix:rotation=0|side_datum/h_26_45__user_data_unregistered_sei_message:side_data_type=H.26[45] User Data Unregistered SEI message
packet|codec_type=video|stream_index=0|pts=173608|pts_time=1.928978|dts=167601|dts_time=1.862233|duration=3003|duration_time=0.033367|size=1504|pos=90432|flags=___
-frame|media_type=video|stream_index=0|key_frame=0|pts=167602|pts_time=1.862244|pkt_dts=167601|pkt_dts_time=1.862233|best_effort_timestamp=167602|best_effort_timestamp_time=1.862244|pkt_duration=3003|pkt_duration_time=0.033367|duration=3003|duration_time=0.033367|pkt_pos=86297|pkt_size=2408|width=160|height=240|crop_top=0|crop_bottom=0|crop_left=0|crop_right=0|pix_fmt=yuv420p|sample_aspect_ratio=2:1|pict_type=P|coded_picture_number=55|display_picture_number=0|interlaced_frame=0|top_field_first=0|repeat_pict=0|color_range=tv|color_space=smpte170m|color_primaries=smpte170m|color_transfer=bt709|chroma_location=topleft|side_datum/3x3_displaymatrix:side_data_type=3x3 displaymatrix|side_datum/3x3_displaymatrix:displaymatrix=\n00000000: 131072 0 0\n00000001: 0 65536 0\n00000002: 0 0 1073741824\n|side_datum/3x3_displaymatrix:rotation=0|side_datum/h_26_45__user_data_unregistered_sei_message:side_data_type=H.26[45] User Data Unregistered SEI message
+frame|media_type=video|stream_index=0|key_frame=0|pts=167602|pts_time=1.862244|pkt_dts=167601|pkt_dts_time=1.862233|best_effort_timestamp=167602|best_effort_timestamp_time=1.862244|duration=3003|duration_time=0.033367|pkt_pos=86297|pkt_size=2408|width=160|height=240|crop_top=0|crop_bottom=0|crop_left=0|crop_right=0|pix_fmt=yuv420p|sample_aspect_ratio=2:1|pict_type=P|coded_picture_number=55|display_picture_number=0|interlaced_frame=0|top_field_first=0|repeat_pict=0|color_range=tv|color_space=smpte170m|color_primaries=smpte170m|color_transfer=bt709|chroma_location=topleft|side_datum/3x3_displaymatrix:side_data_type=3x3 displaymatrix|side_datum/3x3_displaymatrix:displaymatrix=\n00000000: 131072 0 0\n00000001: 0 65536 0\n00000002: 0 0 1073741824\n|side_datum/3x3_displaymatrix:rotation=0|side_datum/h_26_45__user_data_unregistered_sei_message:side_data_type=H.26[45] User Data Unregistered SEI message
packet|codec_type=video|stream_index=0|pts=170605|pts_time=1.895611|dts=170604|dts_time=1.895600|duration=3003|duration_time=0.033367|size=957|pos=91936|flags=___
-frame|media_type=video|stream_index=0|key_frame=0|pts=170605|pts_time=1.895611|pkt_dts=170604|pkt_dts_time=1.895600|best_effort_timestamp=170605|best_effort_timestamp_time=1.895611|pkt_duration=3003|pkt_duration_time=0.033367|duration=3003|duration_time=0.033367|pkt_pos=91936|pkt_size=957|width=160|height=240|crop_top=0|crop_bottom=0|crop_left=0|crop_right=0|pix_fmt=yuv420p|sample_aspect_ratio=2:1|pict_type=B|coded_picture_number=58|display_picture_number=0|interlaced_frame=0|top_field_first=0|repeat_pict=0|color_range=tv|color_space=smpte170m|color_primaries=smpte170m|color_transfer=bt709|chroma_location=topleft|side_datum/3x3_displaymatrix:side_data_type=3x3 displaymatrix|side_datum/3x3_displaymatrix:displaymatrix=\n00000000: 131072 0 0\n00000001: 0 65536 0\n00000002: 0 0 1073741824\n|side_datum/3x3_displaymatrix:rotation=0|side_datum/h_26_45__user_data_unregistered_sei_message:side_data_type=H.26[45] User Data Unregistered SEI message
+frame|media_type=video|stream_index=0|key_frame=0|pts=170605|pts_time=1.895611|pkt_dts=170604|pkt_dts_time=1.895600|best_effort_timestamp=170605|best_effort_timestamp_time=1.895611|duration=3003|duration_time=0.033367|pkt_pos=91936|pkt_size=957|width=160|height=240|crop_top=0|crop_bottom=0|crop_left=0|crop_right=0|pix_fmt=yuv420p|sample_aspect_ratio=2:1|pict_type=B|coded_picture_number=58|display_picture_number=0|interlaced_frame=0|top_field_first=0|repeat_pict=0|color_range=tv|color_space=smpte170m|color_primaries=smpte170m|color_transfer=bt709|chroma_location=topleft|side_datum/3x3_displaymatrix:side_data_type=3x3 displaymatrix|side_datum/3x3_displaymatrix:displaymatrix=\n00000000: 131072 0 0\n00000001: 0 65536 0\n00000002: 0 0 1073741824\n|side_datum/3x3_displaymatrix:rotation=0|side_datum/h_26_45__user_data_unregistered_sei_message:side_data_type=H.26[45] User Data Unregistered SEI message
packet|codec_type=video|stream_index=0|pts=179614|pts_time=1.995711|dts=173607|dts_time=1.928967|duration=3003|duration_time=0.033367|size=1890|pos=92893|flags=___
-frame|media_type=video|stream_index=0|key_frame=0|pts=173608|pts_time=1.928978|pkt_dts=173607|pkt_dts_time=1.928967|best_effort_timestamp=173608|best_effort_timestamp_time=1.928978|pkt_duration=3003|pkt_duration_time=0.033367|duration=3003|duration_time=0.033367|pkt_pos=90432|pkt_size=1504|width=160|height=240|crop_top=0|crop_bottom=0|crop_left=0|crop_right=0|pix_fmt=yuv420p|sample_aspect_ratio=2:1|pict_type=P|coded_picture_number=57|display_picture_number=0|interlaced_frame=0|top_field_first=0|repeat_pict=0|color_range=tv|color_space=smpte170m|color_primaries=smpte170m|color_transfer=bt709|chroma_location=topleft|side_datum/3x3_displaymatrix:side_data_type=3x3 displaymatrix|side_datum/3x3_displaymatrix:displaymatrix=\n00000000: 131072 0 0\n00000001: 0 65536 0\n00000002: 0 0 1073741824\n|side_datum/3x3_displaymatrix:rotation=0|side_datum/h_26_45__user_data_unregistered_sei_message:side_data_type=H.26[45] User Data Unregistered SEI message
+frame|media_type=video|stream_index=0|key_frame=0|pts=173608|pts_time=1.928978|pkt_dts=173607|pkt_dts_time=1.928967|best_effort_timestamp=173608|best_effort_timestamp_time=1.928978|duration=3003|duration_time=0.033367|pkt_pos=90432|pkt_size=1504|width=160|height=240|crop_top=0|crop_bottom=0|crop_left=0|crop_right=0|pix_fmt=yuv420p|sample_aspect_ratio=2:1|pict_type=P|coded_picture_number=57|display_picture_number=0|interlaced_frame=0|top_field_first=0|repeat_pict=0|color_range=tv|color_space=smpte170m|color_primaries=smpte170m|color_transfer=bt709|chroma_location=topleft|side_datum/3x3_displaymatrix:side_data_type=3x3 displaymatrix|side_datum/3x3_displaymatrix:displaymatrix=\n00000000: 131072 0 0\n00000001: 0 65536 0\n00000002: 0 0 1073741824\n|side_datum/3x3_displaymatrix:rotation=0|side_datum/h_26_45__user_data_unregistered_sei_message:side_data_type=H.26[45] User Data Unregistered SEI message
packet|codec_type=video|stream_index=0|pts=176611|pts_time=1.962344|dts=176610|dts_time=1.962333|duration=3003|duration_time=0.033367|size=1239|pos=94783|flags=___
-frame|media_type=video|stream_index=0|key_frame=0|pts=176611|pts_time=1.962344|pkt_dts=176610|pkt_dts_time=1.962333|best_effort_timestamp=176611|best_effort_timestamp_time=1.962344|pkt_duration=3003|pkt_duration_time=0.033367|duration=3003|duration_time=0.033367|pkt_pos=94783|pkt_size=1239|width=160|height=240|crop_top=0|crop_bottom=0|crop_left=0|crop_right=0|pix_fmt=yuv420p|sample_aspect_ratio=2:1|pict_type=B|coded_picture_number=60|display_picture_number=0|interlaced_frame=0|top_field_first=0|repeat_pict=0|color_range=tv|color_space=smpte170m|color_primaries=smpte170m|color_transfer=bt709|chroma_location=topleft|side_datum/3x3_displaymatrix:side_data_type=3x3 displaymatrix|side_datum/3x3_displaymatrix:displaymatrix=\n00000000: 131072 0 0\n00000001: 0 65536 0\n00000002: 0 0 1073741824\n|side_datum/3x3_displaymatrix:rotation=0|side_datum/h_26_45__user_data_unregistered_sei_message:side_data_type=H.26[45] User Data Unregistered SEI message
+frame|media_type=video|stream_index=0|key_frame=0|pts=176611|pts_time=1.962344|pkt_dts=176610|pkt_dts_time=1.962333|best_effort_timestamp=176611|best_effort_timestamp_time=1.962344|duration=3003|duration_time=0.033367|pkt_pos=94783|pkt_size=1239|width=160|height=240|crop_top=0|crop_bottom=0|crop_left=0|crop_right=0|pix_fmt=yuv420p|sample_aspect_ratio=2:1|pict_type=B|coded_picture_number=60|display_picture_number=0|interlaced_frame=0|top_field_first=0|repeat_pict=0|color_range=tv|color_space=smpte170m|color_primaries=smpte170m|color_transfer=bt709|chroma_location=topleft|side_datum/3x3_displaymatrix:side_data_type=3x3 displaymatrix|side_datum/3x3_displaymatrix:displaymatrix=\n00000000: 131072 0 0\n00000001: 0 65536 0\n00000002: 0 0 1073741824\n|side_datum/3x3_displaymatrix:rotation=0|side_datum/h_26_45__user_data_unregistered_sei_message:side_data_type=H.26[45] User Data Unregistered SEI message
packet|codec_type=video|stream_index=0|pts=185620|pts_time=2.062444|dts=179613|dts_time=1.995700|duration=3003|duration_time=0.033367|size=1856|pos=96022|flags=___
-frame|media_type=video|stream_index=0|key_frame=0|pts=179614|pts_time=1.995711|pkt_dts=179613|pkt_dts_time=1.995700|best_effort_timestamp=179614|best_effort_timestamp_time=1.995711|pkt_duration=3003|pkt_duration_time=0.033367|duration=3003|duration_time=0.033367|pkt_pos=92893|pkt_size=1890|width=160|height=240|crop_top=0|crop_bottom=0|crop_left=0|crop_right=0|pix_fmt=yuv420p|sample_aspect_ratio=2:1|pict_type=P|coded_picture_number=59|display_picture_number=0|interlaced_frame=0|top_field_first=0|repeat_pict=0|color_range=tv|color_space=smpte170m|color_primaries=smpte170m|color_transfer=bt709|chroma_location=topleft|side_datum/3x3_displaymatrix:side_data_type=3x3 displaymatrix|side_datum/3x3_displaymatrix:displaymatrix=\n00000000: 131072 0 0\n00000001: 0 65536 0\n00000002: 0 0 1073741824\n|side_datum/3x3_displaymatrix:rotation=0|side_datum/h_26_45__user_data_unregistered_sei_message:side_data_type=H.26[45] User Data Unregistered SEI message
+frame|media_type=video|stream_index=0|key_frame=0|pts=179614|pts_time=1.995711|pkt_dts=179613|pkt_dts_time=1.995700|best_effort_timestamp=179614|best_effort_timestamp_time=1.995711|duration=3003|duration_time=0.033367|pkt_pos=92893|pkt_size=1890|width=160|height=240|crop_top=0|crop_bottom=0|crop_left=0|crop_right=0|pix_fmt=yuv420p|sample_aspect_ratio=2:1|pict_type=P|coded_picture_number=59|display_picture_number=0|interlaced_frame=0|top_field_first=0|repeat_pict=0|color_range=tv|color_space=smpte170m|color_primaries=smpte170m|color_transfer=bt709|chroma_location=topleft|side_datum/3x3_displaymatrix:side_data_type=3x3 displaymatrix|side_datum/3x3_displaymatrix:displaymatrix=\n00000000: 131072 0 0\n00000001: 0 65536 0\n00000002: 0 0 1073741824\n|side_datum/3x3_displaymatrix:rotation=0|side_datum/h_26_45__user_data_unregistered_sei_message:side_data_type=H.26[45] User Data Unregistered SEI message
packet|codec_type=video|stream_index=0|pts=182617|pts_time=2.029078|dts=182616|dts_time=2.029067|duration=3003|duration_time=0.033367|size=1302|pos=97878|flags=___
-frame|media_type=video|stream_index=0|key_frame=0|pts=182617|pts_time=2.029078|pkt_dts=182616|pkt_dts_time=2.029067|best_effort_timestamp=182617|best_effort_timestamp_time=2.029078|pkt_duration=3003|pkt_duration_time=0.033367|duration=3003|duration_time=0.033367|pkt_pos=97878|pkt_size=1302|width=160|height=240|crop_top=0|crop_bottom=0|crop_left=0|crop_right=0|pix_fmt=yuv420p|sample_aspect_ratio=2:1|pict_type=B|coded_picture_number=62|display_picture_number=0|interlaced_frame=0|top_field_first=0|repeat_pict=0|color_range=tv|color_space=smpte170m|color_primaries=smpte170m|color_transfer=bt709|chroma_location=topleft|side_datum/3x3_displaymatrix:side_data_type=3x3 displaymatrix|side_datum/3x3_displaymatrix:displaymatrix=\n00000000: 131072 0 0\n00000001: 0 65536 0\n00000002: 0 0 1073741824\n|side_datum/3x3_displaymatrix:rotation=0|side_datum/h_26_45__user_data_unregistered_sei_message:side_data_type=H.26[45] User Data Unregistered SEI message
+frame|media_type=video|stream_index=0|key_frame=0|pts=182617|pts_time=2.029078|pkt_dts=182616|pkt_dts_time=2.029067|best_effort_timestamp=182617|best_effort_timestamp_time=2.029078|duration=3003|duration_time=0.033367|pkt_pos=97878|pkt_size=1302|width=160|height=240|crop_top=0|crop_bottom=0|crop_left=0|crop_right=0|pix_fmt=yuv420p|sample_aspect_ratio=2:1|pict_type=B|coded_picture_number=62|display_picture_number=0|interlaced_frame=0|top_field_first=0|repeat_pict=0|color_range=tv|color_space=smpte170m|color_primaries=smpte170m|color_transfer=bt709|chroma_location=topleft|side_datum/3x3_displaymatrix:side_data_type=3x3 displaymatrix|side_datum/3x3_displaymatrix:displaymatrix=\n00000000: 131072 0 0\n00000001: 0 65536 0\n00000002: 0 0 1073741824\n|side_datum/3x3_displaymatrix:rotation=0|side_datum/h_26_45__user_data_unregistered_sei_message:side_data_type=H.26[45] User Data Unregistered SEI message
packet|codec_type=video|stream_index=0|pts=191626|pts_time=2.129178|dts=185619|dts_time=2.062433|duration=3003|duration_time=0.033367|size=1666|pos=99180|flags=___
-frame|media_type=video|stream_index=0|key_frame=0|pts=185620|pts_time=2.062444|pkt_dts=185619|pkt_dts_time=2.062433|best_effort_timestamp=185620|best_effort_timestamp_time=2.062444|pkt_duration=3003|pkt_duration_time=0.033367|duration=3003|duration_time=0.033367|pkt_pos=96022|pkt_size=1856|width=160|height=240|crop_top=0|crop_bottom=0|crop_left=0|crop_right=0|pix_fmt=yuv420p|sample_aspect_ratio=2:1|pict_type=P|coded_picture_number=61|display_picture_number=0|interlaced_frame=0|top_field_first=0|repeat_pict=0|color_range=tv|color_space=smpte170m|color_primaries=smpte170m|color_transfer=bt709|chroma_location=topleft|side_datum/3x3_displaymatrix:side_data_type=3x3 displaymatrix|side_datum/3x3_displaymatrix:displaymatrix=\n00000000: 131072 0 0\n00000001: 0 65536 0\n00000002: 0 0 1073741824\n|side_datum/3x3_displaymatrix:rotation=0|side_datum/h_26_45__user_data_unregistered_sei_message:side_data_type=H.26[45] User Data Unregistered SEI message
+frame|media_type=video|stream_index=0|key_frame=0|pts=185620|pts_time=2.062444|pkt_dts=185619|pkt_dts_time=2.062433|best_effort_timestamp=185620|best_effort_timestamp_time=2.062444|duration=3003|duration_time=0.033367|pkt_pos=96022|pkt_size=1856|width=160|height=240|crop_top=0|crop_bottom=0|crop_left=0|crop_right=0|pix_fmt=yuv420p|sample_aspect_ratio=2:1|pict_type=P|coded_picture_number=61|display_picture_number=0|interlaced_frame=0|top_field_first=0|repeat_pict=0|color_range=tv|color_space=smpte170m|color_primaries=smpte170m|color_transfer=bt709|chroma_location=topleft|side_datum/3x3_displaymatrix:side_data_type=3x3 displaymatrix|side_datum/3x3_displaymatrix:displaymatrix=\n00000000: 131072 0 0\n00000001: 0 65536 0\n00000002: 0 0 1073741824\n|side_datum/3x3_displaymatrix:rotation=0|side_datum/h_26_45__user_data_unregistered_sei_message:side_data_type=H.26[45] User Data Unregistered SEI message
packet|codec_type=video|stream_index=0|pts=188623|pts_time=2.095811|dts=188622|dts_time=2.095800|duration=3003|duration_time=0.033367|size=974|pos=100846|flags=___
-frame|media_type=video|stream_index=0|key_frame=0|pts=188623|pts_time=2.095811|pkt_dts=188622|pkt_dts_time=2.095800|best_effort_timestamp=188623|best_effort_timestamp_time=2.095811|pkt_duration=3003|pkt_duration_time=0.033367|duration=3003|duration_time=0.033367|pkt_pos=100846|pkt_size=974|width=160|height=240|crop_top=0|crop_bottom=0|crop_left=0|crop_right=0|pix_fmt=yuv420p|sample_aspect_ratio=2:1|pict_type=B|coded_picture_number=64|display_picture_number=0|interlaced_frame=0|top_field_first=0|repeat_pict=0|color_range=tv|color_space=smpte170m|color_primaries=smpte170m|color_transfer=bt709|chroma_location=topleft|side_datum/3x3_displaymatrix:side_data_type=3x3 displaymatrix|side_datum/3x3_displaymatrix:displaymatrix=\n00000000: 131072 0 0\n00000001: 0 65536 0\n00000002: 0 0 1073741824\n|side_datum/3x3_displaymatrix:rotation=0|side_datum/h_26_45__user_data_unregistered_sei_message:side_data_type=H.26[45] User Data Unregistered SEI message
+frame|media_type=video|stream_index=0|key_frame=0|pts=188623|pts_time=2.095811|pkt_dts=188622|pkt_dts_time=2.095800|best_effort_timestamp=188623|best_effort_timestamp_time=2.095811|duration=3003|duration_time=0.033367|pkt_pos=100846|pkt_size=974|width=160|height=240|crop_top=0|crop_bottom=0|crop_left=0|crop_right=0|pix_fmt=yuv420p|sample_aspect_ratio=2:1|pict_type=B|coded_picture_number=64|display_picture_number=0|interlaced_frame=0|top_field_first=0|repeat_pict=0|color_range=tv|color_space=smpte170m|color_primaries=smpte170m|color_transfer=bt709|chroma_location=topleft|side_datum/3x3_displaymatrix:side_data_type=3x3 displaymatrix|side_datum/3x3_displaymatrix:displaymatrix=\n00000000: 131072 0 0\n00000001: 0 65536 0\n00000002: 0 0 1073741824\n|side_datum/3x3_displaymatrix:rotation=0|side_datum/h_26_45__user_data_unregistered_sei_message:side_data_type=H.26[45] User Data Unregistered SEI message
packet|codec_type=video|stream_index=0|pts=197632|pts_time=2.195911|dts=191625|dts_time=2.129167|duration=3003|duration_time=0.033367|size=580|pos=101820|flags=__C
-frame|media_type=video|stream_index=0|key_frame=0|pts=191626|pts_time=2.129178|pkt_dts=N/A|pkt_dts_time=N/A|best_effort_timestamp=191626|best_effort_timestamp_time=2.129178|pkt_duration=3003|pkt_duration_time=0.033367|duration=3003|duration_time=0.033367|pkt_pos=99180|pkt_size=1666|width=160|height=240|crop_top=0|crop_bottom=0|crop_left=0|crop_right=0|pix_fmt=yuv420p|sample_aspect_ratio=2:1|pict_type=P|coded_picture_number=63|display_picture_number=0|interlaced_frame=0|top_field_first=0|repeat_pict=0|color_range=tv|color_space=smpte170m|color_primaries=smpte170m|color_transfer=bt709|chroma_location=topleft|side_datum/3x3_displaymatrix:side_data_type=3x3 displaymatrix|side_datum/3x3_displaymatrix:displaymatrix=\n00000000: 131072 0 0\n00000001: 0 65536 0\n00000002: 0 0 1073741824\n|side_datum/3x3_displaymatrix:rotation=0|side_datum/h_26_45__user_data_unregistered_sei_message:side_data_type=H.26[45] User Data Unregistered SEI message
+frame|media_type=video|stream_index=0|key_frame=0|pts=191626|pts_time=2.129178|pkt_dts=N/A|pkt_dts_time=N/A|best_effort_timestamp=191626|best_effort_timestamp_time=2.129178|duration=3003|duration_time=0.033367|pkt_pos=99180|pkt_size=1666|width=160|height=240|crop_top=0|crop_bottom=0|crop_left=0|crop_right=0|pix_fmt=yuv420p|sample_aspect_ratio=2:1|pict_type=P|coded_picture_number=63|display_picture_number=0|interlaced_frame=0|top_field_first=0|repeat_pict=0|color_range=tv|color_space=smpte170m|color_primaries=smpte170m|color_transfer=bt709|chroma_location=topleft|side_datum/3x3_displaymatrix:side_data_type=3x3 displaymatrix|side_datum/3x3_displaymatrix:displaymatrix=\n00000000: 131072 0 0\n00000001: 0 65536 0\n00000002: 0 0 1073741824\n|side_datum/3x3_displaymatrix:rotation=0|side_datum/h_26_45__user_data_unregistered_sei_message:side_data_type=H.26[45] User Data Unregistered SEI message
stream|index=0|codec_name=h264|profile=77|codec_type=video|codec_tag_string=avc1|codec_tag=0x31637661|width=160|height=240|coded_width=160|coded_height=240|closed_captions=0|film_grain=0|has_b_frames=1|sample_aspect_ratio=2:1|display_aspect_ratio=4:3|pix_fmt=yuv420p|level=12|color_range=tv|color_space=smpte170m|color_transfer=bt709|color_primaries=smpte170m|chroma_location=topleft|field_order=progressive|refs=2|is_avc=true|nal_length_size=4|id=0x1|r_frame_rate=30000/1001|avg_frame_rate=6372000/212521|time_base=1/90000|start_pts=0|start_time=0.000000|duration_ts=2125200|duration=23.613333|bit_rate=333874|max_bit_rate=N/A|bits_per_raw_sample=8|nb_frames=708|nb_read_frames=65|nb_read_packets=66|extradata_size=34|disposition:default=1|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|tag:creation_time=2008-05-12T20:59:27.000000Z|tag:language=eng|tag:handler_name=Apple Video Media Handler|tag:vendor_id=appl|tag:encoder=H.264|side_datum/display_matrix:side_data_type=Display Matrix|side_datum/display_matrix:displaymatrix=\n00000000: 131072 0 0\n00000001: 0 65536 0\n00000002: 0 0 1073741824\n|side_datum/display_matrix:rotation=0
diff --git a/tests/ref/fate/png-icc b/tests/ref/fate/png-icc
index 8927cb331a..417cbcb91d 100644
--- a/tests/ref/fate/png-icc
+++ b/tests/ref/fate/png-icc
@@ -16,8 +16,6 @@ pkt_dts=0
pkt_dts_time=0.000000
best_effort_timestamp=0
best_effort_timestamp_time=0.000000
-pkt_duration=1
-pkt_duration_time=0.040000
duration=1
duration_time=0.040000
pkt_pos=0
diff --git a/tests/ref/fate/png-side-data b/tests/ref/fate/png-side-data
index 629971bd23..0d1f88ccb2 100644
--- a/tests/ref/fate/png-side-data
+++ b/tests/ref/fate/png-side-data
@@ -8,8 +8,6 @@ pkt_dts=0
pkt_dts_time=0.000000
best_effort_timestamp=0
best_effort_timestamp_time=0.000000
-pkt_duration=1
-pkt_duration_time=0.040000
duration=1
duration_time=0.040000
pkt_pos=0
--
2.43.0
_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
To unsubscribe, visit link above, or email
ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".
^ permalink raw reply [flat|nested] 60+ messages in thread
* [FFmpeg-devel] [PATCH 19/24] avutil: remove deprecated FF_API_REORDERED_OPAQUE
2024-01-25 13:43 [FFmpeg-devel] [PATCH 00/24] Major library version bump James Almer
` (17 preceding siblings ...)
2024-01-25 13:43 ` [FFmpeg-devel] [PATCH 18/24] avutil: remove deprecated FF_API_PKT_DURATION James Almer
@ 2024-01-25 13:43 ` James Almer
2024-01-25 13:43 ` [FFmpeg-devel] [PATCH 20/24] avutil: remove deprecated FF_API_FRAME_PICTURE_NUMBER James Almer
` (22 subsequent siblings)
41 siblings, 0 replies; 60+ messages in thread
From: James Almer @ 2024-01-25 13:43 UTC (permalink / raw)
To: ffmpeg-devel
Signed-off-by: James Almer <jamrial@gmail.com>
---
libavcodec/avcodec.h | 16 ----------------
libavcodec/decode.c | 5 -----
libavcodec/encode.c | 6 ------
libavcodec/libdav1d.c | 22 +---------------------
libavcodec/librav1e.c | 13 -------------
libavcodec/libvpxenc.c | 14 --------------
libavcodec/libwebpenc_animencoder.c | 13 -------------
libavcodec/libx264.c | 18 ------------------
libavcodec/libx265.c | 20 --------------------
libavcodec/nvenc.c | 12 ------------
libavcodec/nvenc.h | 4 ----
libavcodec/options.c | 5 -----
libavcodec/pthread_frame.c | 5 -----
libavutil/frame.c | 5 -----
libavutil/frame.h | 15 ---------------
libavutil/version.h | 1 -
16 files changed, 1 insertion(+), 173 deletions(-)
diff --git a/libavcodec/avcodec.h b/libavcodec/avcodec.h
index c99ec59c29..a9b08bd4ce 100644
--- a/libavcodec/avcodec.h
+++ b/libavcodec/avcodec.h
@@ -1349,22 +1349,6 @@ typedef struct AVCodecContext {
*/
int err_recognition;
-#if FF_API_REORDERED_OPAQUE
- /**
- * opaque 64-bit number (generally a PTS) that will be reordered and
- * output in AVFrame.reordered_opaque
- * - encoding: Set by libavcodec to the reordered_opaque of the input
- * frame corresponding to the last returned packet. Only
- * supported by encoders with the
- * AV_CODEC_CAP_ENCODER_REORDERED_OPAQUE capability.
- * - decoding: Set by user.
- *
- * @deprecated Use AV_CODEC_FLAG_COPY_OPAQUE instead
- */
- attribute_deprecated
- int64_t reordered_opaque;
-#endif
-
/**
* Hardware accelerator in use
* - encoding: unused.
diff --git a/libavcodec/decode.c b/libavcodec/decode.c
index 4dc308ef64..f262a0379d 100644
--- a/libavcodec/decode.c
+++ b/libavcodec/decode.c
@@ -1473,11 +1473,6 @@ FF_DISABLE_DEPRECATION_WARNINGS
FF_ENABLE_DEPRECATION_WARNINGS
#endif
}
-#if FF_API_REORDERED_OPAQUE
-FF_DISABLE_DEPRECATION_WARNINGS
- frame->reordered_opaque = avctx->reordered_opaque;
-FF_ENABLE_DEPRECATION_WARNINGS
-#endif
ret = fill_frame_props(avctx, frame);
if (ret < 0)
diff --git a/libavcodec/encode.c b/libavcodec/encode.c
index 6b0a16fc0b..e1a09eae86 100644
--- a/libavcodec/encode.c
+++ b/libavcodec/encode.c
@@ -234,12 +234,6 @@ FF_ENABLE_DEPRECATION_WARNINGS
int ff_encode_reordered_opaque(AVCodecContext *avctx,
AVPacket *pkt, const AVFrame *frame)
{
-#if FF_API_REORDERED_OPAQUE
-FF_DISABLE_DEPRECATION_WARNINGS
- avctx->reordered_opaque = frame->reordered_opaque;
-FF_ENABLE_DEPRECATION_WARNINGS
-#endif
-
if (avctx->flags & AV_CODEC_FLAG_COPY_OPAQUE) {
int ret = av_buffer_replace(&pkt->opaque_ref, frame->opaque_ref);
if (ret < 0)
diff --git a/libavcodec/libdav1d.c b/libavcodec/libdav1d.c
index 11cdbca274..98ef4366ef 100644
--- a/libavcodec/libdav1d.c
+++ b/libavcodec/libdav1d.c
@@ -298,9 +298,6 @@ static void libdav1d_flush(AVCodecContext *c)
typedef struct OpaqueData {
void *pkt_orig_opaque;
-#if FF_API_REORDERED_OPAQUE
- int64_t reordered_opaque;
-#endif
} OpaqueData;
static void libdav1d_data_free(const uint8_t *data, void *opaque) {
@@ -346,12 +343,7 @@ static int libdav1d_receive_frame_internal(AVCodecContext *c, Dav1dPicture *p)
pkt->buf = NULL;
-FF_DISABLE_DEPRECATION_WARNINGS
- if (
-#if FF_API_REORDERED_OPAQUE
- c->reordered_opaque != AV_NOPTS_VALUE ||
-#endif
- (pkt->opaque && (c->flags & AV_CODEC_FLAG_COPY_OPAQUE))) {
+ if (pkt->opaque && (c->flags & AV_CODEC_FLAG_COPY_OPAQUE)) {
od = av_mallocz(sizeof(*od));
if (!od) {
av_packet_free(&pkt);
@@ -359,10 +351,6 @@ FF_DISABLE_DEPRECATION_WARNINGS
return AVERROR(ENOMEM);
}
od->pkt_orig_opaque = pkt->opaque;
-#if FF_API_REORDERED_OPAQUE
- od->reordered_opaque = c->reordered_opaque;
-#endif
-FF_ENABLE_DEPRECATION_WARNINGS
}
pkt->opaque = od;
@@ -464,14 +452,6 @@ static int libdav1d_receive_frame(AVCodecContext *c, AVFrame *frame)
pkt = (AVPacket *)p->m.user_data.data;
od = pkt->opaque;
-#if FF_API_REORDERED_OPAQUE
-FF_DISABLE_DEPRECATION_WARNINGS
- if (od && od->reordered_opaque != AV_NOPTS_VALUE)
- frame->reordered_opaque = od->reordered_opaque;
- else
- frame->reordered_opaque = AV_NOPTS_VALUE;
-FF_ENABLE_DEPRECATION_WARNINGS
-#endif
// restore the original user opaque value for
// ff_decode_frame_props_from_pkt()
diff --git a/libavcodec/librav1e.c b/libavcodec/librav1e.c
index 56539435a7..dbd728a408 100644
--- a/libavcodec/librav1e.c
+++ b/libavcodec/librav1e.c
@@ -57,9 +57,6 @@ typedef struct librav1eContext {
typedef struct FrameData {
int64_t pts;
int64_t duration;
-#if FF_API_REORDERED_OPAQUE
- int64_t reordered_opaque;
-#endif
void *frame_opaque;
AVBufferRef *frame_opaque_ref;
@@ -472,11 +469,6 @@ static int librav1e_receive_packet(AVCodecContext *avctx, AVPacket *pkt)
}
fd->pts = frame->pts;
fd->duration = frame->duration;
-#if FF_API_REORDERED_OPAQUE
-FF_DISABLE_DEPRECATION_WARNINGS
- fd->reordered_opaque = frame->reordered_opaque;
-FF_ENABLE_DEPRECATION_WARNINGS
-#endif
if (avctx->flags & AV_CODEC_FLAG_COPY_OPAQUE) {
fd->frame_opaque = frame->opaque;
@@ -583,11 +575,6 @@ retry:
fd = rpkt->opaque;
pkt->pts = pkt->dts = fd->pts;
pkt->duration = fd->duration;
-#if FF_API_REORDERED_OPAQUE
-FF_DISABLE_DEPRECATION_WARNINGS
- avctx->reordered_opaque = fd->reordered_opaque;
-FF_ENABLE_DEPRECATION_WARNINGS
-#endif
if (avctx->flags & AV_CODEC_FLAG_COPY_OPAQUE) {
pkt->opaque = fd->frame_opaque;
diff --git a/libavcodec/libvpxenc.c b/libavcodec/libvpxenc.c
index 80988a2608..0c48f9c14f 100644
--- a/libavcodec/libvpxenc.c
+++ b/libavcodec/libvpxenc.c
@@ -68,9 +68,6 @@ typedef struct FrameData {
int64_t pts;
int64_t duration;
-#if FF_API_REORDERED_OPAQUE
- int64_t reordered_opaque;
-#endif
void *frame_opaque;
AVBufferRef *frame_opaque_ref;
@@ -379,11 +376,6 @@ static int frame_data_submit(AVCodecContext *avctx, AVFifo *fifo,
if (ret < 0)
goto fail;
}
-#if FF_API_REORDERED_OPAQUE
-FF_DISABLE_DEPRECATION_WARNINGS
- fd.reordered_opaque = frame->reordered_opaque;
-FF_ENABLE_DEPRECATION_WARNINGS
-#endif
ret = av_fifo_write(fifo, &fd, 1);
if (ret < 0)
@@ -410,12 +402,6 @@ static int frame_data_apply(AVCodecContext *avctx, AVFifo *fifo, AVPacket *pkt)
goto skip;
}
-#if FF_API_REORDERED_OPAQUE
-FF_DISABLE_DEPRECATION_WARNINGS
- avctx->reordered_opaque = fd.reordered_opaque;
-FF_ENABLE_DEPRECATION_WARNINGS
-#endif
-
pkt->duration = fd.duration;
if (avctx->flags & AV_CODEC_FLAG_COPY_OPAQUE) {
pkt->opaque = fd.frame_opaque;
diff --git a/libavcodec/libwebpenc_animencoder.c b/libavcodec/libwebpenc_animencoder.c
index 8756231f23..02f0b6f64d 100644
--- a/libavcodec/libwebpenc_animencoder.c
+++ b/libavcodec/libwebpenc_animencoder.c
@@ -39,9 +39,6 @@ typedef struct LibWebPAnimContext {
int64_t first_frame_pts; // pts of the first encoded frame.
int64_t end_pts; // pts + duration of the last frame
-#if FF_API_REORDERED_OPAQUE
- int64_t reordered_opaque;
-#endif
void *first_frame_opaque;
AVBufferRef *first_frame_opaque_ref;
@@ -92,11 +89,6 @@ static int libwebp_anim_encode_frame(AVCodecContext *avctx, AVPacket *pkt,
if (pkt->pts != AV_NOPTS_VALUE && s->end_pts > pkt->pts)
pkt->duration = s->end_pts - pkt->pts;
-#if FF_API_REORDERED_OPAQUE
-FF_DISABLE_DEPRECATION_WARNINGS
- avctx->reordered_opaque = s->reordered_opaque;
-FF_ENABLE_DEPRECATION_WARNINGS
-#endif
if (avctx->flags & AV_CODEC_FLAG_COPY_OPAQUE) {
pkt->opaque = s->first_frame_opaque;
pkt->opaque_ref = s->first_frame_opaque_ref;
@@ -134,11 +126,6 @@ FF_ENABLE_DEPRECATION_WARNINGS
if (!avctx->frame_num) {
s->first_frame_pts = frame->pts;
-#if FF_API_REORDERED_OPAQUE
-FF_DISABLE_DEPRECATION_WARNINGS
- s->reordered_opaque = frame->reordered_opaque;
-FF_ENABLE_DEPRECATION_WARNINGS
-#endif
if (avctx->flags & AV_CODEC_FLAG_COPY_OPAQUE) {
s->first_frame_opaque = frame->opaque;
diff --git a/libavcodec/libx264.c b/libavcodec/libx264.c
index 182e20f622..2a54537872 100644
--- a/libavcodec/libx264.c
+++ b/libavcodec/libx264.c
@@ -54,9 +54,6 @@
#define MB_CEIL(x) MB_FLOOR((x) + (MB_SIZE - 1))
typedef struct X264Opaque {
-#if FF_API_REORDERED_OPAQUE
- int64_t reordered_opaque;
-#endif
int64_t wallclock;
int64_t duration;
@@ -512,11 +509,6 @@ static int setup_frame(AVCodecContext *ctx, const AVFrame *frame,
goto fail;
}
-#if FF_API_REORDERED_OPAQUE
-FF_DISABLE_DEPRECATION_WARNINGS
- opaque->reordered_opaque = frame->reordered_opaque;
-FF_ENABLE_DEPRECATION_WARNINGS
-#endif
opaque->duration = frame->duration;
opaque->wallclock = wallclock;
if (ctx->export_side_data & AV_CODEC_EXPORT_DATA_PRFT)
@@ -681,11 +673,6 @@ static int X264_frame(AVCodecContext *ctx, AVPacket *pkt, const AVFrame *frame,
out_opaque = pic_out.opaque;
if (out_opaque >= x4->reordered_opaque &&
out_opaque < &x4->reordered_opaque[x4->nb_reordered_opaque]) {
-#if FF_API_REORDERED_OPAQUE
-FF_DISABLE_DEPRECATION_WARNINGS
- ctx->reordered_opaque = out_opaque->reordered_opaque;
-FF_ENABLE_DEPRECATION_WARNINGS
-#endif
wallclock = out_opaque->wallclock;
pkt->duration = out_opaque->duration;
@@ -700,11 +687,6 @@ FF_ENABLE_DEPRECATION_WARNINGS
// Unexpected opaque pointer on picture output
av_log(ctx, AV_LOG_ERROR, "Unexpected opaque pointer; "
"this is a bug, please report it.\n");
-#if FF_API_REORDERED_OPAQUE
-FF_DISABLE_DEPRECATION_WARNINGS
- ctx->reordered_opaque = 0;
-FF_ENABLE_DEPRECATION_WARNINGS
-#endif
}
switch (pic_out.i_type) {
diff --git a/libavcodec/libx265.c b/libavcodec/libx265.c
index 447e6da25f..92183b9ca2 100644
--- a/libavcodec/libx265.c
+++ b/libavcodec/libx265.c
@@ -42,9 +42,6 @@
#include "sei.h"
typedef struct ReorderedData {
-#if FF_API_REORDERED_OPAQUE
- int64_t reordered_opaque;
-#endif
int64_t duration;
void *frame_opaque;
@@ -626,11 +623,6 @@ static int libx265_encode_frame(AVCodecContext *avctx, AVPacket *pkt,
rd = &ctx->rd[rd_idx];
rd->duration = pic->duration;
-#if FF_API_REORDERED_OPAQUE
-FF_DISABLE_DEPRECATION_WARNINGS
- rd->reordered_opaque = pic->reordered_opaque;
-FF_ENABLE_DEPRECATION_WARNINGS
-#endif
if (avctx->flags & AV_CODEC_FLAG_COPY_OPAQUE) {
rd->frame_opaque = pic->opaque;
ret = av_buffer_replace(&rd->frame_opaque_ref, pic->opaque_ref);
@@ -768,11 +760,6 @@ FF_ENABLE_DEPRECATION_WARNINGS
int idx = (int)(intptr_t)x265pic_out.userData - 1;
ReorderedData *rd = &ctx->rd[idx];
-#if FF_API_REORDERED_OPAQUE
-FF_DISABLE_DEPRECATION_WARNINGS
- avctx->reordered_opaque = rd->reordered_opaque;
-FF_ENABLE_DEPRECATION_WARNINGS
-#endif
pkt->duration = rd->duration;
if (avctx->flags & AV_CODEC_FLAG_COPY_OPAQUE) {
@@ -783,13 +770,6 @@ FF_ENABLE_DEPRECATION_WARNINGS
rd_release(ctx, idx);
}
-#if FF_API_REORDERED_OPAQUE
- else {
-FF_DISABLE_DEPRECATION_WARNINGS
- avctx->reordered_opaque = 0;
-FF_ENABLE_DEPRECATION_WARNINGS
- }
-#endif
*got_packet = 1;
return 0;
diff --git a/libavcodec/nvenc.c b/libavcodec/nvenc.c
index 626f10d20a..fd73af2a32 100644
--- a/libavcodec/nvenc.c
+++ b/libavcodec/nvenc.c
@@ -2282,12 +2282,6 @@ static int nvenc_store_frame_data(AVCodecContext *avctx, NV_ENC_PIC_PARAMS *pic_
frame_data->duration = frame->duration;
frame_data->frame_opaque = frame->opaque;
-#if FF_API_REORDERED_OPAQUE
-FF_DISABLE_DEPRECATION_WARNINGS
- frame_data->reordered_opaque = frame->reordered_opaque;
-FF_ENABLE_DEPRECATION_WARNINGS
-#endif
-
ctx->frame_data_array_pos = (ctx->frame_data_array_pos + 1) % ctx->frame_data_array_nb;
pic_params->inputDuration = idx;
@@ -2304,12 +2298,6 @@ static int nvenc_retrieve_frame_data(AVCodecContext *avctx, NV_ENC_LOCK_BITSTREA
pkt->duration = frame_data->duration;
-#if FF_API_REORDERED_OPAQUE
-FF_DISABLE_DEPRECATION_WARNINGS
- avctx->reordered_opaque = frame_data->reordered_opaque;
-FF_ENABLE_DEPRECATION_WARNINGS
-#endif
-
if (avctx->flags & AV_CODEC_FLAG_COPY_OPAQUE) {
pkt->opaque = frame_data->frame_opaque;
pkt->opaque_ref = frame_data->frame_opaque_ref;
diff --git a/libavcodec/nvenc.h b/libavcodec/nvenc.h
index e5b0eb8305..48cdfc58aa 100644
--- a/libavcodec/nvenc.h
+++ b/libavcodec/nvenc.h
@@ -100,10 +100,6 @@ typedef struct NvencFrameData
{
int64_t duration;
-#if FF_API_REORDERED_OPAQUE
- int64_t reordered_opaque;
-#endif
-
void *frame_opaque;
AVBufferRef *frame_opaque_ref;
} NvencFrameData;
diff --git a/libavcodec/options.c b/libavcodec/options.c
index a9b35ee1c3..df88e14c5a 100644
--- a/libavcodec/options.c
+++ b/libavcodec/options.c
@@ -124,11 +124,6 @@ static int init_context_defaults(AVCodecContext *s, const AVCodec *codec)
s->sw_pix_fmt = AV_PIX_FMT_NONE;
s->sample_fmt = AV_SAMPLE_FMT_NONE;
-#if FF_API_REORDERED_OPAQUE
-FF_DISABLE_DEPRECATION_WARNINGS
- s->reordered_opaque = AV_NOPTS_VALUE;
-FF_ENABLE_DEPRECATION_WARNINGS
-#endif
if(codec && codec2->priv_data_size){
s->priv_data = av_mallocz(codec2->priv_data_size);
if (!s->priv_data)
diff --git a/libavcodec/pthread_frame.c b/libavcodec/pthread_frame.c
index 56a3618f0d..3ae6118d2e 100644
--- a/libavcodec/pthread_frame.c
+++ b/libavcodec/pthread_frame.c
@@ -412,11 +412,6 @@ static int update_context_from_user(AVCodecContext *dst, const AVCodecContext *s
dst->skip_frame = src->skip_frame;
dst->frame_num = src->frame_num;
-#if FF_API_REORDERED_OPAQUE
-FF_DISABLE_DEPRECATION_WARNINGS
- dst->reordered_opaque = src->reordered_opaque;
-FF_ENABLE_DEPRECATION_WARNINGS
-#endif
av_packet_unref(dst->internal->last_pkt_props);
err = av_packet_copy_props(dst->internal->last_pkt_props, src->internal->last_pkt_props);
diff --git a/libavutil/frame.c b/libavutil/frame.c
index dc80d71adf..93ac3a753d 100644
--- a/libavutil/frame.c
+++ b/libavutil/frame.c
@@ -266,11 +266,6 @@ FF_DISABLE_DEPRECATION_WARNINGS
FF_ENABLE_DEPRECATION_WARNINGS
#endif
dst->time_base = src->time_base;
-#if FF_API_REORDERED_OPAQUE
-FF_DISABLE_DEPRECATION_WARNINGS
- dst->reordered_opaque = src->reordered_opaque;
-FF_ENABLE_DEPRECATION_WARNINGS
-#endif
dst->quality = src->quality;
dst->best_effort_timestamp = src->best_effort_timestamp;
#if FF_API_FRAME_PICTURE_NUMBER
diff --git a/libavutil/frame.h b/libavutil/frame.h
index 84a431f14c..3186d3a872 100644
--- a/libavutil/frame.h
+++ b/libavutil/frame.h
@@ -546,21 +546,6 @@ typedef struct AVFrame {
int palette_has_changed;
#endif
-#if FF_API_REORDERED_OPAQUE
- /**
- * reordered opaque 64 bits (generally an integer or a double precision float
- * PTS but can be anything).
- * The user sets AVCodecContext.reordered_opaque to represent the input at
- * that time,
- * the decoder reorders values as needed and sets AVFrame.reordered_opaque
- * to exactly one of the values provided by the user through AVCodecContext.reordered_opaque
- *
- * @deprecated Use AV_CODEC_FLAG_COPY_OPAQUE instead
- */
- attribute_deprecated
- int64_t reordered_opaque;
-#endif
-
/**
* Sample rate of the audio data.
*/
diff --git a/libavutil/version.h b/libavutil/version.h
index 8a20312016..e52c1282fc 100644
--- a/libavutil/version.h
+++ b/libavutil/version.h
@@ -105,7 +105,6 @@
* @{
*/
-#define FF_API_REORDERED_OPAQUE (LIBAVUTIL_VERSION_MAJOR < 59)
#define FF_API_FRAME_PICTURE_NUMBER (LIBAVUTIL_VERSION_MAJOR < 59)
#define FF_API_HDR_VIVID_THREE_SPLINE (LIBAVUTIL_VERSION_MAJOR < 59)
#define FF_API_FRAME_PKT (LIBAVUTIL_VERSION_MAJOR < 59)
--
2.43.0
_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
To unsubscribe, visit link above, or email
ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".
^ permalink raw reply [flat|nested] 60+ messages in thread
* [FFmpeg-devel] [PATCH 20/24] avutil: remove deprecated FF_API_FRAME_PICTURE_NUMBER
2024-01-25 13:43 [FFmpeg-devel] [PATCH 00/24] Major library version bump James Almer
` (18 preceding siblings ...)
2024-01-25 13:43 ` [FFmpeg-devel] [PATCH 19/24] avutil: remove deprecated FF_API_REORDERED_OPAQUE James Almer
@ 2024-01-25 13:43 ` James Almer
2024-01-25 13:43 ` [FFmpeg-devel] [PATCH 21/24] avcodec/version_major: postpone some deprecations until the next bump James Almer
` (21 subsequent siblings)
41 siblings, 0 replies; 60+ messages in thread
From: James Almer @ 2024-01-25 13:43 UTC (permalink / raw)
To: ffmpeg-devel
Signed-off-by: James Almer <jamrial@gmail.com>
---
doc/ffprobe.xsd | 2 -
fftools/ffprobe.c | 6 --
libavcodec/diracdec.c | 15 ----
libavcodec/h264_slice.c | 5 --
libavcodec/libuavs3d.c | 6 --
libavcodec/mpegvideo_dec.c | 6 --
libavutil/frame.c | 6 --
libavutil/frame.h | 13 ---
libavutil/version.h | 1 -
tests/ref/fate/exif-image-embedded | 2 -
tests/ref/fate/exif-image-jpg | 2 -
tests/ref/fate/exif-image-tiff | 2 -
tests/ref/fate/exif-image-webp | 2 -
tests/ref/fate/ffprobe_compact | 16 ++--
tests/ref/fate/ffprobe_csv | 16 ++--
tests/ref/fate/ffprobe_default | 16 ----
tests/ref/fate/ffprobe_flat | 16 ----
tests/ref/fate/ffprobe_ini | 16 ----
tests/ref/fate/ffprobe_json | 16 ----
tests/ref/fate/ffprobe_xml | 16 ++--
tests/ref/fate/ffprobe_xsd | 16 ++--
tests/ref/fate/h264-dts_5frames | 10 ---
tests/ref/fate/jpg-icc | 2 -
tests/ref/fate/mov-zombie | 130 ++++++++++++++---------------
tests/ref/fate/png-icc | 2 -
tests/ref/fate/png-side-data | 2 -
26 files changed, 97 insertions(+), 245 deletions(-)
diff --git a/doc/ffprobe.xsd b/doc/ffprobe.xsd
index 1131e2c940..f0b8b4e38f 100644
--- a/doc/ffprobe.xsd
+++ b/doc/ffprobe.xsd
@@ -126,8 +126,6 @@
<xsd:attribute name="pix_fmt" type="xsd:string"/>
<xsd:attribute name="sample_aspect_ratio" type="xsd:string"/>
<xsd:attribute name="pict_type" type="xsd:string"/>
- <xsd:attribute name="coded_picture_number" type="xsd:long" />
- <xsd:attribute name="display_picture_number" type="xsd:long" />
<xsd:attribute name="interlaced_frame" type="xsd:int" />
<xsd:attribute name="top_field_first" type="xsd:int" />
<xsd:attribute name="repeat_pict" type="xsd:int" />
diff --git a/fftools/ffprobe.c b/fftools/ffprobe.c
index 122e37075e..192d6325d2 100644
--- a/fftools/ffprobe.c
+++ b/fftools/ffprobe.c
@@ -2753,12 +2753,6 @@ static void show_frame(WriterContext *w, AVFrame *frame, AVStream *stream,
print_str_opt("sample_aspect_ratio", "N/A");
}
print_fmt("pict_type", "%c", av_get_picture_type_char(frame->pict_type));
-#if LIBAVUTIL_VERSION_MAJOR < 59
- AV_NOWARN_DEPRECATED(
- print_int("coded_picture_number", frame->coded_picture_number);
- print_int("display_picture_number", frame->display_picture_number);
- )
-#endif
print_int("interlaced_frame", !!(frame->flags & AV_FRAME_FLAG_INTERLACED));
print_int("top_field_first", !!(frame->flags & AV_FRAME_FLAG_TOP_FIELD_FIRST));
print_int("repeat_pict", frame->repeat_pict);
diff --git a/libavcodec/diracdec.c b/libavcodec/diracdec.c
index 277c730cc7..24c7df0001 100644
--- a/libavcodec/diracdec.c
+++ b/libavcodec/diracdec.c
@@ -2103,11 +2103,6 @@ static int get_delayed_pic(DiracContext *s, AVFrame *picture, int *got_frame)
out->reference ^= DELAYED_PIC_REF;
if((ret = av_frame_ref(picture, out->avframe)) < 0)
return ret;
-#if FF_API_FRAME_PICTURE_NUMBER
-FF_DISABLE_DEPRECATION_WARNINGS
- picture->display_picture_number = out->picture_number;
-FF_ENABLE_DEPRECATION_WARNINGS
-#endif
*got_frame = 1;
}
@@ -2350,11 +2345,6 @@ static int dirac_decode_frame(AVCodecContext *avctx, AVFrame *picture,
if((ret = av_frame_ref(picture, delayed_frame->avframe)) < 0)
return ret;
s->frame_number = delayed_frame->picture_number + 1LL;
-#if FF_API_FRAME_PICTURE_NUMBER
-FF_DISABLE_DEPRECATION_WARNINGS
- picture->display_picture_number = delayed_frame->picture_number;
-FF_ENABLE_DEPRECATION_WARNINGS
-#endif
*got_frame = 1;
}
} else if (s->current_picture->picture_number == s->frame_number) {
@@ -2362,11 +2352,6 @@ FF_ENABLE_DEPRECATION_WARNINGS
if((ret = av_frame_ref(picture, s->current_picture->avframe)) < 0)
return ret;
s->frame_number = s->current_picture->picture_number + 1LL;
-#if FF_API_FRAME_PICTURE_NUMBER
-FF_DISABLE_DEPRECATION_WARNINGS
- picture->display_picture_number = s->current_picture->picture_number;
-FF_ENABLE_DEPRECATION_WARNINGS
-#endif
*got_frame = 1;
}
diff --git a/libavcodec/h264_slice.c b/libavcodec/h264_slice.c
index 8464a0b34c..14791a8181 100644
--- a/libavcodec/h264_slice.c
+++ b/libavcodec/h264_slice.c
@@ -496,11 +496,6 @@ static int h264_frame_start(H264Context *h)
pic = &h->DPB[i];
pic->reference = h->droppable ? 0 : h->picture_structure;
-#if FF_API_FRAME_PICTURE_NUMBER
-FF_DISABLE_DEPRECATION_WARNINGS
- pic->f->coded_picture_number = h->coded_picture_number++;
-FF_ENABLE_DEPRECATION_WARNINGS
-#endif
pic->field_picture = h->picture_structure != PICT_FRAME;
pic->frame_num = h->poc.frame_num;
/*
diff --git a/libavcodec/libuavs3d.c b/libavcodec/libuavs3d.c
index 66e8d31001..74e92b8652 100644
--- a/libavcodec/libuavs3d.c
+++ b/libavcodec/libuavs3d.c
@@ -84,12 +84,6 @@ FF_DISABLE_DEPRECATION_WARNINGS
frm->pkt_pos = dec_frame->pkt_pos;
frm->pkt_size = dec_frame->pkt_size;
FF_ENABLE_DEPRECATION_WARNINGS
-#endif
-#if FF_API_FRAME_PICTURE_NUMBER
-FF_DISABLE_DEPRECATION_WARNINGS
- frm->coded_picture_number = dec_frame->dtr;
- frm->display_picture_number = dec_frame->ptr;
-FF_ENABLE_DEPRECATION_WARNINGS
#endif
if (dec_frame->type < 0 || dec_frame->type >= FF_ARRAY_ELEMS(ff_avs3_image_type)) {
diff --git a/libavcodec/mpegvideo_dec.c b/libavcodec/mpegvideo_dec.c
index f4b7fc367c..88facfc39d 100644
--- a/libavcodec/mpegvideo_dec.c
+++ b/libavcodec/mpegvideo_dec.c
@@ -344,12 +344,6 @@ int ff_mpv_frame_start(MpegEncContext *s, AVCodecContext *avctx)
pic->reference = 3;
}
-#if FF_API_FRAME_PICTURE_NUMBER
-FF_DISABLE_DEPRECATION_WARNINGS
- pic->f->coded_picture_number = s->coded_picture_number++;
-FF_ENABLE_DEPRECATION_WARNINGS
-#endif
-
if (alloc_picture(s, pic) < 0)
return -1;
diff --git a/libavutil/frame.c b/libavutil/frame.c
index 93ac3a753d..079cf6595b 100644
--- a/libavutil/frame.c
+++ b/libavutil/frame.c
@@ -268,12 +268,6 @@ FF_ENABLE_DEPRECATION_WARNINGS
dst->time_base = src->time_base;
dst->quality = src->quality;
dst->best_effort_timestamp = src->best_effort_timestamp;
-#if FF_API_FRAME_PICTURE_NUMBER
-FF_DISABLE_DEPRECATION_WARNINGS
- dst->coded_picture_number = src->coded_picture_number;
- dst->display_picture_number = src->display_picture_number;
-FF_ENABLE_DEPRECATION_WARNINGS
-#endif
dst->flags = src->flags;
dst->decode_error_flags = src->decode_error_flags;
dst->color_primaries = src->color_primaries;
diff --git a/libavutil/frame.h b/libavutil/frame.h
index 3186d3a872..b94687941d 100644
--- a/libavutil/frame.h
+++ b/libavutil/frame.h
@@ -466,19 +466,6 @@ typedef struct AVFrame {
*/
AVRational time_base;
-#if FF_API_FRAME_PICTURE_NUMBER
- /**
- * picture number in bitstream order
- */
- attribute_deprecated
- int coded_picture_number;
- /**
- * picture number in display order
- */
- attribute_deprecated
- int display_picture_number;
-#endif
-
/**
* quality (between 1 (good) and FF_LAMBDA_MAX (bad))
*/
diff --git a/libavutil/version.h b/libavutil/version.h
index e52c1282fc..a7df8473e1 100644
--- a/libavutil/version.h
+++ b/libavutil/version.h
@@ -105,7 +105,6 @@
* @{
*/
-#define FF_API_FRAME_PICTURE_NUMBER (LIBAVUTIL_VERSION_MAJOR < 59)
#define FF_API_HDR_VIVID_THREE_SPLINE (LIBAVUTIL_VERSION_MAJOR < 59)
#define FF_API_FRAME_PKT (LIBAVUTIL_VERSION_MAJOR < 59)
#define FF_API_INTERLACED_FRAME (LIBAVUTIL_VERSION_MAJOR < 59)
diff --git a/tests/ref/fate/exif-image-embedded b/tests/ref/fate/exif-image-embedded
index 3e0cc69490..98b6ec5a44 100644
--- a/tests/ref/fate/exif-image-embedded
+++ b/tests/ref/fate/exif-image-embedded
@@ -21,8 +21,6 @@ crop_right=0
pix_fmt=yuvj420p
sample_aspect_ratio=1:1
pict_type=I
-coded_picture_number=0
-display_picture_number=0
interlaced_frame=0
top_field_first=0
repeat_pict=0
diff --git a/tests/ref/fate/exif-image-jpg b/tests/ref/fate/exif-image-jpg
index 239f4c3366..2e314078da 100644
--- a/tests/ref/fate/exif-image-jpg
+++ b/tests/ref/fate/exif-image-jpg
@@ -21,8 +21,6 @@ crop_right=0
pix_fmt=yuvj422p
sample_aspect_ratio=1:1
pict_type=I
-coded_picture_number=0
-display_picture_number=0
interlaced_frame=0
top_field_first=0
repeat_pict=0
diff --git a/tests/ref/fate/exif-image-tiff b/tests/ref/fate/exif-image-tiff
index 7741edb0f4..887c039df9 100644
--- a/tests/ref/fate/exif-image-tiff
+++ b/tests/ref/fate/exif-image-tiff
@@ -21,8 +21,6 @@ crop_right=0
pix_fmt=rgb24
sample_aspect_ratio=1:1
pict_type=?
-coded_picture_number=0
-display_picture_number=0
interlaced_frame=0
top_field_first=0
repeat_pict=0
diff --git a/tests/ref/fate/exif-image-webp b/tests/ref/fate/exif-image-webp
index e51e36c788..73560e8ba0 100644
--- a/tests/ref/fate/exif-image-webp
+++ b/tests/ref/fate/exif-image-webp
@@ -21,8 +21,6 @@ crop_right=0
pix_fmt=yuv420p
sample_aspect_ratio=N/A
pict_type=I
-coded_picture_number=0
-display_picture_number=0
interlaced_frame=0
top_field_first=0
repeat_pict=0
diff --git a/tests/ref/fate/ffprobe_compact b/tests/ref/fate/ffprobe_compact
index 2b751b214d..4d6a83db10 100644
--- a/tests/ref/fate/ffprobe_compact
+++ b/tests/ref/fate/ffprobe_compact
@@ -1,31 +1,31 @@
packet|codec_type=audio|stream_index=0|pts=0|pts_time=0.000000|dts=0|dts_time=0.000000|duration=1024|duration_time=0.023220|size=2048|pos=669|flags=K__
frame|media_type=audio|stream_index=0|key_frame=1|pts=0|pts_time=0.000000|pkt_dts=0|pkt_dts_time=0.000000|best_effort_timestamp=0|best_effort_timestamp_time=0.000000|duration=1024|duration_time=0.023220|pkt_pos=669|pkt_size=2048|sample_fmt=s16|nb_samples=1024|channels=1|channel_layout=unknown
packet|codec_type=video|stream_index=1|pts=0|pts_time=0.000000|dts=0|dts_time=0.000000|duration=2048|duration_time=0.040000|size=230400|pos=2744|flags=K__
-frame|media_type=video|stream_index=1|key_frame=1|pts=0|pts_time=0.000000|pkt_dts=0|pkt_dts_time=0.000000|best_effort_timestamp=0|best_effort_timestamp_time=0.000000|duration=2048|duration_time=0.040000|pkt_pos=2744|pkt_size=230400|width=320|height=240|crop_top=0|crop_bottom=0|crop_left=0|crop_right=0|pix_fmt=rgb24|sample_aspect_ratio=1:1|pict_type=I|coded_picture_number=0|display_picture_number=0|interlaced_frame=0|top_field_first=0|repeat_pict=0|color_range=unknown|color_space=unknown|color_primaries=unknown|color_transfer=unknown|chroma_location=unspecified
+frame|media_type=video|stream_index=1|key_frame=1|pts=0|pts_time=0.000000|pkt_dts=0|pkt_dts_time=0.000000|best_effort_timestamp=0|best_effort_timestamp_time=0.000000|duration=2048|duration_time=0.040000|pkt_pos=2744|pkt_size=230400|width=320|height=240|crop_top=0|crop_bottom=0|crop_left=0|crop_right=0|pix_fmt=rgb24|sample_aspect_ratio=1:1|pict_type=I|interlaced_frame=0|top_field_first=0|repeat_pict=0|color_range=unknown|color_space=unknown|color_primaries=unknown|color_transfer=unknown|chroma_location=unspecified
packet|codec_type=video|stream_index=2|pts=0|pts_time=0.000000|dts=0|dts_time=0.000000|duration=2048|duration_time=0.040000|size=30000|pos=233165|flags=K__
-frame|media_type=video|stream_index=2|key_frame=1|pts=0|pts_time=0.000000|pkt_dts=0|pkt_dts_time=0.000000|best_effort_timestamp=0|best_effort_timestamp_time=0.000000|duration=2048|duration_time=0.040000|pkt_pos=233165|pkt_size=30000|width=100|height=100|crop_top=0|crop_bottom=0|crop_left=0|crop_right=0|pix_fmt=rgb24|sample_aspect_ratio=1:1|pict_type=I|coded_picture_number=0|display_picture_number=0|interlaced_frame=0|top_field_first=0|repeat_pict=0|color_range=unknown|color_space=unknown|color_primaries=unknown|color_transfer=unknown|chroma_location=unspecified
+frame|media_type=video|stream_index=2|key_frame=1|pts=0|pts_time=0.000000|pkt_dts=0|pkt_dts_time=0.000000|best_effort_timestamp=0|best_effort_timestamp_time=0.000000|duration=2048|duration_time=0.040000|pkt_pos=233165|pkt_size=30000|width=100|height=100|crop_top=0|crop_bottom=0|crop_left=0|crop_right=0|pix_fmt=rgb24|sample_aspect_ratio=1:1|pict_type=I|interlaced_frame=0|top_field_first=0|repeat_pict=0|color_range=unknown|color_space=unknown|color_primaries=unknown|color_transfer=unknown|chroma_location=unspecified
packet|codec_type=audio|stream_index=0|pts=1024|pts_time=0.023220|dts=1024|dts_time=0.023220|duration=1024|duration_time=0.023220|size=2048|pos=263170|flags=K__
frame|media_type=audio|stream_index=0|key_frame=1|pts=1024|pts_time=0.023220|pkt_dts=1024|pkt_dts_time=0.023220|best_effort_timestamp=1024|best_effort_timestamp_time=0.023220|duration=1024|duration_time=0.023220|pkt_pos=263170|pkt_size=2048|sample_fmt=s16|nb_samples=1024|channels=1|channel_layout=unknown
packet|codec_type=video|stream_index=1|pts=2048|pts_time=0.040000|dts=2048|dts_time=0.040000|duration=2048|duration_time=0.040000|size=230400|pos=265248|flags=K__
-frame|media_type=video|stream_index=1|key_frame=1|pts=2048|pts_time=0.040000|pkt_dts=2048|pkt_dts_time=0.040000|best_effort_timestamp=2048|best_effort_timestamp_time=0.040000|duration=2048|duration_time=0.040000|pkt_pos=265248|pkt_size=230400|width=320|height=240|crop_top=0|crop_bottom=0|crop_left=0|crop_right=0|pix_fmt=rgb24|sample_aspect_ratio=1:1|pict_type=I|coded_picture_number=0|display_picture_number=0|interlaced_frame=0|top_field_first=0|repeat_pict=0|color_range=unknown|color_space=unknown|color_primaries=unknown|color_transfer=unknown|chroma_location=unspecified
+frame|media_type=video|stream_index=1|key_frame=1|pts=2048|pts_time=0.040000|pkt_dts=2048|pkt_dts_time=0.040000|best_effort_timestamp=2048|best_effort_timestamp_time=0.040000|duration=2048|duration_time=0.040000|pkt_pos=265248|pkt_size=230400|width=320|height=240|crop_top=0|crop_bottom=0|crop_left=0|crop_right=0|pix_fmt=rgb24|sample_aspect_ratio=1:1|pict_type=I|interlaced_frame=0|top_field_first=0|repeat_pict=0|color_range=unknown|color_space=unknown|color_primaries=unknown|color_transfer=unknown|chroma_location=unspecified
packet|codec_type=video|stream_index=2|pts=2048|pts_time=0.040000|dts=2048|dts_time=0.040000|duration=2048|duration_time=0.040000|size=30000|pos=495672|flags=K__
-frame|media_type=video|stream_index=2|key_frame=1|pts=2048|pts_time=0.040000|pkt_dts=2048|pkt_dts_time=0.040000|best_effort_timestamp=2048|best_effort_timestamp_time=0.040000|duration=2048|duration_time=0.040000|pkt_pos=495672|pkt_size=30000|width=100|height=100|crop_top=0|crop_bottom=0|crop_left=0|crop_right=0|pix_fmt=rgb24|sample_aspect_ratio=1:1|pict_type=I|coded_picture_number=0|display_picture_number=0|interlaced_frame=0|top_field_first=0|repeat_pict=0|color_range=unknown|color_space=unknown|color_primaries=unknown|color_transfer=unknown|chroma_location=unspecified
+frame|media_type=video|stream_index=2|key_frame=1|pts=2048|pts_time=0.040000|pkt_dts=2048|pkt_dts_time=0.040000|best_effort_timestamp=2048|best_effort_timestamp_time=0.040000|duration=2048|duration_time=0.040000|pkt_pos=495672|pkt_size=30000|width=100|height=100|crop_top=0|crop_bottom=0|crop_left=0|crop_right=0|pix_fmt=rgb24|sample_aspect_ratio=1:1|pict_type=I|interlaced_frame=0|top_field_first=0|repeat_pict=0|color_range=unknown|color_space=unknown|color_primaries=unknown|color_transfer=unknown|chroma_location=unspecified
packet|codec_type=audio|stream_index=0|pts=2048|pts_time=0.046440|dts=2048|dts_time=0.046440|duration=1024|duration_time=0.023220|size=2048|pos=525677|flags=K__
frame|media_type=audio|stream_index=0|key_frame=1|pts=2048|pts_time=0.046440|pkt_dts=2048|pkt_dts_time=0.046440|best_effort_timestamp=2048|best_effort_timestamp_time=0.046440|duration=1024|duration_time=0.023220|pkt_pos=525677|pkt_size=2048|sample_fmt=s16|nb_samples=1024|channels=1|channel_layout=unknown
packet|codec_type=audio|stream_index=0|pts=3072|pts_time=0.069660|dts=3072|dts_time=0.069660|duration=1024|duration_time=0.023220|size=2048|pos=527748|flags=K__
frame|media_type=audio|stream_index=0|key_frame=1|pts=3072|pts_time=0.069660|pkt_dts=3072|pkt_dts_time=0.069660|best_effort_timestamp=3072|best_effort_timestamp_time=0.069660|duration=1024|duration_time=0.023220|pkt_pos=527748|pkt_size=2048|sample_fmt=s16|nb_samples=1024|channels=1|channel_layout=unknown
packet|codec_type=video|stream_index=1|pts=4096|pts_time=0.080000|dts=4096|dts_time=0.080000|duration=2048|duration_time=0.040000|size=230400|pos=529826|flags=K__
-frame|media_type=video|stream_index=1|key_frame=1|pts=4096|pts_time=0.080000|pkt_dts=4096|pkt_dts_time=0.080000|best_effort_timestamp=4096|best_effort_timestamp_time=0.080000|duration=2048|duration_time=0.040000|pkt_pos=529826|pkt_size=230400|width=320|height=240|crop_top=0|crop_bottom=0|crop_left=0|crop_right=0|pix_fmt=rgb24|sample_aspect_ratio=1:1|pict_type=I|coded_picture_number=0|display_picture_number=0|interlaced_frame=0|top_field_first=0|repeat_pict=0|color_range=unknown|color_space=unknown|color_primaries=unknown|color_transfer=unknown|chroma_location=unspecified
+frame|media_type=video|stream_index=1|key_frame=1|pts=4096|pts_time=0.080000|pkt_dts=4096|pkt_dts_time=0.080000|best_effort_timestamp=4096|best_effort_timestamp_time=0.080000|duration=2048|duration_time=0.040000|pkt_pos=529826|pkt_size=230400|width=320|height=240|crop_top=0|crop_bottom=0|crop_left=0|crop_right=0|pix_fmt=rgb24|sample_aspect_ratio=1:1|pict_type=I|interlaced_frame=0|top_field_first=0|repeat_pict=0|color_range=unknown|color_space=unknown|color_primaries=unknown|color_transfer=unknown|chroma_location=unspecified
packet|codec_type=video|stream_index=2|pts=4096|pts_time=0.080000|dts=4096|dts_time=0.080000|duration=2048|duration_time=0.040000|size=30000|pos=760250|flags=K__
-frame|media_type=video|stream_index=2|key_frame=1|pts=4096|pts_time=0.080000|pkt_dts=4096|pkt_dts_time=0.080000|best_effort_timestamp=4096|best_effort_timestamp_time=0.080000|duration=2048|duration_time=0.040000|pkt_pos=760250|pkt_size=30000|width=100|height=100|crop_top=0|crop_bottom=0|crop_left=0|crop_right=0|pix_fmt=rgb24|sample_aspect_ratio=1:1|pict_type=I|coded_picture_number=0|display_picture_number=0|interlaced_frame=0|top_field_first=0|repeat_pict=0|color_range=unknown|color_space=unknown|color_primaries=unknown|color_transfer=unknown|chroma_location=unspecified
+frame|media_type=video|stream_index=2|key_frame=1|pts=4096|pts_time=0.080000|pkt_dts=4096|pkt_dts_time=0.080000|best_effort_timestamp=4096|best_effort_timestamp_time=0.080000|duration=2048|duration_time=0.040000|pkt_pos=760250|pkt_size=30000|width=100|height=100|crop_top=0|crop_bottom=0|crop_left=0|crop_right=0|pix_fmt=rgb24|sample_aspect_ratio=1:1|pict_type=I|interlaced_frame=0|top_field_first=0|repeat_pict=0|color_range=unknown|color_space=unknown|color_primaries=unknown|color_transfer=unknown|chroma_location=unspecified
packet|codec_type=audio|stream_index=0|pts=4096|pts_time=0.092880|dts=4096|dts_time=0.092880|duration=1024|duration_time=0.023220|size=2048|pos=790255|flags=K__
frame|media_type=audio|stream_index=0|key_frame=1|pts=4096|pts_time=0.092880|pkt_dts=4096|pkt_dts_time=0.092880|best_effort_timestamp=4096|best_effort_timestamp_time=0.092880|duration=1024|duration_time=0.023220|pkt_pos=790255|pkt_size=2048|sample_fmt=s16|nb_samples=1024|channels=1|channel_layout=unknown
packet|codec_type=audio|stream_index=0|pts=5120|pts_time=0.116100|dts=5120|dts_time=0.116100|duration=393|duration_time=0.008912|size=786|pos=792326|flags=K__
frame|media_type=audio|stream_index=0|key_frame=1|pts=5120|pts_time=0.116100|pkt_dts=5120|pkt_dts_time=0.116100|best_effort_timestamp=5120|best_effort_timestamp_time=0.116100|duration=393|duration_time=0.008912|pkt_pos=792326|pkt_size=786|sample_fmt=s16|nb_samples=393|channels=1|channel_layout=unknown
packet|codec_type=video|stream_index=1|pts=6144|pts_time=0.120000|dts=6144|dts_time=0.120000|duration=2048|duration_time=0.040000|size=230400|pos=793142|flags=K__
-frame|media_type=video|stream_index=1|key_frame=1|pts=6144|pts_time=0.120000|pkt_dts=6144|pkt_dts_time=0.120000|best_effort_timestamp=6144|best_effort_timestamp_time=0.120000|duration=2048|duration_time=0.040000|pkt_pos=793142|pkt_size=230400|width=320|height=240|crop_top=0|crop_bottom=0|crop_left=0|crop_right=0|pix_fmt=rgb24|sample_aspect_ratio=1:1|pict_type=I|coded_picture_number=0|display_picture_number=0|interlaced_frame=0|top_field_first=0|repeat_pict=0|color_range=unknown|color_space=unknown|color_primaries=unknown|color_transfer=unknown|chroma_location=unspecified
+frame|media_type=video|stream_index=1|key_frame=1|pts=6144|pts_time=0.120000|pkt_dts=6144|pkt_dts_time=0.120000|best_effort_timestamp=6144|best_effort_timestamp_time=0.120000|duration=2048|duration_time=0.040000|pkt_pos=793142|pkt_size=230400|width=320|height=240|crop_top=0|crop_bottom=0|crop_left=0|crop_right=0|pix_fmt=rgb24|sample_aspect_ratio=1:1|pict_type=I|interlaced_frame=0|top_field_first=0|repeat_pict=0|color_range=unknown|color_space=unknown|color_primaries=unknown|color_transfer=unknown|chroma_location=unspecified
packet|codec_type=video|stream_index=2|pts=6144|pts_time=0.120000|dts=6144|dts_time=0.120000|duration=2048|duration_time=0.040000|size=30000|pos=1023566|flags=K__
-frame|media_type=video|stream_index=2|key_frame=1|pts=6144|pts_time=0.120000|pkt_dts=6144|pkt_dts_time=0.120000|best_effort_timestamp=6144|best_effort_timestamp_time=0.120000|duration=2048|duration_time=0.040000|pkt_pos=1023566|pkt_size=30000|width=100|height=100|crop_top=0|crop_bottom=0|crop_left=0|crop_right=0|pix_fmt=rgb24|sample_aspect_ratio=1:1|pict_type=I|coded_picture_number=0|display_picture_number=0|interlaced_frame=0|top_field_first=0|repeat_pict=0|color_range=unknown|color_space=unknown|color_primaries=unknown|color_transfer=unknown|chroma_location=unspecified
+frame|media_type=video|stream_index=2|key_frame=1|pts=6144|pts_time=0.120000|pkt_dts=6144|pkt_dts_time=0.120000|best_effort_timestamp=6144|best_effort_timestamp_time=0.120000|duration=2048|duration_time=0.040000|pkt_pos=1023566|pkt_size=30000|width=100|height=100|crop_top=0|crop_bottom=0|crop_left=0|crop_right=0|pix_fmt=rgb24|sample_aspect_ratio=1:1|pict_type=I|interlaced_frame=0|top_field_first=0|repeat_pict=0|color_range=unknown|color_space=unknown|color_primaries=unknown|color_transfer=unknown|chroma_location=unspecified
stream|index=0|codec_name=pcm_s16le|profile=unknown|codec_type=audio|codec_tag_string=PSD[16]|codec_tag=0x10445350|sample_fmt=s16|sample_rate=44100|channels=1|channel_layout=unknown|bits_per_sample=16|initial_padding=0|id=N/A|r_frame_rate=0/0|avg_frame_rate=0/0|time_base=1/44100|start_pts=0|start_time=0.000000|duration_ts=N/A|duration=N/A|bit_rate=705600|max_bit_rate=N/A|bits_per_raw_sample=N/A|nb_frames=N/A|nb_read_frames=6|nb_read_packets=6|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|tag:E=mc²|tag:encoder=Lavc pcm_s16le
stream|index=1|codec_name=rawvideo|profile=unknown|codec_type=video|codec_tag_string=RGB[24]|codec_tag=0x18424752|width=320|height=240|coded_width=320|coded_height=240|closed_captions=0|film_grain=0|has_b_frames=0|sample_aspect_ratio=1:1|display_aspect_ratio=4:3|pix_fmt=rgb24|level=-99|color_range=unknown|color_space=unknown|color_transfer=unknown|color_primaries=unknown|chroma_location=unspecified|field_order=unknown|refs=1|id=N/A|r_frame_rate=25/1|avg_frame_rate=25/1|time_base=1/51200|start_pts=0|start_time=0.000000|duration_ts=N/A|duration=N/A|bit_rate=N/A|max_bit_rate=N/A|bits_per_raw_sample=N/A|nb_frames=N/A|nb_read_frames=4|nb_read_packets=4|disposition:default=1|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|tag:title=foobar|tag:duration_ts=field-and-tags-conflict-attempt|tag:encoder=Lavc rawvideo
stream|index=2|codec_name=rawvideo|profile=unknown|codec_type=video|codec_tag_string=RGB[24]|codec_tag=0x18424752|width=100|height=100|coded_width=100|coded_height=100|closed_captions=0|film_grain=0|has_b_frames=0|sample_aspect_ratio=1:1|display_aspect_ratio=1:1|pix_fmt=rgb24|level=-99|color_range=unknown|color_space=unknown|color_transfer=unknown|color_primaries=unknown|chroma_location=unspecified|field_order=unknown|refs=1|id=N/A|r_frame_rate=25/1|avg_frame_rate=25/1|time_base=1/51200|start_pts=0|start_time=0.000000|duration_ts=N/A|duration=N/A|bit_rate=N/A|max_bit_rate=N/A|bits_per_raw_sample=N/A|nb_frames=N/A|nb_read_frames=4|nb_read_packets=4|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|tag:encoder=Lavc rawvideo
diff --git a/tests/ref/fate/ffprobe_csv b/tests/ref/fate/ffprobe_csv
index 1bbb996a48..4aa2eed0fc 100644
--- a/tests/ref/fate/ffprobe_csv
+++ b/tests/ref/fate/ffprobe_csv
@@ -1,31 +1,31 @@
packet,audio,0,0,0.000000,0,0.000000,1024,0.023220,2048,669,K__
frame,audio,0,1,0,0.000000,0,0.000000,0,0.000000,1024,0.023220,669,2048,s16,1024,1,unknown
packet,video,1,0,0.000000,0,0.000000,2048,0.040000,230400,2744,K__
-frame,video,1,1,0,0.000000,0,0.000000,0,0.000000,2048,0.040000,2744,230400,320,240,0,0,0,0,rgb24,1:1,I,0,0,0,0,0,unknown,unknown,unknown,unknown,unspecified
+frame,video,1,1,0,0.000000,0,0.000000,0,0.000000,2048,0.040000,2744,230400,320,240,0,0,0,0,rgb24,1:1,I,0,0,0,unknown,unknown,unknown,unknown,unspecified
packet,video,2,0,0.000000,0,0.000000,2048,0.040000,30000,233165,K__
-frame,video,2,1,0,0.000000,0,0.000000,0,0.000000,2048,0.040000,233165,30000,100,100,0,0,0,0,rgb24,1:1,I,0,0,0,0,0,unknown,unknown,unknown,unknown,unspecified
+frame,video,2,1,0,0.000000,0,0.000000,0,0.000000,2048,0.040000,233165,30000,100,100,0,0,0,0,rgb24,1:1,I,0,0,0,unknown,unknown,unknown,unknown,unspecified
packet,audio,0,1024,0.023220,1024,0.023220,1024,0.023220,2048,263170,K__
frame,audio,0,1,1024,0.023220,1024,0.023220,1024,0.023220,1024,0.023220,263170,2048,s16,1024,1,unknown
packet,video,1,2048,0.040000,2048,0.040000,2048,0.040000,230400,265248,K__
-frame,video,1,1,2048,0.040000,2048,0.040000,2048,0.040000,2048,0.040000,265248,230400,320,240,0,0,0,0,rgb24,1:1,I,0,0,0,0,0,unknown,unknown,unknown,unknown,unspecified
+frame,video,1,1,2048,0.040000,2048,0.040000,2048,0.040000,2048,0.040000,265248,230400,320,240,0,0,0,0,rgb24,1:1,I,0,0,0,unknown,unknown,unknown,unknown,unspecified
packet,video,2,2048,0.040000,2048,0.040000,2048,0.040000,30000,495672,K__
-frame,video,2,1,2048,0.040000,2048,0.040000,2048,0.040000,2048,0.040000,495672,30000,100,100,0,0,0,0,rgb24,1:1,I,0,0,0,0,0,unknown,unknown,unknown,unknown,unspecified
+frame,video,2,1,2048,0.040000,2048,0.040000,2048,0.040000,2048,0.040000,495672,30000,100,100,0,0,0,0,rgb24,1:1,I,0,0,0,unknown,unknown,unknown,unknown,unspecified
packet,audio,0,2048,0.046440,2048,0.046440,1024,0.023220,2048,525677,K__
frame,audio,0,1,2048,0.046440,2048,0.046440,2048,0.046440,1024,0.023220,525677,2048,s16,1024,1,unknown
packet,audio,0,3072,0.069660,3072,0.069660,1024,0.023220,2048,527748,K__
frame,audio,0,1,3072,0.069660,3072,0.069660,3072,0.069660,1024,0.023220,527748,2048,s16,1024,1,unknown
packet,video,1,4096,0.080000,4096,0.080000,2048,0.040000,230400,529826,K__
-frame,video,1,1,4096,0.080000,4096,0.080000,4096,0.080000,2048,0.040000,529826,230400,320,240,0,0,0,0,rgb24,1:1,I,0,0,0,0,0,unknown,unknown,unknown,unknown,unspecified
+frame,video,1,1,4096,0.080000,4096,0.080000,4096,0.080000,2048,0.040000,529826,230400,320,240,0,0,0,0,rgb24,1:1,I,0,0,0,unknown,unknown,unknown,unknown,unspecified
packet,video,2,4096,0.080000,4096,0.080000,2048,0.040000,30000,760250,K__
-frame,video,2,1,4096,0.080000,4096,0.080000,4096,0.080000,2048,0.040000,760250,30000,100,100,0,0,0,0,rgb24,1:1,I,0,0,0,0,0,unknown,unknown,unknown,unknown,unspecified
+frame,video,2,1,4096,0.080000,4096,0.080000,4096,0.080000,2048,0.040000,760250,30000,100,100,0,0,0,0,rgb24,1:1,I,0,0,0,unknown,unknown,unknown,unknown,unspecified
packet,audio,0,4096,0.092880,4096,0.092880,1024,0.023220,2048,790255,K__
frame,audio,0,1,4096,0.092880,4096,0.092880,4096,0.092880,1024,0.023220,790255,2048,s16,1024,1,unknown
packet,audio,0,5120,0.116100,5120,0.116100,393,0.008912,786,792326,K__
frame,audio,0,1,5120,0.116100,5120,0.116100,5120,0.116100,393,0.008912,792326,786,s16,393,1,unknown
packet,video,1,6144,0.120000,6144,0.120000,2048,0.040000,230400,793142,K__
-frame,video,1,1,6144,0.120000,6144,0.120000,6144,0.120000,2048,0.040000,793142,230400,320,240,0,0,0,0,rgb24,1:1,I,0,0,0,0,0,unknown,unknown,unknown,unknown,unspecified
+frame,video,1,1,6144,0.120000,6144,0.120000,6144,0.120000,2048,0.040000,793142,230400,320,240,0,0,0,0,rgb24,1:1,I,0,0,0,unknown,unknown,unknown,unknown,unspecified
packet,video,2,6144,0.120000,6144,0.120000,2048,0.040000,30000,1023566,K__
-frame,video,2,1,6144,0.120000,6144,0.120000,6144,0.120000,2048,0.040000,1023566,30000,100,100,0,0,0,0,rgb24,1:1,I,0,0,0,0,0,unknown,unknown,unknown,unknown,unspecified
+frame,video,2,1,6144,0.120000,6144,0.120000,6144,0.120000,2048,0.040000,1023566,30000,100,100,0,0,0,0,rgb24,1:1,I,0,0,0,unknown,unknown,unknown,unknown,unspecified
stream,0,pcm_s16le,unknown,audio,PSD[16],0x10445350,s16,44100,1,unknown,16,0,N/A,0/0,0/0,1/44100,0,0.000000,N/A,N/A,705600,N/A,N/A,N/A,6,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,mc²,Lavc pcm_s16le
stream,1,rawvideo,unknown,video,RGB[24],0x18424752,320,240,320,240,0,0,0,1:1,4:3,rgb24,-99,unknown,unknown,unknown,unknown,unspecified,unknown,1,N/A,25/1,25/1,1/51200,0,0.000000,N/A,N/A,N/A,N/A,N/A,N/A,4,4,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,foobar,field-and-tags-conflict-attempt,Lavc rawvideo
stream,2,rawvideo,unknown,video,RGB[24],0x18424752,100,100,100,100,0,0,0,1:1,1:1,rgb24,-99,unknown,unknown,unknown,unknown,unspecified,unknown,1,N/A,25/1,25/1,1/51200,0,0.000000,N/A,N/A,N/A,N/A,N/A,N/A,4,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,Lavc rawvideo
diff --git a/tests/ref/fate/ffprobe_default b/tests/ref/fate/ffprobe_default
index 229c004042..057e5a9803 100644
--- a/tests/ref/fate/ffprobe_default
+++ b/tests/ref/fate/ffprobe_default
@@ -66,8 +66,6 @@ crop_right=0
pix_fmt=rgb24
sample_aspect_ratio=1:1
pict_type=I
-coded_picture_number=0
-display_picture_number=0
interlaced_frame=0
top_field_first=0
repeat_pict=0
@@ -113,8 +111,6 @@ crop_right=0
pix_fmt=rgb24
sample_aspect_ratio=1:1
pict_type=I
-coded_picture_number=0
-display_picture_number=0
interlaced_frame=0
top_field_first=0
repeat_pict=0
@@ -192,8 +188,6 @@ crop_right=0
pix_fmt=rgb24
sample_aspect_ratio=1:1
pict_type=I
-coded_picture_number=0
-display_picture_number=0
interlaced_frame=0
top_field_first=0
repeat_pict=0
@@ -239,8 +233,6 @@ crop_right=0
pix_fmt=rgb24
sample_aspect_ratio=1:1
pict_type=I
-coded_picture_number=0
-display_picture_number=0
interlaced_frame=0
top_field_first=0
repeat_pict=0
@@ -350,8 +342,6 @@ crop_right=0
pix_fmt=rgb24
sample_aspect_ratio=1:1
pict_type=I
-coded_picture_number=0
-display_picture_number=0
interlaced_frame=0
top_field_first=0
repeat_pict=0
@@ -397,8 +387,6 @@ crop_right=0
pix_fmt=rgb24
sample_aspect_ratio=1:1
pict_type=I
-coded_picture_number=0
-display_picture_number=0
interlaced_frame=0
top_field_first=0
repeat_pict=0
@@ -508,8 +496,6 @@ crop_right=0
pix_fmt=rgb24
sample_aspect_ratio=1:1
pict_type=I
-coded_picture_number=0
-display_picture_number=0
interlaced_frame=0
top_field_first=0
repeat_pict=0
@@ -555,8 +541,6 @@ crop_right=0
pix_fmt=rgb24
sample_aspect_ratio=1:1
pict_type=I
-coded_picture_number=0
-display_picture_number=0
interlaced_frame=0
top_field_first=0
repeat_pict=0
diff --git a/tests/ref/fate/ffprobe_flat b/tests/ref/fate/ffprobe_flat
index d1e290ddda..d81c8ccaf8 100644
--- a/tests/ref/fate/ffprobe_flat
+++ b/tests/ref/fate/ffprobe_flat
@@ -59,8 +59,6 @@ packets_and_frames.frame.1.crop_right=0
packets_and_frames.frame.1.pix_fmt="rgb24"
packets_and_frames.frame.1.sample_aspect_ratio="1:1"
packets_and_frames.frame.1.pict_type="I"
-packets_and_frames.frame.1.coded_picture_number=0
-packets_and_frames.frame.1.display_picture_number=0
packets_and_frames.frame.1.interlaced_frame=0
packets_and_frames.frame.1.top_field_first=0
packets_and_frames.frame.1.repeat_pict=0
@@ -102,8 +100,6 @@ packets_and_frames.frame.2.crop_right=0
packets_and_frames.frame.2.pix_fmt="rgb24"
packets_and_frames.frame.2.sample_aspect_ratio="1:1"
packets_and_frames.frame.2.pict_type="I"
-packets_and_frames.frame.2.coded_picture_number=0
-packets_and_frames.frame.2.display_picture_number=0
packets_and_frames.frame.2.interlaced_frame=0
packets_and_frames.frame.2.top_field_first=0
packets_and_frames.frame.2.repeat_pict=0
@@ -173,8 +169,6 @@ packets_and_frames.frame.4.crop_right=0
packets_and_frames.frame.4.pix_fmt="rgb24"
packets_and_frames.frame.4.sample_aspect_ratio="1:1"
packets_and_frames.frame.4.pict_type="I"
-packets_and_frames.frame.4.coded_picture_number=0
-packets_and_frames.frame.4.display_picture_number=0
packets_and_frames.frame.4.interlaced_frame=0
packets_and_frames.frame.4.top_field_first=0
packets_and_frames.frame.4.repeat_pict=0
@@ -216,8 +210,6 @@ packets_and_frames.frame.5.crop_right=0
packets_and_frames.frame.5.pix_fmt="rgb24"
packets_and_frames.frame.5.sample_aspect_ratio="1:1"
packets_and_frames.frame.5.pict_type="I"
-packets_and_frames.frame.5.coded_picture_number=0
-packets_and_frames.frame.5.display_picture_number=0
packets_and_frames.frame.5.interlaced_frame=0
packets_and_frames.frame.5.top_field_first=0
packets_and_frames.frame.5.repeat_pict=0
@@ -315,8 +307,6 @@ packets_and_frames.frame.8.crop_right=0
packets_and_frames.frame.8.pix_fmt="rgb24"
packets_and_frames.frame.8.sample_aspect_ratio="1:1"
packets_and_frames.frame.8.pict_type="I"
-packets_and_frames.frame.8.coded_picture_number=0
-packets_and_frames.frame.8.display_picture_number=0
packets_and_frames.frame.8.interlaced_frame=0
packets_and_frames.frame.8.top_field_first=0
packets_and_frames.frame.8.repeat_pict=0
@@ -358,8 +348,6 @@ packets_and_frames.frame.9.crop_right=0
packets_and_frames.frame.9.pix_fmt="rgb24"
packets_and_frames.frame.9.sample_aspect_ratio="1:1"
packets_and_frames.frame.9.pict_type="I"
-packets_and_frames.frame.9.coded_picture_number=0
-packets_and_frames.frame.9.display_picture_number=0
packets_and_frames.frame.9.interlaced_frame=0
packets_and_frames.frame.9.top_field_first=0
packets_and_frames.frame.9.repeat_pict=0
@@ -457,8 +445,6 @@ packets_and_frames.frame.12.crop_right=0
packets_and_frames.frame.12.pix_fmt="rgb24"
packets_and_frames.frame.12.sample_aspect_ratio="1:1"
packets_and_frames.frame.12.pict_type="I"
-packets_and_frames.frame.12.coded_picture_number=0
-packets_and_frames.frame.12.display_picture_number=0
packets_and_frames.frame.12.interlaced_frame=0
packets_and_frames.frame.12.top_field_first=0
packets_and_frames.frame.12.repeat_pict=0
@@ -500,8 +486,6 @@ packets_and_frames.frame.13.crop_right=0
packets_and_frames.frame.13.pix_fmt="rgb24"
packets_and_frames.frame.13.sample_aspect_ratio="1:1"
packets_and_frames.frame.13.pict_type="I"
-packets_and_frames.frame.13.coded_picture_number=0
-packets_and_frames.frame.13.display_picture_number=0
packets_and_frames.frame.13.interlaced_frame=0
packets_and_frames.frame.13.top_field_first=0
packets_and_frames.frame.13.repeat_pict=0
diff --git a/tests/ref/fate/ffprobe_ini b/tests/ref/fate/ffprobe_ini
index 6716094d68..16ac2d0786 100644
--- a/tests/ref/fate/ffprobe_ini
+++ b/tests/ref/fate/ffprobe_ini
@@ -68,8 +68,6 @@ crop_right=0
pix_fmt=rgb24
sample_aspect_ratio=1\:1
pict_type=I
-coded_picture_number=0
-display_picture_number=0
interlaced_frame=0
top_field_first=0
repeat_pict=0
@@ -115,8 +113,6 @@ crop_right=0
pix_fmt=rgb24
sample_aspect_ratio=1\:1
pict_type=I
-coded_picture_number=0
-display_picture_number=0
interlaced_frame=0
top_field_first=0
repeat_pict=0
@@ -194,8 +190,6 @@ crop_right=0
pix_fmt=rgb24
sample_aspect_ratio=1\:1
pict_type=I
-coded_picture_number=0
-display_picture_number=0
interlaced_frame=0
top_field_first=0
repeat_pict=0
@@ -241,8 +235,6 @@ crop_right=0
pix_fmt=rgb24
sample_aspect_ratio=1\:1
pict_type=I
-coded_picture_number=0
-display_picture_number=0
interlaced_frame=0
top_field_first=0
repeat_pict=0
@@ -352,8 +344,6 @@ crop_right=0
pix_fmt=rgb24
sample_aspect_ratio=1\:1
pict_type=I
-coded_picture_number=0
-display_picture_number=0
interlaced_frame=0
top_field_first=0
repeat_pict=0
@@ -399,8 +389,6 @@ crop_right=0
pix_fmt=rgb24
sample_aspect_ratio=1\:1
pict_type=I
-coded_picture_number=0
-display_picture_number=0
interlaced_frame=0
top_field_first=0
repeat_pict=0
@@ -510,8 +498,6 @@ crop_right=0
pix_fmt=rgb24
sample_aspect_ratio=1\:1
pict_type=I
-coded_picture_number=0
-display_picture_number=0
interlaced_frame=0
top_field_first=0
repeat_pict=0
@@ -557,8 +543,6 @@ crop_right=0
pix_fmt=rgb24
sample_aspect_ratio=1\:1
pict_type=I
-coded_picture_number=0
-display_picture_number=0
interlaced_frame=0
top_field_first=0
repeat_pict=0
diff --git a/tests/ref/fate/ffprobe_json b/tests/ref/fate/ffprobe_json
index cf5b4eae1e..31d59366c9 100644
--- a/tests/ref/fate/ffprobe_json
+++ b/tests/ref/fate/ffprobe_json
@@ -71,8 +71,6 @@
"pix_fmt": "rgb24",
"sample_aspect_ratio": "1:1",
"pict_type": "I",
- "coded_picture_number": 0,
- "display_picture_number": 0,
"interlaced_frame": 0,
"top_field_first": 0,
"repeat_pict": 0
@@ -115,8 +113,6 @@
"pix_fmt": "rgb24",
"sample_aspect_ratio": "1:1",
"pict_type": "I",
- "coded_picture_number": 0,
- "display_picture_number": 0,
"interlaced_frame": 0,
"top_field_first": 0,
"repeat_pict": 0
@@ -192,8 +188,6 @@
"pix_fmt": "rgb24",
"sample_aspect_ratio": "1:1",
"pict_type": "I",
- "coded_picture_number": 0,
- "display_picture_number": 0,
"interlaced_frame": 0,
"top_field_first": 0,
"repeat_pict": 0
@@ -236,8 +230,6 @@
"pix_fmt": "rgb24",
"sample_aspect_ratio": "1:1",
"pict_type": "I",
- "coded_picture_number": 0,
- "display_picture_number": 0,
"interlaced_frame": 0,
"top_field_first": 0,
"repeat_pict": 0
@@ -346,8 +338,6 @@
"pix_fmt": "rgb24",
"sample_aspect_ratio": "1:1",
"pict_type": "I",
- "coded_picture_number": 0,
- "display_picture_number": 0,
"interlaced_frame": 0,
"top_field_first": 0,
"repeat_pict": 0
@@ -390,8 +380,6 @@
"pix_fmt": "rgb24",
"sample_aspect_ratio": "1:1",
"pict_type": "I",
- "coded_picture_number": 0,
- "display_picture_number": 0,
"interlaced_frame": 0,
"top_field_first": 0,
"repeat_pict": 0
@@ -500,8 +488,6 @@
"pix_fmt": "rgb24",
"sample_aspect_ratio": "1:1",
"pict_type": "I",
- "coded_picture_number": 0,
- "display_picture_number": 0,
"interlaced_frame": 0,
"top_field_first": 0,
"repeat_pict": 0
@@ -544,8 +530,6 @@
"pix_fmt": "rgb24",
"sample_aspect_ratio": "1:1",
"pict_type": "I",
- "coded_picture_number": 0,
- "display_picture_number": 0,
"interlaced_frame": 0,
"top_field_first": 0,
"repeat_pict": 0
diff --git a/tests/ref/fate/ffprobe_xml b/tests/ref/fate/ffprobe_xml
index eb1d265100..51d154f53d 100644
--- a/tests/ref/fate/ffprobe_xml
+++ b/tests/ref/fate/ffprobe_xml
@@ -4,31 +4,31 @@
<packet codec_type="audio" stream_index="0" pts="0" pts_time="0.000000" dts="0" dts_time="0.000000" duration="1024" duration_time="0.023220" size="2048" pos="669" flags="K__"/>
<frame media_type="audio" stream_index="0" key_frame="1" pts="0" pts_time="0.000000" pkt_dts="0" pkt_dts_time="0.000000" best_effort_timestamp="0" best_effort_timestamp_time="0.000000" duration="1024" duration_time="0.023220" pkt_pos="669" pkt_size="2048" sample_fmt="s16" nb_samples="1024" channels="1"/>
<packet codec_type="video" stream_index="1" pts="0" pts_time="0.000000" dts="0" dts_time="0.000000" duration="2048" duration_time="0.040000" size="230400" pos="2744" flags="K__"/>
- <frame media_type="video" stream_index="1" key_frame="1" pts="0" pts_time="0.000000" pkt_dts="0" pkt_dts_time="0.000000" best_effort_timestamp="0" best_effort_timestamp_time="0.000000" duration="2048" duration_time="0.040000" pkt_pos="2744" pkt_size="230400" width="320" height="240" crop_top="0" crop_bottom="0" crop_left="0" crop_right="0" pix_fmt="rgb24" sample_aspect_ratio="1:1" pict_type="I" coded_picture_number="0" display_picture_number="0" interlaced_frame="0" top_field_first="0" repeat_pict="0"/>
+ <frame media_type="video" stream_index="1" key_frame="1" pts="0" pts_time="0.000000" pkt_dts="0" pkt_dts_time="0.000000" best_effort_timestamp="0" best_effort_timestamp_time="0.000000" duration="2048" duration_time="0.040000" pkt_pos="2744" pkt_size="230400" width="320" height="240" crop_top="0" crop_bottom="0" crop_left="0" crop_right="0" pix_fmt="rgb24" sample_aspect_ratio="1:1" pict_type="I" interlaced_frame="0" top_field_first="0" repeat_pict="0"/>
<packet codec_type="video" stream_index="2" pts="0" pts_time="0.000000" dts="0" dts_time="0.000000" duration="2048" duration_time="0.040000" size="30000" pos="233165" flags="K__"/>
- <frame media_type="video" stream_index="2" key_frame="1" pts="0" pts_time="0.000000" pkt_dts="0" pkt_dts_time="0.000000" best_effort_timestamp="0" best_effort_timestamp_time="0.000000" duration="2048" duration_time="0.040000" pkt_pos="233165" pkt_size="30000" width="100" height="100" crop_top="0" crop_bottom="0" crop_left="0" crop_right="0" pix_fmt="rgb24" sample_aspect_ratio="1:1" pict_type="I" coded_picture_number="0" display_picture_number="0" interlaced_frame="0" top_field_first="0" repeat_pict="0"/>
+ <frame media_type="video" stream_index="2" key_frame="1" pts="0" pts_time="0.000000" pkt_dts="0" pkt_dts_time="0.000000" best_effort_timestamp="0" best_effort_timestamp_time="0.000000" duration="2048" duration_time="0.040000" pkt_pos="233165" pkt_size="30000" width="100" height="100" crop_top="0" crop_bottom="0" crop_left="0" crop_right="0" pix_fmt="rgb24" sample_aspect_ratio="1:1" pict_type="I" interlaced_frame="0" top_field_first="0" repeat_pict="0"/>
<packet codec_type="audio" stream_index="0" pts="1024" pts_time="0.023220" dts="1024" dts_time="0.023220" duration="1024" duration_time="0.023220" size="2048" pos="263170" flags="K__"/>
<frame media_type="audio" stream_index="0" key_frame="1" pts="1024" pts_time="0.023220" pkt_dts="1024" pkt_dts_time="0.023220" best_effort_timestamp="1024" best_effort_timestamp_time="0.023220" duration="1024" duration_time="0.023220" pkt_pos="263170" pkt_size="2048" sample_fmt="s16" nb_samples="1024" channels="1"/>
<packet codec_type="video" stream_index="1" pts="2048" pts_time="0.040000" dts="2048" dts_time="0.040000" duration="2048" duration_time="0.040000" size="230400" pos="265248" flags="K__"/>
- <frame media_type="video" stream_index="1" key_frame="1" pts="2048" pts_time="0.040000" pkt_dts="2048" pkt_dts_time="0.040000" best_effort_timestamp="2048" best_effort_timestamp_time="0.040000" duration="2048" duration_time="0.040000" pkt_pos="265248" pkt_size="230400" width="320" height="240" crop_top="0" crop_bottom="0" crop_left="0" crop_right="0" pix_fmt="rgb24" sample_aspect_ratio="1:1" pict_type="I" coded_picture_number="0" display_picture_number="0" interlaced_frame="0" top_field_first="0" repeat_pict="0"/>
+ <frame media_type="video" stream_index="1" key_frame="1" pts="2048" pts_time="0.040000" pkt_dts="2048" pkt_dts_time="0.040000" best_effort_timestamp="2048" best_effort_timestamp_time="0.040000" duration="2048" duration_time="0.040000" pkt_pos="265248" pkt_size="230400" width="320" height="240" crop_top="0" crop_bottom="0" crop_left="0" crop_right="0" pix_fmt="rgb24" sample_aspect_ratio="1:1" pict_type="I" interlaced_frame="0" top_field_first="0" repeat_pict="0"/>
<packet codec_type="video" stream_index="2" pts="2048" pts_time="0.040000" dts="2048" dts_time="0.040000" duration="2048" duration_time="0.040000" size="30000" pos="495672" flags="K__"/>
- <frame media_type="video" stream_index="2" key_frame="1" pts="2048" pts_time="0.040000" pkt_dts="2048" pkt_dts_time="0.040000" best_effort_timestamp="2048" best_effort_timestamp_time="0.040000" duration="2048" duration_time="0.040000" pkt_pos="495672" pkt_size="30000" width="100" height="100" crop_top="0" crop_bottom="0" crop_left="0" crop_right="0" pix_fmt="rgb24" sample_aspect_ratio="1:1" pict_type="I" coded_picture_number="0" display_picture_number="0" interlaced_frame="0" top_field_first="0" repeat_pict="0"/>
+ <frame media_type="video" stream_index="2" key_frame="1" pts="2048" pts_time="0.040000" pkt_dts="2048" pkt_dts_time="0.040000" best_effort_timestamp="2048" best_effort_timestamp_time="0.040000" duration="2048" duration_time="0.040000" pkt_pos="495672" pkt_size="30000" width="100" height="100" crop_top="0" crop_bottom="0" crop_left="0" crop_right="0" pix_fmt="rgb24" sample_aspect_ratio="1:1" pict_type="I" interlaced_frame="0" top_field_first="0" repeat_pict="0"/>
<packet codec_type="audio" stream_index="0" pts="2048" pts_time="0.046440" dts="2048" dts_time="0.046440" duration="1024" duration_time="0.023220" size="2048" pos="525677" flags="K__"/>
<frame media_type="audio" stream_index="0" key_frame="1" pts="2048" pts_time="0.046440" pkt_dts="2048" pkt_dts_time="0.046440" best_effort_timestamp="2048" best_effort_timestamp_time="0.046440" duration="1024" duration_time="0.023220" pkt_pos="525677" pkt_size="2048" sample_fmt="s16" nb_samples="1024" channels="1"/>
<packet codec_type="audio" stream_index="0" pts="3072" pts_time="0.069660" dts="3072" dts_time="0.069660" duration="1024" duration_time="0.023220" size="2048" pos="527748" flags="K__"/>
<frame media_type="audio" stream_index="0" key_frame="1" pts="3072" pts_time="0.069660" pkt_dts="3072" pkt_dts_time="0.069660" best_effort_timestamp="3072" best_effort_timestamp_time="0.069660" duration="1024" duration_time="0.023220" pkt_pos="527748" pkt_size="2048" sample_fmt="s16" nb_samples="1024" channels="1"/>
<packet codec_type="video" stream_index="1" pts="4096" pts_time="0.080000" dts="4096" dts_time="0.080000" duration="2048" duration_time="0.040000" size="230400" pos="529826" flags="K__"/>
- <frame media_type="video" stream_index="1" key_frame="1" pts="4096" pts_time="0.080000" pkt_dts="4096" pkt_dts_time="0.080000" best_effort_timestamp="4096" best_effort_timestamp_time="0.080000" duration="2048" duration_time="0.040000" pkt_pos="529826" pkt_size="230400" width="320" height="240" crop_top="0" crop_bottom="0" crop_left="0" crop_right="0" pix_fmt="rgb24" sample_aspect_ratio="1:1" pict_type="I" coded_picture_number="0" display_picture_number="0" interlaced_frame="0" top_field_first="0" repeat_pict="0"/>
+ <frame media_type="video" stream_index="1" key_frame="1" pts="4096" pts_time="0.080000" pkt_dts="4096" pkt_dts_time="0.080000" best_effort_timestamp="4096" best_effort_timestamp_time="0.080000" duration="2048" duration_time="0.040000" pkt_pos="529826" pkt_size="230400" width="320" height="240" crop_top="0" crop_bottom="0" crop_left="0" crop_right="0" pix_fmt="rgb24" sample_aspect_ratio="1:1" pict_type="I" interlaced_frame="0" top_field_first="0" repeat_pict="0"/>
<packet codec_type="video" stream_index="2" pts="4096" pts_time="0.080000" dts="4096" dts_time="0.080000" duration="2048" duration_time="0.040000" size="30000" pos="760250" flags="K__"/>
- <frame media_type="video" stream_index="2" key_frame="1" pts="4096" pts_time="0.080000" pkt_dts="4096" pkt_dts_time="0.080000" best_effort_timestamp="4096" best_effort_timestamp_time="0.080000" duration="2048" duration_time="0.040000" pkt_pos="760250" pkt_size="30000" width="100" height="100" crop_top="0" crop_bottom="0" crop_left="0" crop_right="0" pix_fmt="rgb24" sample_aspect_ratio="1:1" pict_type="I" coded_picture_number="0" display_picture_number="0" interlaced_frame="0" top_field_first="0" repeat_pict="0"/>
+ <frame media_type="video" stream_index="2" key_frame="1" pts="4096" pts_time="0.080000" pkt_dts="4096" pkt_dts_time="0.080000" best_effort_timestamp="4096" best_effort_timestamp_time="0.080000" duration="2048" duration_time="0.040000" pkt_pos="760250" pkt_size="30000" width="100" height="100" crop_top="0" crop_bottom="0" crop_left="0" crop_right="0" pix_fmt="rgb24" sample_aspect_ratio="1:1" pict_type="I" interlaced_frame="0" top_field_first="0" repeat_pict="0"/>
<packet codec_type="audio" stream_index="0" pts="4096" pts_time="0.092880" dts="4096" dts_time="0.092880" duration="1024" duration_time="0.023220" size="2048" pos="790255" flags="K__"/>
<frame media_type="audio" stream_index="0" key_frame="1" pts="4096" pts_time="0.092880" pkt_dts="4096" pkt_dts_time="0.092880" best_effort_timestamp="4096" best_effort_timestamp_time="0.092880" duration="1024" duration_time="0.023220" pkt_pos="790255" pkt_size="2048" sample_fmt="s16" nb_samples="1024" channels="1"/>
<packet codec_type="audio" stream_index="0" pts="5120" pts_time="0.116100" dts="5120" dts_time="0.116100" duration="393" duration_time="0.008912" size="786" pos="792326" flags="K__"/>
<frame media_type="audio" stream_index="0" key_frame="1" pts="5120" pts_time="0.116100" pkt_dts="5120" pkt_dts_time="0.116100" best_effort_timestamp="5120" best_effort_timestamp_time="0.116100" duration="393" duration_time="0.008912" pkt_pos="792326" pkt_size="786" sample_fmt="s16" nb_samples="393" channels="1"/>
<packet codec_type="video" stream_index="1" pts="6144" pts_time="0.120000" dts="6144" dts_time="0.120000" duration="2048" duration_time="0.040000" size="230400" pos="793142" flags="K__"/>
- <frame media_type="video" stream_index="1" key_frame="1" pts="6144" pts_time="0.120000" pkt_dts="6144" pkt_dts_time="0.120000" best_effort_timestamp="6144" best_effort_timestamp_time="0.120000" duration="2048" duration_time="0.040000" pkt_pos="793142" pkt_size="230400" width="320" height="240" crop_top="0" crop_bottom="0" crop_left="0" crop_right="0" pix_fmt="rgb24" sample_aspect_ratio="1:1" pict_type="I" coded_picture_number="0" display_picture_number="0" interlaced_frame="0" top_field_first="0" repeat_pict="0"/>
+ <frame media_type="video" stream_index="1" key_frame="1" pts="6144" pts_time="0.120000" pkt_dts="6144" pkt_dts_time="0.120000" best_effort_timestamp="6144" best_effort_timestamp_time="0.120000" duration="2048" duration_time="0.040000" pkt_pos="793142" pkt_size="230400" width="320" height="240" crop_top="0" crop_bottom="0" crop_left="0" crop_right="0" pix_fmt="rgb24" sample_aspect_ratio="1:1" pict_type="I" interlaced_frame="0" top_field_first="0" repeat_pict="0"/>
<packet codec_type="video" stream_index="2" pts="6144" pts_time="0.120000" dts="6144" dts_time="0.120000" duration="2048" duration_time="0.040000" size="30000" pos="1023566" flags="K__"/>
- <frame media_type="video" stream_index="2" key_frame="1" pts="6144" pts_time="0.120000" pkt_dts="6144" pkt_dts_time="0.120000" best_effort_timestamp="6144" best_effort_timestamp_time="0.120000" duration="2048" duration_time="0.040000" pkt_pos="1023566" pkt_size="30000" width="100" height="100" crop_top="0" crop_bottom="0" crop_left="0" crop_right="0" pix_fmt="rgb24" sample_aspect_ratio="1:1" pict_type="I" coded_picture_number="0" display_picture_number="0" interlaced_frame="0" top_field_first="0" repeat_pict="0"/>
+ <frame media_type="video" stream_index="2" key_frame="1" pts="6144" pts_time="0.120000" pkt_dts="6144" pkt_dts_time="0.120000" best_effort_timestamp="6144" best_effort_timestamp_time="0.120000" duration="2048" duration_time="0.040000" pkt_pos="1023566" pkt_size="30000" width="100" height="100" crop_top="0" crop_bottom="0" crop_left="0" crop_right="0" pix_fmt="rgb24" sample_aspect_ratio="1:1" pict_type="I" interlaced_frame="0" top_field_first="0" repeat_pict="0"/>
</packets_and_frames>
<streams>
diff --git a/tests/ref/fate/ffprobe_xsd b/tests/ref/fate/ffprobe_xsd
index 1d0a4d0e38..f7df6bf815 100644
--- a/tests/ref/fate/ffprobe_xsd
+++ b/tests/ref/fate/ffprobe_xsd
@@ -4,31 +4,31 @@
<packet codec_type="audio" stream_index="0" pts="0" pts_time="0.000000" dts="0" dts_time="0.000000" duration="1024" duration_time="0.023220" size="2048" pos="669" flags="K__"/>
<frame media_type="audio" stream_index="0" key_frame="1" pts="0" pts_time="0.000000" pkt_dts="0" pkt_dts_time="0.000000" best_effort_timestamp="0" best_effort_timestamp_time="0.000000" duration="1024" duration_time="0.023220" pkt_pos="669" pkt_size="2048" sample_fmt="s16" nb_samples="1024" channels="1"/>
<packet codec_type="video" stream_index="1" pts="0" pts_time="0.000000" dts="0" dts_time="0.000000" duration="2048" duration_time="0.040000" size="230400" pos="2744" flags="K__"/>
- <frame media_type="video" stream_index="1" key_frame="1" pts="0" pts_time="0.000000" pkt_dts="0" pkt_dts_time="0.000000" best_effort_timestamp="0" best_effort_timestamp_time="0.000000" duration="2048" duration_time="0.040000" pkt_pos="2744" pkt_size="230400" width="320" height="240" crop_top="0" crop_bottom="0" crop_left="0" crop_right="0" pix_fmt="rgb24" sample_aspect_ratio="1:1" pict_type="I" coded_picture_number="0" display_picture_number="0" interlaced_frame="0" top_field_first="0" repeat_pict="0"/>
+ <frame media_type="video" stream_index="1" key_frame="1" pts="0" pts_time="0.000000" pkt_dts="0" pkt_dts_time="0.000000" best_effort_timestamp="0" best_effort_timestamp_time="0.000000" duration="2048" duration_time="0.040000" pkt_pos="2744" pkt_size="230400" width="320" height="240" crop_top="0" crop_bottom="0" crop_left="0" crop_right="0" pix_fmt="rgb24" sample_aspect_ratio="1:1" pict_type="I" interlaced_frame="0" top_field_first="0" repeat_pict="0"/>
<packet codec_type="video" stream_index="2" pts="0" pts_time="0.000000" dts="0" dts_time="0.000000" duration="2048" duration_time="0.040000" size="30000" pos="233165" flags="K__"/>
- <frame media_type="video" stream_index="2" key_frame="1" pts="0" pts_time="0.000000" pkt_dts="0" pkt_dts_time="0.000000" best_effort_timestamp="0" best_effort_timestamp_time="0.000000" duration="2048" duration_time="0.040000" pkt_pos="233165" pkt_size="30000" width="100" height="100" crop_top="0" crop_bottom="0" crop_left="0" crop_right="0" pix_fmt="rgb24" sample_aspect_ratio="1:1" pict_type="I" coded_picture_number="0" display_picture_number="0" interlaced_frame="0" top_field_first="0" repeat_pict="0"/>
+ <frame media_type="video" stream_index="2" key_frame="1" pts="0" pts_time="0.000000" pkt_dts="0" pkt_dts_time="0.000000" best_effort_timestamp="0" best_effort_timestamp_time="0.000000" duration="2048" duration_time="0.040000" pkt_pos="233165" pkt_size="30000" width="100" height="100" crop_top="0" crop_bottom="0" crop_left="0" crop_right="0" pix_fmt="rgb24" sample_aspect_ratio="1:1" pict_type="I" interlaced_frame="0" top_field_first="0" repeat_pict="0"/>
<packet codec_type="audio" stream_index="0" pts="1024" pts_time="0.023220" dts="1024" dts_time="0.023220" duration="1024" duration_time="0.023220" size="2048" pos="263170" flags="K__"/>
<frame media_type="audio" stream_index="0" key_frame="1" pts="1024" pts_time="0.023220" pkt_dts="1024" pkt_dts_time="0.023220" best_effort_timestamp="1024" best_effort_timestamp_time="0.023220" duration="1024" duration_time="0.023220" pkt_pos="263170" pkt_size="2048" sample_fmt="s16" nb_samples="1024" channels="1"/>
<packet codec_type="video" stream_index="1" pts="2048" pts_time="0.040000" dts="2048" dts_time="0.040000" duration="2048" duration_time="0.040000" size="230400" pos="265248" flags="K__"/>
- <frame media_type="video" stream_index="1" key_frame="1" pts="2048" pts_time="0.040000" pkt_dts="2048" pkt_dts_time="0.040000" best_effort_timestamp="2048" best_effort_timestamp_time="0.040000" duration="2048" duration_time="0.040000" pkt_pos="265248" pkt_size="230400" width="320" height="240" crop_top="0" crop_bottom="0" crop_left="0" crop_right="0" pix_fmt="rgb24" sample_aspect_ratio="1:1" pict_type="I" coded_picture_number="0" display_picture_number="0" interlaced_frame="0" top_field_first="0" repeat_pict="0"/>
+ <frame media_type="video" stream_index="1" key_frame="1" pts="2048" pts_time="0.040000" pkt_dts="2048" pkt_dts_time="0.040000" best_effort_timestamp="2048" best_effort_timestamp_time="0.040000" duration="2048" duration_time="0.040000" pkt_pos="265248" pkt_size="230400" width="320" height="240" crop_top="0" crop_bottom="0" crop_left="0" crop_right="0" pix_fmt="rgb24" sample_aspect_ratio="1:1" pict_type="I" interlaced_frame="0" top_field_first="0" repeat_pict="0"/>
<packet codec_type="video" stream_index="2" pts="2048" pts_time="0.040000" dts="2048" dts_time="0.040000" duration="2048" duration_time="0.040000" size="30000" pos="495672" flags="K__"/>
- <frame media_type="video" stream_index="2" key_frame="1" pts="2048" pts_time="0.040000" pkt_dts="2048" pkt_dts_time="0.040000" best_effort_timestamp="2048" best_effort_timestamp_time="0.040000" duration="2048" duration_time="0.040000" pkt_pos="495672" pkt_size="30000" width="100" height="100" crop_top="0" crop_bottom="0" crop_left="0" crop_right="0" pix_fmt="rgb24" sample_aspect_ratio="1:1" pict_type="I" coded_picture_number="0" display_picture_number="0" interlaced_frame="0" top_field_first="0" repeat_pict="0"/>
+ <frame media_type="video" stream_index="2" key_frame="1" pts="2048" pts_time="0.040000" pkt_dts="2048" pkt_dts_time="0.040000" best_effort_timestamp="2048" best_effort_timestamp_time="0.040000" duration="2048" duration_time="0.040000" pkt_pos="495672" pkt_size="30000" width="100" height="100" crop_top="0" crop_bottom="0" crop_left="0" crop_right="0" pix_fmt="rgb24" sample_aspect_ratio="1:1" pict_type="I" interlaced_frame="0" top_field_first="0" repeat_pict="0"/>
<packet codec_type="audio" stream_index="0" pts="2048" pts_time="0.046440" dts="2048" dts_time="0.046440" duration="1024" duration_time="0.023220" size="2048" pos="525677" flags="K__"/>
<frame media_type="audio" stream_index="0" key_frame="1" pts="2048" pts_time="0.046440" pkt_dts="2048" pkt_dts_time="0.046440" best_effort_timestamp="2048" best_effort_timestamp_time="0.046440" duration="1024" duration_time="0.023220" pkt_pos="525677" pkt_size="2048" sample_fmt="s16" nb_samples="1024" channels="1"/>
<packet codec_type="audio" stream_index="0" pts="3072" pts_time="0.069660" dts="3072" dts_time="0.069660" duration="1024" duration_time="0.023220" size="2048" pos="527748" flags="K__"/>
<frame media_type="audio" stream_index="0" key_frame="1" pts="3072" pts_time="0.069660" pkt_dts="3072" pkt_dts_time="0.069660" best_effort_timestamp="3072" best_effort_timestamp_time="0.069660" duration="1024" duration_time="0.023220" pkt_pos="527748" pkt_size="2048" sample_fmt="s16" nb_samples="1024" channels="1"/>
<packet codec_type="video" stream_index="1" pts="4096" pts_time="0.080000" dts="4096" dts_time="0.080000" duration="2048" duration_time="0.040000" size="230400" pos="529826" flags="K__"/>
- <frame media_type="video" stream_index="1" key_frame="1" pts="4096" pts_time="0.080000" pkt_dts="4096" pkt_dts_time="0.080000" best_effort_timestamp="4096" best_effort_timestamp_time="0.080000" duration="2048" duration_time="0.040000" pkt_pos="529826" pkt_size="230400" width="320" height="240" crop_top="0" crop_bottom="0" crop_left="0" crop_right="0" pix_fmt="rgb24" sample_aspect_ratio="1:1" pict_type="I" coded_picture_number="0" display_picture_number="0" interlaced_frame="0" top_field_first="0" repeat_pict="0"/>
+ <frame media_type="video" stream_index="1" key_frame="1" pts="4096" pts_time="0.080000" pkt_dts="4096" pkt_dts_time="0.080000" best_effort_timestamp="4096" best_effort_timestamp_time="0.080000" duration="2048" duration_time="0.040000" pkt_pos="529826" pkt_size="230400" width="320" height="240" crop_top="0" crop_bottom="0" crop_left="0" crop_right="0" pix_fmt="rgb24" sample_aspect_ratio="1:1" pict_type="I" interlaced_frame="0" top_field_first="0" repeat_pict="0"/>
<packet codec_type="video" stream_index="2" pts="4096" pts_time="0.080000" dts="4096" dts_time="0.080000" duration="2048" duration_time="0.040000" size="30000" pos="760250" flags="K__"/>
- <frame media_type="video" stream_index="2" key_frame="1" pts="4096" pts_time="0.080000" pkt_dts="4096" pkt_dts_time="0.080000" best_effort_timestamp="4096" best_effort_timestamp_time="0.080000" duration="2048" duration_time="0.040000" pkt_pos="760250" pkt_size="30000" width="100" height="100" crop_top="0" crop_bottom="0" crop_left="0" crop_right="0" pix_fmt="rgb24" sample_aspect_ratio="1:1" pict_type="I" coded_picture_number="0" display_picture_number="0" interlaced_frame="0" top_field_first="0" repeat_pict="0"/>
+ <frame media_type="video" stream_index="2" key_frame="1" pts="4096" pts_time="0.080000" pkt_dts="4096" pkt_dts_time="0.080000" best_effort_timestamp="4096" best_effort_timestamp_time="0.080000" duration="2048" duration_time="0.040000" pkt_pos="760250" pkt_size="30000" width="100" height="100" crop_top="0" crop_bottom="0" crop_left="0" crop_right="0" pix_fmt="rgb24" sample_aspect_ratio="1:1" pict_type="I" interlaced_frame="0" top_field_first="0" repeat_pict="0"/>
<packet codec_type="audio" stream_index="0" pts="4096" pts_time="0.092880" dts="4096" dts_time="0.092880" duration="1024" duration_time="0.023220" size="2048" pos="790255" flags="K__"/>
<frame media_type="audio" stream_index="0" key_frame="1" pts="4096" pts_time="0.092880" pkt_dts="4096" pkt_dts_time="0.092880" best_effort_timestamp="4096" best_effort_timestamp_time="0.092880" duration="1024" duration_time="0.023220" pkt_pos="790255" pkt_size="2048" sample_fmt="s16" nb_samples="1024" channels="1"/>
<packet codec_type="audio" stream_index="0" pts="5120" pts_time="0.116100" dts="5120" dts_time="0.116100" duration="393" duration_time="0.008912" size="786" pos="792326" flags="K__"/>
<frame media_type="audio" stream_index="0" key_frame="1" pts="5120" pts_time="0.116100" pkt_dts="5120" pkt_dts_time="0.116100" best_effort_timestamp="5120" best_effort_timestamp_time="0.116100" duration="393" duration_time="0.008912" pkt_pos="792326" pkt_size="786" sample_fmt="s16" nb_samples="393" channels="1"/>
<packet codec_type="video" stream_index="1" pts="6144" pts_time="0.120000" dts="6144" dts_time="0.120000" duration="2048" duration_time="0.040000" size="230400" pos="793142" flags="K__"/>
- <frame media_type="video" stream_index="1" key_frame="1" pts="6144" pts_time="0.120000" pkt_dts="6144" pkt_dts_time="0.120000" best_effort_timestamp="6144" best_effort_timestamp_time="0.120000" duration="2048" duration_time="0.040000" pkt_pos="793142" pkt_size="230400" width="320" height="240" crop_top="0" crop_bottom="0" crop_left="0" crop_right="0" pix_fmt="rgb24" sample_aspect_ratio="1:1" pict_type="I" coded_picture_number="0" display_picture_number="0" interlaced_frame="0" top_field_first="0" repeat_pict="0"/>
+ <frame media_type="video" stream_index="1" key_frame="1" pts="6144" pts_time="0.120000" pkt_dts="6144" pkt_dts_time="0.120000" best_effort_timestamp="6144" best_effort_timestamp_time="0.120000" duration="2048" duration_time="0.040000" pkt_pos="793142" pkt_size="230400" width="320" height="240" crop_top="0" crop_bottom="0" crop_left="0" crop_right="0" pix_fmt="rgb24" sample_aspect_ratio="1:1" pict_type="I" interlaced_frame="0" top_field_first="0" repeat_pict="0"/>
<packet codec_type="video" stream_index="2" pts="6144" pts_time="0.120000" dts="6144" dts_time="0.120000" duration="2048" duration_time="0.040000" size="30000" pos="1023566" flags="K__"/>
- <frame media_type="video" stream_index="2" key_frame="1" pts="6144" pts_time="0.120000" pkt_dts="6144" pkt_dts_time="0.120000" best_effort_timestamp="6144" best_effort_timestamp_time="0.120000" duration="2048" duration_time="0.040000" pkt_pos="1023566" pkt_size="30000" width="100" height="100" crop_top="0" crop_bottom="0" crop_left="0" crop_right="0" pix_fmt="rgb24" sample_aspect_ratio="1:1" pict_type="I" coded_picture_number="0" display_picture_number="0" interlaced_frame="0" top_field_first="0" repeat_pict="0"/>
+ <frame media_type="video" stream_index="2" key_frame="1" pts="6144" pts_time="0.120000" pkt_dts="6144" pkt_dts_time="0.120000" best_effort_timestamp="6144" best_effort_timestamp_time="0.120000" duration="2048" duration_time="0.040000" pkt_pos="1023566" pkt_size="30000" width="100" height="100" crop_top="0" crop_bottom="0" crop_left="0" crop_right="0" pix_fmt="rgb24" sample_aspect_ratio="1:1" pict_type="I" interlaced_frame="0" top_field_first="0" repeat_pict="0"/>
</packets_and_frames>
<streams>
diff --git a/tests/ref/fate/h264-dts_5frames b/tests/ref/fate/h264-dts_5frames
index 74f6582814..8fe4214b89 100644
--- a/tests/ref/fate/h264-dts_5frames
+++ b/tests/ref/fate/h264-dts_5frames
@@ -21,8 +21,6 @@ crop_right=0
pix_fmt=yuv420p
sample_aspect_ratio=1:1
pict_type=I
-coded_picture_number=0
-display_picture_number=0
interlaced_frame=0
top_field_first=0
repeat_pict=0
@@ -55,8 +53,6 @@ crop_right=0
pix_fmt=yuv420p
sample_aspect_ratio=1:1
pict_type=P
-coded_picture_number=1
-display_picture_number=0
interlaced_frame=0
top_field_first=0
repeat_pict=0
@@ -89,8 +85,6 @@ crop_right=0
pix_fmt=yuv420p
sample_aspect_ratio=1:1
pict_type=P
-coded_picture_number=2
-display_picture_number=0
interlaced_frame=0
top_field_first=0
repeat_pict=0
@@ -123,8 +117,6 @@ crop_right=0
pix_fmt=yuv420p
sample_aspect_ratio=1:1
pict_type=P
-coded_picture_number=3
-display_picture_number=0
interlaced_frame=0
top_field_first=0
repeat_pict=0
@@ -157,8 +149,6 @@ crop_right=0
pix_fmt=yuv420p
sample_aspect_ratio=1:1
pict_type=P
-coded_picture_number=4
-display_picture_number=0
interlaced_frame=0
top_field_first=0
repeat_pict=0
diff --git a/tests/ref/fate/jpg-icc b/tests/ref/fate/jpg-icc
index 8e4c382747..54ef63c501 100644
--- a/tests/ref/fate/jpg-icc
+++ b/tests/ref/fate/jpg-icc
@@ -29,8 +29,6 @@ crop_right=0
pix_fmt=yuvj444p
sample_aspect_ratio=1:1
pict_type=I
-coded_picture_number=0
-display_picture_number=0
interlaced_frame=0
top_field_first=0
repeat_pict=0
diff --git a/tests/ref/fate/mov-zombie b/tests/ref/fate/mov-zombie
index 955b8a4767..0ff447ef40 100644
--- a/tests/ref/fate/mov-zombie
+++ b/tests/ref/fate/mov-zombie
@@ -1,132 +1,132 @@
packet|codec_type=video|stream_index=0|pts=0|pts_time=0.000000|dts=-3004|dts_time=-0.033378|duration=3003|duration_time=0.033367|size=4133|pos=11309|flags=K__
packet|codec_type=video|stream_index=0|pts=5440|pts_time=0.060444|dts=-567|dts_time=-0.006300|duration=3003|duration_time=0.033367|size=1077|pos=15442|flags=___
-frame|media_type=video|stream_index=0|key_frame=1|pts=0|pts_time=0.000000|pkt_dts=-567|pkt_dts_time=-0.006300|best_effort_timestamp=0|best_effort_timestamp_time=0.000000|duration=3003|duration_time=0.033367|pkt_pos=11309|pkt_size=4133|width=160|height=240|crop_top=0|crop_bottom=0|crop_left=0|crop_right=0|pix_fmt=yuv420p|sample_aspect_ratio=2:1|pict_type=I|coded_picture_number=0|display_picture_number=0|interlaced_frame=0|top_field_first=0|repeat_pict=0|color_range=tv|color_space=smpte170m|color_primaries=smpte170m|color_transfer=bt709|chroma_location=topleft|side_datum/3x3_displaymatrix:side_data_type=3x3 displaymatrix|side_datum/3x3_displaymatrix:displaymatrix=\n00000000: 131072 0 0\n00000001: 0 65536 0\n00000002: 0 0 1073741824\n|side_datum/3x3_displaymatrix:rotation=0|side_datum/h_26_45__user_data_unregistered_sei_message:side_data_type=H.26[45] User Data Unregistered SEI message
+frame|media_type=video|stream_index=0|key_frame=1|pts=0|pts_time=0.000000|pkt_dts=-567|pkt_dts_time=-0.006300|best_effort_timestamp=0|best_effort_timestamp_time=0.000000|duration=3003|duration_time=0.033367|pkt_pos=11309|pkt_size=4133|width=160|height=240|crop_top=0|crop_bottom=0|crop_left=0|crop_right=0|pix_fmt=yuv420p|sample_aspect_ratio=2:1|pict_type=I|interlaced_frame=0|top_field_first=0|repeat_pict=0|color_range=tv|color_space=smpte170m|color_primaries=smpte170m|color_transfer=bt709|chroma_location=topleft|side_datum/3x3_displaymatrix:side_data_type=3x3 displaymatrix|side_datum/3x3_displaymatrix:displaymatrix=\n00000000: 131072 0 0\n00000001: 0 65536 0\n00000002: 0 0 1073741824\n|side_datum/3x3_displaymatrix:rotation=0|side_datum/h_26_45__user_data_unregistered_sei_message:side_data_type=H.26[45] User Data Unregistered SEI message
packet|codec_type=video|stream_index=0|pts=2437|pts_time=0.027078|dts=2436|dts_time=0.027067|duration=3003|duration_time=0.033367|size=355|pos=16519|flags=___
-frame|media_type=video|stream_index=0|key_frame=0|pts=2437|pts_time=0.027078|pkt_dts=2436|pkt_dts_time=0.027067|best_effort_timestamp=2437|best_effort_timestamp_time=0.027078|duration=3003|duration_time=0.033367|pkt_pos=16519|pkt_size=355|width=160|height=240|crop_top=0|crop_bottom=0|crop_left=0|crop_right=0|pix_fmt=yuv420p|sample_aspect_ratio=2:1|pict_type=B|coded_picture_number=2|display_picture_number=0|interlaced_frame=0|top_field_first=0|repeat_pict=0|color_range=tv|color_space=smpte170m|color_primaries=smpte170m|color_transfer=bt709|chroma_location=topleft|side_datum/3x3_displaymatrix:side_data_type=3x3 displaymatrix|side_datum/3x3_displaymatrix:displaymatrix=\n00000000: 131072 0 0\n00000001: 0 65536 0\n00000002: 0 0 1073741824\n|side_datum/3x3_displaymatrix:rotation=0|side_datum/h_26_45__user_data_unregistered_sei_message:side_data_type=H.26[45] User Data Unregistered SEI message
+frame|media_type=video|stream_index=0|key_frame=0|pts=2437|pts_time=0.027078|pkt_dts=2436|pkt_dts_time=0.027067|best_effort_timestamp=2437|best_effort_timestamp_time=0.027078|duration=3003|duration_time=0.033367|pkt_pos=16519|pkt_size=355|width=160|height=240|crop_top=0|crop_bottom=0|crop_left=0|crop_right=0|pix_fmt=yuv420p|sample_aspect_ratio=2:1|pict_type=B|interlaced_frame=0|top_field_first=0|repeat_pict=0|color_range=tv|color_space=smpte170m|color_primaries=smpte170m|color_transfer=bt709|chroma_location=topleft|side_datum/3x3_displaymatrix:side_data_type=3x3 displaymatrix|side_datum/3x3_displaymatrix:displaymatrix=\n00000000: 131072 0 0\n00000001: 0 65536 0\n00000002: 0 0 1073741824\n|side_datum/3x3_displaymatrix:rotation=0|side_datum/h_26_45__user_data_unregistered_sei_message:side_data_type=H.26[45] User Data Unregistered SEI message
packet|codec_type=video|stream_index=0|pts=11446|pts_time=0.127178|dts=5439|dts_time=0.060433|duration=3003|duration_time=0.033367|size=1110|pos=16874|flags=___
-frame|media_type=video|stream_index=0|key_frame=0|pts=5440|pts_time=0.060444|pkt_dts=5439|pkt_dts_time=0.060433|best_effort_timestamp=5440|best_effort_timestamp_time=0.060444|duration=3003|duration_time=0.033367|pkt_pos=15442|pkt_size=1077|width=160|height=240|crop_top=0|crop_bottom=0|crop_left=0|crop_right=0|pix_fmt=yuv420p|sample_aspect_ratio=2:1|pict_type=P|coded_picture_number=1|display_picture_number=0|interlaced_frame=0|top_field_first=0|repeat_pict=0|color_range=tv|color_space=smpte170m|color_primaries=smpte170m|color_transfer=bt709|chroma_location=topleft|side_datum/3x3_displaymatrix:side_data_type=3x3 displaymatrix|side_datum/3x3_displaymatrix:displaymatrix=\n00000000: 131072 0 0\n00000001: 0 65536 0\n00000002: 0 0 1073741824\n|side_datum/3x3_displaymatrix:rotation=0|side_datum/h_26_45__user_data_unregistered_sei_message:side_data_type=H.26[45] User Data Unregistered SEI message
+frame|media_type=video|stream_index=0|key_frame=0|pts=5440|pts_time=0.060444|pkt_dts=5439|pkt_dts_time=0.060433|best_effort_timestamp=5440|best_effort_timestamp_time=0.060444|duration=3003|duration_time=0.033367|pkt_pos=15442|pkt_size=1077|width=160|height=240|crop_top=0|crop_bottom=0|crop_left=0|crop_right=0|pix_fmt=yuv420p|sample_aspect_ratio=2:1|pict_type=P|interlaced_frame=0|top_field_first=0|repeat_pict=0|color_range=tv|color_space=smpte170m|color_primaries=smpte170m|color_transfer=bt709|chroma_location=topleft|side_datum/3x3_displaymatrix:side_data_type=3x3 displaymatrix|side_datum/3x3_displaymatrix:displaymatrix=\n00000000: 131072 0 0\n00000001: 0 65536 0\n00000002: 0 0 1073741824\n|side_datum/3x3_displaymatrix:rotation=0|side_datum/h_26_45__user_data_unregistered_sei_message:side_data_type=H.26[45] User Data Unregistered SEI message
packet|codec_type=video|stream_index=0|pts=8443|pts_time=0.093811|dts=8442|dts_time=0.093800|duration=3003|duration_time=0.033367|size=430|pos=17984|flags=___
-frame|media_type=video|stream_index=0|key_frame=0|pts=8443|pts_time=0.093811|pkt_dts=8442|pkt_dts_time=0.093800|best_effort_timestamp=8443|best_effort_timestamp_time=0.093811|duration=3003|duration_time=0.033367|pkt_pos=17984|pkt_size=430|width=160|height=240|crop_top=0|crop_bottom=0|crop_left=0|crop_right=0|pix_fmt=yuv420p|sample_aspect_ratio=2:1|pict_type=B|coded_picture_number=4|display_picture_number=0|interlaced_frame=0|top_field_first=0|repeat_pict=0|color_range=tv|color_space=smpte170m|color_primaries=smpte170m|color_transfer=bt709|chroma_location=topleft|side_datum/3x3_displaymatrix:side_data_type=3x3 displaymatrix|side_datum/3x3_displaymatrix:displaymatrix=\n00000000: 131072 0 0\n00000001: 0 65536 0\n00000002: 0 0 1073741824\n|side_datum/3x3_displaymatrix:rotation=0|side_datum/h_26_45__user_data_unregistered_sei_message:side_data_type=H.26[45] User Data Unregistered SEI message
+frame|media_type=video|stream_index=0|key_frame=0|pts=8443|pts_time=0.093811|pkt_dts=8442|pkt_dts_time=0.093800|best_effort_timestamp=8443|best_effort_timestamp_time=0.093811|duration=3003|duration_time=0.033367|pkt_pos=17984|pkt_size=430|width=160|height=240|crop_top=0|crop_bottom=0|crop_left=0|crop_right=0|pix_fmt=yuv420p|sample_aspect_ratio=2:1|pict_type=B|interlaced_frame=0|top_field_first=0|repeat_pict=0|color_range=tv|color_space=smpte170m|color_primaries=smpte170m|color_transfer=bt709|chroma_location=topleft|side_datum/3x3_displaymatrix:side_data_type=3x3 displaymatrix|side_datum/3x3_displaymatrix:displaymatrix=\n00000000: 131072 0 0\n00000001: 0 65536 0\n00000002: 0 0 1073741824\n|side_datum/3x3_displaymatrix:rotation=0|side_datum/h_26_45__user_data_unregistered_sei_message:side_data_type=H.26[45] User Data Unregistered SEI message
packet|codec_type=video|stream_index=0|pts=17452|pts_time=0.193911|dts=11445|dts_time=0.127167|duration=3003|duration_time=0.033367|size=1485|pos=18414|flags=___
-frame|media_type=video|stream_index=0|key_frame=0|pts=11446|pts_time=0.127178|pkt_dts=11445|pkt_dts_time=0.127167|best_effort_timestamp=11446|best_effort_timestamp_time=0.127178|duration=3003|duration_time=0.033367|pkt_pos=16874|pkt_size=1110|width=160|height=240|crop_top=0|crop_bottom=0|crop_left=0|crop_right=0|pix_fmt=yuv420p|sample_aspect_ratio=2:1|pict_type=P|coded_picture_number=3|display_picture_number=0|interlaced_frame=0|top_field_first=0|repeat_pict=0|color_range=tv|color_space=smpte170m|color_primaries=smpte170m|color_transfer=bt709|chroma_location=topleft|side_datum/3x3_displaymatrix:side_data_type=3x3 displaymatrix|side_datum/3x3_displaymatrix:displaymatrix=\n00000000: 131072 0 0\n00000001: 0 65536 0\n00000002: 0 0 1073741824\n|side_datum/3x3_displaymatrix:rotation=0|side_datum/h_26_45__user_data_unregistered_sei_message:side_data_type=H.26[45] User Data Unregistered SEI message
+frame|media_type=video|stream_index=0|key_frame=0|pts=11446|pts_time=0.127178|pkt_dts=11445|pkt_dts_time=0.127167|best_effort_timestamp=11446|best_effort_timestamp_time=0.127178|duration=3003|duration_time=0.033367|pkt_pos=16874|pkt_size=1110|width=160|height=240|crop_top=0|crop_bottom=0|crop_left=0|crop_right=0|pix_fmt=yuv420p|sample_aspect_ratio=2:1|pict_type=P|interlaced_frame=0|top_field_first=0|repeat_pict=0|color_range=tv|color_space=smpte170m|color_primaries=smpte170m|color_transfer=bt709|chroma_location=topleft|side_datum/3x3_displaymatrix:side_data_type=3x3 displaymatrix|side_datum/3x3_displaymatrix:displaymatrix=\n00000000: 131072 0 0\n00000001: 0 65536 0\n00000002: 0 0 1073741824\n|side_datum/3x3_displaymatrix:rotation=0|side_datum/h_26_45__user_data_unregistered_sei_message:side_data_type=H.26[45] User Data Unregistered SEI message
packet|codec_type=video|stream_index=0|pts=14449|pts_time=0.160544|dts=14448|dts_time=0.160533|duration=3003|duration_time=0.033367|size=1005|pos=19899|flags=___
-frame|media_type=video|stream_index=0|key_frame=0|pts=14449|pts_time=0.160544|pkt_dts=14448|pkt_dts_time=0.160533|best_effort_timestamp=14449|best_effort_timestamp_time=0.160544|duration=3003|duration_time=0.033367|pkt_pos=19899|pkt_size=1005|width=160|height=240|crop_top=0|crop_bottom=0|crop_left=0|crop_right=0|pix_fmt=yuv420p|sample_aspect_ratio=2:1|pict_type=B|coded_picture_number=6|display_picture_number=0|interlaced_frame=0|top_field_first=0|repeat_pict=0|color_range=tv|color_space=smpte170m|color_primaries=smpte170m|color_transfer=bt709|chroma_location=topleft|side_datum/3x3_displaymatrix:side_data_type=3x3 displaymatrix|side_datum/3x3_displaymatrix:displaymatrix=\n00000000: 131072 0 0\n00000001: 0 65536 0\n00000002: 0 0 1073741824\n|side_datum/3x3_displaymatrix:rotation=0|side_datum/h_26_45__user_data_unregistered_sei_message:side_data_type=H.26[45] User Data Unregistered SEI message
+frame|media_type=video|stream_index=0|key_frame=0|pts=14449|pts_time=0.160544|pkt_dts=14448|pkt_dts_time=0.160533|best_effort_timestamp=14449|best_effort_timestamp_time=0.160544|duration=3003|duration_time=0.033367|pkt_pos=19899|pkt_size=1005|width=160|height=240|crop_top=0|crop_bottom=0|crop_left=0|crop_right=0|pix_fmt=yuv420p|sample_aspect_ratio=2:1|pict_type=B|interlaced_frame=0|top_field_first=0|repeat_pict=0|color_range=tv|color_space=smpte170m|color_primaries=smpte170m|color_transfer=bt709|chroma_location=topleft|side_datum/3x3_displaymatrix:side_data_type=3x3 displaymatrix|side_datum/3x3_displaymatrix:displaymatrix=\n00000000: 131072 0 0\n00000001: 0 65536 0\n00000002: 0 0 1073741824\n|side_datum/3x3_displaymatrix:rotation=0|side_datum/h_26_45__user_data_unregistered_sei_message:side_data_type=H.26[45] User Data Unregistered SEI message
packet|codec_type=video|stream_index=0|pts=23458|pts_time=0.260644|dts=17451|dts_time=0.193900|duration=3003|duration_time=0.033367|size=1976|pos=20904|flags=___
-frame|media_type=video|stream_index=0|key_frame=0|pts=17452|pts_time=0.193911|pkt_dts=17451|pkt_dts_time=0.193900|best_effort_timestamp=17452|best_effort_timestamp_time=0.193911|duration=3003|duration_time=0.033367|pkt_pos=18414|pkt_size=1485|width=160|height=240|crop_top=0|crop_bottom=0|crop_left=0|crop_right=0|pix_fmt=yuv420p|sample_aspect_ratio=2:1|pict_type=P|coded_picture_number=5|display_picture_number=0|interlaced_frame=0|top_field_first=0|repeat_pict=0|color_range=tv|color_space=smpte170m|color_primaries=smpte170m|color_transfer=bt709|chroma_location=topleft|side_datum/3x3_displaymatrix:side_data_type=3x3 displaymatrix|side_datum/3x3_displaymatrix:displaymatrix=\n00000000: 131072 0 0\n00000001: 0 65536 0\n00000002: 0 0 1073741824\n|side_datum/3x3_displaymatrix:rotation=0|side_datum/h_26_45__user_data_unregistered_sei_message:side_data_type=H.26[45] User Data Unregistered SEI message
+frame|media_type=video|stream_index=0|key_frame=0|pts=17452|pts_time=0.193911|pkt_dts=17451|pkt_dts_time=0.193900|best_effort_timestamp=17452|best_effort_timestamp_time=0.193911|duration=3003|duration_time=0.033367|pkt_pos=18414|pkt_size=1485|width=160|height=240|crop_top=0|crop_bottom=0|crop_left=0|crop_right=0|pix_fmt=yuv420p|sample_aspect_ratio=2:1|pict_type=P|interlaced_frame=0|top_field_first=0|repeat_pict=0|color_range=tv|color_space=smpte170m|color_primaries=smpte170m|color_transfer=bt709|chroma_location=topleft|side_datum/3x3_displaymatrix:side_data_type=3x3 displaymatrix|side_datum/3x3_displaymatrix:displaymatrix=\n00000000: 131072 0 0\n00000001: 0 65536 0\n00000002: 0 0 1073741824\n|side_datum/3x3_displaymatrix:rotation=0|side_datum/h_26_45__user_data_unregistered_sei_message:side_data_type=H.26[45] User Data Unregistered SEI message
packet|codec_type=video|stream_index=0|pts=20455|pts_time=0.227278|dts=20454|dts_time=0.227267|duration=3003|duration_time=0.033367|size=904|pos=22880|flags=___
-frame|media_type=video|stream_index=0|key_frame=0|pts=20455|pts_time=0.227278|pkt_dts=20454|pkt_dts_time=0.227267|best_effort_timestamp=20455|best_effort_timestamp_time=0.227278|duration=3003|duration_time=0.033367|pkt_pos=22880|pkt_size=904|width=160|height=240|crop_top=0|crop_bottom=0|crop_left=0|crop_right=0|pix_fmt=yuv420p|sample_aspect_ratio=2:1|pict_type=B|coded_picture_number=8|display_picture_number=0|interlaced_frame=0|top_field_first=0|repeat_pict=0|color_range=tv|color_space=smpte170m|color_primaries=smpte170m|color_transfer=bt709|chroma_location=topleft|side_datum/3x3_displaymatrix:side_data_type=3x3 displaymatrix|side_datum/3x3_displaymatrix:displaymatrix=\n00000000: 131072 0 0\n00000001: 0 65536 0\n00000002: 0 0 1073741824\n|side_datum/3x3_displaymatrix:rotation=0|side_datum/h_26_45__user_data_unregistered_sei_message:side_data_type=H.26[45] User Data Unregistered SEI message
+frame|media_type=video|stream_index=0|key_frame=0|pts=20455|pts_time=0.227278|pkt_dts=20454|pkt_dts_time=0.227267|best_effort_timestamp=20455|best_effort_timestamp_time=0.227278|duration=3003|duration_time=0.033367|pkt_pos=22880|pkt_size=904|width=160|height=240|crop_top=0|crop_bottom=0|crop_left=0|crop_right=0|pix_fmt=yuv420p|sample_aspect_ratio=2:1|pict_type=B|interlaced_frame=0|top_field_first=0|repeat_pict=0|color_range=tv|color_space=smpte170m|color_primaries=smpte170m|color_transfer=bt709|chroma_location=topleft|side_datum/3x3_displaymatrix:side_data_type=3x3 displaymatrix|side_datum/3x3_displaymatrix:displaymatrix=\n00000000: 131072 0 0\n00000001: 0 65536 0\n00000002: 0 0 1073741824\n|side_datum/3x3_displaymatrix:rotation=0|side_datum/h_26_45__user_data_unregistered_sei_message:side_data_type=H.26[45] User Data Unregistered SEI message
packet|codec_type=video|stream_index=0|pts=29464|pts_time=0.327378|dts=23457|dts_time=0.260633|duration=3003|duration_time=0.033367|size=1254|pos=23784|flags=___
-frame|media_type=video|stream_index=0|key_frame=0|pts=23458|pts_time=0.260644|pkt_dts=23457|pkt_dts_time=0.260633|best_effort_timestamp=23458|best_effort_timestamp_time=0.260644|duration=3003|duration_time=0.033367|pkt_pos=20904|pkt_size=1976|width=160|height=240|crop_top=0|crop_bottom=0|crop_left=0|crop_right=0|pix_fmt=yuv420p|sample_aspect_ratio=2:1|pict_type=P|coded_picture_number=7|display_picture_number=0|interlaced_frame=0|top_field_first=0|repeat_pict=0|color_range=tv|color_space=smpte170m|color_primaries=smpte170m|color_transfer=bt709|chroma_location=topleft|side_datum/3x3_displaymatrix:side_data_type=3x3 displaymatrix|side_datum/3x3_displaymatrix:displaymatrix=\n00000000: 131072 0 0\n00000001: 0 65536 0\n00000002: 0 0 1073741824\n|side_datum/3x3_displaymatrix:rotation=0|side_datum/h_26_45__user_data_unregistered_sei_message:side_data_type=H.26[45] User Data Unregistered SEI message
+frame|media_type=video|stream_index=0|key_frame=0|pts=23458|pts_time=0.260644|pkt_dts=23457|pkt_dts_time=0.260633|best_effort_timestamp=23458|best_effort_timestamp_time=0.260644|duration=3003|duration_time=0.033367|pkt_pos=20904|pkt_size=1976|width=160|height=240|crop_top=0|crop_bottom=0|crop_left=0|crop_right=0|pix_fmt=yuv420p|sample_aspect_ratio=2:1|pict_type=P|interlaced_frame=0|top_field_first=0|repeat_pict=0|color_range=tv|color_space=smpte170m|color_primaries=smpte170m|color_transfer=bt709|chroma_location=topleft|side_datum/3x3_displaymatrix:side_data_type=3x3 displaymatrix|side_datum/3x3_displaymatrix:displaymatrix=\n00000000: 131072 0 0\n00000001: 0 65536 0\n00000002: 0 0 1073741824\n|side_datum/3x3_displaymatrix:rotation=0|side_datum/h_26_45__user_data_unregistered_sei_message:side_data_type=H.26[45] User Data Unregistered SEI message
packet|codec_type=video|stream_index=0|pts=26461|pts_time=0.294011|dts=26460|dts_time=0.294000|duration=3003|duration_time=0.033367|size=700|pos=25038|flags=___
-frame|media_type=video|stream_index=0|key_frame=0|pts=26461|pts_time=0.294011|pkt_dts=26460|pkt_dts_time=0.294000|best_effort_timestamp=26461|best_effort_timestamp_time=0.294011|duration=3003|duration_time=0.033367|pkt_pos=25038|pkt_size=700|width=160|height=240|crop_top=0|crop_bottom=0|crop_left=0|crop_right=0|pix_fmt=yuv420p|sample_aspect_ratio=2:1|pict_type=B|coded_picture_number=10|display_picture_number=0|interlaced_frame=0|top_field_first=0|repeat_pict=0|color_range=tv|color_space=smpte170m|color_primaries=smpte170m|color_transfer=bt709|chroma_location=topleft|side_datum/3x3_displaymatrix:side_data_type=3x3 displaymatrix|side_datum/3x3_displaymatrix:displaymatrix=\n00000000: 131072 0 0\n00000001: 0 65536 0\n00000002: 0 0 1073741824\n|side_datum/3x3_displaymatrix:rotation=0|side_datum/h_26_45__user_data_unregistered_sei_message:side_data_type=H.26[45] User Data Unregistered SEI message
+frame|media_type=video|stream_index=0|key_frame=0|pts=26461|pts_time=0.294011|pkt_dts=26460|pkt_dts_time=0.294000|best_effort_timestamp=26461|best_effort_timestamp_time=0.294011|duration=3003|duration_time=0.033367|pkt_pos=25038|pkt_size=700|width=160|height=240|crop_top=0|crop_bottom=0|crop_left=0|crop_right=0|pix_fmt=yuv420p|sample_aspect_ratio=2:1|pict_type=B|interlaced_frame=0|top_field_first=0|repeat_pict=0|color_range=tv|color_space=smpte170m|color_primaries=smpte170m|color_transfer=bt709|chroma_location=topleft|side_datum/3x3_displaymatrix:side_data_type=3x3 displaymatrix|side_datum/3x3_displaymatrix:displaymatrix=\n00000000: 131072 0 0\n00000001: 0 65536 0\n00000002: 0 0 1073741824\n|side_datum/3x3_displaymatrix:rotation=0|side_datum/h_26_45__user_data_unregistered_sei_message:side_data_type=H.26[45] User Data Unregistered SEI message
packet|codec_type=video|stream_index=0|pts=35470|pts_time=0.394111|dts=29463|dts_time=0.327367|duration=3003|duration_time=0.033367|size=1311|pos=25738|flags=___
-frame|media_type=video|stream_index=0|key_frame=0|pts=29464|pts_time=0.327378|pkt_dts=29463|pkt_dts_time=0.327367|best_effort_timestamp=29464|best_effort_timestamp_time=0.327378|duration=3003|duration_time=0.033367|pkt_pos=23784|pkt_size=1254|width=160|height=240|crop_top=0|crop_bottom=0|crop_left=0|crop_right=0|pix_fmt=yuv420p|sample_aspect_ratio=2:1|pict_type=P|coded_picture_number=9|display_picture_number=0|interlaced_frame=0|top_field_first=0|repeat_pict=0|color_range=tv|color_space=smpte170m|color_primaries=smpte170m|color_transfer=bt709|chroma_location=topleft|side_datum/3x3_displaymatrix:side_data_type=3x3 displaymatrix|side_datum/3x3_displaymatrix:displaymatrix=\n00000000: 131072 0 0\n00000001: 0 65536 0\n00000002: 0 0 1073741824\n|side_datum/3x3_displaymatrix:rotation=0|side_datum/h_26_45__user_data_unregistered_sei_message:side_data_type=H.26[45] User Data Unregistered SEI message
+frame|media_type=video|stream_index=0|key_frame=0|pts=29464|pts_time=0.327378|pkt_dts=29463|pkt_dts_time=0.327367|best_effort_timestamp=29464|best_effort_timestamp_time=0.327378|duration=3003|duration_time=0.033367|pkt_pos=23784|pkt_size=1254|width=160|height=240|crop_top=0|crop_bottom=0|crop_left=0|crop_right=0|pix_fmt=yuv420p|sample_aspect_ratio=2:1|pict_type=P|interlaced_frame=0|top_field_first=0|repeat_pict=0|color_range=tv|color_space=smpte170m|color_primaries=smpte170m|color_transfer=bt709|chroma_location=topleft|side_datum/3x3_displaymatrix:side_data_type=3x3 displaymatrix|side_datum/3x3_displaymatrix:displaymatrix=\n00000000: 131072 0 0\n00000001: 0 65536 0\n00000002: 0 0 1073741824\n|side_datum/3x3_displaymatrix:rotation=0|side_datum/h_26_45__user_data_unregistered_sei_message:side_data_type=H.26[45] User Data Unregistered SEI message
packet|codec_type=video|stream_index=0|pts=32467|pts_time=0.360744|dts=32466|dts_time=0.360733|duration=3003|duration_time=0.033367|size=631|pos=27049|flags=___
-frame|media_type=video|stream_index=0|key_frame=0|pts=32467|pts_time=0.360744|pkt_dts=32466|pkt_dts_time=0.360733|best_effort_timestamp=32467|best_effort_timestamp_time=0.360744|duration=3003|duration_time=0.033367|pkt_pos=27049|pkt_size=631|width=160|height=240|crop_top=0|crop_bottom=0|crop_left=0|crop_right=0|pix_fmt=yuv420p|sample_aspect_ratio=2:1|pict_type=B|coded_picture_number=12|display_picture_number=0|interlaced_frame=0|top_field_first=0|repeat_pict=0|color_range=tv|color_space=smpte170m|color_primaries=smpte170m|color_transfer=bt709|chroma_location=topleft|side_datum/3x3_displaymatrix:side_data_type=3x3 displaymatrix|side_datum/3x3_displaymatrix:displaymatrix=\n00000000: 131072 0 0\n00000001: 0 65536 0\n00000002: 0 0 1073741824\n|side_datum/3x3_displaymatrix:rotation=0|side_datum/h_26_45__user_data_unregistered_sei_message:side_data_type=H.26[45] User Data Unregistered SEI message
+frame|media_type=video|stream_index=0|key_frame=0|pts=32467|pts_time=0.360744|pkt_dts=32466|pkt_dts_time=0.360733|best_effort_timestamp=32467|best_effort_timestamp_time=0.360744|duration=3003|duration_time=0.033367|pkt_pos=27049|pkt_size=631|width=160|height=240|crop_top=0|crop_bottom=0|crop_left=0|crop_right=0|pix_fmt=yuv420p|sample_aspect_ratio=2:1|pict_type=B|interlaced_frame=0|top_field_first=0|repeat_pict=0|color_range=tv|color_space=smpte170m|color_primaries=smpte170m|color_transfer=bt709|chroma_location=topleft|side_datum/3x3_displaymatrix:side_data_type=3x3 displaymatrix|side_datum/3x3_displaymatrix:displaymatrix=\n00000000: 131072 0 0\n00000001: 0 65536 0\n00000002: 0 0 1073741824\n|side_datum/3x3_displaymatrix:rotation=0|side_datum/h_26_45__user_data_unregistered_sei_message:side_data_type=H.26[45] User Data Unregistered SEI message
packet|codec_type=video|stream_index=0|pts=41476|pts_time=0.460844|dts=35469|dts_time=0.394100|duration=3003|duration_time=0.033367|size=1296|pos=27680|flags=___
-frame|media_type=video|stream_index=0|key_frame=0|pts=35470|pts_time=0.394111|pkt_dts=35469|pkt_dts_time=0.394100|best_effort_timestamp=35470|best_effort_timestamp_time=0.394111|duration=3003|duration_time=0.033367|pkt_pos=25738|pkt_size=1311|width=160|height=240|crop_top=0|crop_bottom=0|crop_left=0|crop_right=0|pix_fmt=yuv420p|sample_aspect_ratio=2:1|pict_type=P|coded_picture_number=11|display_picture_number=0|interlaced_frame=0|top_field_first=0|repeat_pict=0|color_range=tv|color_space=smpte170m|color_primaries=smpte170m|color_transfer=bt709|chroma_location=topleft|side_datum/3x3_displaymatrix:side_data_type=3x3 displaymatrix|side_datum/3x3_displaymatrix:displaymatrix=\n00000000: 131072 0 0\n00000001: 0 65536 0\n00000002: 0 0 1073741824\n|side_datum/3x3_displaymatrix:rotation=0|side_datum/h_26_45__user_data_unregistered_sei_message:side_data_type=H.26[45] User Data Unregistered SEI message
+frame|media_type=video|stream_index=0|key_frame=0|pts=35470|pts_time=0.394111|pkt_dts=35469|pkt_dts_time=0.394100|best_effort_timestamp=35470|best_effort_timestamp_time=0.394111|duration=3003|duration_time=0.033367|pkt_pos=25738|pkt_size=1311|width=160|height=240|crop_top=0|crop_bottom=0|crop_left=0|crop_right=0|pix_fmt=yuv420p|sample_aspect_ratio=2:1|pict_type=P|interlaced_frame=0|top_field_first=0|repeat_pict=0|color_range=tv|color_space=smpte170m|color_primaries=smpte170m|color_transfer=bt709|chroma_location=topleft|side_datum/3x3_displaymatrix:side_data_type=3x3 displaymatrix|side_datum/3x3_displaymatrix:displaymatrix=\n00000000: 131072 0 0\n00000001: 0 65536 0\n00000002: 0 0 1073741824\n|side_datum/3x3_displaymatrix:rotation=0|side_datum/h_26_45__user_data_unregistered_sei_message:side_data_type=H.26[45] User Data Unregistered SEI message
packet|codec_type=video|stream_index=0|pts=38473|pts_time=0.427478|dts=38472|dts_time=0.427467|duration=3003|duration_time=0.033367|size=466|pos=28976|flags=___
-frame|media_type=video|stream_index=0|key_frame=0|pts=38473|pts_time=0.427478|pkt_dts=38472|pkt_dts_time=0.427467|best_effort_timestamp=38473|best_effort_timestamp_time=0.427478|duration=3003|duration_time=0.033367|pkt_pos=28976|pkt_size=466|width=160|height=240|crop_top=0|crop_bottom=0|crop_left=0|crop_right=0|pix_fmt=yuv420p|sample_aspect_ratio=2:1|pict_type=B|coded_picture_number=14|display_picture_number=0|interlaced_frame=0|top_field_first=0|repeat_pict=0|color_range=tv|color_space=smpte170m|color_primaries=smpte170m|color_transfer=bt709|chroma_location=topleft|side_datum/3x3_displaymatrix:side_data_type=3x3 displaymatrix|side_datum/3x3_displaymatrix:displaymatrix=\n00000000: 131072 0 0\n00000001: 0 65536 0\n00000002: 0 0 1073741824\n|side_datum/3x3_displaymatrix:rotation=0|side_datum/h_26_45__user_data_unregistered_sei_message:side_data_type=H.26[45] User Data Unregistered SEI message
+frame|media_type=video|stream_index=0|key_frame=0|pts=38473|pts_time=0.427478|pkt_dts=38472|pkt_dts_time=0.427467|best_effort_timestamp=38473|best_effort_timestamp_time=0.427478|duration=3003|duration_time=0.033367|pkt_pos=28976|pkt_size=466|width=160|height=240|crop_top=0|crop_bottom=0|crop_left=0|crop_right=0|pix_fmt=yuv420p|sample_aspect_ratio=2:1|pict_type=B|interlaced_frame=0|top_field_first=0|repeat_pict=0|color_range=tv|color_space=smpte170m|color_primaries=smpte170m|color_transfer=bt709|chroma_location=topleft|side_datum/3x3_displaymatrix:side_data_type=3x3 displaymatrix|side_datum/3x3_displaymatrix:displaymatrix=\n00000000: 131072 0 0\n00000001: 0 65536 0\n00000002: 0 0 1073741824\n|side_datum/3x3_displaymatrix:rotation=0|side_datum/h_26_45__user_data_unregistered_sei_message:side_data_type=H.26[45] User Data Unregistered SEI message
packet|codec_type=video|stream_index=0|pts=47482|pts_time=0.527578|dts=41475|dts_time=0.460833|duration=3003|duration_time=0.033367|size=1638|pos=29442|flags=___
-frame|media_type=video|stream_index=0|key_frame=0|pts=41476|pts_time=0.460844|pkt_dts=41475|pkt_dts_time=0.460833|best_effort_timestamp=41476|best_effort_timestamp_time=0.460844|duration=3003|duration_time=0.033367|pkt_pos=27680|pkt_size=1296|width=160|height=240|crop_top=0|crop_bottom=0|crop_left=0|crop_right=0|pix_fmt=yuv420p|sample_aspect_ratio=2:1|pict_type=P|coded_picture_number=13|display_picture_number=0|interlaced_frame=0|top_field_first=0|repeat_pict=0|color_range=tv|color_space=smpte170m|color_primaries=smpte170m|color_transfer=bt709|chroma_location=topleft|side_datum/3x3_displaymatrix:side_data_type=3x3 displaymatrix|side_datum/3x3_displaymatrix:displaymatrix=\n00000000: 131072 0 0\n00000001: 0 65536 0\n00000002: 0 0 1073741824\n|side_datum/3x3_displaymatrix:rotation=0|side_datum/h_26_45__user_data_unregistered_sei_message:side_data_type=H.26[45] User Data Unregistered SEI message
+frame|media_type=video|stream_index=0|key_frame=0|pts=41476|pts_time=0.460844|pkt_dts=41475|pkt_dts_time=0.460833|best_effort_timestamp=41476|best_effort_timestamp_time=0.460844|duration=3003|duration_time=0.033367|pkt_pos=27680|pkt_size=1296|width=160|height=240|crop_top=0|crop_bottom=0|crop_left=0|crop_right=0|pix_fmt=yuv420p|sample_aspect_ratio=2:1|pict_type=P|interlaced_frame=0|top_field_first=0|repeat_pict=0|color_range=tv|color_space=smpte170m|color_primaries=smpte170m|color_transfer=bt709|chroma_location=topleft|side_datum/3x3_displaymatrix:side_data_type=3x3 displaymatrix|side_datum/3x3_displaymatrix:displaymatrix=\n00000000: 131072 0 0\n00000001: 0 65536 0\n00000002: 0 0 1073741824\n|side_datum/3x3_displaymatrix:rotation=0|side_datum/h_26_45__user_data_unregistered_sei_message:side_data_type=H.26[45] User Data Unregistered SEI message
packet|codec_type=video|stream_index=0|pts=44479|pts_time=0.494211|dts=44478|dts_time=0.494200|duration=3003|duration_time=0.033367|size=907|pos=31080|flags=___
-frame|media_type=video|stream_index=0|key_frame=0|pts=44479|pts_time=0.494211|pkt_dts=44478|pkt_dts_time=0.494200|best_effort_timestamp=44479|best_effort_timestamp_time=0.494211|duration=3003|duration_time=0.033367|pkt_pos=31080|pkt_size=907|width=160|height=240|crop_top=0|crop_bottom=0|crop_left=0|crop_right=0|pix_fmt=yuv420p|sample_aspect_ratio=2:1|pict_type=B|coded_picture_number=16|display_picture_number=0|interlaced_frame=0|top_field_first=0|repeat_pict=0|color_range=tv|color_space=smpte170m|color_primaries=smpte170m|color_transfer=bt709|chroma_location=topleft|side_datum/3x3_displaymatrix:side_data_type=3x3 displaymatrix|side_datum/3x3_displaymatrix:displaymatrix=\n00000000: 131072 0 0\n00000001: 0 65536 0\n00000002: 0 0 1073741824\n|side_datum/3x3_displaymatrix:rotation=0|side_datum/h_26_45__user_data_unregistered_sei_message:side_data_type=H.26[45] User Data Unregistered SEI message
+frame|media_type=video|stream_index=0|key_frame=0|pts=44479|pts_time=0.494211|pkt_dts=44478|pkt_dts_time=0.494200|best_effort_timestamp=44479|best_effort_timestamp_time=0.494211|duration=3003|duration_time=0.033367|pkt_pos=31080|pkt_size=907|width=160|height=240|crop_top=0|crop_bottom=0|crop_left=0|crop_right=0|pix_fmt=yuv420p|sample_aspect_ratio=2:1|pict_type=B|interlaced_frame=0|top_field_first=0|repeat_pict=0|color_range=tv|color_space=smpte170m|color_primaries=smpte170m|color_transfer=bt709|chroma_location=topleft|side_datum/3x3_displaymatrix:side_data_type=3x3 displaymatrix|side_datum/3x3_displaymatrix:displaymatrix=\n00000000: 131072 0 0\n00000001: 0 65536 0\n00000002: 0 0 1073741824\n|side_datum/3x3_displaymatrix:rotation=0|side_datum/h_26_45__user_data_unregistered_sei_message:side_data_type=H.26[45] User Data Unregistered SEI message
packet|codec_type=video|stream_index=0|pts=53488|pts_time=0.594311|dts=47481|dts_time=0.527567|duration=3003|duration_time=0.033367|size=1362|pos=31987|flags=___
-frame|media_type=video|stream_index=0|key_frame=0|pts=47482|pts_time=0.527578|pkt_dts=47481|pkt_dts_time=0.527567|best_effort_timestamp=47482|best_effort_timestamp_time=0.527578|duration=3003|duration_time=0.033367|pkt_pos=29442|pkt_size=1638|width=160|height=240|crop_top=0|crop_bottom=0|crop_left=0|crop_right=0|pix_fmt=yuv420p|sample_aspect_ratio=2:1|pict_type=P|coded_picture_number=15|display_picture_number=0|interlaced_frame=0|top_field_first=0|repeat_pict=0|color_range=tv|color_space=smpte170m|color_primaries=smpte170m|color_transfer=bt709|chroma_location=topleft|side_datum/3x3_displaymatrix:side_data_type=3x3 displaymatrix|side_datum/3x3_displaymatrix:displaymatrix=\n00000000: 131072 0 0\n00000001: 0 65536 0\n00000002: 0 0 1073741824\n|side_datum/3x3_displaymatrix:rotation=0|side_datum/h_26_45__user_data_unregistered_sei_message:side_data_type=H.26[45] User Data Unregistered SEI message
+frame|media_type=video|stream_index=0|key_frame=0|pts=47482|pts_time=0.527578|pkt_dts=47481|pkt_dts_time=0.527567|best_effort_timestamp=47482|best_effort_timestamp_time=0.527578|duration=3003|duration_time=0.033367|pkt_pos=29442|pkt_size=1638|width=160|height=240|crop_top=0|crop_bottom=0|crop_left=0|crop_right=0|pix_fmt=yuv420p|sample_aspect_ratio=2:1|pict_type=P|interlaced_frame=0|top_field_first=0|repeat_pict=0|color_range=tv|color_space=smpte170m|color_primaries=smpte170m|color_transfer=bt709|chroma_location=topleft|side_datum/3x3_displaymatrix:side_data_type=3x3 displaymatrix|side_datum/3x3_displaymatrix:displaymatrix=\n00000000: 131072 0 0\n00000001: 0 65536 0\n00000002: 0 0 1073741824\n|side_datum/3x3_displaymatrix:rotation=0|side_datum/h_26_45__user_data_unregistered_sei_message:side_data_type=H.26[45] User Data Unregistered SEI message
packet|codec_type=video|stream_index=0|pts=50485|pts_time=0.560944|dts=50484|dts_time=0.560933|duration=3003|duration_time=0.033367|size=682|pos=33349|flags=___
-frame|media_type=video|stream_index=0|key_frame=0|pts=50485|pts_time=0.560944|pkt_dts=50484|pkt_dts_time=0.560933|best_effort_timestamp=50485|best_effort_timestamp_time=0.560944|duration=3003|duration_time=0.033367|pkt_pos=33349|pkt_size=682|width=160|height=240|crop_top=0|crop_bottom=0|crop_left=0|crop_right=0|pix_fmt=yuv420p|sample_aspect_ratio=2:1|pict_type=B|coded_picture_number=18|display_picture_number=0|interlaced_frame=0|top_field_first=0|repeat_pict=0|color_range=tv|color_space=smpte170m|color_primaries=smpte170m|color_transfer=bt709|chroma_location=topleft|side_datum/3x3_displaymatrix:side_data_type=3x3 displaymatrix|side_datum/3x3_displaymatrix:displaymatrix=\n00000000: 131072 0 0\n00000001: 0 65536 0\n00000002: 0 0 1073741824\n|side_datum/3x3_displaymatrix:rotation=0|side_datum/h_26_45__user_data_unregistered_sei_message:side_data_type=H.26[45] User Data Unregistered SEI message
+frame|media_type=video|stream_index=0|key_frame=0|pts=50485|pts_time=0.560944|pkt_dts=50484|pkt_dts_time=0.560933|best_effort_timestamp=50485|best_effort_timestamp_time=0.560944|duration=3003|duration_time=0.033367|pkt_pos=33349|pkt_size=682|width=160|height=240|crop_top=0|crop_bottom=0|crop_left=0|crop_right=0|pix_fmt=yuv420p|sample_aspect_ratio=2:1|pict_type=B|interlaced_frame=0|top_field_first=0|repeat_pict=0|color_range=tv|color_space=smpte170m|color_primaries=smpte170m|color_transfer=bt709|chroma_location=topleft|side_datum/3x3_displaymatrix:side_data_type=3x3 displaymatrix|side_datum/3x3_displaymatrix:displaymatrix=\n00000000: 131072 0 0\n00000001: 0 65536 0\n00000002: 0 0 1073741824\n|side_datum/3x3_displaymatrix:rotation=0|side_datum/h_26_45__user_data_unregistered_sei_message:side_data_type=H.26[45] User Data Unregistered SEI message
packet|codec_type=video|stream_index=0|pts=59494|pts_time=0.661044|dts=53487|dts_time=0.594300|duration=3003|duration_time=0.033367|size=2917|pos=34031|flags=___
-frame|media_type=video|stream_index=0|key_frame=0|pts=53488|pts_time=0.594311|pkt_dts=53487|pkt_dts_time=0.594300|best_effort_timestamp=53488|best_effort_timestamp_time=0.594311|duration=3003|duration_time=0.033367|pkt_pos=31987|pkt_size=1362|width=160|height=240|crop_top=0|crop_bottom=0|crop_left=0|crop_right=0|pix_fmt=yuv420p|sample_aspect_ratio=2:1|pict_type=P|coded_picture_number=17|display_picture_number=0|interlaced_frame=0|top_field_first=0|repeat_pict=0|color_range=tv|color_space=smpte170m|color_primaries=smpte170m|color_transfer=bt709|chroma_location=topleft|side_datum/3x3_displaymatrix:side_data_type=3x3 displaymatrix|side_datum/3x3_displaymatrix:displaymatrix=\n00000000: 131072 0 0\n00000001: 0 65536 0\n00000002: 0 0 1073741824\n|side_datum/3x3_displaymatrix:rotation=0|side_datum/h_26_45__user_data_unregistered_sei_message:side_data_type=H.26[45] User Data Unregistered SEI message
+frame|media_type=video|stream_index=0|key_frame=0|pts=53488|pts_time=0.594311|pkt_dts=53487|pkt_dts_time=0.594300|best_effort_timestamp=53488|best_effort_timestamp_time=0.594311|duration=3003|duration_time=0.033367|pkt_pos=31987|pkt_size=1362|width=160|height=240|crop_top=0|crop_bottom=0|crop_left=0|crop_right=0|pix_fmt=yuv420p|sample_aspect_ratio=2:1|pict_type=P|interlaced_frame=0|top_field_first=0|repeat_pict=0|color_range=tv|color_space=smpte170m|color_primaries=smpte170m|color_transfer=bt709|chroma_location=topleft|side_datum/3x3_displaymatrix:side_data_type=3x3 displaymatrix|side_datum/3x3_displaymatrix:displaymatrix=\n00000000: 131072 0 0\n00000001: 0 65536 0\n00000002: 0 0 1073741824\n|side_datum/3x3_displaymatrix:rotation=0|side_datum/h_26_45__user_data_unregistered_sei_message:side_data_type=H.26[45] User Data Unregistered SEI message
packet|codec_type=video|stream_index=0|pts=56491|pts_time=0.627678|dts=56490|dts_time=0.627667|duration=3003|duration_time=0.033367|size=1174|pos=36948|flags=___
-frame|media_type=video|stream_index=0|key_frame=0|pts=56491|pts_time=0.627678|pkt_dts=56490|pkt_dts_time=0.627667|best_effort_timestamp=56491|best_effort_timestamp_time=0.627678|duration=3003|duration_time=0.033367|pkt_pos=36948|pkt_size=1174|width=160|height=240|crop_top=0|crop_bottom=0|crop_left=0|crop_right=0|pix_fmt=yuv420p|sample_aspect_ratio=2:1|pict_type=B|coded_picture_number=20|display_picture_number=0|interlaced_frame=0|top_field_first=0|repeat_pict=0|color_range=tv|color_space=smpte170m|color_primaries=smpte170m|color_transfer=bt709|chroma_location=topleft|side_datum/3x3_displaymatrix:side_data_type=3x3 displaymatrix|side_datum/3x3_displaymatrix:displaymatrix=\n00000000: 131072 0 0\n00000001: 0 65536 0\n00000002: 0 0 1073741824\n|side_datum/3x3_displaymatrix:rotation=0|side_datum/h_26_45__user_data_unregistered_sei_message:side_data_type=H.26[45] User Data Unregistered SEI message
+frame|media_type=video|stream_index=0|key_frame=0|pts=56491|pts_time=0.627678|pkt_dts=56490|pkt_dts_time=0.627667|best_effort_timestamp=56491|best_effort_timestamp_time=0.627678|duration=3003|duration_time=0.033367|pkt_pos=36948|pkt_size=1174|width=160|height=240|crop_top=0|crop_bottom=0|crop_left=0|crop_right=0|pix_fmt=yuv420p|sample_aspect_ratio=2:1|pict_type=B|interlaced_frame=0|top_field_first=0|repeat_pict=0|color_range=tv|color_space=smpte170m|color_primaries=smpte170m|color_transfer=bt709|chroma_location=topleft|side_datum/3x3_displaymatrix:side_data_type=3x3 displaymatrix|side_datum/3x3_displaymatrix:displaymatrix=\n00000000: 131072 0 0\n00000001: 0 65536 0\n00000002: 0 0 1073741824\n|side_datum/3x3_displaymatrix:rotation=0|side_datum/h_26_45__user_data_unregistered_sei_message:side_data_type=H.26[45] User Data Unregistered SEI message
packet|codec_type=video|stream_index=0|pts=65500|pts_time=0.727778|dts=59493|dts_time=0.661033|duration=3003|duration_time=0.033367|size=1748|pos=38122|flags=___
-frame|media_type=video|stream_index=0|key_frame=0|pts=59494|pts_time=0.661044|pkt_dts=59493|pkt_dts_time=0.661033|best_effort_timestamp=59494|best_effort_timestamp_time=0.661044|duration=3003|duration_time=0.033367|pkt_pos=34031|pkt_size=2917|width=160|height=240|crop_top=0|crop_bottom=0|crop_left=0|crop_right=0|pix_fmt=yuv420p|sample_aspect_ratio=2:1|pict_type=P|coded_picture_number=19|display_picture_number=0|interlaced_frame=0|top_field_first=0|repeat_pict=0|color_range=tv|color_space=smpte170m|color_primaries=smpte170m|color_transfer=bt709|chroma_location=topleft|side_datum/3x3_displaymatrix:side_data_type=3x3 displaymatrix|side_datum/3x3_displaymatrix:displaymatrix=\n00000000: 131072 0 0\n00000001: 0 65536 0\n00000002: 0 0 1073741824\n|side_datum/3x3_displaymatrix:rotation=0|side_datum/h_26_45__user_data_unregistered_sei_message:side_data_type=H.26[45] User Data Unregistered SEI message
+frame|media_type=video|stream_index=0|key_frame=0|pts=59494|pts_time=0.661044|pkt_dts=59493|pkt_dts_time=0.661033|best_effort_timestamp=59494|best_effort_timestamp_time=0.661044|duration=3003|duration_time=0.033367|pkt_pos=34031|pkt_size=2917|width=160|height=240|crop_top=0|crop_bottom=0|crop_left=0|crop_right=0|pix_fmt=yuv420p|sample_aspect_ratio=2:1|pict_type=P|interlaced_frame=0|top_field_first=0|repeat_pict=0|color_range=tv|color_space=smpte170m|color_primaries=smpte170m|color_transfer=bt709|chroma_location=topleft|side_datum/3x3_displaymatrix:side_data_type=3x3 displaymatrix|side_datum/3x3_displaymatrix:displaymatrix=\n00000000: 131072 0 0\n00000001: 0 65536 0\n00000002: 0 0 1073741824\n|side_datum/3x3_displaymatrix:rotation=0|side_datum/h_26_45__user_data_unregistered_sei_message:side_data_type=H.26[45] User Data Unregistered SEI message
packet|codec_type=video|stream_index=0|pts=62497|pts_time=0.694411|dts=62496|dts_time=0.694400|duration=3003|duration_time=0.033367|size=926|pos=39870|flags=___
-frame|media_type=video|stream_index=0|key_frame=0|pts=62497|pts_time=0.694411|pkt_dts=62496|pkt_dts_time=0.694400|best_effort_timestamp=62497|best_effort_timestamp_time=0.694411|duration=3003|duration_time=0.033367|pkt_pos=39870|pkt_size=926|width=160|height=240|crop_top=0|crop_bottom=0|crop_left=0|crop_right=0|pix_fmt=yuv420p|sample_aspect_ratio=2:1|pict_type=B|coded_picture_number=22|display_picture_number=0|interlaced_frame=0|top_field_first=0|repeat_pict=0|color_range=tv|color_space=smpte170m|color_primaries=smpte170m|color_transfer=bt709|chroma_location=topleft|side_datum/3x3_displaymatrix:side_data_type=3x3 displaymatrix|side_datum/3x3_displaymatrix:displaymatrix=\n00000000: 131072 0 0\n00000001: 0 65536 0\n00000002: 0 0 1073741824\n|side_datum/3x3_displaymatrix:rotation=0|side_datum/h_26_45__user_data_unregistered_sei_message:side_data_type=H.26[45] User Data Unregistered SEI message
+frame|media_type=video|stream_index=0|key_frame=0|pts=62497|pts_time=0.694411|pkt_dts=62496|pkt_dts_time=0.694400|best_effort_timestamp=62497|best_effort_timestamp_time=0.694411|duration=3003|duration_time=0.033367|pkt_pos=39870|pkt_size=926|width=160|height=240|crop_top=0|crop_bottom=0|crop_left=0|crop_right=0|pix_fmt=yuv420p|sample_aspect_ratio=2:1|pict_type=B|interlaced_frame=0|top_field_first=0|repeat_pict=0|color_range=tv|color_space=smpte170m|color_primaries=smpte170m|color_transfer=bt709|chroma_location=topleft|side_datum/3x3_displaymatrix:side_data_type=3x3 displaymatrix|side_datum/3x3_displaymatrix:displaymatrix=\n00000000: 131072 0 0\n00000001: 0 65536 0\n00000002: 0 0 1073741824\n|side_datum/3x3_displaymatrix:rotation=0|side_datum/h_26_45__user_data_unregistered_sei_message:side_data_type=H.26[45] User Data Unregistered SEI message
packet|codec_type=video|stream_index=0|pts=68503|pts_time=0.761144|dts=65499|dts_time=0.727767|duration=3003|duration_time=0.033367|size=918|pos=40796|flags=___
-frame|media_type=video|stream_index=0|key_frame=0|pts=65500|pts_time=0.727778|pkt_dts=65499|pkt_dts_time=0.727767|best_effort_timestamp=65500|best_effort_timestamp_time=0.727778|duration=3003|duration_time=0.033367|pkt_pos=38122|pkt_size=1748|width=160|height=240|crop_top=0|crop_bottom=0|crop_left=0|crop_right=0|pix_fmt=yuv420p|sample_aspect_ratio=2:1|pict_type=P|coded_picture_number=21|display_picture_number=0|interlaced_frame=0|top_field_first=0|repeat_pict=0|color_range=tv|color_space=smpte170m|color_primaries=smpte170m|color_transfer=bt709|chroma_location=topleft|side_datum/3x3_displaymatrix:side_data_type=3x3 displaymatrix|side_datum/3x3_displaymatrix:displaymatrix=\n00000000: 131072 0 0\n00000001: 0 65536 0\n00000002: 0 0 1073741824\n|side_datum/3x3_displaymatrix:rotation=0|side_datum/h_26_45__user_data_unregistered_sei_message:side_data_type=H.26[45] User Data Unregistered SEI message
+frame|media_type=video|stream_index=0|key_frame=0|pts=65500|pts_time=0.727778|pkt_dts=65499|pkt_dts_time=0.727767|best_effort_timestamp=65500|best_effort_timestamp_time=0.727778|duration=3003|duration_time=0.033367|pkt_pos=38122|pkt_size=1748|width=160|height=240|crop_top=0|crop_bottom=0|crop_left=0|crop_right=0|pix_fmt=yuv420p|sample_aspect_ratio=2:1|pict_type=P|interlaced_frame=0|top_field_first=0|repeat_pict=0|color_range=tv|color_space=smpte170m|color_primaries=smpte170m|color_transfer=bt709|chroma_location=topleft|side_datum/3x3_displaymatrix:side_data_type=3x3 displaymatrix|side_datum/3x3_displaymatrix:displaymatrix=\n00000000: 131072 0 0\n00000001: 0 65536 0\n00000002: 0 0 1073741824\n|side_datum/3x3_displaymatrix:rotation=0|side_datum/h_26_45__user_data_unregistered_sei_message:side_data_type=H.26[45] User Data Unregistered SEI message
packet|codec_type=video|stream_index=0|pts=71506|pts_time=0.794511|dts=68502|dts_time=0.761133|duration=3003|duration_time=0.033367|size=3846|pos=41714|flags=K__
-frame|media_type=video|stream_index=0|key_frame=0|pts=68503|pts_time=0.761144|pkt_dts=68502|pkt_dts_time=0.761133|best_effort_timestamp=68503|best_effort_timestamp_time=0.761144|duration=3003|duration_time=0.033367|pkt_pos=40796|pkt_size=918|width=160|height=240|crop_top=0|crop_bottom=0|crop_left=0|crop_right=0|pix_fmt=yuv420p|sample_aspect_ratio=2:1|pict_type=P|coded_picture_number=23|display_picture_number=0|interlaced_frame=0|top_field_first=0|repeat_pict=0|color_range=tv|color_space=smpte170m|color_primaries=smpte170m|color_transfer=bt709|chroma_location=topleft|side_datum/3x3_displaymatrix:side_data_type=3x3 displaymatrix|side_datum/3x3_displaymatrix:displaymatrix=\n00000000: 131072 0 0\n00000001: 0 65536 0\n00000002: 0 0 1073741824\n|side_datum/3x3_displaymatrix:rotation=0|side_datum/h_26_45__user_data_unregistered_sei_message:side_data_type=H.26[45] User Data Unregistered SEI message
+frame|media_type=video|stream_index=0|key_frame=0|pts=68503|pts_time=0.761144|pkt_dts=68502|pkt_dts_time=0.761133|best_effort_timestamp=68503|best_effort_timestamp_time=0.761144|duration=3003|duration_time=0.033367|pkt_pos=40796|pkt_size=918|width=160|height=240|crop_top=0|crop_bottom=0|crop_left=0|crop_right=0|pix_fmt=yuv420p|sample_aspect_ratio=2:1|pict_type=P|interlaced_frame=0|top_field_first=0|repeat_pict=0|color_range=tv|color_space=smpte170m|color_primaries=smpte170m|color_transfer=bt709|chroma_location=topleft|side_datum/3x3_displaymatrix:side_data_type=3x3 displaymatrix|side_datum/3x3_displaymatrix:displaymatrix=\n00000000: 131072 0 0\n00000001: 0 65536 0\n00000002: 0 0 1073741824\n|side_datum/3x3_displaymatrix:rotation=0|side_datum/h_26_45__user_data_unregistered_sei_message:side_data_type=H.26[45] User Data Unregistered SEI message
packet|codec_type=video|stream_index=0|pts=77512|pts_time=0.861244|dts=71505|dts_time=0.794500|duration=3003|duration_time=0.033367|size=1932|pos=45560|flags=___
-frame|media_type=video|stream_index=0|key_frame=1|pts=71506|pts_time=0.794511|pkt_dts=71505|pkt_dts_time=0.794500|best_effort_timestamp=71506|best_effort_timestamp_time=0.794511|duration=3003|duration_time=0.033367|pkt_pos=41714|pkt_size=3846|width=160|height=240|crop_top=0|crop_bottom=0|crop_left=0|crop_right=0|pix_fmt=yuv420p|sample_aspect_ratio=2:1|pict_type=I|coded_picture_number=24|display_picture_number=0|interlaced_frame=0|top_field_first=0|repeat_pict=0|color_range=tv|color_space=smpte170m|color_primaries=smpte170m|color_transfer=bt709|chroma_location=topleft|side_datum/3x3_displaymatrix:side_data_type=3x3 displaymatrix|side_datum/3x3_displaymatrix:displaymatrix=\n00000000: 131072 0 0\n00000001: 0 65536 0\n00000002: 0 0 1073741824\n|side_datum/3x3_displaymatrix:rotation=0|side_datum/h_26_45__user_data_unregistered_sei_message:side_data_type=H.26[45] User Data Unregistered SEI message
+frame|media_type=video|stream_index=0|key_frame=1|pts=71506|pts_time=0.794511|pkt_dts=71505|pkt_dts_time=0.794500|best_effort_timestamp=71506|best_effort_timestamp_time=0.794511|duration=3003|duration_time=0.033367|pkt_pos=41714|pkt_size=3846|width=160|height=240|crop_top=0|crop_bottom=0|crop_left=0|crop_right=0|pix_fmt=yuv420p|sample_aspect_ratio=2:1|pict_type=I|interlaced_frame=0|top_field_first=0|repeat_pict=0|color_range=tv|color_space=smpte170m|color_primaries=smpte170m|color_transfer=bt709|chroma_location=topleft|side_datum/3x3_displaymatrix:side_data_type=3x3 displaymatrix|side_datum/3x3_displaymatrix:displaymatrix=\n00000000: 131072 0 0\n00000001: 0 65536 0\n00000002: 0 0 1073741824\n|side_datum/3x3_displaymatrix:rotation=0|side_datum/h_26_45__user_data_unregistered_sei_message:side_data_type=H.26[45] User Data Unregistered SEI message
packet|codec_type=video|stream_index=0|pts=74509|pts_time=0.827878|dts=74508|dts_time=0.827867|duration=3003|duration_time=0.033367|size=1159|pos=47492|flags=___
-frame|media_type=video|stream_index=0|key_frame=0|pts=74509|pts_time=0.827878|pkt_dts=74508|pkt_dts_time=0.827867|best_effort_timestamp=74509|best_effort_timestamp_time=0.827878|duration=3003|duration_time=0.033367|pkt_pos=47492|pkt_size=1159|width=160|height=240|crop_top=0|crop_bottom=0|crop_left=0|crop_right=0|pix_fmt=yuv420p|sample_aspect_ratio=2:1|pict_type=B|coded_picture_number=26|display_picture_number=0|interlaced_frame=0|top_field_first=0|repeat_pict=0|color_range=tv|color_space=smpte170m|color_primaries=smpte170m|color_transfer=bt709|chroma_location=topleft|side_datum/3x3_displaymatrix:side_data_type=3x3 displaymatrix|side_datum/3x3_displaymatrix:displaymatrix=\n00000000: 131072 0 0\n00000001: 0 65536 0\n00000002: 0 0 1073741824\n|side_datum/3x3_displaymatrix:rotation=0|side_datum/h_26_45__user_data_unregistered_sei_message:side_data_type=H.26[45] User Data Unregistered SEI message
+frame|media_type=video|stream_index=0|key_frame=0|pts=74509|pts_time=0.827878|pkt_dts=74508|pkt_dts_time=0.827867|best_effort_timestamp=74509|best_effort_timestamp_time=0.827878|duration=3003|duration_time=0.033367|pkt_pos=47492|pkt_size=1159|width=160|height=240|crop_top=0|crop_bottom=0|crop_left=0|crop_right=0|pix_fmt=yuv420p|sample_aspect_ratio=2:1|pict_type=B|interlaced_frame=0|top_field_first=0|repeat_pict=0|color_range=tv|color_space=smpte170m|color_primaries=smpte170m|color_transfer=bt709|chroma_location=topleft|side_datum/3x3_displaymatrix:side_data_type=3x3 displaymatrix|side_datum/3x3_displaymatrix:displaymatrix=\n00000000: 131072 0 0\n00000001: 0 65536 0\n00000002: 0 0 1073741824\n|side_datum/3x3_displaymatrix:rotation=0|side_datum/h_26_45__user_data_unregistered_sei_message:side_data_type=H.26[45] User Data Unregistered SEI message
packet|codec_type=video|stream_index=0|pts=83518|pts_time=0.927978|dts=77511|dts_time=0.861233|duration=3003|duration_time=0.033367|size=1522|pos=48651|flags=___
-frame|media_type=video|stream_index=0|key_frame=0|pts=77512|pts_time=0.861244|pkt_dts=77511|pkt_dts_time=0.861233|best_effort_timestamp=77512|best_effort_timestamp_time=0.861244|duration=3003|duration_time=0.033367|pkt_pos=45560|pkt_size=1932|width=160|height=240|crop_top=0|crop_bottom=0|crop_left=0|crop_right=0|pix_fmt=yuv420p|sample_aspect_ratio=2:1|pict_type=P|coded_picture_number=25|display_picture_number=0|interlaced_frame=0|top_field_first=0|repeat_pict=0|color_range=tv|color_space=smpte170m|color_primaries=smpte170m|color_transfer=bt709|chroma_location=topleft|side_datum/3x3_displaymatrix:side_data_type=3x3 displaymatrix|side_datum/3x3_displaymatrix:displaymatrix=\n00000000: 131072 0 0\n00000001: 0 65536 0\n00000002: 0 0 1073741824\n|side_datum/3x3_displaymatrix:rotation=0|side_datum/h_26_45__user_data_unregistered_sei_message:side_data_type=H.26[45] User Data Unregistered SEI message
+frame|media_type=video|stream_index=0|key_frame=0|pts=77512|pts_time=0.861244|pkt_dts=77511|pkt_dts_time=0.861233|best_effort_timestamp=77512|best_effort_timestamp_time=0.861244|duration=3003|duration_time=0.033367|pkt_pos=45560|pkt_size=1932|width=160|height=240|crop_top=0|crop_bottom=0|crop_left=0|crop_right=0|pix_fmt=yuv420p|sample_aspect_ratio=2:1|pict_type=P|interlaced_frame=0|top_field_first=0|repeat_pict=0|color_range=tv|color_space=smpte170m|color_primaries=smpte170m|color_transfer=bt709|chroma_location=topleft|side_datum/3x3_displaymatrix:side_data_type=3x3 displaymatrix|side_datum/3x3_displaymatrix:displaymatrix=\n00000000: 131072 0 0\n00000001: 0 65536 0\n00000002: 0 0 1073741824\n|side_datum/3x3_displaymatrix:rotation=0|side_datum/h_26_45__user_data_unregistered_sei_message:side_data_type=H.26[45] User Data Unregistered SEI message
packet|codec_type=video|stream_index=0|pts=80515|pts_time=0.894611|dts=80514|dts_time=0.894600|duration=3003|duration_time=0.033367|size=719|pos=50173|flags=___
-frame|media_type=video|stream_index=0|key_frame=0|pts=80515|pts_time=0.894611|pkt_dts=80514|pkt_dts_time=0.894600|best_effort_timestamp=80515|best_effort_timestamp_time=0.894611|duration=3003|duration_time=0.033367|pkt_pos=50173|pkt_size=719|width=160|height=240|crop_top=0|crop_bottom=0|crop_left=0|crop_right=0|pix_fmt=yuv420p|sample_aspect_ratio=2:1|pict_type=B|coded_picture_number=28|display_picture_number=0|interlaced_frame=0|top_field_first=0|repeat_pict=0|color_range=tv|color_space=smpte170m|color_primaries=smpte170m|color_transfer=bt709|chroma_location=topleft|side_datum/3x3_displaymatrix:side_data_type=3x3 displaymatrix|side_datum/3x3_displaymatrix:displaymatrix=\n00000000: 131072 0 0\n00000001: 0 65536 0\n00000002: 0 0 1073741824\n|side_datum/3x3_displaymatrix:rotation=0|side_datum/h_26_45__user_data_unregistered_sei_message:side_data_type=H.26[45] User Data Unregistered SEI message
+frame|media_type=video|stream_index=0|key_frame=0|pts=80515|pts_time=0.894611|pkt_dts=80514|pkt_dts_time=0.894600|best_effort_timestamp=80515|best_effort_timestamp_time=0.894611|duration=3003|duration_time=0.033367|pkt_pos=50173|pkt_size=719|width=160|height=240|crop_top=0|crop_bottom=0|crop_left=0|crop_right=0|pix_fmt=yuv420p|sample_aspect_ratio=2:1|pict_type=B|interlaced_frame=0|top_field_first=0|repeat_pict=0|color_range=tv|color_space=smpte170m|color_primaries=smpte170m|color_transfer=bt709|chroma_location=topleft|side_datum/3x3_displaymatrix:side_data_type=3x3 displaymatrix|side_datum/3x3_displaymatrix:displaymatrix=\n00000000: 131072 0 0\n00000001: 0 65536 0\n00000002: 0 0 1073741824\n|side_datum/3x3_displaymatrix:rotation=0|side_datum/h_26_45__user_data_unregistered_sei_message:side_data_type=H.26[45] User Data Unregistered SEI message
packet|codec_type=video|stream_index=0|pts=89524|pts_time=0.994711|dts=83517|dts_time=0.927967|duration=3003|duration_time=0.033367|size=1700|pos=50892|flags=___
-frame|media_type=video|stream_index=0|key_frame=0|pts=83518|pts_time=0.927978|pkt_dts=83517|pkt_dts_time=0.927967|best_effort_timestamp=83518|best_effort_timestamp_time=0.927978|duration=3003|duration_time=0.033367|pkt_pos=48651|pkt_size=1522|width=160|height=240|crop_top=0|crop_bottom=0|crop_left=0|crop_right=0|pix_fmt=yuv420p|sample_aspect_ratio=2:1|pict_type=P|coded_picture_number=27|display_picture_number=0|interlaced_frame=0|top_field_first=0|repeat_pict=0|color_range=tv|color_space=smpte170m|color_primaries=smpte170m|color_transfer=bt709|chroma_location=topleft|side_datum/3x3_displaymatrix:side_data_type=3x3 displaymatrix|side_datum/3x3_displaymatrix:displaymatrix=\n00000000: 131072 0 0\n00000001: 0 65536 0\n00000002: 0 0 1073741824\n|side_datum/3x3_displaymatrix:rotation=0|side_datum/h_26_45__user_data_unregistered_sei_message:side_data_type=H.26[45] User Data Unregistered SEI message
+frame|media_type=video|stream_index=0|key_frame=0|pts=83518|pts_time=0.927978|pkt_dts=83517|pkt_dts_time=0.927967|best_effort_timestamp=83518|best_effort_timestamp_time=0.927978|duration=3003|duration_time=0.033367|pkt_pos=48651|pkt_size=1522|width=160|height=240|crop_top=0|crop_bottom=0|crop_left=0|crop_right=0|pix_fmt=yuv420p|sample_aspect_ratio=2:1|pict_type=P|interlaced_frame=0|top_field_first=0|repeat_pict=0|color_range=tv|color_space=smpte170m|color_primaries=smpte170m|color_transfer=bt709|chroma_location=topleft|side_datum/3x3_displaymatrix:side_data_type=3x3 displaymatrix|side_datum/3x3_displaymatrix:displaymatrix=\n00000000: 131072 0 0\n00000001: 0 65536 0\n00000002: 0 0 1073741824\n|side_datum/3x3_displaymatrix:rotation=0|side_datum/h_26_45__user_data_unregistered_sei_message:side_data_type=H.26[45] User Data Unregistered SEI message
packet|codec_type=video|stream_index=0|pts=86521|pts_time=0.961344|dts=86520|dts_time=0.961333|duration=3003|duration_time=0.033367|size=1099|pos=52592|flags=___
-frame|media_type=video|stream_index=0|key_frame=0|pts=86521|pts_time=0.961344|pkt_dts=86520|pkt_dts_time=0.961333|best_effort_timestamp=86521|best_effort_timestamp_time=0.961344|duration=3003|duration_time=0.033367|pkt_pos=52592|pkt_size=1099|width=160|height=240|crop_top=0|crop_bottom=0|crop_left=0|crop_right=0|pix_fmt=yuv420p|sample_aspect_ratio=2:1|pict_type=B|coded_picture_number=30|display_picture_number=0|interlaced_frame=0|top_field_first=0|repeat_pict=0|color_range=tv|color_space=smpte170m|color_primaries=smpte170m|color_transfer=bt709|chroma_location=topleft|side_datum/3x3_displaymatrix:side_data_type=3x3 displaymatrix|side_datum/3x3_displaymatrix:displaymatrix=\n00000000: 131072 0 0\n00000001: 0 65536 0\n00000002: 0 0 1073741824\n|side_datum/3x3_displaymatrix:rotation=0|side_datum/h_26_45__user_data_unregistered_sei_message:side_data_type=H.26[45] User Data Unregistered SEI message
+frame|media_type=video|stream_index=0|key_frame=0|pts=86521|pts_time=0.961344|pkt_dts=86520|pkt_dts_time=0.961333|best_effort_timestamp=86521|best_effort_timestamp_time=0.961344|duration=3003|duration_time=0.033367|pkt_pos=52592|pkt_size=1099|width=160|height=240|crop_top=0|crop_bottom=0|crop_left=0|crop_right=0|pix_fmt=yuv420p|sample_aspect_ratio=2:1|pict_type=B|interlaced_frame=0|top_field_first=0|repeat_pict=0|color_range=tv|color_space=smpte170m|color_primaries=smpte170m|color_transfer=bt709|chroma_location=topleft|side_datum/3x3_displaymatrix:side_data_type=3x3 displaymatrix|side_datum/3x3_displaymatrix:displaymatrix=\n00000000: 131072 0 0\n00000001: 0 65536 0\n00000002: 0 0 1073741824\n|side_datum/3x3_displaymatrix:rotation=0|side_datum/h_26_45__user_data_unregistered_sei_message:side_data_type=H.26[45] User Data Unregistered SEI message
packet|codec_type=video|stream_index=0|pts=95530|pts_time=1.061444|dts=89523|dts_time=0.994700|duration=3003|duration_time=0.033367|size=2558|pos=53691|flags=___
-frame|media_type=video|stream_index=0|key_frame=0|pts=89524|pts_time=0.994711|pkt_dts=89523|pkt_dts_time=0.994700|best_effort_timestamp=89524|best_effort_timestamp_time=0.994711|duration=3003|duration_time=0.033367|pkt_pos=50892|pkt_size=1700|width=160|height=240|crop_top=0|crop_bottom=0|crop_left=0|crop_right=0|pix_fmt=yuv420p|sample_aspect_ratio=2:1|pict_type=P|coded_picture_number=29|display_picture_number=0|interlaced_frame=0|top_field_first=0|repeat_pict=0|color_range=tv|color_space=smpte170m|color_primaries=smpte170m|color_transfer=bt709|chroma_location=topleft|side_datum/3x3_displaymatrix:side_data_type=3x3 displaymatrix|side_datum/3x3_displaymatrix:displaymatrix=\n00000000: 131072 0 0\n00000001: 0 65536 0\n00000002: 0 0 1073741824\n|side_datum/3x3_displaymatrix:rotation=0|side_datum/h_26_45__user_data_unregistered_sei_message:side_data_type=H.26[45] User Data Unregistered SEI message
+frame|media_type=video|stream_index=0|key_frame=0|pts=89524|pts_time=0.994711|pkt_dts=89523|pkt_dts_time=0.994700|best_effort_timestamp=89524|best_effort_timestamp_time=0.994711|duration=3003|duration_time=0.033367|pkt_pos=50892|pkt_size=1700|width=160|height=240|crop_top=0|crop_bottom=0|crop_left=0|crop_right=0|pix_fmt=yuv420p|sample_aspect_ratio=2:1|pict_type=P|interlaced_frame=0|top_field_first=0|repeat_pict=0|color_range=tv|color_space=smpte170m|color_primaries=smpte170m|color_transfer=bt709|chroma_location=topleft|side_datum/3x3_displaymatrix:side_data_type=3x3 displaymatrix|side_datum/3x3_displaymatrix:displaymatrix=\n00000000: 131072 0 0\n00000001: 0 65536 0\n00000002: 0 0 1073741824\n|side_datum/3x3_displaymatrix:rotation=0|side_datum/h_26_45__user_data_unregistered_sei_message:side_data_type=H.26[45] User Data Unregistered SEI message
packet|codec_type=video|stream_index=0|pts=92527|pts_time=1.028078|dts=92526|dts_time=1.028067|duration=3003|duration_time=0.033367|size=1008|pos=56249|flags=___
-frame|media_type=video|stream_index=0|key_frame=0|pts=92527|pts_time=1.028078|pkt_dts=92526|pkt_dts_time=1.028067|best_effort_timestamp=92527|best_effort_timestamp_time=1.028078|duration=3003|duration_time=0.033367|pkt_pos=56249|pkt_size=1008|width=160|height=240|crop_top=0|crop_bottom=0|crop_left=0|crop_right=0|pix_fmt=yuv420p|sample_aspect_ratio=2:1|pict_type=B|coded_picture_number=32|display_picture_number=0|interlaced_frame=0|top_field_first=0|repeat_pict=0|color_range=tv|color_space=smpte170m|color_primaries=smpte170m|color_transfer=bt709|chroma_location=topleft|side_datum/3x3_displaymatrix:side_data_type=3x3 displaymatrix|side_datum/3x3_displaymatrix:displaymatrix=\n00000000: 131072 0 0\n00000001: 0 65536 0\n00000002: 0 0 1073741824\n|side_datum/3x3_displaymatrix:rotation=0|side_datum/h_26_45__user_data_unregistered_sei_message:side_data_type=H.26[45] User Data Unregistered SEI message
+frame|media_type=video|stream_index=0|key_frame=0|pts=92527|pts_time=1.028078|pkt_dts=92526|pkt_dts_time=1.028067|best_effort_timestamp=92527|best_effort_timestamp_time=1.028078|duration=3003|duration_time=0.033367|pkt_pos=56249|pkt_size=1008|width=160|height=240|crop_top=0|crop_bottom=0|crop_left=0|crop_right=0|pix_fmt=yuv420p|sample_aspect_ratio=2:1|pict_type=B|interlaced_frame=0|top_field_first=0|repeat_pict=0|color_range=tv|color_space=smpte170m|color_primaries=smpte170m|color_transfer=bt709|chroma_location=topleft|side_datum/3x3_displaymatrix:side_data_type=3x3 displaymatrix|side_datum/3x3_displaymatrix:displaymatrix=\n00000000: 131072 0 0\n00000001: 0 65536 0\n00000002: 0 0 1073741824\n|side_datum/3x3_displaymatrix:rotation=0|side_datum/h_26_45__user_data_unregistered_sei_message:side_data_type=H.26[45] User Data Unregistered SEI message
packet|codec_type=video|stream_index=0|pts=101536|pts_time=1.128178|dts=95529|dts_time=1.061433|duration=3003|duration_time=0.033367|size=1236|pos=57257|flags=___
-frame|media_type=video|stream_index=0|key_frame=0|pts=95530|pts_time=1.061444|pkt_dts=95529|pkt_dts_time=1.061433|best_effort_timestamp=95530|best_effort_timestamp_time=1.061444|duration=3003|duration_time=0.033367|pkt_pos=53691|pkt_size=2558|width=160|height=240|crop_top=0|crop_bottom=0|crop_left=0|crop_right=0|pix_fmt=yuv420p|sample_aspect_ratio=2:1|pict_type=P|coded_picture_number=31|display_picture_number=0|interlaced_frame=0|top_field_first=0|repeat_pict=0|color_range=tv|color_space=smpte170m|color_primaries=smpte170m|color_transfer=bt709|chroma_location=topleft|side_datum/3x3_displaymatrix:side_data_type=3x3 displaymatrix|side_datum/3x3_displaymatrix:displaymatrix=\n00000000: 131072 0 0\n00000001: 0 65536 0\n00000002: 0 0 1073741824\n|side_datum/3x3_displaymatrix:rotation=0|side_datum/h_26_45__user_data_unregistered_sei_message:side_data_type=H.26[45] User Data Unregistered SEI message
+frame|media_type=video|stream_index=0|key_frame=0|pts=95530|pts_time=1.061444|pkt_dts=95529|pkt_dts_time=1.061433|best_effort_timestamp=95530|best_effort_timestamp_time=1.061444|duration=3003|duration_time=0.033367|pkt_pos=53691|pkt_size=2558|width=160|height=240|crop_top=0|crop_bottom=0|crop_left=0|crop_right=0|pix_fmt=yuv420p|sample_aspect_ratio=2:1|pict_type=P|interlaced_frame=0|top_field_first=0|repeat_pict=0|color_range=tv|color_space=smpte170m|color_primaries=smpte170m|color_transfer=bt709|chroma_location=topleft|side_datum/3x3_displaymatrix:side_data_type=3x3 displaymatrix|side_datum/3x3_displaymatrix:displaymatrix=\n00000000: 131072 0 0\n00000001: 0 65536 0\n00000002: 0 0 1073741824\n|side_datum/3x3_displaymatrix:rotation=0|side_datum/h_26_45__user_data_unregistered_sei_message:side_data_type=H.26[45] User Data Unregistered SEI message
packet|codec_type=video|stream_index=0|pts=98533|pts_time=1.094811|dts=98532|dts_time=1.094800|duration=3003|duration_time=0.033367|size=607|pos=58493|flags=___
-frame|media_type=video|stream_index=0|key_frame=0|pts=98533|pts_time=1.094811|pkt_dts=98532|pkt_dts_time=1.094800|best_effort_timestamp=98533|best_effort_timestamp_time=1.094811|duration=3003|duration_time=0.033367|pkt_pos=58493|pkt_size=607|width=160|height=240|crop_top=0|crop_bottom=0|crop_left=0|crop_right=0|pix_fmt=yuv420p|sample_aspect_ratio=2:1|pict_type=B|coded_picture_number=34|display_picture_number=0|interlaced_frame=0|top_field_first=0|repeat_pict=0|color_range=tv|color_space=smpte170m|color_primaries=smpte170m|color_transfer=bt709|chroma_location=topleft|side_datum/3x3_displaymatrix:side_data_type=3x3 displaymatrix|side_datum/3x3_displaymatrix:displaymatrix=\n00000000: 131072 0 0\n00000001: 0 65536 0\n00000002: 0 0 1073741824\n|side_datum/3x3_displaymatrix:rotation=0|side_datum/h_26_45__user_data_unregistered_sei_message:side_data_type=H.26[45] User Data Unregistered SEI message
+frame|media_type=video|stream_index=0|key_frame=0|pts=98533|pts_time=1.094811|pkt_dts=98532|pkt_dts_time=1.094800|best_effort_timestamp=98533|best_effort_timestamp_time=1.094811|duration=3003|duration_time=0.033367|pkt_pos=58493|pkt_size=607|width=160|height=240|crop_top=0|crop_bottom=0|crop_left=0|crop_right=0|pix_fmt=yuv420p|sample_aspect_ratio=2:1|pict_type=B|interlaced_frame=0|top_field_first=0|repeat_pict=0|color_range=tv|color_space=smpte170m|color_primaries=smpte170m|color_transfer=bt709|chroma_location=topleft|side_datum/3x3_displaymatrix:side_data_type=3x3 displaymatrix|side_datum/3x3_displaymatrix:displaymatrix=\n00000000: 131072 0 0\n00000001: 0 65536 0\n00000002: 0 0 1073741824\n|side_datum/3x3_displaymatrix:rotation=0|side_datum/h_26_45__user_data_unregistered_sei_message:side_data_type=H.26[45] User Data Unregistered SEI message
packet|codec_type=video|stream_index=0|pts=107542|pts_time=1.194911|dts=101535|dts_time=1.128167|duration=3003|duration_time=0.033367|size=1883|pos=59100|flags=___
-frame|media_type=video|stream_index=0|key_frame=0|pts=101536|pts_time=1.128178|pkt_dts=101535|pkt_dts_time=1.128167|best_effort_timestamp=101536|best_effort_timestamp_time=1.128178|duration=3003|duration_time=0.033367|pkt_pos=57257|pkt_size=1236|width=160|height=240|crop_top=0|crop_bottom=0|crop_left=0|crop_right=0|pix_fmt=yuv420p|sample_aspect_ratio=2:1|pict_type=P|coded_picture_number=33|display_picture_number=0|interlaced_frame=0|top_field_first=0|repeat_pict=0|color_range=tv|color_space=smpte170m|color_primaries=smpte170m|color_transfer=bt709|chroma_location=topleft|side_datum/3x3_displaymatrix:side_data_type=3x3 displaymatrix|side_datum/3x3_displaymatrix:displaymatrix=\n00000000: 131072 0 0\n00000001: 0 65536 0\n00000002: 0 0 1073741824\n|side_datum/3x3_displaymatrix:rotation=0|side_datum/h_26_45__user_data_unregistered_sei_message:side_data_type=H.26[45] User Data Unregistered SEI message
+frame|media_type=video|stream_index=0|key_frame=0|pts=101536|pts_time=1.128178|pkt_dts=101535|pkt_dts_time=1.128167|best_effort_timestamp=101536|best_effort_timestamp_time=1.128178|duration=3003|duration_time=0.033367|pkt_pos=57257|pkt_size=1236|width=160|height=240|crop_top=0|crop_bottom=0|crop_left=0|crop_right=0|pix_fmt=yuv420p|sample_aspect_ratio=2:1|pict_type=P|interlaced_frame=0|top_field_first=0|repeat_pict=0|color_range=tv|color_space=smpte170m|color_primaries=smpte170m|color_transfer=bt709|chroma_location=topleft|side_datum/3x3_displaymatrix:side_data_type=3x3 displaymatrix|side_datum/3x3_displaymatrix:displaymatrix=\n00000000: 131072 0 0\n00000001: 0 65536 0\n00000002: 0 0 1073741824\n|side_datum/3x3_displaymatrix:rotation=0|side_datum/h_26_45__user_data_unregistered_sei_message:side_data_type=H.26[45] User Data Unregistered SEI message
packet|codec_type=video|stream_index=0|pts=104539|pts_time=1.161544|dts=104538|dts_time=1.161533|duration=3003|duration_time=0.033367|size=893|pos=60983|flags=___
-frame|media_type=video|stream_index=0|key_frame=0|pts=104539|pts_time=1.161544|pkt_dts=104538|pkt_dts_time=1.161533|best_effort_timestamp=104539|best_effort_timestamp_time=1.161544|duration=3003|duration_time=0.033367|pkt_pos=60983|pkt_size=893|width=160|height=240|crop_top=0|crop_bottom=0|crop_left=0|crop_right=0|pix_fmt=yuv420p|sample_aspect_ratio=2:1|pict_type=B|coded_picture_number=36|display_picture_number=0|interlaced_frame=0|top_field_first=0|repeat_pict=0|color_range=tv|color_space=smpte170m|color_primaries=smpte170m|color_transfer=bt709|chroma_location=topleft|side_datum/3x3_displaymatrix:side_data_type=3x3 displaymatrix|side_datum/3x3_displaymatrix:displaymatrix=\n00000000: 131072 0 0\n00000001: 0 65536 0\n00000002: 0 0 1073741824\n|side_datum/3x3_displaymatrix:rotation=0|side_datum/h_26_45__user_data_unregistered_sei_message:side_data_type=H.26[45] User Data Unregistered SEI message
+frame|media_type=video|stream_index=0|key_frame=0|pts=104539|pts_time=1.161544|pkt_dts=104538|pkt_dts_time=1.161533|best_effort_timestamp=104539|best_effort_timestamp_time=1.161544|duration=3003|duration_time=0.033367|pkt_pos=60983|pkt_size=893|width=160|height=240|crop_top=0|crop_bottom=0|crop_left=0|crop_right=0|pix_fmt=yuv420p|sample_aspect_ratio=2:1|pict_type=B|interlaced_frame=0|top_field_first=0|repeat_pict=0|color_range=tv|color_space=smpte170m|color_primaries=smpte170m|color_transfer=bt709|chroma_location=topleft|side_datum/3x3_displaymatrix:side_data_type=3x3 displaymatrix|side_datum/3x3_displaymatrix:displaymatrix=\n00000000: 131072 0 0\n00000001: 0 65536 0\n00000002: 0 0 1073741824\n|side_datum/3x3_displaymatrix:rotation=0|side_datum/h_26_45__user_data_unregistered_sei_message:side_data_type=H.26[45] User Data Unregistered SEI message
packet|codec_type=video|stream_index=0|pts=113548|pts_time=1.261644|dts=107541|dts_time=1.194900|duration=3003|duration_time=0.033367|size=1305|pos=61876|flags=___
-frame|media_type=video|stream_index=0|key_frame=0|pts=107542|pts_time=1.194911|pkt_dts=107541|pkt_dts_time=1.194900|best_effort_timestamp=107542|best_effort_timestamp_time=1.194911|duration=3003|duration_time=0.033367|pkt_pos=59100|pkt_size=1883|width=160|height=240|crop_top=0|crop_bottom=0|crop_left=0|crop_right=0|pix_fmt=yuv420p|sample_aspect_ratio=2:1|pict_type=P|coded_picture_number=35|display_picture_number=0|interlaced_frame=0|top_field_first=0|repeat_pict=0|color_range=tv|color_space=smpte170m|color_primaries=smpte170m|color_transfer=bt709|chroma_location=topleft|side_datum/3x3_displaymatrix:side_data_type=3x3 displaymatrix|side_datum/3x3_displaymatrix:displaymatrix=\n00000000: 131072 0 0\n00000001: 0 65536 0\n00000002: 0 0 1073741824\n|side_datum/3x3_displaymatrix:rotation=0|side_datum/h_26_45__user_data_unregistered_sei_message:side_data_type=H.26[45] User Data Unregistered SEI message
+frame|media_type=video|stream_index=0|key_frame=0|pts=107542|pts_time=1.194911|pkt_dts=107541|pkt_dts_time=1.194900|best_effort_timestamp=107542|best_effort_timestamp_time=1.194911|duration=3003|duration_time=0.033367|pkt_pos=59100|pkt_size=1883|width=160|height=240|crop_top=0|crop_bottom=0|crop_left=0|crop_right=0|pix_fmt=yuv420p|sample_aspect_ratio=2:1|pict_type=P|interlaced_frame=0|top_field_first=0|repeat_pict=0|color_range=tv|color_space=smpte170m|color_primaries=smpte170m|color_transfer=bt709|chroma_location=topleft|side_datum/3x3_displaymatrix:side_data_type=3x3 displaymatrix|side_datum/3x3_displaymatrix:displaymatrix=\n00000000: 131072 0 0\n00000001: 0 65536 0\n00000002: 0 0 1073741824\n|side_datum/3x3_displaymatrix:rotation=0|side_datum/h_26_45__user_data_unregistered_sei_message:side_data_type=H.26[45] User Data Unregistered SEI message
packet|codec_type=video|stream_index=0|pts=110545|pts_time=1.228278|dts=110544|dts_time=1.228267|duration=3003|duration_time=0.033367|size=472|pos=63181|flags=___
-frame|media_type=video|stream_index=0|key_frame=0|pts=110545|pts_time=1.228278|pkt_dts=110544|pkt_dts_time=1.228267|best_effort_timestamp=110545|best_effort_timestamp_time=1.228278|duration=3003|duration_time=0.033367|pkt_pos=63181|pkt_size=472|width=160|height=240|crop_top=0|crop_bottom=0|crop_left=0|crop_right=0|pix_fmt=yuv420p|sample_aspect_ratio=2:1|pict_type=B|coded_picture_number=38|display_picture_number=0|interlaced_frame=0|top_field_first=0|repeat_pict=0|color_range=tv|color_space=smpte170m|color_primaries=smpte170m|color_transfer=bt709|chroma_location=topleft|side_datum/3x3_displaymatrix:side_data_type=3x3 displaymatrix|side_datum/3x3_displaymatrix:displaymatrix=\n00000000: 131072 0 0\n00000001: 0 65536 0\n00000002: 0 0 1073741824\n|side_datum/3x3_displaymatrix:rotation=0|side_datum/h_26_45__user_data_unregistered_sei_message:side_data_type=H.26[45] User Data Unregistered SEI message
+frame|media_type=video|stream_index=0|key_frame=0|pts=110545|pts_time=1.228278|pkt_dts=110544|pkt_dts_time=1.228267|best_effort_timestamp=110545|best_effort_timestamp_time=1.228278|duration=3003|duration_time=0.033367|pkt_pos=63181|pkt_size=472|width=160|height=240|crop_top=0|crop_bottom=0|crop_left=0|crop_right=0|pix_fmt=yuv420p|sample_aspect_ratio=2:1|pict_type=B|interlaced_frame=0|top_field_first=0|repeat_pict=0|color_range=tv|color_space=smpte170m|color_primaries=smpte170m|color_transfer=bt709|chroma_location=topleft|side_datum/3x3_displaymatrix:side_data_type=3x3 displaymatrix|side_datum/3x3_displaymatrix:displaymatrix=\n00000000: 131072 0 0\n00000001: 0 65536 0\n00000002: 0 0 1073741824\n|side_datum/3x3_displaymatrix:rotation=0|side_datum/h_26_45__user_data_unregistered_sei_message:side_data_type=H.26[45] User Data Unregistered SEI message
packet|codec_type=video|stream_index=0|pts=119554|pts_time=1.328378|dts=113547|dts_time=1.261633|duration=3003|duration_time=0.033367|size=1411|pos=63653|flags=___
-frame|media_type=video|stream_index=0|key_frame=0|pts=113548|pts_time=1.261644|pkt_dts=113547|pkt_dts_time=1.261633|best_effort_timestamp=113548|best_effort_timestamp_time=1.261644|duration=3003|duration_time=0.033367|pkt_pos=61876|pkt_size=1305|width=160|height=240|crop_top=0|crop_bottom=0|crop_left=0|crop_right=0|pix_fmt=yuv420p|sample_aspect_ratio=2:1|pict_type=P|coded_picture_number=37|display_picture_number=0|interlaced_frame=0|top_field_first=0|repeat_pict=0|color_range=tv|color_space=smpte170m|color_primaries=smpte170m|color_transfer=bt709|chroma_location=topleft|side_datum/3x3_displaymatrix:side_data_type=3x3 displaymatrix|side_datum/3x3_displaymatrix:displaymatrix=\n00000000: 131072 0 0\n00000001: 0 65536 0\n00000002: 0 0 1073741824\n|side_datum/3x3_displaymatrix:rotation=0|side_datum/h_26_45__user_data_unregistered_sei_message:side_data_type=H.26[45] User Data Unregistered SEI message
+frame|media_type=video|stream_index=0|key_frame=0|pts=113548|pts_time=1.261644|pkt_dts=113547|pkt_dts_time=1.261633|best_effort_timestamp=113548|best_effort_timestamp_time=1.261644|duration=3003|duration_time=0.033367|pkt_pos=61876|pkt_size=1305|width=160|height=240|crop_top=0|crop_bottom=0|crop_left=0|crop_right=0|pix_fmt=yuv420p|sample_aspect_ratio=2:1|pict_type=P|interlaced_frame=0|top_field_first=0|repeat_pict=0|color_range=tv|color_space=smpte170m|color_primaries=smpte170m|color_transfer=bt709|chroma_location=topleft|side_datum/3x3_displaymatrix:side_data_type=3x3 displaymatrix|side_datum/3x3_displaymatrix:displaymatrix=\n00000000: 131072 0 0\n00000001: 0 65536 0\n00000002: 0 0 1073741824\n|side_datum/3x3_displaymatrix:rotation=0|side_datum/h_26_45__user_data_unregistered_sei_message:side_data_type=H.26[45] User Data Unregistered SEI message
packet|codec_type=video|stream_index=0|pts=116551|pts_time=1.295011|dts=116550|dts_time=1.295000|duration=3003|duration_time=0.033367|size=616|pos=65064|flags=___
-frame|media_type=video|stream_index=0|key_frame=0|pts=116551|pts_time=1.295011|pkt_dts=116550|pkt_dts_time=1.295000|best_effort_timestamp=116551|best_effort_timestamp_time=1.295011|duration=3003|duration_time=0.033367|pkt_pos=65064|pkt_size=616|width=160|height=240|crop_top=0|crop_bottom=0|crop_left=0|crop_right=0|pix_fmt=yuv420p|sample_aspect_ratio=2:1|pict_type=B|coded_picture_number=40|display_picture_number=0|interlaced_frame=0|top_field_first=0|repeat_pict=0|color_range=tv|color_space=smpte170m|color_primaries=smpte170m|color_transfer=bt709|chroma_location=topleft|side_datum/3x3_displaymatrix:side_data_type=3x3 displaymatrix|side_datum/3x3_displaymatrix:displaymatrix=\n00000000: 131072 0 0\n00000001: 0 65536 0\n00000002: 0 0 1073741824\n|side_datum/3x3_displaymatrix:rotation=0|side_datum/h_26_45__user_data_unregistered_sei_message:side_data_type=H.26[45] User Data Unregistered SEI message
+frame|media_type=video|stream_index=0|key_frame=0|pts=116551|pts_time=1.295011|pkt_dts=116550|pkt_dts_time=1.295000|best_effort_timestamp=116551|best_effort_timestamp_time=1.295011|duration=3003|duration_time=0.033367|pkt_pos=65064|pkt_size=616|width=160|height=240|crop_top=0|crop_bottom=0|crop_left=0|crop_right=0|pix_fmt=yuv420p|sample_aspect_ratio=2:1|pict_type=B|interlaced_frame=0|top_field_first=0|repeat_pict=0|color_range=tv|color_space=smpte170m|color_primaries=smpte170m|color_transfer=bt709|chroma_location=topleft|side_datum/3x3_displaymatrix:side_data_type=3x3 displaymatrix|side_datum/3x3_displaymatrix:displaymatrix=\n00000000: 131072 0 0\n00000001: 0 65536 0\n00000002: 0 0 1073741824\n|side_datum/3x3_displaymatrix:rotation=0|side_datum/h_26_45__user_data_unregistered_sei_message:side_data_type=H.26[45] User Data Unregistered SEI message
packet|codec_type=video|stream_index=0|pts=125560|pts_time=1.395111|dts=119553|dts_time=1.328367|duration=3003|duration_time=0.033367|size=1291|pos=65680|flags=___
-frame|media_type=video|stream_index=0|key_frame=0|pts=119554|pts_time=1.328378|pkt_dts=119553|pkt_dts_time=1.328367|best_effort_timestamp=119554|best_effort_timestamp_time=1.328378|duration=3003|duration_time=0.033367|pkt_pos=63653|pkt_size=1411|width=160|height=240|crop_top=0|crop_bottom=0|crop_left=0|crop_right=0|pix_fmt=yuv420p|sample_aspect_ratio=2:1|pict_type=P|coded_picture_number=39|display_picture_number=0|interlaced_frame=0|top_field_first=0|repeat_pict=0|color_range=tv|color_space=smpte170m|color_primaries=smpte170m|color_transfer=bt709|chroma_location=topleft|side_datum/3x3_displaymatrix:side_data_type=3x3 displaymatrix|side_datum/3x3_displaymatrix:displaymatrix=\n00000000: 131072 0 0\n00000001: 0 65536 0\n00000002: 0 0 1073741824\n|side_datum/3x3_displaymatrix:rotation=0|side_datum/h_26_45__user_data_unregistered_sei_message:side_data_type=H.26[45] User Data Unregistered SEI message
+frame|media_type=video|stream_index=0|key_frame=0|pts=119554|pts_time=1.328378|pkt_dts=119553|pkt_dts_time=1.328367|best_effort_timestamp=119554|best_effort_timestamp_time=1.328378|duration=3003|duration_time=0.033367|pkt_pos=63653|pkt_size=1411|width=160|height=240|crop_top=0|crop_bottom=0|crop_left=0|crop_right=0|pix_fmt=yuv420p|sample_aspect_ratio=2:1|pict_type=P|interlaced_frame=0|top_field_first=0|repeat_pict=0|color_range=tv|color_space=smpte170m|color_primaries=smpte170m|color_transfer=bt709|chroma_location=topleft|side_datum/3x3_displaymatrix:side_data_type=3x3 displaymatrix|side_datum/3x3_displaymatrix:displaymatrix=\n00000000: 131072 0 0\n00000001: 0 65536 0\n00000002: 0 0 1073741824\n|side_datum/3x3_displaymatrix:rotation=0|side_datum/h_26_45__user_data_unregistered_sei_message:side_data_type=H.26[45] User Data Unregistered SEI message
packet|codec_type=video|stream_index=0|pts=122557|pts_time=1.361744|dts=122556|dts_time=1.361733|duration=3003|duration_time=0.033367|size=470|pos=66971|flags=___
-frame|media_type=video|stream_index=0|key_frame=0|pts=122557|pts_time=1.361744|pkt_dts=122556|pkt_dts_time=1.361733|best_effort_timestamp=122557|best_effort_timestamp_time=1.361744|duration=3003|duration_time=0.033367|pkt_pos=66971|pkt_size=470|width=160|height=240|crop_top=0|crop_bottom=0|crop_left=0|crop_right=0|pix_fmt=yuv420p|sample_aspect_ratio=2:1|pict_type=B|coded_picture_number=42|display_picture_number=0|interlaced_frame=0|top_field_first=0|repeat_pict=0|color_range=tv|color_space=smpte170m|color_primaries=smpte170m|color_transfer=bt709|chroma_location=topleft|side_datum/3x3_displaymatrix:side_data_type=3x3 displaymatrix|side_datum/3x3_displaymatrix:displaymatrix=\n00000000: 131072 0 0\n00000001: 0 65536 0\n00000002: 0 0 1073741824\n|side_datum/3x3_displaymatrix:rotation=0|side_datum/h_26_45__user_data_unregistered_sei_message:side_data_type=H.26[45] User Data Unregistered SEI message
+frame|media_type=video|stream_index=0|key_frame=0|pts=122557|pts_time=1.361744|pkt_dts=122556|pkt_dts_time=1.361733|best_effort_timestamp=122557|best_effort_timestamp_time=1.361744|duration=3003|duration_time=0.033367|pkt_pos=66971|pkt_size=470|width=160|height=240|crop_top=0|crop_bottom=0|crop_left=0|crop_right=0|pix_fmt=yuv420p|sample_aspect_ratio=2:1|pict_type=B|interlaced_frame=0|top_field_first=0|repeat_pict=0|color_range=tv|color_space=smpte170m|color_primaries=smpte170m|color_transfer=bt709|chroma_location=topleft|side_datum/3x3_displaymatrix:side_data_type=3x3 displaymatrix|side_datum/3x3_displaymatrix:displaymatrix=\n00000000: 131072 0 0\n00000001: 0 65536 0\n00000002: 0 0 1073741824\n|side_datum/3x3_displaymatrix:rotation=0|side_datum/h_26_45__user_data_unregistered_sei_message:side_data_type=H.26[45] User Data Unregistered SEI message
packet|codec_type=video|stream_index=0|pts=131566|pts_time=1.461844|dts=125559|dts_time=1.395100|duration=3003|duration_time=0.033367|size=1977|pos=67441|flags=___
-frame|media_type=video|stream_index=0|key_frame=0|pts=125560|pts_time=1.395111|pkt_dts=125559|pkt_dts_time=1.395100|best_effort_timestamp=125560|best_effort_timestamp_time=1.395111|duration=3003|duration_time=0.033367|pkt_pos=65680|pkt_size=1291|width=160|height=240|crop_top=0|crop_bottom=0|crop_left=0|crop_right=0|pix_fmt=yuv420p|sample_aspect_ratio=2:1|pict_type=P|coded_picture_number=41|display_picture_number=0|interlaced_frame=0|top_field_first=0|repeat_pict=0|color_range=tv|color_space=smpte170m|color_primaries=smpte170m|color_transfer=bt709|chroma_location=topleft|side_datum/3x3_displaymatrix:side_data_type=3x3 displaymatrix|side_datum/3x3_displaymatrix:displaymatrix=\n00000000: 131072 0 0\n00000001: 0 65536 0\n00000002: 0 0 1073741824\n|side_datum/3x3_displaymatrix:rotation=0|side_datum/h_26_45__user_data_unregistered_sei_message:side_data_type=H.26[45] User Data Unregistered SEI message
+frame|media_type=video|stream_index=0|key_frame=0|pts=125560|pts_time=1.395111|pkt_dts=125559|pkt_dts_time=1.395100|best_effort_timestamp=125560|best_effort_timestamp_time=1.395111|duration=3003|duration_time=0.033367|pkt_pos=65680|pkt_size=1291|width=160|height=240|crop_top=0|crop_bottom=0|crop_left=0|crop_right=0|pix_fmt=yuv420p|sample_aspect_ratio=2:1|pict_type=P|interlaced_frame=0|top_field_first=0|repeat_pict=0|color_range=tv|color_space=smpte170m|color_primaries=smpte170m|color_transfer=bt709|chroma_location=topleft|side_datum/3x3_displaymatrix:side_data_type=3x3 displaymatrix|side_datum/3x3_displaymatrix:displaymatrix=\n00000000: 131072 0 0\n00000001: 0 65536 0\n00000002: 0 0 1073741824\n|side_datum/3x3_displaymatrix:rotation=0|side_datum/h_26_45__user_data_unregistered_sei_message:side_data_type=H.26[45] User Data Unregistered SEI message
packet|codec_type=video|stream_index=0|pts=128563|pts_time=1.428478|dts=128562|dts_time=1.428467|duration=3003|duration_time=0.033367|size=436|pos=69418|flags=___
-frame|media_type=video|stream_index=0|key_frame=0|pts=128563|pts_time=1.428478|pkt_dts=128562|pkt_dts_time=1.428467|best_effort_timestamp=128563|best_effort_timestamp_time=1.428478|duration=3003|duration_time=0.033367|pkt_pos=69418|pkt_size=436|width=160|height=240|crop_top=0|crop_bottom=0|crop_left=0|crop_right=0|pix_fmt=yuv420p|sample_aspect_ratio=2:1|pict_type=B|coded_picture_number=44|display_picture_number=0|interlaced_frame=0|top_field_first=0|repeat_pict=0|color_range=tv|color_space=smpte170m|color_primaries=smpte170m|color_transfer=bt709|chroma_location=topleft|side_datum/3x3_displaymatrix:side_data_type=3x3 displaymatrix|side_datum/3x3_displaymatrix:displaymatrix=\n00000000: 131072 0 0\n00000001: 0 65536 0\n00000002: 0 0 1073741824\n|side_datum/3x3_displaymatrix:rotation=0|side_datum/h_26_45__user_data_unregistered_sei_message:side_data_type=H.26[45] User Data Unregistered SEI message
+frame|media_type=video|stream_index=0|key_frame=0|pts=128563|pts_time=1.428478|pkt_dts=128562|pkt_dts_time=1.428467|best_effort_timestamp=128563|best_effort_timestamp_time=1.428478|duration=3003|duration_time=0.033367|pkt_pos=69418|pkt_size=436|width=160|height=240|crop_top=0|crop_bottom=0|crop_left=0|crop_right=0|pix_fmt=yuv420p|sample_aspect_ratio=2:1|pict_type=B|interlaced_frame=0|top_field_first=0|repeat_pict=0|color_range=tv|color_space=smpte170m|color_primaries=smpte170m|color_transfer=bt709|chroma_location=topleft|side_datum/3x3_displaymatrix:side_data_type=3x3 displaymatrix|side_datum/3x3_displaymatrix:displaymatrix=\n00000000: 131072 0 0\n00000001: 0 65536 0\n00000002: 0 0 1073741824\n|side_datum/3x3_displaymatrix:rotation=0|side_datum/h_26_45__user_data_unregistered_sei_message:side_data_type=H.26[45] User Data Unregistered SEI message
packet|codec_type=video|stream_index=0|pts=137572|pts_time=1.528578|dts=131565|dts_time=1.461833|duration=3003|duration_time=0.033367|size=2566|pos=69854|flags=___
-frame|media_type=video|stream_index=0|key_frame=0|pts=131566|pts_time=1.461844|pkt_dts=131565|pkt_dts_time=1.461833|best_effort_timestamp=131566|best_effort_timestamp_time=1.461844|duration=3003|duration_time=0.033367|pkt_pos=67441|pkt_size=1977|width=160|height=240|crop_top=0|crop_bottom=0|crop_left=0|crop_right=0|pix_fmt=yuv420p|sample_aspect_ratio=2:1|pict_type=P|coded_picture_number=43|display_picture_number=0|interlaced_frame=0|top_field_first=0|repeat_pict=0|color_range=tv|color_space=smpte170m|color_primaries=smpte170m|color_transfer=bt709|chroma_location=topleft|side_datum/3x3_displaymatrix:side_data_type=3x3 displaymatrix|side_datum/3x3_displaymatrix:displaymatrix=\n00000000: 131072 0 0\n00000001: 0 65536 0\n00000002: 0 0 1073741824\n|side_datum/3x3_displaymatrix:rotation=0|side_datum/h_26_45__user_data_unregistered_sei_message:side_data_type=H.26[45] User Data Unregistered SEI message
+frame|media_type=video|stream_index=0|key_frame=0|pts=131566|pts_time=1.461844|pkt_dts=131565|pkt_dts_time=1.461833|best_effort_timestamp=131566|best_effort_timestamp_time=1.461844|duration=3003|duration_time=0.033367|pkt_pos=67441|pkt_size=1977|width=160|height=240|crop_top=0|crop_bottom=0|crop_left=0|crop_right=0|pix_fmt=yuv420p|sample_aspect_ratio=2:1|pict_type=P|interlaced_frame=0|top_field_first=0|repeat_pict=0|color_range=tv|color_space=smpte170m|color_primaries=smpte170m|color_transfer=bt709|chroma_location=topleft|side_datum/3x3_displaymatrix:side_data_type=3x3 displaymatrix|side_datum/3x3_displaymatrix:displaymatrix=\n00000000: 131072 0 0\n00000001: 0 65536 0\n00000002: 0 0 1073741824\n|side_datum/3x3_displaymatrix:rotation=0|side_datum/h_26_45__user_data_unregistered_sei_message:side_data_type=H.26[45] User Data Unregistered SEI message
packet|codec_type=video|stream_index=0|pts=134569|pts_time=1.495211|dts=134568|dts_time=1.495200|duration=3003|duration_time=0.033367|size=886|pos=72420|flags=___
-frame|media_type=video|stream_index=0|key_frame=0|pts=134569|pts_time=1.495211|pkt_dts=134568|pkt_dts_time=1.495200|best_effort_timestamp=134569|best_effort_timestamp_time=1.495211|duration=3003|duration_time=0.033367|pkt_pos=72420|pkt_size=886|width=160|height=240|crop_top=0|crop_bottom=0|crop_left=0|crop_right=0|pix_fmt=yuv420p|sample_aspect_ratio=2:1|pict_type=B|coded_picture_number=46|display_picture_number=0|interlaced_frame=0|top_field_first=0|repeat_pict=0|color_range=tv|color_space=smpte170m|color_primaries=smpte170m|color_transfer=bt709|chroma_location=topleft|side_datum/3x3_displaymatrix:side_data_type=3x3 displaymatrix|side_datum/3x3_displaymatrix:displaymatrix=\n00000000: 131072 0 0\n00000001: 0 65536 0\n00000002: 0 0 1073741824\n|side_datum/3x3_displaymatrix:rotation=0|side_datum/h_26_45__user_data_unregistered_sei_message:side_data_type=H.26[45] User Data Unregistered SEI message
+frame|media_type=video|stream_index=0|key_frame=0|pts=134569|pts_time=1.495211|pkt_dts=134568|pkt_dts_time=1.495200|best_effort_timestamp=134569|best_effort_timestamp_time=1.495211|duration=3003|duration_time=0.033367|pkt_pos=72420|pkt_size=886|width=160|height=240|crop_top=0|crop_bottom=0|crop_left=0|crop_right=0|pix_fmt=yuv420p|sample_aspect_ratio=2:1|pict_type=B|interlaced_frame=0|top_field_first=0|repeat_pict=0|color_range=tv|color_space=smpte170m|color_primaries=smpte170m|color_transfer=bt709|chroma_location=topleft|side_datum/3x3_displaymatrix:side_data_type=3x3 displaymatrix|side_datum/3x3_displaymatrix:displaymatrix=\n00000000: 131072 0 0\n00000001: 0 65536 0\n00000002: 0 0 1073741824\n|side_datum/3x3_displaymatrix:rotation=0|side_datum/h_26_45__user_data_unregistered_sei_message:side_data_type=H.26[45] User Data Unregistered SEI message
packet|codec_type=video|stream_index=0|pts=140575|pts_time=1.561944|dts=137571|dts_time=1.528567|duration=3003|duration_time=0.033367|size=1330|pos=73306|flags=___
-frame|media_type=video|stream_index=0|key_frame=0|pts=137572|pts_time=1.528578|pkt_dts=137571|pkt_dts_time=1.528567|best_effort_timestamp=137572|best_effort_timestamp_time=1.528578|duration=3003|duration_time=0.033367|pkt_pos=69854|pkt_size=2566|width=160|height=240|crop_top=0|crop_bottom=0|crop_left=0|crop_right=0|pix_fmt=yuv420p|sample_aspect_ratio=2:1|pict_type=P|coded_picture_number=45|display_picture_number=0|interlaced_frame=0|top_field_first=0|repeat_pict=0|color_range=tv|color_space=smpte170m|color_primaries=smpte170m|color_transfer=bt709|chroma_location=topleft|side_datum/3x3_displaymatrix:side_data_type=3x3 displaymatrix|side_datum/3x3_displaymatrix:displaymatrix=\n00000000: 131072 0 0\n00000001: 0 65536 0\n00000002: 0 0 1073741824\n|side_datum/3x3_displaymatrix:rotation=0|side_datum/h_26_45__user_data_unregistered_sei_message:side_data_type=H.26[45] User Data Unregistered SEI message
+frame|media_type=video|stream_index=0|key_frame=0|pts=137572|pts_time=1.528578|pkt_dts=137571|pkt_dts_time=1.528567|best_effort_timestamp=137572|best_effort_timestamp_time=1.528578|duration=3003|duration_time=0.033367|pkt_pos=69854|pkt_size=2566|width=160|height=240|crop_top=0|crop_bottom=0|crop_left=0|crop_right=0|pix_fmt=yuv420p|sample_aspect_ratio=2:1|pict_type=P|interlaced_frame=0|top_field_first=0|repeat_pict=0|color_range=tv|color_space=smpte170m|color_primaries=smpte170m|color_transfer=bt709|chroma_location=topleft|side_datum/3x3_displaymatrix:side_data_type=3x3 displaymatrix|side_datum/3x3_displaymatrix:displaymatrix=\n00000000: 131072 0 0\n00000001: 0 65536 0\n00000002: 0 0 1073741824\n|side_datum/3x3_displaymatrix:rotation=0|side_datum/h_26_45__user_data_unregistered_sei_message:side_data_type=H.26[45] User Data Unregistered SEI message
packet|codec_type=video|stream_index=0|pts=143578|pts_time=1.595311|dts=140574|dts_time=1.561933|duration=3003|duration_time=0.033367|size=2227|pos=74636|flags=K__
-frame|media_type=video|stream_index=0|key_frame=0|pts=140575|pts_time=1.561944|pkt_dts=140574|pkt_dts_time=1.561933|best_effort_timestamp=140575|best_effort_timestamp_time=1.561944|duration=3003|duration_time=0.033367|pkt_pos=73306|pkt_size=1330|width=160|height=240|crop_top=0|crop_bottom=0|crop_left=0|crop_right=0|pix_fmt=yuv420p|sample_aspect_ratio=2:1|pict_type=P|coded_picture_number=47|display_picture_number=0|interlaced_frame=0|top_field_first=0|repeat_pict=0|color_range=tv|color_space=smpte170m|color_primaries=smpte170m|color_transfer=bt709|chroma_location=topleft|side_datum/3x3_displaymatrix:side_data_type=3x3 displaymatrix|side_datum/3x3_displaymatrix:displaymatrix=\n00000000: 131072 0 0\n00000001: 0 65536 0\n00000002: 0 0 1073741824\n|side_datum/3x3_displaymatrix:rotation=0|side_datum/h_26_45__user_data_unregistered_sei_message:side_data_type=H.26[45] User Data Unregistered SEI message
+frame|media_type=video|stream_index=0|key_frame=0|pts=140575|pts_time=1.561944|pkt_dts=140574|pkt_dts_time=1.561933|best_effort_timestamp=140575|best_effort_timestamp_time=1.561944|duration=3003|duration_time=0.033367|pkt_pos=73306|pkt_size=1330|width=160|height=240|crop_top=0|crop_bottom=0|crop_left=0|crop_right=0|pix_fmt=yuv420p|sample_aspect_ratio=2:1|pict_type=P|interlaced_frame=0|top_field_first=0|repeat_pict=0|color_range=tv|color_space=smpte170m|color_primaries=smpte170m|color_transfer=bt709|chroma_location=topleft|side_datum/3x3_displaymatrix:side_data_type=3x3 displaymatrix|side_datum/3x3_displaymatrix:displaymatrix=\n00000000: 131072 0 0\n00000001: 0 65536 0\n00000002: 0 0 1073741824\n|side_datum/3x3_displaymatrix:rotation=0|side_datum/h_26_45__user_data_unregistered_sei_message:side_data_type=H.26[45] User Data Unregistered SEI message
packet|codec_type=video|stream_index=0|pts=149584|pts_time=1.662044|dts=143577|dts_time=1.595300|duration=3003|duration_time=0.033367|size=2210|pos=76863|flags=___
-frame|media_type=video|stream_index=0|key_frame=1|pts=143578|pts_time=1.595311|pkt_dts=143577|pkt_dts_time=1.595300|best_effort_timestamp=143578|best_effort_timestamp_time=1.595311|duration=3003|duration_time=0.033367|pkt_pos=74636|pkt_size=2227|width=160|height=240|crop_top=0|crop_bottom=0|crop_left=0|crop_right=0|pix_fmt=yuv420p|sample_aspect_ratio=2:1|pict_type=I|coded_picture_number=48|display_picture_number=0|interlaced_frame=0|top_field_first=0|repeat_pict=0|color_range=tv|color_space=smpte170m|color_primaries=smpte170m|color_transfer=bt709|chroma_location=topleft|side_datum/3x3_displaymatrix:side_data_type=3x3 displaymatrix|side_datum/3x3_displaymatrix:displaymatrix=\n00000000: 131072 0 0\n00000001: 0 65536 0\n00000002: 0 0 1073741824\n|side_datum/3x3_displaymatrix:rotation=0|side_datum/h_26_45__user_data_unregistered_sei_message:side_data_type=H.26[45] User Data Unregistered SEI message
+frame|media_type=video|stream_index=0|key_frame=1|pts=143578|pts_time=1.595311|pkt_dts=143577|pkt_dts_time=1.595300|best_effort_timestamp=143578|best_effort_timestamp_time=1.595311|duration=3003|duration_time=0.033367|pkt_pos=74636|pkt_size=2227|width=160|height=240|crop_top=0|crop_bottom=0|crop_left=0|crop_right=0|pix_fmt=yuv420p|sample_aspect_ratio=2:1|pict_type=I|interlaced_frame=0|top_field_first=0|repeat_pict=0|color_range=tv|color_space=smpte170m|color_primaries=smpte170m|color_transfer=bt709|chroma_location=topleft|side_datum/3x3_displaymatrix:side_data_type=3x3 displaymatrix|side_datum/3x3_displaymatrix:displaymatrix=\n00000000: 131072 0 0\n00000001: 0 65536 0\n00000002: 0 0 1073741824\n|side_datum/3x3_displaymatrix:rotation=0|side_datum/h_26_45__user_data_unregistered_sei_message:side_data_type=H.26[45] User Data Unregistered SEI message
packet|codec_type=video|stream_index=0|pts=146581|pts_time=1.628678|dts=146580|dts_time=1.628667|duration=3003|duration_time=0.033367|size=1498|pos=79073|flags=___
-frame|media_type=video|stream_index=0|key_frame=0|pts=146581|pts_time=1.628678|pkt_dts=146580|pkt_dts_time=1.628667|best_effort_timestamp=146581|best_effort_timestamp_time=1.628678|duration=3003|duration_time=0.033367|pkt_pos=79073|pkt_size=1498|width=160|height=240|crop_top=0|crop_bottom=0|crop_left=0|crop_right=0|pix_fmt=yuv420p|sample_aspect_ratio=2:1|pict_type=B|coded_picture_number=50|display_picture_number=0|interlaced_frame=0|top_field_first=0|repeat_pict=0|color_range=tv|color_space=smpte170m|color_primaries=smpte170m|color_transfer=bt709|chroma_location=topleft|side_datum/3x3_displaymatrix:side_data_type=3x3 displaymatrix|side_datum/3x3_displaymatrix:displaymatrix=\n00000000: 131072 0 0\n00000001: 0 65536 0\n00000002: 0 0 1073741824\n|side_datum/3x3_displaymatrix:rotation=0|side_datum/h_26_45__user_data_unregistered_sei_message:side_data_type=H.26[45] User Data Unregistered SEI message
+frame|media_type=video|stream_index=0|key_frame=0|pts=146581|pts_time=1.628678|pkt_dts=146580|pkt_dts_time=1.628667|best_effort_timestamp=146581|best_effort_timestamp_time=1.628678|duration=3003|duration_time=0.033367|pkt_pos=79073|pkt_size=1498|width=160|height=240|crop_top=0|crop_bottom=0|crop_left=0|crop_right=0|pix_fmt=yuv420p|sample_aspect_ratio=2:1|pict_type=B|interlaced_frame=0|top_field_first=0|repeat_pict=0|color_range=tv|color_space=smpte170m|color_primaries=smpte170m|color_transfer=bt709|chroma_location=topleft|side_datum/3x3_displaymatrix:side_data_type=3x3 displaymatrix|side_datum/3x3_displaymatrix:displaymatrix=\n00000000: 131072 0 0\n00000001: 0 65536 0\n00000002: 0 0 1073741824\n|side_datum/3x3_displaymatrix:rotation=0|side_datum/h_26_45__user_data_unregistered_sei_message:side_data_type=H.26[45] User Data Unregistered SEI message
packet|codec_type=video|stream_index=0|pts=155590|pts_time=1.728778|dts=149583|dts_time=1.662033|duration=3003|duration_time=0.033367|size=1721|pos=80571|flags=___
-frame|media_type=video|stream_index=0|key_frame=0|pts=149584|pts_time=1.662044|pkt_dts=149583|pkt_dts_time=1.662033|best_effort_timestamp=149584|best_effort_timestamp_time=1.662044|duration=3003|duration_time=0.033367|pkt_pos=76863|pkt_size=2210|width=160|height=240|crop_top=0|crop_bottom=0|crop_left=0|crop_right=0|pix_fmt=yuv420p|sample_aspect_ratio=2:1|pict_type=P|coded_picture_number=49|display_picture_number=0|interlaced_frame=0|top_field_first=0|repeat_pict=0|color_range=tv|color_space=smpte170m|color_primaries=smpte170m|color_transfer=bt709|chroma_location=topleft|side_datum/3x3_displaymatrix:side_data_type=3x3 displaymatrix|side_datum/3x3_displaymatrix:displaymatrix=\n00000000: 131072 0 0\n00000001: 0 65536 0\n00000002: 0 0 1073741824\n|side_datum/3x3_displaymatrix:rotation=0|side_datum/h_26_45__user_data_unregistered_sei_message:side_data_type=H.26[45] User Data Unregistered SEI message
+frame|media_type=video|stream_index=0|key_frame=0|pts=149584|pts_time=1.662044|pkt_dts=149583|pkt_dts_time=1.662033|best_effort_timestamp=149584|best_effort_timestamp_time=1.662044|duration=3003|duration_time=0.033367|pkt_pos=76863|pkt_size=2210|width=160|height=240|crop_top=0|crop_bottom=0|crop_left=0|crop_right=0|pix_fmt=yuv420p|sample_aspect_ratio=2:1|pict_type=P|interlaced_frame=0|top_field_first=0|repeat_pict=0|color_range=tv|color_space=smpte170m|color_primaries=smpte170m|color_transfer=bt709|chroma_location=topleft|side_datum/3x3_displaymatrix:side_data_type=3x3 displaymatrix|side_datum/3x3_displaymatrix:displaymatrix=\n00000000: 131072 0 0\n00000001: 0 65536 0\n00000002: 0 0 1073741824\n|side_datum/3x3_displaymatrix:rotation=0|side_datum/h_26_45__user_data_unregistered_sei_message:side_data_type=H.26[45] User Data Unregistered SEI message
packet|codec_type=video|stream_index=0|pts=152587|pts_time=1.695411|dts=152586|dts_time=1.695400|duration=3003|duration_time=0.033367|size=1238|pos=82292|flags=___
-frame|media_type=video|stream_index=0|key_frame=0|pts=152587|pts_time=1.695411|pkt_dts=152586|pkt_dts_time=1.695400|best_effort_timestamp=152587|best_effort_timestamp_time=1.695411|duration=3003|duration_time=0.033367|pkt_pos=82292|pkt_size=1238|width=160|height=240|crop_top=0|crop_bottom=0|crop_left=0|crop_right=0|pix_fmt=yuv420p|sample_aspect_ratio=2:1|pict_type=B|coded_picture_number=52|display_picture_number=0|interlaced_frame=0|top_field_first=0|repeat_pict=0|color_range=tv|color_space=smpte170m|color_primaries=smpte170m|color_transfer=bt709|chroma_location=topleft|side_datum/3x3_displaymatrix:side_data_type=3x3 displaymatrix|side_datum/3x3_displaymatrix:displaymatrix=\n00000000: 131072 0 0\n00000001: 0 65536 0\n00000002: 0 0 1073741824\n|side_datum/3x3_displaymatrix:rotation=0|side_datum/h_26_45__user_data_unregistered_sei_message:side_data_type=H.26[45] User Data Unregistered SEI message
+frame|media_type=video|stream_index=0|key_frame=0|pts=152587|pts_time=1.695411|pkt_dts=152586|pkt_dts_time=1.695400|best_effort_timestamp=152587|best_effort_timestamp_time=1.695411|duration=3003|duration_time=0.033367|pkt_pos=82292|pkt_size=1238|width=160|height=240|crop_top=0|crop_bottom=0|crop_left=0|crop_right=0|pix_fmt=yuv420p|sample_aspect_ratio=2:1|pict_type=B|interlaced_frame=0|top_field_first=0|repeat_pict=0|color_range=tv|color_space=smpte170m|color_primaries=smpte170m|color_transfer=bt709|chroma_location=topleft|side_datum/3x3_displaymatrix:side_data_type=3x3 displaymatrix|side_datum/3x3_displaymatrix:displaymatrix=\n00000000: 131072 0 0\n00000001: 0 65536 0\n00000002: 0 0 1073741824\n|side_datum/3x3_displaymatrix:rotation=0|side_datum/h_26_45__user_data_unregistered_sei_message:side_data_type=H.26[45] User Data Unregistered SEI message
packet|codec_type=video|stream_index=0|pts=161596|pts_time=1.795511|dts=155589|dts_time=1.728767|duration=3003|duration_time=0.033367|size=1753|pos=83530|flags=___
-frame|media_type=video|stream_index=0|key_frame=0|pts=155590|pts_time=1.728778|pkt_dts=155589|pkt_dts_time=1.728767|best_effort_timestamp=155590|best_effort_timestamp_time=1.728778|duration=3003|duration_time=0.033367|pkt_pos=80571|pkt_size=1721|width=160|height=240|crop_top=0|crop_bottom=0|crop_left=0|crop_right=0|pix_fmt=yuv420p|sample_aspect_ratio=2:1|pict_type=P|coded_picture_number=51|display_picture_number=0|interlaced_frame=0|top_field_first=0|repeat_pict=0|color_range=tv|color_space=smpte170m|color_primaries=smpte170m|color_transfer=bt709|chroma_location=topleft|side_datum/3x3_displaymatrix:side_data_type=3x3 displaymatrix|side_datum/3x3_displaymatrix:displaymatrix=\n00000000: 131072 0 0\n00000001: 0 65536 0\n00000002: 0 0 1073741824\n|side_datum/3x3_displaymatrix:rotation=0|side_datum/h_26_45__user_data_unregistered_sei_message:side_data_type=H.26[45] User Data Unregistered SEI message
+frame|media_type=video|stream_index=0|key_frame=0|pts=155590|pts_time=1.728778|pkt_dts=155589|pkt_dts_time=1.728767|best_effort_timestamp=155590|best_effort_timestamp_time=1.728778|duration=3003|duration_time=0.033367|pkt_pos=80571|pkt_size=1721|width=160|height=240|crop_top=0|crop_bottom=0|crop_left=0|crop_right=0|pix_fmt=yuv420p|sample_aspect_ratio=2:1|pict_type=P|interlaced_frame=0|top_field_first=0|repeat_pict=0|color_range=tv|color_space=smpte170m|color_primaries=smpte170m|color_transfer=bt709|chroma_location=topleft|side_datum/3x3_displaymatrix:side_data_type=3x3 displaymatrix|side_datum/3x3_displaymatrix:displaymatrix=\n00000000: 131072 0 0\n00000001: 0 65536 0\n00000002: 0 0 1073741824\n|side_datum/3x3_displaymatrix:rotation=0|side_datum/h_26_45__user_data_unregistered_sei_message:side_data_type=H.26[45] User Data Unregistered SEI message
packet|codec_type=video|stream_index=0|pts=158593|pts_time=1.762144|dts=158592|dts_time=1.762133|duration=3003|duration_time=0.033367|size=1014|pos=85283|flags=___
-frame|media_type=video|stream_index=0|key_frame=0|pts=158593|pts_time=1.762144|pkt_dts=158592|pkt_dts_time=1.762133|best_effort_timestamp=158593|best_effort_timestamp_time=1.762144|duration=3003|duration_time=0.033367|pkt_pos=85283|pkt_size=1014|width=160|height=240|crop_top=0|crop_bottom=0|crop_left=0|crop_right=0|pix_fmt=yuv420p|sample_aspect_ratio=2:1|pict_type=B|coded_picture_number=54|display_picture_number=0|interlaced_frame=0|top_field_first=0|repeat_pict=0|color_range=tv|color_space=smpte170m|color_primaries=smpte170m|color_transfer=bt709|chroma_location=topleft|side_datum/3x3_displaymatrix:side_data_type=3x3 displaymatrix|side_datum/3x3_displaymatrix:displaymatrix=\n00000000: 131072 0 0\n00000001: 0 65536 0\n00000002: 0 0 1073741824\n|side_datum/3x3_displaymatrix:rotation=0|side_datum/h_26_45__user_data_unregistered_sei_message:side_data_type=H.26[45] User Data Unregistered SEI message
+frame|media_type=video|stream_index=0|key_frame=0|pts=158593|pts_time=1.762144|pkt_dts=158592|pkt_dts_time=1.762133|best_effort_timestamp=158593|best_effort_timestamp_time=1.762144|duration=3003|duration_time=0.033367|pkt_pos=85283|pkt_size=1014|width=160|height=240|crop_top=0|crop_bottom=0|crop_left=0|crop_right=0|pix_fmt=yuv420p|sample_aspect_ratio=2:1|pict_type=B|interlaced_frame=0|top_field_first=0|repeat_pict=0|color_range=tv|color_space=smpte170m|color_primaries=smpte170m|color_transfer=bt709|chroma_location=topleft|side_datum/3x3_displaymatrix:side_data_type=3x3 displaymatrix|side_datum/3x3_displaymatrix:displaymatrix=\n00000000: 131072 0 0\n00000001: 0 65536 0\n00000002: 0 0 1073741824\n|side_datum/3x3_displaymatrix:rotation=0|side_datum/h_26_45__user_data_unregistered_sei_message:side_data_type=H.26[45] User Data Unregistered SEI message
packet|codec_type=video|stream_index=0|pts=167602|pts_time=1.862244|dts=161595|dts_time=1.795500|duration=3003|duration_time=0.033367|size=2408|pos=86297|flags=___
-frame|media_type=video|stream_index=0|key_frame=0|pts=161596|pts_time=1.795511|pkt_dts=161595|pkt_dts_time=1.795500|best_effort_timestamp=161596|best_effort_timestamp_time=1.795511|duration=3003|duration_time=0.033367|pkt_pos=83530|pkt_size=1753|width=160|height=240|crop_top=0|crop_bottom=0|crop_left=0|crop_right=0|pix_fmt=yuv420p|sample_aspect_ratio=2:1|pict_type=P|coded_picture_number=53|display_picture_number=0|interlaced_frame=0|top_field_first=0|repeat_pict=0|color_range=tv|color_space=smpte170m|color_primaries=smpte170m|color_transfer=bt709|chroma_location=topleft|side_datum/3x3_displaymatrix:side_data_type=3x3 displaymatrix|side_datum/3x3_displaymatrix:displaymatrix=\n00000000: 131072 0 0\n00000001: 0 65536 0\n00000002: 0 0 1073741824\n|side_datum/3x3_displaymatrix:rotation=0|side_datum/h_26_45__user_data_unregistered_sei_message:side_data_type=H.26[45] User Data Unregistered SEI message
+frame|media_type=video|stream_index=0|key_frame=0|pts=161596|pts_time=1.795511|pkt_dts=161595|pkt_dts_time=1.795500|best_effort_timestamp=161596|best_effort_timestamp_time=1.795511|duration=3003|duration_time=0.033367|pkt_pos=83530|pkt_size=1753|width=160|height=240|crop_top=0|crop_bottom=0|crop_left=0|crop_right=0|pix_fmt=yuv420p|sample_aspect_ratio=2:1|pict_type=P|interlaced_frame=0|top_field_first=0|repeat_pict=0|color_range=tv|color_space=smpte170m|color_primaries=smpte170m|color_transfer=bt709|chroma_location=topleft|side_datum/3x3_displaymatrix:side_data_type=3x3 displaymatrix|side_datum/3x3_displaymatrix:displaymatrix=\n00000000: 131072 0 0\n00000001: 0 65536 0\n00000002: 0 0 1073741824\n|side_datum/3x3_displaymatrix:rotation=0|side_datum/h_26_45__user_data_unregistered_sei_message:side_data_type=H.26[45] User Data Unregistered SEI message
packet|codec_type=video|stream_index=0|pts=164599|pts_time=1.828878|dts=164598|dts_time=1.828867|duration=3003|duration_time=0.033367|size=1727|pos=88705|flags=___
-frame|media_type=video|stream_index=0|key_frame=0|pts=164599|pts_time=1.828878|pkt_dts=164598|pkt_dts_time=1.828867|best_effort_timestamp=164599|best_effort_timestamp_time=1.828878|duration=3003|duration_time=0.033367|pkt_pos=88705|pkt_size=1727|width=160|height=240|crop_top=0|crop_bottom=0|crop_left=0|crop_right=0|pix_fmt=yuv420p|sample_aspect_ratio=2:1|pict_type=B|coded_picture_number=56|display_picture_number=0|interlaced_frame=0|top_field_first=0|repeat_pict=0|color_range=tv|color_space=smpte170m|color_primaries=smpte170m|color_transfer=bt709|chroma_location=topleft|side_datum/3x3_displaymatrix:side_data_type=3x3 displaymatrix|side_datum/3x3_displaymatrix:displaymatrix=\n00000000: 131072 0 0\n00000001: 0 65536 0\n00000002: 0 0 1073741824\n|side_datum/3x3_displaymatrix:rotation=0|side_datum/h_26_45__user_data_unregistered_sei_message:side_data_type=H.26[45] User Data Unregistered SEI message
+frame|media_type=video|stream_index=0|key_frame=0|pts=164599|pts_time=1.828878|pkt_dts=164598|pkt_dts_time=1.828867|best_effort_timestamp=164599|best_effort_timestamp_time=1.828878|duration=3003|duration_time=0.033367|pkt_pos=88705|pkt_size=1727|width=160|height=240|crop_top=0|crop_bottom=0|crop_left=0|crop_right=0|pix_fmt=yuv420p|sample_aspect_ratio=2:1|pict_type=B|interlaced_frame=0|top_field_first=0|repeat_pict=0|color_range=tv|color_space=smpte170m|color_primaries=smpte170m|color_transfer=bt709|chroma_location=topleft|side_datum/3x3_displaymatrix:side_data_type=3x3 displaymatrix|side_datum/3x3_displaymatrix:displaymatrix=\n00000000: 131072 0 0\n00000001: 0 65536 0\n00000002: 0 0 1073741824\n|side_datum/3x3_displaymatrix:rotation=0|side_datum/h_26_45__user_data_unregistered_sei_message:side_data_type=H.26[45] User Data Unregistered SEI message
packet|codec_type=video|stream_index=0|pts=173608|pts_time=1.928978|dts=167601|dts_time=1.862233|duration=3003|duration_time=0.033367|size=1504|pos=90432|flags=___
-frame|media_type=video|stream_index=0|key_frame=0|pts=167602|pts_time=1.862244|pkt_dts=167601|pkt_dts_time=1.862233|best_effort_timestamp=167602|best_effort_timestamp_time=1.862244|duration=3003|duration_time=0.033367|pkt_pos=86297|pkt_size=2408|width=160|height=240|crop_top=0|crop_bottom=0|crop_left=0|crop_right=0|pix_fmt=yuv420p|sample_aspect_ratio=2:1|pict_type=P|coded_picture_number=55|display_picture_number=0|interlaced_frame=0|top_field_first=0|repeat_pict=0|color_range=tv|color_space=smpte170m|color_primaries=smpte170m|color_transfer=bt709|chroma_location=topleft|side_datum/3x3_displaymatrix:side_data_type=3x3 displaymatrix|side_datum/3x3_displaymatrix:displaymatrix=\n00000000: 131072 0 0\n00000001: 0 65536 0\n00000002: 0 0 1073741824\n|side_datum/3x3_displaymatrix:rotation=0|side_datum/h_26_45__user_data_unregistered_sei_message:side_data_type=H.26[45] User Data Unregistered SEI message
+frame|media_type=video|stream_index=0|key_frame=0|pts=167602|pts_time=1.862244|pkt_dts=167601|pkt_dts_time=1.862233|best_effort_timestamp=167602|best_effort_timestamp_time=1.862244|duration=3003|duration_time=0.033367|pkt_pos=86297|pkt_size=2408|width=160|height=240|crop_top=0|crop_bottom=0|crop_left=0|crop_right=0|pix_fmt=yuv420p|sample_aspect_ratio=2:1|pict_type=P|interlaced_frame=0|top_field_first=0|repeat_pict=0|color_range=tv|color_space=smpte170m|color_primaries=smpte170m|color_transfer=bt709|chroma_location=topleft|side_datum/3x3_displaymatrix:side_data_type=3x3 displaymatrix|side_datum/3x3_displaymatrix:displaymatrix=\n00000000: 131072 0 0\n00000001: 0 65536 0\n00000002: 0 0 1073741824\n|side_datum/3x3_displaymatrix:rotation=0|side_datum/h_26_45__user_data_unregistered_sei_message:side_data_type=H.26[45] User Data Unregistered SEI message
packet|codec_type=video|stream_index=0|pts=170605|pts_time=1.895611|dts=170604|dts_time=1.895600|duration=3003|duration_time=0.033367|size=957|pos=91936|flags=___
-frame|media_type=video|stream_index=0|key_frame=0|pts=170605|pts_time=1.895611|pkt_dts=170604|pkt_dts_time=1.895600|best_effort_timestamp=170605|best_effort_timestamp_time=1.895611|duration=3003|duration_time=0.033367|pkt_pos=91936|pkt_size=957|width=160|height=240|crop_top=0|crop_bottom=0|crop_left=0|crop_right=0|pix_fmt=yuv420p|sample_aspect_ratio=2:1|pict_type=B|coded_picture_number=58|display_picture_number=0|interlaced_frame=0|top_field_first=0|repeat_pict=0|color_range=tv|color_space=smpte170m|color_primaries=smpte170m|color_transfer=bt709|chroma_location=topleft|side_datum/3x3_displaymatrix:side_data_type=3x3 displaymatrix|side_datum/3x3_displaymatrix:displaymatrix=\n00000000: 131072 0 0\n00000001: 0 65536 0\n00000002: 0 0 1073741824\n|side_datum/3x3_displaymatrix:rotation=0|side_datum/h_26_45__user_data_unregistered_sei_message:side_data_type=H.26[45] User Data Unregistered SEI message
+frame|media_type=video|stream_index=0|key_frame=0|pts=170605|pts_time=1.895611|pkt_dts=170604|pkt_dts_time=1.895600|best_effort_timestamp=170605|best_effort_timestamp_time=1.895611|duration=3003|duration_time=0.033367|pkt_pos=91936|pkt_size=957|width=160|height=240|crop_top=0|crop_bottom=0|crop_left=0|crop_right=0|pix_fmt=yuv420p|sample_aspect_ratio=2:1|pict_type=B|interlaced_frame=0|top_field_first=0|repeat_pict=0|color_range=tv|color_space=smpte170m|color_primaries=smpte170m|color_transfer=bt709|chroma_location=topleft|side_datum/3x3_displaymatrix:side_data_type=3x3 displaymatrix|side_datum/3x3_displaymatrix:displaymatrix=\n00000000: 131072 0 0\n00000001: 0 65536 0\n00000002: 0 0 1073741824\n|side_datum/3x3_displaymatrix:rotation=0|side_datum/h_26_45__user_data_unregistered_sei_message:side_data_type=H.26[45] User Data Unregistered SEI message
packet|codec_type=video|stream_index=0|pts=179614|pts_time=1.995711|dts=173607|dts_time=1.928967|duration=3003|duration_time=0.033367|size=1890|pos=92893|flags=___
-frame|media_type=video|stream_index=0|key_frame=0|pts=173608|pts_time=1.928978|pkt_dts=173607|pkt_dts_time=1.928967|best_effort_timestamp=173608|best_effort_timestamp_time=1.928978|duration=3003|duration_time=0.033367|pkt_pos=90432|pkt_size=1504|width=160|height=240|crop_top=0|crop_bottom=0|crop_left=0|crop_right=0|pix_fmt=yuv420p|sample_aspect_ratio=2:1|pict_type=P|coded_picture_number=57|display_picture_number=0|interlaced_frame=0|top_field_first=0|repeat_pict=0|color_range=tv|color_space=smpte170m|color_primaries=smpte170m|color_transfer=bt709|chroma_location=topleft|side_datum/3x3_displaymatrix:side_data_type=3x3 displaymatrix|side_datum/3x3_displaymatrix:displaymatrix=\n00000000: 131072 0 0\n00000001: 0 65536 0\n00000002: 0 0 1073741824\n|side_datum/3x3_displaymatrix:rotation=0|side_datum/h_26_45__user_data_unregistered_sei_message:side_data_type=H.26[45] User Data Unregistered SEI message
+frame|media_type=video|stream_index=0|key_frame=0|pts=173608|pts_time=1.928978|pkt_dts=173607|pkt_dts_time=1.928967|best_effort_timestamp=173608|best_effort_timestamp_time=1.928978|duration=3003|duration_time=0.033367|pkt_pos=90432|pkt_size=1504|width=160|height=240|crop_top=0|crop_bottom=0|crop_left=0|crop_right=0|pix_fmt=yuv420p|sample_aspect_ratio=2:1|pict_type=P|interlaced_frame=0|top_field_first=0|repeat_pict=0|color_range=tv|color_space=smpte170m|color_primaries=smpte170m|color_transfer=bt709|chroma_location=topleft|side_datum/3x3_displaymatrix:side_data_type=3x3 displaymatrix|side_datum/3x3_displaymatrix:displaymatrix=\n00000000: 131072 0 0\n00000001: 0 65536 0\n00000002: 0 0 1073741824\n|side_datum/3x3_displaymatrix:rotation=0|side_datum/h_26_45__user_data_unregistered_sei_message:side_data_type=H.26[45] User Data Unregistered SEI message
packet|codec_type=video|stream_index=0|pts=176611|pts_time=1.962344|dts=176610|dts_time=1.962333|duration=3003|duration_time=0.033367|size=1239|pos=94783|flags=___
-frame|media_type=video|stream_index=0|key_frame=0|pts=176611|pts_time=1.962344|pkt_dts=176610|pkt_dts_time=1.962333|best_effort_timestamp=176611|best_effort_timestamp_time=1.962344|duration=3003|duration_time=0.033367|pkt_pos=94783|pkt_size=1239|width=160|height=240|crop_top=0|crop_bottom=0|crop_left=0|crop_right=0|pix_fmt=yuv420p|sample_aspect_ratio=2:1|pict_type=B|coded_picture_number=60|display_picture_number=0|interlaced_frame=0|top_field_first=0|repeat_pict=0|color_range=tv|color_space=smpte170m|color_primaries=smpte170m|color_transfer=bt709|chroma_location=topleft|side_datum/3x3_displaymatrix:side_data_type=3x3 displaymatrix|side_datum/3x3_displaymatrix:displaymatrix=\n00000000: 131072 0 0\n00000001: 0 65536 0\n00000002: 0 0 1073741824\n|side_datum/3x3_displaymatrix:rotation=0|side_datum/h_26_45__user_data_unregistered_sei_message:side_data_type=H.26[45] User Data Unregistered SEI message
+frame|media_type=video|stream_index=0|key_frame=0|pts=176611|pts_time=1.962344|pkt_dts=176610|pkt_dts_time=1.962333|best_effort_timestamp=176611|best_effort_timestamp_time=1.962344|duration=3003|duration_time=0.033367|pkt_pos=94783|pkt_size=1239|width=160|height=240|crop_top=0|crop_bottom=0|crop_left=0|crop_right=0|pix_fmt=yuv420p|sample_aspect_ratio=2:1|pict_type=B|interlaced_frame=0|top_field_first=0|repeat_pict=0|color_range=tv|color_space=smpte170m|color_primaries=smpte170m|color_transfer=bt709|chroma_location=topleft|side_datum/3x3_displaymatrix:side_data_type=3x3 displaymatrix|side_datum/3x3_displaymatrix:displaymatrix=\n00000000: 131072 0 0\n00000001: 0 65536 0\n00000002: 0 0 1073741824\n|side_datum/3x3_displaymatrix:rotation=0|side_datum/h_26_45__user_data_unregistered_sei_message:side_data_type=H.26[45] User Data Unregistered SEI message
packet|codec_type=video|stream_index=0|pts=185620|pts_time=2.062444|dts=179613|dts_time=1.995700|duration=3003|duration_time=0.033367|size=1856|pos=96022|flags=___
-frame|media_type=video|stream_index=0|key_frame=0|pts=179614|pts_time=1.995711|pkt_dts=179613|pkt_dts_time=1.995700|best_effort_timestamp=179614|best_effort_timestamp_time=1.995711|duration=3003|duration_time=0.033367|pkt_pos=92893|pkt_size=1890|width=160|height=240|crop_top=0|crop_bottom=0|crop_left=0|crop_right=0|pix_fmt=yuv420p|sample_aspect_ratio=2:1|pict_type=P|coded_picture_number=59|display_picture_number=0|interlaced_frame=0|top_field_first=0|repeat_pict=0|color_range=tv|color_space=smpte170m|color_primaries=smpte170m|color_transfer=bt709|chroma_location=topleft|side_datum/3x3_displaymatrix:side_data_type=3x3 displaymatrix|side_datum/3x3_displaymatrix:displaymatrix=\n00000000: 131072 0 0\n00000001: 0 65536 0\n00000002: 0 0 1073741824\n|side_datum/3x3_displaymatrix:rotation=0|side_datum/h_26_45__user_data_unregistered_sei_message:side_data_type=H.26[45] User Data Unregistered SEI message
+frame|media_type=video|stream_index=0|key_frame=0|pts=179614|pts_time=1.995711|pkt_dts=179613|pkt_dts_time=1.995700|best_effort_timestamp=179614|best_effort_timestamp_time=1.995711|duration=3003|duration_time=0.033367|pkt_pos=92893|pkt_size=1890|width=160|height=240|crop_top=0|crop_bottom=0|crop_left=0|crop_right=0|pix_fmt=yuv420p|sample_aspect_ratio=2:1|pict_type=P|interlaced_frame=0|top_field_first=0|repeat_pict=0|color_range=tv|color_space=smpte170m|color_primaries=smpte170m|color_transfer=bt709|chroma_location=topleft|side_datum/3x3_displaymatrix:side_data_type=3x3 displaymatrix|side_datum/3x3_displaymatrix:displaymatrix=\n00000000: 131072 0 0\n00000001: 0 65536 0\n00000002: 0 0 1073741824\n|side_datum/3x3_displaymatrix:rotation=0|side_datum/h_26_45__user_data_unregistered_sei_message:side_data_type=H.26[45] User Data Unregistered SEI message
packet|codec_type=video|stream_index=0|pts=182617|pts_time=2.029078|dts=182616|dts_time=2.029067|duration=3003|duration_time=0.033367|size=1302|pos=97878|flags=___
-frame|media_type=video|stream_index=0|key_frame=0|pts=182617|pts_time=2.029078|pkt_dts=182616|pkt_dts_time=2.029067|best_effort_timestamp=182617|best_effort_timestamp_time=2.029078|duration=3003|duration_time=0.033367|pkt_pos=97878|pkt_size=1302|width=160|height=240|crop_top=0|crop_bottom=0|crop_left=0|crop_right=0|pix_fmt=yuv420p|sample_aspect_ratio=2:1|pict_type=B|coded_picture_number=62|display_picture_number=0|interlaced_frame=0|top_field_first=0|repeat_pict=0|color_range=tv|color_space=smpte170m|color_primaries=smpte170m|color_transfer=bt709|chroma_location=topleft|side_datum/3x3_displaymatrix:side_data_type=3x3 displaymatrix|side_datum/3x3_displaymatrix:displaymatrix=\n00000000: 131072 0 0\n00000001: 0 65536 0\n00000002: 0 0 1073741824\n|side_datum/3x3_displaymatrix:rotation=0|side_datum/h_26_45__user_data_unregistered_sei_message:side_data_type=H.26[45] User Data Unregistered SEI message
+frame|media_type=video|stream_index=0|key_frame=0|pts=182617|pts_time=2.029078|pkt_dts=182616|pkt_dts_time=2.029067|best_effort_timestamp=182617|best_effort_timestamp_time=2.029078|duration=3003|duration_time=0.033367|pkt_pos=97878|pkt_size=1302|width=160|height=240|crop_top=0|crop_bottom=0|crop_left=0|crop_right=0|pix_fmt=yuv420p|sample_aspect_ratio=2:1|pict_type=B|interlaced_frame=0|top_field_first=0|repeat_pict=0|color_range=tv|color_space=smpte170m|color_primaries=smpte170m|color_transfer=bt709|chroma_location=topleft|side_datum/3x3_displaymatrix:side_data_type=3x3 displaymatrix|side_datum/3x3_displaymatrix:displaymatrix=\n00000000: 131072 0 0\n00000001: 0 65536 0\n00000002: 0 0 1073741824\n|side_datum/3x3_displaymatrix:rotation=0|side_datum/h_26_45__user_data_unregistered_sei_message:side_data_type=H.26[45] User Data Unregistered SEI message
packet|codec_type=video|stream_index=0|pts=191626|pts_time=2.129178|dts=185619|dts_time=2.062433|duration=3003|duration_time=0.033367|size=1666|pos=99180|flags=___
-frame|media_type=video|stream_index=0|key_frame=0|pts=185620|pts_time=2.062444|pkt_dts=185619|pkt_dts_time=2.062433|best_effort_timestamp=185620|best_effort_timestamp_time=2.062444|duration=3003|duration_time=0.033367|pkt_pos=96022|pkt_size=1856|width=160|height=240|crop_top=0|crop_bottom=0|crop_left=0|crop_right=0|pix_fmt=yuv420p|sample_aspect_ratio=2:1|pict_type=P|coded_picture_number=61|display_picture_number=0|interlaced_frame=0|top_field_first=0|repeat_pict=0|color_range=tv|color_space=smpte170m|color_primaries=smpte170m|color_transfer=bt709|chroma_location=topleft|side_datum/3x3_displaymatrix:side_data_type=3x3 displaymatrix|side_datum/3x3_displaymatrix:displaymatrix=\n00000000: 131072 0 0\n00000001: 0 65536 0\n00000002: 0 0 1073741824\n|side_datum/3x3_displaymatrix:rotation=0|side_datum/h_26_45__user_data_unregistered_sei_message:side_data_type=H.26[45] User Data Unregistered SEI message
+frame|media_type=video|stream_index=0|key_frame=0|pts=185620|pts_time=2.062444|pkt_dts=185619|pkt_dts_time=2.062433|best_effort_timestamp=185620|best_effort_timestamp_time=2.062444|duration=3003|duration_time=0.033367|pkt_pos=96022|pkt_size=1856|width=160|height=240|crop_top=0|crop_bottom=0|crop_left=0|crop_right=0|pix_fmt=yuv420p|sample_aspect_ratio=2:1|pict_type=P|interlaced_frame=0|top_field_first=0|repeat_pict=0|color_range=tv|color_space=smpte170m|color_primaries=smpte170m|color_transfer=bt709|chroma_location=topleft|side_datum/3x3_displaymatrix:side_data_type=3x3 displaymatrix|side_datum/3x3_displaymatrix:displaymatrix=\n00000000: 131072 0 0\n00000001: 0 65536 0\n00000002: 0 0 1073741824\n|side_datum/3x3_displaymatrix:rotation=0|side_datum/h_26_45__user_data_unregistered_sei_message:side_data_type=H.26[45] User Data Unregistered SEI message
packet|codec_type=video|stream_index=0|pts=188623|pts_time=2.095811|dts=188622|dts_time=2.095800|duration=3003|duration_time=0.033367|size=974|pos=100846|flags=___
-frame|media_type=video|stream_index=0|key_frame=0|pts=188623|pts_time=2.095811|pkt_dts=188622|pkt_dts_time=2.095800|best_effort_timestamp=188623|best_effort_timestamp_time=2.095811|duration=3003|duration_time=0.033367|pkt_pos=100846|pkt_size=974|width=160|height=240|crop_top=0|crop_bottom=0|crop_left=0|crop_right=0|pix_fmt=yuv420p|sample_aspect_ratio=2:1|pict_type=B|coded_picture_number=64|display_picture_number=0|interlaced_frame=0|top_field_first=0|repeat_pict=0|color_range=tv|color_space=smpte170m|color_primaries=smpte170m|color_transfer=bt709|chroma_location=topleft|side_datum/3x3_displaymatrix:side_data_type=3x3 displaymatrix|side_datum/3x3_displaymatrix:displaymatrix=\n00000000: 131072 0 0\n00000001: 0 65536 0\n00000002: 0 0 1073741824\n|side_datum/3x3_displaymatrix:rotation=0|side_datum/h_26_45__user_data_unregistered_sei_message:side_data_type=H.26[45] User Data Unregistered SEI message
+frame|media_type=video|stream_index=0|key_frame=0|pts=188623|pts_time=2.095811|pkt_dts=188622|pkt_dts_time=2.095800|best_effort_timestamp=188623|best_effort_timestamp_time=2.095811|duration=3003|duration_time=0.033367|pkt_pos=100846|pkt_size=974|width=160|height=240|crop_top=0|crop_bottom=0|crop_left=0|crop_right=0|pix_fmt=yuv420p|sample_aspect_ratio=2:1|pict_type=B|interlaced_frame=0|top_field_first=0|repeat_pict=0|color_range=tv|color_space=smpte170m|color_primaries=smpte170m|color_transfer=bt709|chroma_location=topleft|side_datum/3x3_displaymatrix:side_data_type=3x3 displaymatrix|side_datum/3x3_displaymatrix:displaymatrix=\n00000000: 131072 0 0\n00000001: 0 65536 0\n00000002: 0 0 1073741824\n|side_datum/3x3_displaymatrix:rotation=0|side_datum/h_26_45__user_data_unregistered_sei_message:side_data_type=H.26[45] User Data Unregistered SEI message
packet|codec_type=video|stream_index=0|pts=197632|pts_time=2.195911|dts=191625|dts_time=2.129167|duration=3003|duration_time=0.033367|size=580|pos=101820|flags=__C
-frame|media_type=video|stream_index=0|key_frame=0|pts=191626|pts_time=2.129178|pkt_dts=N/A|pkt_dts_time=N/A|best_effort_timestamp=191626|best_effort_timestamp_time=2.129178|duration=3003|duration_time=0.033367|pkt_pos=99180|pkt_size=1666|width=160|height=240|crop_top=0|crop_bottom=0|crop_left=0|crop_right=0|pix_fmt=yuv420p|sample_aspect_ratio=2:1|pict_type=P|coded_picture_number=63|display_picture_number=0|interlaced_frame=0|top_field_first=0|repeat_pict=0|color_range=tv|color_space=smpte170m|color_primaries=smpte170m|color_transfer=bt709|chroma_location=topleft|side_datum/3x3_displaymatrix:side_data_type=3x3 displaymatrix|side_datum/3x3_displaymatrix:displaymatrix=\n00000000: 131072 0 0\n00000001: 0 65536 0\n00000002: 0 0 1073741824\n|side_datum/3x3_displaymatrix:rotation=0|side_datum/h_26_45__user_data_unregistered_sei_message:side_data_type=H.26[45] User Data Unregistered SEI message
+frame|media_type=video|stream_index=0|key_frame=0|pts=191626|pts_time=2.129178|pkt_dts=N/A|pkt_dts_time=N/A|best_effort_timestamp=191626|best_effort_timestamp_time=2.129178|duration=3003|duration_time=0.033367|pkt_pos=99180|pkt_size=1666|width=160|height=240|crop_top=0|crop_bottom=0|crop_left=0|crop_right=0|pix_fmt=yuv420p|sample_aspect_ratio=2:1|pict_type=P|interlaced_frame=0|top_field_first=0|repeat_pict=0|color_range=tv|color_space=smpte170m|color_primaries=smpte170m|color_transfer=bt709|chroma_location=topleft|side_datum/3x3_displaymatrix:side_data_type=3x3 displaymatrix|side_datum/3x3_displaymatrix:displaymatrix=\n00000000: 131072 0 0\n00000001: 0 65536 0\n00000002: 0 0 1073741824\n|side_datum/3x3_displaymatrix:rotation=0|side_datum/h_26_45__user_data_unregistered_sei_message:side_data_type=H.26[45] User Data Unregistered SEI message
stream|index=0|codec_name=h264|profile=77|codec_type=video|codec_tag_string=avc1|codec_tag=0x31637661|width=160|height=240|coded_width=160|coded_height=240|closed_captions=0|film_grain=0|has_b_frames=1|sample_aspect_ratio=2:1|display_aspect_ratio=4:3|pix_fmt=yuv420p|level=12|color_range=tv|color_space=smpte170m|color_transfer=bt709|color_primaries=smpte170m|chroma_location=topleft|field_order=progressive|refs=2|is_avc=true|nal_length_size=4|id=0x1|r_frame_rate=30000/1001|avg_frame_rate=6372000/212521|time_base=1/90000|start_pts=0|start_time=0.000000|duration_ts=2125200|duration=23.613333|bit_rate=333874|max_bit_rate=N/A|bits_per_raw_sample=8|nb_frames=708|nb_read_frames=65|nb_read_packets=66|extradata_size=34|disposition:default=1|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|tag:creation_time=2008-05-12T20:59:27.000000Z|tag:language=eng|tag:handler_name=Apple Video Media Handler|tag:vendor_id=appl|tag:encoder=H.264|side_datum/display_matrix:side_data_type=Display Matrix|side_datum/display_matrix:displaymatrix=\n00000000: 131072 0 0\n00000001: 0 65536 0\n00000002: 0 0 1073741824\n|side_datum/display_matrix:rotation=0
diff --git a/tests/ref/fate/png-icc b/tests/ref/fate/png-icc
index 417cbcb91d..19f8c0a752 100644
--- a/tests/ref/fate/png-icc
+++ b/tests/ref/fate/png-icc
@@ -29,8 +29,6 @@ crop_right=0
pix_fmt=rgb24
sample_aspect_ratio=1:1
pict_type=I
-coded_picture_number=0
-display_picture_number=0
interlaced_frame=0
top_field_first=0
repeat_pict=0
diff --git a/tests/ref/fate/png-side-data b/tests/ref/fate/png-side-data
index 0d1f88ccb2..9f7ccec53c 100644
--- a/tests/ref/fate/png-side-data
+++ b/tests/ref/fate/png-side-data
@@ -21,8 +21,6 @@ crop_right=0
pix_fmt=rgb24
sample_aspect_ratio=1:1
pict_type=I
-coded_picture_number=0
-display_picture_number=0
interlaced_frame=1
top_field_first=0
repeat_pict=0
--
2.43.0
_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
To unsubscribe, visit link above, or email
ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".
^ permalink raw reply [flat|nested] 60+ messages in thread
* [FFmpeg-devel] [PATCH 21/24] avcodec/version_major: postpone some deprecations until the next bump
2024-01-25 13:43 [FFmpeg-devel] [PATCH 00/24] Major library version bump James Almer
` (19 preceding siblings ...)
2024-01-25 13:43 ` [FFmpeg-devel] [PATCH 20/24] avutil: remove deprecated FF_API_FRAME_PICTURE_NUMBER James Almer
@ 2024-01-25 13:43 ` James Almer
2024-01-25 13:43 ` [FFmpeg-devel] [PATCH 22/24] avformat/version_major: " James Almer
` (20 subsequent siblings)
41 siblings, 0 replies; 60+ messages in thread
From: James Almer @ 2024-01-25 13:43 UTC (permalink / raw)
To: ffmpeg-devel
They are either too recent, or can't be removed yet.
Signed-off-by: James Almer <jamrial@gmail.com>
---
libavcodec/version_major.h | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/libavcodec/version_major.h b/libavcodec/version_major.h
index d849d55cb2..065b0c1378 100644
--- a/libavcodec/version_major.h
+++ b/libavcodec/version_major.h
@@ -37,10 +37,10 @@
* at once through the bump. This improves the git bisect-ability of the change.
*/
-#define FF_API_INIT_PACKET (LIBAVCODEC_VERSION_MAJOR < 61)
-#define FF_API_SUBFRAMES (LIBAVCODEC_VERSION_MAJOR < 61)
-#define FF_API_TICKS_PER_FRAME (LIBAVCODEC_VERSION_MAJOR < 61)
-#define FF_API_DROPCHANGED (LIBAVCODEC_VERSION_MAJOR < 61)
+#define FF_API_INIT_PACKET (LIBAVCODEC_VERSION_MAJOR < 62)
+#define FF_API_SUBFRAMES (LIBAVCODEC_VERSION_MAJOR < 62)
+#define FF_API_TICKS_PER_FRAME (LIBAVCODEC_VERSION_MAJOR < 62)
+#define FF_API_DROPCHANGED (LIBAVCODEC_VERSION_MAJOR < 62)
#define FF_API_AVFFT (LIBAVCODEC_VERSION_MAJOR < 62)
#define FF_API_FF_PROFILE_LEVEL (LIBAVCODEC_VERSION_MAJOR < 62)
--
2.43.0
_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
To unsubscribe, visit link above, or email
ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".
^ permalink raw reply [flat|nested] 60+ messages in thread
* [FFmpeg-devel] [PATCH 22/24] avformat/version_major: postpone some deprecations until the next bump
2024-01-25 13:43 [FFmpeg-devel] [PATCH 00/24] Major library version bump James Almer
` (20 preceding siblings ...)
2024-01-25 13:43 ` [FFmpeg-devel] [PATCH 21/24] avcodec/version_major: postpone some deprecations until the next bump James Almer
@ 2024-01-25 13:43 ` James Almer
2024-01-25 14:34 ` Andreas Rheinhardt
2024-01-25 13:43 ` [FFmpeg-devel] [PATCH 23/24] avutil/version_major: " James Almer
` (19 subsequent siblings)
41 siblings, 1 reply; 60+ messages in thread
From: James Almer @ 2024-01-25 13:43 UTC (permalink / raw)
To: ffmpeg-devel
They are either too recent, or are not trivial to remove.
Signed-off-by: James Almer <jamrial@gmail.com>
---
libavformat/version_major.h | 10 +++++-----
1 file changed, 5 insertions(+), 5 deletions(-)
diff --git a/libavformat/version_major.h b/libavformat/version_major.h
index 2c8ab84112..d87f91ea6d 100644
--- a/libavformat/version_major.h
+++ b/libavformat/version_major.h
@@ -41,11 +41,11 @@
* at once through the bump. This improves the git bisect-ability of the change.
*
*/
-#define FF_API_COMPUTE_PKT_FIELDS2 (LIBAVFORMAT_VERSION_MAJOR < 61)
-#define FF_API_AVIO_WRITE_NONCONST (LIBAVFORMAT_VERSION_MAJOR < 61)
-#define FF_API_LAVF_SHORTEST (LIBAVFORMAT_VERSION_MAJOR < 61)
-#define FF_API_ALLOW_FLUSH (LIBAVFORMAT_VERSION_MAJOR < 61)
-#define FF_API_AVSTREAM_SIDE_DATA (LIBAVFORMAT_VERSION_MAJOR < 61)
+#define FF_API_COMPUTE_PKT_FIELDS2 (LIBAVFORMAT_VERSION_MAJOR < 62)
+#define FF_API_AVIO_WRITE_NONCONST (LIBAVFORMAT_VERSION_MAJOR < 62)
+#define FF_API_LAVF_SHORTEST (LIBAVFORMAT_VERSION_MAJOR < 62)
+#define FF_API_ALLOW_FLUSH (LIBAVFORMAT_VERSION_MAJOR < 62)
+#define FF_API_AVSTREAM_SIDE_DATA (LIBAVFORMAT_VERSION_MAJOR < 62)
#define FF_API_R_FRAME_RATE 1
--
2.43.0
_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
To unsubscribe, visit link above, or email
ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".
^ permalink raw reply [flat|nested] 60+ messages in thread
* [FFmpeg-devel] [PATCH 23/24] avutil/version_major: postpone some deprecations until the next bump
2024-01-25 13:43 [FFmpeg-devel] [PATCH 00/24] Major library version bump James Almer
` (21 preceding siblings ...)
2024-01-25 13:43 ` [FFmpeg-devel] [PATCH 22/24] avformat/version_major: " James Almer
@ 2024-01-25 13:43 ` James Almer
2024-01-25 13:43 ` [FFmpeg-devel] [PATCH 24/24] libs: bump major version for all libraries James Almer
` (18 subsequent siblings)
41 siblings, 0 replies; 60+ messages in thread
From: James Almer @ 2024-01-25 13:43 UTC (permalink / raw)
To: ffmpeg-devel
They are too recent.
Signed-off-by: James Almer <jamrial@gmail.com>
---
libavutil/version.h | 12 ++++++------
1 file changed, 6 insertions(+), 6 deletions(-)
diff --git a/libavutil/version.h b/libavutil/version.h
index a7df8473e1..2cbee6a67a 100644
--- a/libavutil/version.h
+++ b/libavutil/version.h
@@ -105,12 +105,12 @@
* @{
*/
-#define FF_API_HDR_VIVID_THREE_SPLINE (LIBAVUTIL_VERSION_MAJOR < 59)
-#define FF_API_FRAME_PKT (LIBAVUTIL_VERSION_MAJOR < 59)
-#define FF_API_INTERLACED_FRAME (LIBAVUTIL_VERSION_MAJOR < 59)
-#define FF_API_FRAME_KEY (LIBAVUTIL_VERSION_MAJOR < 59)
-#define FF_API_PALETTE_HAS_CHANGED (LIBAVUTIL_VERSION_MAJOR < 59)
-#define FF_API_VULKAN_CONTIGUOUS_MEMORY (LIBAVUTIL_VERSION_MAJOR < 59)
+#define FF_API_HDR_VIVID_THREE_SPLINE (LIBAVUTIL_VERSION_MAJOR < 60)
+#define FF_API_FRAME_PKT (LIBAVUTIL_VERSION_MAJOR < 60)
+#define FF_API_INTERLACED_FRAME (LIBAVUTIL_VERSION_MAJOR < 60)
+#define FF_API_FRAME_KEY (LIBAVUTIL_VERSION_MAJOR < 60)
+#define FF_API_PALETTE_HAS_CHANGED (LIBAVUTIL_VERSION_MAJOR < 60)
+#define FF_API_VULKAN_CONTIGUOUS_MEMORY (LIBAVUTIL_VERSION_MAJOR < 60)
/**
* @}
--
2.43.0
_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
To unsubscribe, visit link above, or email
ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".
^ permalink raw reply [flat|nested] 60+ messages in thread
* [FFmpeg-devel] [PATCH 24/24] libs: bump major version for all libraries
2024-01-25 13:43 [FFmpeg-devel] [PATCH 00/24] Major library version bump James Almer
` (22 preceding siblings ...)
2024-01-25 13:43 ` [FFmpeg-devel] [PATCH 23/24] avutil/version_major: " James Almer
@ 2024-01-25 13:43 ` James Almer
2024-01-26 16:44 ` Vittorio Giovara
2024-01-26 18:18 ` Michael Niedermayer
2024-01-25 16:23 ` [FFmpeg-devel] [PATCH 00/24] Major library version bump James Almer
` (17 subsequent siblings)
41 siblings, 2 replies; 60+ messages in thread
From: James Almer @ 2024-01-25 13:43 UTC (permalink / raw)
To: ffmpeg-devel
Signed-off-by: James Almer <jamrial@gmail.com>
---
doc/APIchanges | 2 +-
libavcodec/version.h | 2 +-
libavcodec/version_major.h | 2 +-
libavdevice/version.h | 2 +-
libavdevice/version_major.h | 2 +-
libavfilter/version.h | 2 +-
libavfilter/version_major.h | 2 +-
libavformat/version.h | 2 +-
libavformat/version_major.h | 2 +-
libavutil/version.h | 6 +++---
libpostproc/version.h | 2 +-
libpostproc/version_major.h | 2 +-
libswresample/version.h | 2 +-
libswresample/version_major.h | 2 +-
libswscale/version.h | 2 +-
libswscale/version_major.h | 2 +-
16 files changed, 18 insertions(+), 18 deletions(-)
diff --git a/doc/APIchanges b/doc/APIchanges
index e477ed78e0..60711379a1 100644
--- a/doc/APIchanges
+++ b/doc/APIchanges
@@ -1,4 +1,4 @@
-The last version increases of all libraries were on 2023-02-09
+The last version increases of all libraries were on 2024-01-xx
API changes, most recent first:
diff --git a/libavcodec/version.h b/libavcodec/version.h
index 0fae3d06d3..8c3d476003 100644
--- a/libavcodec/version.h
+++ b/libavcodec/version.h
@@ -29,7 +29,7 @@
#include "version_major.h"
-#define LIBAVCODEC_VERSION_MINOR 38
+#define LIBAVCODEC_VERSION_MINOR 0
#define LIBAVCODEC_VERSION_MICRO 100
#define LIBAVCODEC_VERSION_INT AV_VERSION_INT(LIBAVCODEC_VERSION_MAJOR, \
diff --git a/libavcodec/version_major.h b/libavcodec/version_major.h
index 065b0c1378..15f1729d76 100644
--- a/libavcodec/version_major.h
+++ b/libavcodec/version_major.h
@@ -25,7 +25,7 @@
* Libavcodec version macros.
*/
-#define LIBAVCODEC_VERSION_MAJOR 60
+#define LIBAVCODEC_VERSION_MAJOR 61
/**
* FF_API_* defines may be placed below to indicate public API that will be
diff --git a/libavdevice/version.h b/libavdevice/version.h
index 0e4ce64598..25befdead1 100644
--- a/libavdevice/version.h
+++ b/libavdevice/version.h
@@ -29,7 +29,7 @@
#include "version_major.h"
-#define LIBAVDEVICE_VERSION_MINOR 4
+#define LIBAVDEVICE_VERSION_MINOR 0
#define LIBAVDEVICE_VERSION_MICRO 100
#define LIBAVDEVICE_VERSION_INT AV_VERSION_INT(LIBAVDEVICE_VERSION_MAJOR, \
diff --git a/libavdevice/version_major.h b/libavdevice/version_major.h
index b884fd4224..3745fe8582 100644
--- a/libavdevice/version_major.h
+++ b/libavdevice/version_major.h
@@ -25,7 +25,7 @@
* Libavdevice version macros
*/
-#define LIBAVDEVICE_VERSION_MAJOR 60
+#define LIBAVDEVICE_VERSION_MAJOR 61
/**
* FF_API_* defines may be placed below to indicate public API that will be
diff --git a/libavfilter/version.h b/libavfilter/version.h
index 12fc6c853d..d5a6bc143a 100644
--- a/libavfilter/version.h
+++ b/libavfilter/version.h
@@ -31,7 +31,7 @@
#include "version_major.h"
-#define LIBAVFILTER_VERSION_MINOR 17
+#define LIBAVFILTER_VERSION_MINOR 0
#define LIBAVFILTER_VERSION_MICRO 100
diff --git a/libavfilter/version_major.h b/libavfilter/version_major.h
index 899dfdb27d..c8b94713dc 100644
--- a/libavfilter/version_major.h
+++ b/libavfilter/version_major.h
@@ -27,7 +27,7 @@
* Libavfilter version macros
*/
-#define LIBAVFILTER_VERSION_MAJOR 9
+#define LIBAVFILTER_VERSION_MAJOR 10
/**
* FF_API_* defines may be placed below to indicate public API that will be
diff --git a/libavformat/version.h b/libavformat/version.h
index de9cc8e31d..752aac16f7 100644
--- a/libavformat/version.h
+++ b/libavformat/version.h
@@ -31,7 +31,7 @@
#include "version_major.h"
-#define LIBAVFORMAT_VERSION_MINOR 20
+#define LIBAVFORMAT_VERSION_MINOR 0
#define LIBAVFORMAT_VERSION_MICRO 100
#define LIBAVFORMAT_VERSION_INT AV_VERSION_INT(LIBAVFORMAT_VERSION_MAJOR, \
diff --git a/libavformat/version_major.h b/libavformat/version_major.h
index d87f91ea6d..933f4b28a6 100644
--- a/libavformat/version_major.h
+++ b/libavformat/version_major.h
@@ -29,7 +29,7 @@
// Major bumping may affect Ticket5467, 5421, 5451(compatibility with Chromium)
// Also please add any ticket numbers that you believe might be affected here
-#define LIBAVFORMAT_VERSION_MAJOR 60
+#define LIBAVFORMAT_VERSION_MAJOR 61
/**
* FF_API_* defines may be placed below to indicate public API that will be
diff --git a/libavutil/version.h b/libavutil/version.h
index 2cbee6a67a..1b50d6f5a0 100644
--- a/libavutil/version.h
+++ b/libavutil/version.h
@@ -78,9 +78,9 @@
* @{
*/
-#define LIBAVUTIL_VERSION_MAJOR 58
-#define LIBAVUTIL_VERSION_MINOR 36
-#define LIBAVUTIL_VERSION_MICRO 101
+#define LIBAVUTIL_VERSION_MAJOR 59
+#define LIBAVUTIL_VERSION_MINOR 0
+#define LIBAVUTIL_VERSION_MICRO 100
#define LIBAVUTIL_VERSION_INT AV_VERSION_INT(LIBAVUTIL_VERSION_MAJOR, \
LIBAVUTIL_VERSION_MINOR, \
diff --git a/libpostproc/version.h b/libpostproc/version.h
index 4459d251d4..bcbdd210c4 100644
--- a/libpostproc/version.h
+++ b/libpostproc/version.h
@@ -30,7 +30,7 @@
#include "version_major.h"
-#define LIBPOSTPROC_VERSION_MINOR 4
+#define LIBPOSTPROC_VERSION_MINOR 0
#define LIBPOSTPROC_VERSION_MICRO 100
#define LIBPOSTPROC_VERSION_INT AV_VERSION_INT(LIBPOSTPROC_VERSION_MAJOR, \
diff --git a/libpostproc/version_major.h b/libpostproc/version_major.h
index 771e17a9e7..8136ee918c 100644
--- a/libpostproc/version_major.h
+++ b/libpostproc/version_major.h
@@ -26,6 +26,6 @@
* Libpostproc version macros
*/
-#define LIBPOSTPROC_VERSION_MAJOR 57
+#define LIBPOSTPROC_VERSION_MAJOR 58
#endif /* POSTPROC_VERSION_MAJOR_H */
diff --git a/libswresample/version.h b/libswresample/version.h
index 46a4e2fc62..703023094e 100644
--- a/libswresample/version.h
+++ b/libswresample/version.h
@@ -30,7 +30,7 @@
#include "version_major.h"
-#define LIBSWRESAMPLE_VERSION_MINOR 13
+#define LIBSWRESAMPLE_VERSION_MINOR 0
#define LIBSWRESAMPLE_VERSION_MICRO 100
#define LIBSWRESAMPLE_VERSION_INT AV_VERSION_INT(LIBSWRESAMPLE_VERSION_MAJOR, \
diff --git a/libswresample/version_major.h b/libswresample/version_major.h
index 7f265c2073..dd13f2bbe3 100644
--- a/libswresample/version_major.h
+++ b/libswresample/version_major.h
@@ -26,6 +26,6 @@
* Libswresample version macros
*/
-#define LIBSWRESAMPLE_VERSION_MAJOR 4
+#define LIBSWRESAMPLE_VERSION_MAJOR 5
#endif /* SWRESAMPLE_VERSION_MAJOR_H */
diff --git a/libswscale/version.h b/libswscale/version.h
index f573bef6fc..148efd83eb 100644
--- a/libswscale/version.h
+++ b/libswscale/version.h
@@ -28,7 +28,7 @@
#include "version_major.h"
-#define LIBSWSCALE_VERSION_MINOR 6
+#define LIBSWSCALE_VERSION_MINOR 0
#define LIBSWSCALE_VERSION_MICRO 100
#define LIBSWSCALE_VERSION_INT AV_VERSION_INT(LIBSWSCALE_VERSION_MAJOR, \
diff --git a/libswscale/version_major.h b/libswscale/version_major.h
index 88577a2b42..fd259f959d 100644
--- a/libswscale/version_major.h
+++ b/libswscale/version_major.h
@@ -24,7 +24,7 @@
* swscale version macros
*/
-#define LIBSWSCALE_VERSION_MAJOR 7
+#define LIBSWSCALE_VERSION_MAJOR 8
/**
* FF_API_* defines may be placed below to indicate public API that will be
--
2.43.0
_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
To unsubscribe, visit link above, or email
ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".
^ permalink raw reply [flat|nested] 60+ messages in thread
* Re: [FFmpeg-devel] [PATCH 08/24] avcodec: remove deprecated FF_CODEC_CRYSTAL_HD
2024-01-25 13:43 ` [FFmpeg-devel] [PATCH 08/24] avcodec: remove deprecated FF_CODEC_CRYSTAL_HD James Almer
@ 2024-01-25 14:12 ` Andreas Rheinhardt
2024-01-25 14:23 ` James Almer
0 siblings, 1 reply; 60+ messages in thread
From: Andreas Rheinhardt @ 2024-01-25 14:12 UTC (permalink / raw)
To: ffmpeg-devel
James Almer:
> Signed-off-by: James Almer <jamrial@gmail.com>
> ---
> configure | 13 -
> libavcodec/Makefile | 1 -
> libavcodec/allcodecs.c | 6 -
> libavcodec/avcodec.h | 18 -
> libavcodec/crystalhd.c | 826 -------------------------------------
> libavcodec/options_table.h | 3 -
> libavcodec/version_major.h | 4 -
> 7 files changed, 871 deletions(-)
> delete mode 100644 libavcodec/crystalhd.c
> diff --git a/libavcodec/avcodec.h b/libavcodec/avcodec.h
> index 3c2b0159a9..2306c0f7bf 100644
> --- a/libavcodec/avcodec.h
> +++ b/libavcodec/avcodec.h
> @@ -794,24 +794,6 @@ typedef struct AVCodecContext {
> */
> float dark_masking;
>
> -#if FF_API_SLICE_OFFSET
> - /**
> - * slice count
> - * - encoding: Set by libavcodec.
> - * - decoding: Set by user (or 0).
> - */
> - attribute_deprecated
> - int slice_count;
> -
> - /**
> - * slice offsets in the frame in bytes
> - * - encoding: Set/allocated by libavcodec.
> - * - decoding: Set/allocated by user (or NULL).
> - */
> - attribute_deprecated
> - int *slice_offset;
> -#endif
> -
The removal of FF_API_SLICE_OFFSET should be in its own commit.
> /**
> * sample aspect ratio (0 if unknown)
> * That is the width of a pixel divided by the height of the pixel.
> diff --git a/libavcodec/version_major.h b/libavcodec/version_major.h
> index 7e8f5bace3..d849d55cb2 100644
> --- a/libavcodec/version_major.h
> +++ b/libavcodec/version_major.h
> @@ -38,7 +38,6 @@
> */
>
> #define FF_API_INIT_PACKET (LIBAVCODEC_VERSION_MAJOR < 61)
> -#define FF_API_SLICE_OFFSET (LIBAVCODEC_VERSION_MAJOR < 61)
> #define FF_API_SUBFRAMES (LIBAVCODEC_VERSION_MAJOR < 61)
> #define FF_API_TICKS_PER_FRAME (LIBAVCODEC_VERSION_MAJOR < 61)
> #define FF_API_DROPCHANGED (LIBAVCODEC_VERSION_MAJOR < 61)
> @@ -46,7 +45,4 @@
> #define FF_API_AVFFT (LIBAVCODEC_VERSION_MAJOR < 62)
> #define FF_API_FF_PROFILE_LEVEL (LIBAVCODEC_VERSION_MAJOR < 62)
>
> -// reminder to remove CrystalHD decoders on next major bump
> -#define FF_CODEC_CRYSTAL_HD (LIBAVCODEC_VERSION_MAJOR < 61)
> -
> #endif /* AVCODEC_VERSION_MAJOR_H */
_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
To unsubscribe, visit link above, or email
ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".
^ permalink raw reply [flat|nested] 60+ messages in thread
* Re: [FFmpeg-devel] [PATCH 08/24] avcodec: remove deprecated FF_CODEC_CRYSTAL_HD
2024-01-25 14:12 ` Andreas Rheinhardt
@ 2024-01-25 14:23 ` James Almer
0 siblings, 0 replies; 60+ messages in thread
From: James Almer @ 2024-01-25 14:23 UTC (permalink / raw)
To: ffmpeg-devel
On 1/25/2024 11:12 AM, Andreas Rheinhardt wrote:
> James Almer:
>> Signed-off-by: James Almer <jamrial@gmail.com>
>> ---
>> configure | 13 -
>> libavcodec/Makefile | 1 -
>> libavcodec/allcodecs.c | 6 -
>> libavcodec/avcodec.h | 18 -
>> libavcodec/crystalhd.c | 826 -------------------------------------
>> libavcodec/options_table.h | 3 -
>> libavcodec/version_major.h | 4 -
>> 7 files changed, 871 deletions(-)
>> delete mode 100644 libavcodec/crystalhd.c
>
>> diff --git a/libavcodec/avcodec.h b/libavcodec/avcodec.h
>> index 3c2b0159a9..2306c0f7bf 100644
>> --- a/libavcodec/avcodec.h
>> +++ b/libavcodec/avcodec.h
>> @@ -794,24 +794,6 @@ typedef struct AVCodecContext {
>> */
>> float dark_masking;
>>
>> -#if FF_API_SLICE_OFFSET
>> - /**
>> - * slice count
>> - * - encoding: Set by libavcodec.
>> - * - decoding: Set by user (or 0).
>> - */
>> - attribute_deprecated
>> - int slice_count;
>> -
>> - /**
>> - * slice offsets in the frame in bytes
>> - * - encoding: Set/allocated by libavcodec.
>> - * - decoding: Set/allocated by user (or NULL).
>> - */
>> - attribute_deprecated
>> - int *slice_offset;
>> -#endif
>> -
>
> The removal of FF_API_SLICE_OFFSET should be in its own commit.
Yeah, it's obviously a mistake i made, probably during a rebase.
Will fix, thanks.
_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
To unsubscribe, visit link above, or email
ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".
^ permalink raw reply [flat|nested] 60+ messages in thread
* Re: [FFmpeg-devel] [PATCH 22/24] avformat/version_major: postpone some deprecations until the next bump
2024-01-25 13:43 ` [FFmpeg-devel] [PATCH 22/24] avformat/version_major: " James Almer
@ 2024-01-25 14:34 ` Andreas Rheinhardt
2024-01-25 14:35 ` James Almer
0 siblings, 1 reply; 60+ messages in thread
From: Andreas Rheinhardt @ 2024-01-25 14:34 UTC (permalink / raw)
To: ffmpeg-devel
James Almer:
> They are either too recent, or are not trivial to remove.
>
> Signed-off-by: James Almer <jamrial@gmail.com>
> ---
> libavformat/version_major.h | 10 +++++-----
> 1 file changed, 5 insertions(+), 5 deletions(-)
>
> diff --git a/libavformat/version_major.h b/libavformat/version_major.h
> index 2c8ab84112..d87f91ea6d 100644
> --- a/libavformat/version_major.h
> +++ b/libavformat/version_major.h
> @@ -41,11 +41,11 @@
> * at once through the bump. This improves the git bisect-ability of the change.
> *
> */
> -#define FF_API_COMPUTE_PKT_FIELDS2 (LIBAVFORMAT_VERSION_MAJOR < 61)
> -#define FF_API_AVIO_WRITE_NONCONST (LIBAVFORMAT_VERSION_MAJOR < 61)
> -#define FF_API_LAVF_SHORTEST (LIBAVFORMAT_VERSION_MAJOR < 61)
> -#define FF_API_ALLOW_FLUSH (LIBAVFORMAT_VERSION_MAJOR < 61)
> -#define FF_API_AVSTREAM_SIDE_DATA (LIBAVFORMAT_VERSION_MAJOR < 61)
> +#define FF_API_COMPUTE_PKT_FIELDS2 (LIBAVFORMAT_VERSION_MAJOR < 62)
> +#define FF_API_AVIO_WRITE_NONCONST (LIBAVFORMAT_VERSION_MAJOR < 62)
> +#define FF_API_LAVF_SHORTEST (LIBAVFORMAT_VERSION_MAJOR < 62)
> +#define FF_API_ALLOW_FLUSH (LIBAVFORMAT_VERSION_MAJOR < 62)
> +#define FF_API_AVSTREAM_SIDE_DATA (LIBAVFORMAT_VERSION_MAJOR < 62)
>
>
> #define FF_API_R_FRAME_RATE 1
I disagree about FF_API_AVIO_WRITE_NONCONST: It is a simple
constification so that all changes required by our users are
no-brainers; and postponing the inevitable won't make the changes any
simpler.
More importantly, 2a68d94 actually announced that the change would
happen at the next major bump, i.e. users who wanted to be
forward-compatible were allowed to check for LIBAVFORMAT_VERSION_MAJOR < 61.
- Andreas
_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
To unsubscribe, visit link above, or email
ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".
^ permalink raw reply [flat|nested] 60+ messages in thread
* Re: [FFmpeg-devel] [PATCH 22/24] avformat/version_major: postpone some deprecations until the next bump
2024-01-25 14:34 ` Andreas Rheinhardt
@ 2024-01-25 14:35 ` James Almer
0 siblings, 0 replies; 60+ messages in thread
From: James Almer @ 2024-01-25 14:35 UTC (permalink / raw)
To: ffmpeg-devel
On 1/25/2024 11:34 AM, Andreas Rheinhardt wrote:
> James Almer:
>> They are either too recent, or are not trivial to remove.
>>
>> Signed-off-by: James Almer <jamrial@gmail.com>
>> ---
>> libavformat/version_major.h | 10 +++++-----
>> 1 file changed, 5 insertions(+), 5 deletions(-)
>>
>> diff --git a/libavformat/version_major.h b/libavformat/version_major.h
>> index 2c8ab84112..d87f91ea6d 100644
>> --- a/libavformat/version_major.h
>> +++ b/libavformat/version_major.h
>> @@ -41,11 +41,11 @@
>> * at once through the bump. This improves the git bisect-ability of the change.
>> *
>> */
>> -#define FF_API_COMPUTE_PKT_FIELDS2 (LIBAVFORMAT_VERSION_MAJOR < 61)
>> -#define FF_API_AVIO_WRITE_NONCONST (LIBAVFORMAT_VERSION_MAJOR < 61)
>> -#define FF_API_LAVF_SHORTEST (LIBAVFORMAT_VERSION_MAJOR < 61)
>> -#define FF_API_ALLOW_FLUSH (LIBAVFORMAT_VERSION_MAJOR < 61)
>> -#define FF_API_AVSTREAM_SIDE_DATA (LIBAVFORMAT_VERSION_MAJOR < 61)
>> +#define FF_API_COMPUTE_PKT_FIELDS2 (LIBAVFORMAT_VERSION_MAJOR < 62)
>> +#define FF_API_AVIO_WRITE_NONCONST (LIBAVFORMAT_VERSION_MAJOR < 62)
>> +#define FF_API_LAVF_SHORTEST (LIBAVFORMAT_VERSION_MAJOR < 62)
>> +#define FF_API_ALLOW_FLUSH (LIBAVFORMAT_VERSION_MAJOR < 62)
>> +#define FF_API_AVSTREAM_SIDE_DATA (LIBAVFORMAT_VERSION_MAJOR < 62)
>>
>>
>> #define FF_API_R_FRAME_RATE 1
>
> I disagree about FF_API_AVIO_WRITE_NONCONST: It is a simple
> constification so that all changes required by our users are
> no-brainers; and postponing the inevitable won't make the changes any
> simpler.
> More importantly, 2a68d94 actually announced that the change would
> happen at the next major bump, i.e. users who wanted to be
> forward-compatible were allowed to check for LIBAVFORMAT_VERSION_MAJOR < 61.
I was not aware of that, thanks. I simply followed the date of deprecation.
_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
To unsubscribe, visit link above, or email
ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".
^ permalink raw reply [flat|nested] 60+ messages in thread
* Re: [FFmpeg-devel] [PATCH 00/24] Major library version bump
2024-01-25 13:43 [FFmpeg-devel] [PATCH 00/24] Major library version bump James Almer
` (23 preceding siblings ...)
2024-01-25 13:43 ` [FFmpeg-devel] [PATCH 24/24] libs: bump major version for all libraries James Almer
@ 2024-01-25 16:23 ` James Almer
2024-02-07 13:11 ` James Almer
2024-01-28 12:31 ` Anton Khirnov
` (16 subsequent siblings)
41 siblings, 1 reply; 60+ messages in thread
From: James Almer @ 2024-01-25 16:23 UTC (permalink / raw)
To: ffmpeg-devel
On 1/25/2024 10:43 AM, James Almer wrote:
> After this is committed, it will be open ABI season for a few weeks, but no
> longer than a month. So if you want to do some cleaning (like removing avpriv_
> functions, or moving field offsets from public strucs around), now is the time.
I was reminded that we got rid of this period, so if anyone has ABI
breaking changes they want committed, please send a patch now, so it can
be applied immediately before the bump.
_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
To unsubscribe, visit link above, or email
ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".
^ permalink raw reply [flat|nested] 60+ messages in thread
* Re: [FFmpeg-devel] [PATCH 24/24] libs: bump major version for all libraries
2024-01-25 13:43 ` [FFmpeg-devel] [PATCH 24/24] libs: bump major version for all libraries James Almer
@ 2024-01-26 16:44 ` Vittorio Giovara
2024-01-26 16:48 ` James Almer
2024-01-26 18:18 ` Michael Niedermayer
1 sibling, 1 reply; 60+ messages in thread
From: Vittorio Giovara @ 2024-01-26 16:44 UTC (permalink / raw)
To: FFmpeg development discussions and patches
On Thu, Jan 25, 2024 at 2:48 PM James Almer <jamrial@gmail.com> wrote:
> Signed-off-by: James Almer <jamrial@gmail.com>
> ---
> doc/APIchanges | 2 +-
> libavcodec/version.h | 2 +-
> libavcodec/version_major.h | 2 +-
> libavdevice/version.h | 2 +-
> libavdevice/version_major.h | 2 +-
> libavfilter/version.h | 2 +-
> libavfilter/version_major.h | 2 +-
> libavformat/version.h | 2 +-
> libavformat/version_major.h | 2 +-
> libavutil/version.h | 6 +++---
> libpostproc/version.h | 2 +-
> libpostproc/version_major.h | 2 +-
> libswresample/version.h | 2 +-
> libswresample/version_major.h | 2 +-
> libswscale/version.h | 2 +-
> libswscale/version_major.h | 2 +-
> 16 files changed, 18 insertions(+), 18 deletions(-)
>
> diff --git a/doc/APIchanges b/doc/APIchanges
> index e477ed78e0..60711379a1 100644
> --- a/doc/APIchanges
> +++ b/doc/APIchanges
> @@ -1,4 +1,4 @@
> -The last version increases of all libraries were on 2023-02-09
> +The last version increases of all libraries were on 2024-01-xx
>
> API changes, most recent first:
>
> diff --git a/libavcodec/version.h b/libavcodec/version.h
> index 0fae3d06d3..8c3d476003 100644
> --- a/libavcodec/version.h
> +++ b/libavcodec/version.h
> @@ -29,7 +29,7 @@
>
> #include "version_major.h"
>
> -#define LIBAVCODEC_VERSION_MINOR 38
> +#define LIBAVCODEC_VERSION_MINOR 0
> #define LIBAVCODEC_VERSION_MICRO 100
should we use this bump opportunity to reset MICRO to 0 too?
--
Vittorio
_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
To unsubscribe, visit link above, or email
ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".
^ permalink raw reply [flat|nested] 60+ messages in thread
* Re: [FFmpeg-devel] [PATCH 24/24] libs: bump major version for all libraries
2024-01-26 16:44 ` Vittorio Giovara
@ 2024-01-26 16:48 ` James Almer
2024-01-26 16:52 ` Martin Storsjö
0 siblings, 1 reply; 60+ messages in thread
From: James Almer @ 2024-01-26 16:48 UTC (permalink / raw)
To: ffmpeg-devel
On 1/26/2024 1:44 PM, Vittorio Giovara wrote:
> On Thu, Jan 25, 2024 at 2:48 PM James Almer <jamrial@gmail.com> wrote:
>
>> Signed-off-by: James Almer <jamrial@gmail.com>
>> ---
>> doc/APIchanges | 2 +-
>> libavcodec/version.h | 2 +-
>> libavcodec/version_major.h | 2 +-
>> libavdevice/version.h | 2 +-
>> libavdevice/version_major.h | 2 +-
>> libavfilter/version.h | 2 +-
>> libavfilter/version_major.h | 2 +-
>> libavformat/version.h | 2 +-
>> libavformat/version_major.h | 2 +-
>> libavutil/version.h | 6 +++---
>> libpostproc/version.h | 2 +-
>> libpostproc/version_major.h | 2 +-
>> libswresample/version.h | 2 +-
>> libswresample/version_major.h | 2 +-
>> libswscale/version.h | 2 +-
>> libswscale/version_major.h | 2 +-
>> 16 files changed, 18 insertions(+), 18 deletions(-)
>>
>> diff --git a/doc/APIchanges b/doc/APIchanges
>> index e477ed78e0..60711379a1 100644
>> --- a/doc/APIchanges
>> +++ b/doc/APIchanges
>> @@ -1,4 +1,4 @@
>> -The last version increases of all libraries were on 2023-02-09
>> +The last version increases of all libraries were on 2024-01-xx
>>
>> API changes, most recent first:
>>
>> diff --git a/libavcodec/version.h b/libavcodec/version.h
>> index 0fae3d06d3..8c3d476003 100644
>> --- a/libavcodec/version.h
>> +++ b/libavcodec/version.h
>> @@ -29,7 +29,7 @@
>>
>> #include "version_major.h"
>>
>> -#define LIBAVCODEC_VERSION_MINOR 38
>> +#define LIBAVCODEC_VERSION_MINOR 0
>> #define LIBAVCODEC_VERSION_MICRO 100
>
>
> should we use this bump opportunity to reset MICRO to 0 too?
It's an option. I don't recall if we decided anything about it last bump
or during a meeting. And i don't know how much code out there still
bothers to check for it to distinguish projects. But i guess that after
so many bumps, any existing library user has long since stopped looking
at it.
_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
To unsubscribe, visit link above, or email
ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".
^ permalink raw reply [flat|nested] 60+ messages in thread
* Re: [FFmpeg-devel] [PATCH 24/24] libs: bump major version for all libraries
2024-01-26 16:48 ` James Almer
@ 2024-01-26 16:52 ` Martin Storsjö
2024-01-26 17:02 ` James Almer
0 siblings, 1 reply; 60+ messages in thread
From: Martin Storsjö @ 2024-01-26 16:52 UTC (permalink / raw)
To: FFmpeg development discussions and patches
On Fri, 26 Jan 2024, James Almer wrote:
> On 1/26/2024 1:44 PM, Vittorio Giovara wrote:
>> On Thu, Jan 25, 2024 at 2:48 PM James Almer <jamrial@gmail.com> wrote:
>>
>>> Signed-off-by: James Almer <jamrial@gmail.com>
>>> ---
>>> doc/APIchanges | 2 +-
>>> libavcodec/version.h | 2 +-
>>> libavcodec/version_major.h | 2 +-
>>> libavdevice/version.h | 2 +-
>>> libavdevice/version_major.h | 2 +-
>>> libavfilter/version.h | 2 +-
>>> libavfilter/version_major.h | 2 +-
>>> libavformat/version.h | 2 +-
>>> libavformat/version_major.h | 2 +-
>>> libavutil/version.h | 6 +++---
>>> libpostproc/version.h | 2 +-
>>> libpostproc/version_major.h | 2 +-
>>> libswresample/version.h | 2 +-
>>> libswresample/version_major.h | 2 +-
>>> libswscale/version.h | 2 +-
>>> libswscale/version_major.h | 2 +-
>>> 16 files changed, 18 insertions(+), 18 deletions(-)
>>>
>>> diff --git a/doc/APIchanges b/doc/APIchanges
>>> index e477ed78e0..60711379a1 100644
>>> --- a/doc/APIchanges
>>> +++ b/doc/APIchanges
>>> @@ -1,4 +1,4 @@
>>> -The last version increases of all libraries were on 2023-02-09
>>> +The last version increases of all libraries were on 2024-01-xx
>>>
>>> API changes, most recent first:
>>>
>>> diff --git a/libavcodec/version.h b/libavcodec/version.h
>>> index 0fae3d06d3..8c3d476003 100644
>>> --- a/libavcodec/version.h
>>> +++ b/libavcodec/version.h
>>> @@ -29,7 +29,7 @@
>>>
>>> #include "version_major.h"
>>>
>>> -#define LIBAVCODEC_VERSION_MINOR 38
>>> +#define LIBAVCODEC_VERSION_MINOR 0
>>> #define LIBAVCODEC_VERSION_MICRO 100
>>
>>
>> should we use this bump opportunity to reset MICRO to 0 too?
>
> It's an option. I don't recall if we decided anything about it last bump
> or during a meeting. And i don't know how much code out there still
> bothers to check for it to distinguish projects. But i guess that after
> so many bumps, any existing library user has long since stopped looking
> at it.
VLC 3 (which still is the latest stable version) still has got such checks
around. VLC git master also still does have some checks, but only for
deciding which "AVPROVIDER" to print in log messages, no function
differences.
// Martin
_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
To unsubscribe, visit link above, or email
ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".
^ permalink raw reply [flat|nested] 60+ messages in thread
* Re: [FFmpeg-devel] [PATCH 24/24] libs: bump major version for all libraries
2024-01-26 16:52 ` Martin Storsjö
@ 2024-01-26 17:02 ` James Almer
2024-01-26 17:09 ` Martin Storsjö
0 siblings, 1 reply; 60+ messages in thread
From: James Almer @ 2024-01-26 17:02 UTC (permalink / raw)
To: ffmpeg-devel
On 1/26/2024 1:52 PM, Martin Storsjö wrote:
> On Fri, 26 Jan 2024, James Almer wrote:
>
>> On 1/26/2024 1:44 PM, Vittorio Giovara wrote:
>>> On Thu, Jan 25, 2024 at 2:48 PM James Almer <jamrial@gmail.com> wrote:
>>>
>>>> Signed-off-by: James Almer <jamrial@gmail.com>
>>>> ---
>>>> doc/APIchanges | 2 +-
>>>> libavcodec/version.h | 2 +-
>>>> libavcodec/version_major.h | 2 +-
>>>> libavdevice/version.h | 2 +-
>>>> libavdevice/version_major.h | 2 +-
>>>> libavfilter/version.h | 2 +-
>>>> libavfilter/version_major.h | 2 +-
>>>> libavformat/version.h | 2 +-
>>>> libavformat/version_major.h | 2 +-
>>>> libavutil/version.h | 6 +++---
>>>> libpostproc/version.h | 2 +-
>>>> libpostproc/version_major.h | 2 +-
>>>> libswresample/version.h | 2 +-
>>>> libswresample/version_major.h | 2 +-
>>>> libswscale/version.h | 2 +-
>>>> libswscale/version_major.h | 2 +-
>>>> 16 files changed, 18 insertions(+), 18 deletions(-)
>>>>
>>>> diff --git a/doc/APIchanges b/doc/APIchanges
>>>> index e477ed78e0..60711379a1 100644
>>>> --- a/doc/APIchanges
>>>> +++ b/doc/APIchanges
>>>> @@ -1,4 +1,4 @@
>>>> -The last version increases of all libraries were on 2023-02-09
>>>> +The last version increases of all libraries were on 2024-01-xx
>>>>
>>>> API changes, most recent first:
>>>>
>>>> diff --git a/libavcodec/version.h b/libavcodec/version.h
>>>> index 0fae3d06d3..8c3d476003 100644
>>>> --- a/libavcodec/version.h
>>>> +++ b/libavcodec/version.h
>>>> @@ -29,7 +29,7 @@
>>>>
>>>> #include "version_major.h"
>>>>
>>>> -#define LIBAVCODEC_VERSION_MINOR 38
>>>> +#define LIBAVCODEC_VERSION_MINOR 0
>>>> #define LIBAVCODEC_VERSION_MICRO 100
>>>
>>>
>>> should we use this bump opportunity to reset MICRO to 0 too?
>>
>> It's an option. I don't recall if we decided anything about it last
>> bump or during a meeting. And i don't know how much code out there
>> still bothers to check for it to distinguish projects. But i guess
>> that after so many bumps, any existing library user has long since
>> stopped looking at it.
>
> VLC 3 (which still is the latest stable version) still has got such
> checks around. VLC git master also still does have some checks, but only
> for deciding which "AVPROVIDER" to print in log messages, no function
> differences.
VLC 3 surely wont compile and link with current ffmpeg, right? Or did
they port it to the decoupled input/output decoder and encoder API, and
even the new channel layout API?
_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
To unsubscribe, visit link above, or email
ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".
^ permalink raw reply [flat|nested] 60+ messages in thread
* Re: [FFmpeg-devel] [PATCH 24/24] libs: bump major version for all libraries
2024-01-26 17:02 ` James Almer
@ 2024-01-26 17:09 ` Martin Storsjö
0 siblings, 0 replies; 60+ messages in thread
From: Martin Storsjö @ 2024-01-26 17:09 UTC (permalink / raw)
To: FFmpeg development discussions and patches
On Fri, 26 Jan 2024, James Almer wrote:
> On 1/26/2024 1:52 PM, Martin Storsjö wrote:
>> On Fri, 26 Jan 2024, James Almer wrote:
>>
>>> On 1/26/2024 1:44 PM, Vittorio Giovara wrote:
>>>> On Thu, Jan 25, 2024 at 2:48 PM James Almer <jamrial@gmail.com> wrote:
>>>>
>>>>> Signed-off-by: James Almer <jamrial@gmail.com>
>>>>> ---
>>>>> doc/APIchanges | 2 +-
>>>>> libavcodec/version.h | 2 +-
>>>>> libavcodec/version_major.h | 2 +-
>>>>> libavdevice/version.h | 2 +-
>>>>> libavdevice/version_major.h | 2 +-
>>>>> libavfilter/version.h | 2 +-
>>>>> libavfilter/version_major.h | 2 +-
>>>>> libavformat/version.h | 2 +-
>>>>> libavformat/version_major.h | 2 +-
>>>>> libavutil/version.h | 6 +++---
>>>>> libpostproc/version.h | 2 +-
>>>>> libpostproc/version_major.h | 2 +-
>>>>> libswresample/version.h | 2 +-
>>>>> libswresample/version_major.h | 2 +-
>>>>> libswscale/version.h | 2 +-
>>>>> libswscale/version_major.h | 2 +-
>>>>> 16 files changed, 18 insertions(+), 18 deletions(-)
>>>>>
>>>>> diff --git a/doc/APIchanges b/doc/APIchanges
>>>>> index e477ed78e0..60711379a1 100644
>>>>> --- a/doc/APIchanges
>>>>> +++ b/doc/APIchanges
>>>>> @@ -1,4 +1,4 @@
>>>>> -The last version increases of all libraries were on 2023-02-09
>>>>> +The last version increases of all libraries were on 2024-01-xx
>>>>>
>>>>> API changes, most recent first:
>>>>>
>>>>> diff --git a/libavcodec/version.h b/libavcodec/version.h
>>>>> index 0fae3d06d3..8c3d476003 100644
>>>>> --- a/libavcodec/version.h
>>>>> +++ b/libavcodec/version.h
>>>>> @@ -29,7 +29,7 @@
>>>>>
>>>>> #include "version_major.h"
>>>>>
>>>>> -#define LIBAVCODEC_VERSION_MINOR 38
>>>>> +#define LIBAVCODEC_VERSION_MINOR 0
>>>>> #define LIBAVCODEC_VERSION_MICRO 100
>>>>
>>>>
>>>> should we use this bump opportunity to reset MICRO to 0 too?
>>>
>>> It's an option. I don't recall if we decided anything about it last
>>> bump or during a meeting. And i don't know how much code out there
>>> still bothers to check for it to distinguish projects. But i guess
>>> that after so many bumps, any existing library user has long since
>>> stopped looking at it.
>>
>> VLC 3 (which still is the latest stable version) still has got such
>> checks around. VLC git master also still does have some checks, but only
>> for deciding which "AVPROVIDER" to print in log messages, no function
>> differences.
> VLC 3 surely wont compile and link with current ffmpeg, right? Or did
> they port it to the decoupled input/output decoder and encoder API, and
> even the new channel layout API?
They do backport updates to ffmpeg to VLC 3 in general, although it seems
that they're still pretty far behind (at ffmpeg 4.4.4) indeed.
// Martin
_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
To unsubscribe, visit link above, or email
ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".
^ permalink raw reply [flat|nested] 60+ messages in thread
* Re: [FFmpeg-devel] [PATCH 24/24] libs: bump major version for all libraries
2024-01-25 13:43 ` [FFmpeg-devel] [PATCH 24/24] libs: bump major version for all libraries James Almer
2024-01-26 16:44 ` Vittorio Giovara
@ 2024-01-26 18:18 ` Michael Niedermayer
2024-01-26 18:21 ` James Almer
2024-01-26 18:22 ` Michael Niedermayer
1 sibling, 2 replies; 60+ messages in thread
From: Michael Niedermayer @ 2024-01-26 18:18 UTC (permalink / raw)
To: FFmpeg development discussions and patches
[-- Attachment #1.1: Type: text/plain, Size: 2110 bytes --]
On Thu, Jan 25, 2024 at 10:43:47AM -0300, James Almer wrote:
> Signed-off-by: James Almer <jamrial@gmail.com>
> ---
> doc/APIchanges | 2 +-
> libavcodec/version.h | 2 +-
> libavcodec/version_major.h | 2 +-
> libavdevice/version.h | 2 +-
> libavdevice/version_major.h | 2 +-
> libavfilter/version.h | 2 +-
> libavfilter/version_major.h | 2 +-
> libavformat/version.h | 2 +-
> libavformat/version_major.h | 2 +-
> libavutil/version.h | 6 +++---
> libpostproc/version.h | 2 +-
> libpostproc/version_major.h | 2 +-
> libswresample/version.h | 2 +-
> libswresample/version_major.h | 2 +-
> libswscale/version.h | 2 +-
> libswscale/version_major.h | 2 +-
> 16 files changed, 18 insertions(+), 18 deletions(-)
breaks fate here:
TEST filter-formats
--- ./tests/ref/fate/filter-formats 2024-01-26 01:29:14.807206331 +0100
+++ tests/data/fate/filter-formats 2024-01-26 19:16:02.846589727 +0100
@@ -82,7 +82,7 @@
0 = ff_parse_channel_layout(0000000000000000, 65, 65C);
0 = ff_parse_channel_layout(000000000000003F, 6, 5.1);
0 = ff_parse_channel_layout(0000000000000003, 2, stereo);
-0 = ff_parse_channel_layout(0000000000000001, 1, 1+1+1+1);
-0 = ff_parse_channel_layout(0000000000000004, 1, 1c+1c+1c+1c);
-0 = ff_parse_channel_layout(0000000000000007, 3, 2c+1c);
+-1 = ff_parse_channel_layout(0000000000000000, -1, 1+1+1+1);
+-1 = ff_parse_channel_layout(0000000000000000, -1, 1c+1c+1c+1c);
+-1 = ff_parse_channel_layout(0000000000000000, -1, 2c+1c);
0 = ff_parse_channel_layout(0000000000000003, 2, 0x3);
Test filter-formats failed. Look at tests/data/fate/filter-formats.err for details.
tests/Makefile:318: recipe for target 'fate-filter-formats' failed
[...]
--
Michael GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB
If you fake or manipulate statistics in a paper in physics you will never
get a job again.
If you fake or manipulate statistics in a paper in medicin you will get
a job for life at the pharma industry.
[-- Attachment #1.2: signature.asc --]
[-- Type: application/pgp-signature, Size: 195 bytes --]
[-- Attachment #2: Type: text/plain, Size: 251 bytes --]
_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
To unsubscribe, visit link above, or email
ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".
^ permalink raw reply [flat|nested] 60+ messages in thread
* Re: [FFmpeg-devel] [PATCH 24/24] libs: bump major version for all libraries
2024-01-26 18:18 ` Michael Niedermayer
@ 2024-01-26 18:21 ` James Almer
2024-01-26 18:22 ` Michael Niedermayer
1 sibling, 0 replies; 60+ messages in thread
From: James Almer @ 2024-01-26 18:21 UTC (permalink / raw)
To: ffmpeg-devel
On 1/26/2024 3:18 PM, Michael Niedermayer wrote:
> On Thu, Jan 25, 2024 at 10:43:47AM -0300, James Almer wrote:
>> Signed-off-by: James Almer <jamrial@gmail.com>
>> ---
>> doc/APIchanges | 2 +-
>> libavcodec/version.h | 2 +-
>> libavcodec/version_major.h | 2 +-
>> libavdevice/version.h | 2 +-
>> libavdevice/version_major.h | 2 +-
>> libavfilter/version.h | 2 +-
>> libavfilter/version_major.h | 2 +-
>> libavformat/version.h | 2 +-
>> libavformat/version_major.h | 2 +-
>> libavutil/version.h | 6 +++---
>> libpostproc/version.h | 2 +-
>> libpostproc/version_major.h | 2 +-
>> libswresample/version.h | 2 +-
>> libswresample/version_major.h | 2 +-
>> libswscale/version.h | 2 +-
>> libswscale/version_major.h | 2 +-
>> 16 files changed, 18 insertions(+), 18 deletions(-)
>
> breaks fate here:
This patch depends on all 23 before it.
_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
To unsubscribe, visit link above, or email
ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".
^ permalink raw reply [flat|nested] 60+ messages in thread
* Re: [FFmpeg-devel] [PATCH 24/24] libs: bump major version for all libraries
2024-01-26 18:18 ` Michael Niedermayer
2024-01-26 18:21 ` James Almer
@ 2024-01-26 18:22 ` Michael Niedermayer
1 sibling, 0 replies; 60+ messages in thread
From: Michael Niedermayer @ 2024-01-26 18:22 UTC (permalink / raw)
To: FFmpeg development discussions and patches
[-- Attachment #1.1: Type: text/plain, Size: 1256 bytes --]
On Fri, Jan 26, 2024 at 07:18:46PM +0100, Michael Niedermayer wrote:
> On Thu, Jan 25, 2024 at 10:43:47AM -0300, James Almer wrote:
> > Signed-off-by: James Almer <jamrial@gmail.com>
> > ---
> > doc/APIchanges | 2 +-
> > libavcodec/version.h | 2 +-
> > libavcodec/version_major.h | 2 +-
> > libavdevice/version.h | 2 +-
> > libavdevice/version_major.h | 2 +-
> > libavfilter/version.h | 2 +-
> > libavfilter/version_major.h | 2 +-
> > libavformat/version.h | 2 +-
> > libavformat/version_major.h | 2 +-
> > libavutil/version.h | 6 +++---
> > libpostproc/version.h | 2 +-
> > libpostproc/version_major.h | 2 +-
> > libswresample/version.h | 2 +-
> > libswresample/version_major.h | 2 +-
> > libswscale/version.h | 2 +-
> > libswscale/version_major.h | 2 +-
> > 16 files changed, 18 insertions(+), 18 deletions(-)
>
> breaks fate here:
please disregard this, i have one patch missing fron the series
thx
[...]
--
Michael GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB
it is not once nor twice but times without number that the same ideas make
their appearance in the world. -- Aristotle
[-- Attachment #1.2: signature.asc --]
[-- Type: application/pgp-signature, Size: 195 bytes --]
[-- Attachment #2: Type: text/plain, Size: 251 bytes --]
_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
To unsubscribe, visit link above, or email
ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".
^ permalink raw reply [flat|nested] 60+ messages in thread
* Re: [FFmpeg-devel] [PATCH 00/24] Major library version bump
2024-01-25 13:43 [FFmpeg-devel] [PATCH 00/24] Major library version bump James Almer
` (24 preceding siblings ...)
2024-01-25 16:23 ` [FFmpeg-devel] [PATCH 00/24] Major library version bump James Almer
@ 2024-01-28 12:31 ` Anton Khirnov
2024-02-04 13:02 ` James Almer
2024-02-10 14:50 ` [FFmpeg-devel] [PATCH 25/27] avformat/avformat: Add FFInputFormat, hide internals of AVInputFormat Andreas Rheinhardt
` (15 subsequent siblings)
41 siblings, 1 reply; 60+ messages in thread
From: Anton Khirnov @ 2024-01-28 12:31 UTC (permalink / raw)
To: FFmpeg development discussions and patches
Quoting James Almer (2024-01-25 14:43:23)
> As the subject states, this set removes deprecated API scheduled for removal
> in the past year, since the last major bump.
So what is the actual rule you used for deciding what to remove and what
to postpone?
Everything except
> avfilter: remove deprecated FF_API_LIBPLACEBO_OPTS
would match the "deprecated in 2 major releases" rule that's been
suggested a few times before.
--
Anton Khirnov
_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
To unsubscribe, visit link above, or email
ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".
^ permalink raw reply [flat|nested] 60+ messages in thread
* Re: [FFmpeg-devel] [PATCH 00/24] Major library version bump
2024-01-28 12:31 ` Anton Khirnov
@ 2024-02-04 13:02 ` James Almer
0 siblings, 0 replies; 60+ messages in thread
From: James Almer @ 2024-02-04 13:02 UTC (permalink / raw)
To: ffmpeg-devel
On 1/28/2024 9:31 AM, Anton Khirnov wrote:
> Quoting James Almer (2024-01-25 14:43:23)
>> As the subject states, this set removes deprecated API scheduled for removal
>> in the past year, since the last major bump.
>
> So what is the actual rule you used for deciding what to remove and what
> to postpone?
>
> Everything except
>> avfilter: remove deprecated FF_API_LIBPLACEBO_OPTS
> would match the "deprecated in 2 major releases" rule that's been
> suggested a few times before.
Anything at least a year old and already deprecated in 5.1, i think, but
i may have messed up somewhere.
I can skip the libplacebo one if that's what "deprecated in 2 major
releases" requires.
_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
To unsubscribe, visit link above, or email
ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".
^ permalink raw reply [flat|nested] 60+ messages in thread
* Re: [FFmpeg-devel] [PATCH 16/24] avutil: remove deprecated FF_API_OLD_CHANNEL_LAYOUT
2024-01-25 13:43 ` [FFmpeg-devel] [PATCH 16/24] avutil: remove deprecated FF_API_OLD_CHANNEL_LAYOUT James Almer
@ 2024-02-04 20:02 ` Andreas Rheinhardt
0 siblings, 0 replies; 60+ messages in thread
From: Andreas Rheinhardt @ 2024-02-04 20:02 UTC (permalink / raw)
To: ffmpeg-devel
James Almer:
> Signed-off-by: James Almer <jamrial@gmail.com>
> ---
> diff --git a/libavutil/channel_layout.c b/libavutil/channel_layout.c
> index b59d798f29..35b03078c8 100644
> --- a/libavutil/channel_layout.c
> +++ b/libavutil/channel_layout.c
> @@ -214,190 +214,6 @@ static const struct channel_layout_name channel_layout_map[] = {
> { "22.2", AV_CHANNEL_LAYOUT_22POINT2, },
> };
>
> -#if FF_API_OLD_CHANNEL_LAYOUT
> -FF_DISABLE_DEPRECATION_WARNINGS
> -static uint64_t get_channel_layout_single(const char *name, int name_len)
> -{
> - int i;
> - char *end;
> - int64_t layout;
> -
> - for (i = 0; i < FF_ARRAY_ELEMS(channel_layout_map); i++) {
> - if (strlen(channel_layout_map[i].name) == name_len &&
> - !memcmp(channel_layout_map[i].name, name, name_len))
> - return channel_layout_map[i].layout.u.mask;
> - }
> - for (i = 0; i < FF_ARRAY_ELEMS(channel_names); i++)
> - if (channel_names[i].name &&
> - strlen(channel_names[i].name) == name_len &&
> - !memcmp(channel_names[i].name, name, name_len))
> - return (int64_t)1 << i;
> -
> - errno = 0;
> - i = strtol(name, &end, 10);
> -
> - if (!errno && (end + 1 - name == name_len && *end == 'c'))
> - return av_get_default_channel_layout(i);
> -
> - errno = 0;
> - layout = strtoll(name, &end, 0);
> - if (!errno && end - name == name_len)
> - return FFMAX(layout, 0);
> - return 0;
> -}
> -
> -uint64_t av_get_channel_layout(const char *name)
> -{
> - const char *n, *e;
> - const char *name_end = name + strlen(name);
> - int64_t layout = 0, layout_single;
> -
> - for (n = name; n < name_end; n = e + 1) {
> - for (e = n; e < name_end && *e != '+' && *e != '|'; e++);
> - layout_single = get_channel_layout_single(n, e - n);
> - if (!layout_single)
> - return 0;
> - layout |= layout_single;
> - }
> - return layout;
> -}
> -
> -int av_get_extended_channel_layout(const char *name, uint64_t* channel_layout, int* nb_channels)
> -{
> - int nb = 0;
> - char *end;
> - uint64_t layout = av_get_channel_layout(name);
> -
> - if (layout) {
> - *channel_layout = layout;
> - *nb_channels = av_get_channel_layout_nb_channels(layout);
> - return 0;
> - }
> -
> - nb = strtol(name, &end, 10);
> - if (!errno && *end == 'C' && *(end + 1) == '\0' && nb > 0 && nb < 64) {
> - *channel_layout = 0;
> - *nb_channels = nb;
> - return 0;
> - }
> -
> - return AVERROR(EINVAL);
> -}
> -
> -void av_bprint_channel_layout(struct AVBPrint *bp,
> - int nb_channels, uint64_t channel_layout)
> -{
> - int i;
> -
> - if (nb_channels <= 0)
> - nb_channels = av_get_channel_layout_nb_channels(channel_layout);
> -
> - for (i = 0; i < FF_ARRAY_ELEMS(channel_layout_map); i++)
> - if (nb_channels == channel_layout_map[i].layout.nb_channels &&
> - channel_layout == channel_layout_map[i].layout.u.mask) {
> - av_bprintf(bp, "%s", channel_layout_map[i].name);
> - return;
> - }
> -
> - av_bprintf(bp, "%d channels", nb_channels);
> - if (channel_layout) {
> - int i, ch;
> - av_bprintf(bp, " (");
> - for (i = 0, ch = 0; i < 64; i++) {
> - if ((channel_layout & (UINT64_C(1) << i))) {
> - const char *name = get_channel_name(i);
> - if (name) {
> - if (ch > 0)
> - av_bprintf(bp, "+");
> - av_bprintf(bp, "%s", name);
> - }
> - ch++;
> - }
> - }
> - av_bprintf(bp, ")");
> - }
> -}
> -
> -void av_get_channel_layout_string(char *buf, int buf_size,
> - int nb_channels, uint64_t channel_layout)
> -{
> - AVBPrint bp;
> -
> - av_bprint_init_for_buffer(&bp, buf, buf_size);
> - av_bprint_channel_layout(&bp, nb_channels, channel_layout);
> -}
> -
> -int av_get_channel_layout_nb_channels(uint64_t channel_layout)
> -{
> - return av_popcount64(channel_layout);
> -}
> -
> -int64_t av_get_default_channel_layout(int nb_channels) {
> - int i;
> - for (i = 0; i < FF_ARRAY_ELEMS(channel_layout_map); i++)
> - if (nb_channels == channel_layout_map[i].layout.nb_channels)
> - return channel_layout_map[i].layout.u.mask;
> - return 0;
> -}
> -
> -int av_get_channel_layout_channel_index(uint64_t channel_layout,
> - uint64_t channel)
> -{
> - if (!(channel_layout & channel) ||
> - av_get_channel_layout_nb_channels(channel) != 1)
> - return AVERROR(EINVAL);
> - channel_layout &= channel - 1;
> - return av_get_channel_layout_nb_channels(channel_layout);
> -}
> -
> -const char *av_get_channel_name(uint64_t channel)
> -{
> - int i;
> - if (av_get_channel_layout_nb_channels(channel) != 1)
> - return NULL;
> - for (i = 0; i < 64; i++)
> - if ((1ULL<<i) & channel)
> - return get_channel_name(i);
This function is now unused after this patch and needs to be removed as
well.
> - return NULL;
> -}
> -
> -const char *av_get_channel_description(uint64_t channel)
> -{
> - int i;
> - if (av_get_channel_layout_nb_channels(channel) != 1)
> - return NULL;
> - for (i = 0; i < FF_ARRAY_ELEMS(channel_names); i++)
> - if ((1ULL<<i) & channel)
> - return channel_names[i].description;
> - return NULL;
> -}
> -
> -uint64_t av_channel_layout_extract_channel(uint64_t channel_layout, int index)
> -{
> - int i;
> -
> - if (av_get_channel_layout_nb_channels(channel_layout) <= index)
> - return 0;
> -
> - for (i = 0; i < 64; i++) {
> - if ((1ULL << i) & channel_layout && !index--)
> - return 1ULL << i;
> - }
> - return 0;
> -}
> -
> -int av_get_standard_channel_layout(unsigned index, uint64_t *layout,
> - const char **name)
> -{
> - if (index >= FF_ARRAY_ELEMS(channel_layout_map))
> - return AVERROR_EOF;
> - if (layout) *layout = channel_layout_map[index].layout.u.mask;
> - if (name) *name = channel_layout_map[index].name;
> - return 0;
> -}
> -FF_ENABLE_DEPRECATION_WARNINGS
> -#endif
> -
> int av_channel_layout_from_mask(AVChannelLayout *channel_layout,
> uint64_t mask)
> {
_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
To unsubscribe, visit link above, or email
ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".
^ permalink raw reply [flat|nested] 60+ messages in thread
* Re: [FFmpeg-devel] [PATCH 18/24] avutil: remove deprecated FF_API_PKT_DURATION
2024-01-25 13:43 ` [FFmpeg-devel] [PATCH 18/24] avutil: remove deprecated FF_API_PKT_DURATION James Almer
@ 2024-02-04 20:04 ` Andreas Rheinhardt
0 siblings, 0 replies; 60+ messages in thread
From: Andreas Rheinhardt @ 2024-02-04 20:04 UTC (permalink / raw)
To: ffmpeg-devel
James Almer:
> Signed-off-by: James Almer <jamrial@gmail.com>
> ---
> doc/ffprobe.xsd | 2 -
> fftools/ffmpeg_filter.c | 5 -
> fftools/ffprobe.c | 6 -
> libavcodec/decode.c | 6 -
> libavdevice/alsa_enc.c | 7 -
> libavdevice/pulse_audio_enc.c | 7 -
> libavfilter/avfilter.c | 5 -
> libavfilter/buffersrc.c | 7 -
> libavfilter/vf_deshake_opencl.c | 7 -
> libavfilter/vf_drawtext.c | 15 -
> libavfilter/vsrc_testsrc.c | 5 -
> libavformat/mux.c | 7 -
> libavutil/frame.c | 10 -
> libavutil/frame.h | 13 -
> libavutil/version.h | 1 -
> tests/ref/fate/exif-image-embedded | 44 ---
> tests/ref/fate/exif-image-jpg | 2 -
> tests/ref/fate/exif-image-tiff | 2 -
> tests/ref/fate/exif-image-webp | 2 -
> tests/ref/fate/ffprobe_compact | 28 +-
> tests/ref/fate/ffprobe_csv | 28 +-
> tests/ref/fate/ffprobe_default | 28 --
> tests/ref/fate/ffprobe_flat | 28 --
> tests/ref/fate/ffprobe_ini | 28 --
> tests/ref/fate/ffprobe_json | 28 --
> tests/ref/fate/ffprobe_xml | 28 +-
> tests/ref/fate/ffprobe_xsd | 28 +-
> tests/ref/fate/flcl1905 | 350 +++++++++----------
> tests/ref/fate/gaplessenc-itunes-to-ipod-aac | 32 +-
> tests/ref/fate/gaplessenc-pcm-to-mov-aac | 32 +-
> tests/ref/fate/gaplessinfo-itunes1 | 32 +-
> tests/ref/fate/gaplessinfo-itunes2 | 32 +-
> tests/ref/fate/h264-dts_5frames | 10 -
> tests/ref/fate/jpg-icc | 2 -
> tests/ref/fate/mov-zombie | 130 +++----
> tests/ref/fate/png-icc | 2 -
> tests/ref/fate/png-side-data | 2 -
> 37 files changed, 360 insertions(+), 641 deletions(-)
>
> diff --git a/tests/ref/fate/png-icc b/tests/ref/fate/png-icc
> index 8927cb331a..417cbcb91d 100644
> --- a/tests/ref/fate/png-icc
> +++ b/tests/ref/fate/png-icc
> @@ -16,8 +16,6 @@ pkt_dts=0
> pkt_dts_time=0.000000
> best_effort_timestamp=0
> best_effort_timestamp_time=0.000000
> -pkt_duration=1
> -pkt_duration_time=0.040000
> duration=1
> duration_time=0.040000
> pkt_pos=0
> diff --git a/tests/ref/fate/png-side-data b/tests/ref/fate/png-side-data
> index 629971bd23..0d1f88ccb2 100644
> --- a/tests/ref/fate/png-side-data
> +++ b/tests/ref/fate/png-side-data
> @@ -8,8 +8,6 @@ pkt_dts=0
> pkt_dts_time=0.000000
> best_effort_timestamp=0
> best_effort_timestamp_time=0.000000
> -pkt_duration=1
> -pkt_duration_time=0.040000
> duration=1
> duration_time=0.040000
> pkt_pos=0
There is also a png-icc-parse fate-test that you have not updated (it is
only run when LCMS2 is enabled).
- Andreas
_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
To unsubscribe, visit link above, or email
ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".
^ permalink raw reply [flat|nested] 60+ messages in thread
* Re: [FFmpeg-devel] [PATCH 00/24] Major library version bump
2024-01-25 16:23 ` [FFmpeg-devel] [PATCH 00/24] Major library version bump James Almer
@ 2024-02-07 13:11 ` James Almer
0 siblings, 0 replies; 60+ messages in thread
From: James Almer @ 2024-02-07 13:11 UTC (permalink / raw)
To: ffmpeg-devel
On 1/25/2024 1:23 PM, James Almer wrote:
> On 1/25/2024 10:43 AM, James Almer wrote:
>> After this is committed, it will be open ABI season for a few weeks,
>> but no
>> longer than a month. So if you want to do some cleaning (like removing
>> avpriv_
>> functions, or moving field offsets from public strucs around), now is
>> the time.
>
> I was reminded that we got rid of this period, so if anyone has ABI
> breaking changes they want committed, please send a patch now, so it can
> be applied immediately before the bump.
Reminder to people to submit any ABI breaking changes they want in
before this set is pushed.
_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
To unsubscribe, visit link above, or email
ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".
^ permalink raw reply [flat|nested] 60+ messages in thread
* [FFmpeg-devel] [PATCH 25/27] avformat/avformat: Add FFInputFormat, hide internals of AVInputFormat
2024-01-25 13:43 [FFmpeg-devel] [PATCH 00/24] Major library version bump James Almer
` (25 preceding siblings ...)
2024-01-28 12:31 ` Anton Khirnov
@ 2024-02-10 14:50 ` Andreas Rheinhardt
2024-02-10 14:50 ` [FFmpeg-devel] [PATCH 26/27] avutil/opt: Don't use AV_OPT_TYPE_FLAGS for sentinels Andreas Rheinhardt
` (14 subsequent siblings)
41 siblings, 0 replies; 60+ messages in thread
From: Andreas Rheinhardt @ 2024-02-10 14:50 UTC (permalink / raw)
To: ffmpeg-devel; +Cc: Andreas Rheinhardt
This commit does for AVInputFormat what commit
59c9dc82f450638a3068deeb1db5c56f6d155752 did for AVOutputFormat:
It adds a new type FFInputFormat, moves all the internals
of AVInputFormat to it and adds a now reduced AVInputFormat
as first member.
This does not affect/improve extensibility of both public
or private fields for demuxers (it is still a mess due to lavd).
This is possible since 50f34172e0cca2cabc5836308ec66dbf93f5f2a3
(which removed the last usage of an internal field of AVInputFormat
in fftools).
(Hint: tools/probetest.c accesses the internals of FFInputFormat
as well, but given that it is a testing tool this is not considered
a problem.)
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
---
configure | 8 +-
libavdevice/alldevices.c | 49 +--
libavdevice/alsa_dec.c | 11 +-
libavdevice/android_camera.c | 11 +-
libavdevice/avdevice.c | 5 +-
libavdevice/bktr.c | 11 +-
libavdevice/decklink_dec_c.c | 11 +-
libavdevice/dshow.c | 12 +-
libavdevice/fbdev_dec.c | 11 +-
libavdevice/gdigrab.c | 11 +-
libavdevice/iec61883.c | 11 +-
libavdevice/jack.c | 11 +-
libavdevice/kmsgrab.c | 11 +-
libavdevice/lavfi.c | 11 +-
libavdevice/libcdio.c | 8 +-
libavdevice/libdc1394.c | 11 +-
libavdevice/openal-dec.c | 11 +-
libavdevice/oss_dec.c | 11 +-
libavdevice/pulse_audio_dec.c | 11 +-
libavdevice/sndio_dec.c | 11 +-
libavdevice/utils.c | 5 +-
libavdevice/v4l2.c | 10 +-
libavdevice/vfwcap.c | 11 +-
libavdevice/xcbgrab.c | 11 +-
libavformat/3dostr.c | 11 +-
libavformat/4xm.c | 7 +-
libavformat/aacdec.c | 13 +-
libavformat/aadec.c | 12 +-
libavformat/aaxdec.c | 10 +-
libavformat/ac3dec.c | 25 +-
libavformat/ac4dec.c | 11 +-
libavformat/acedec.c | 9 +-
libavformat/acm.c | 12 +-
libavformat/act.c | 7 +-
libavformat/adp.c | 9 +-
libavformat/ads.c | 9 +-
libavformat/adxdec.c | 10 +-
libavformat/aea.c | 11 +-
libavformat/afc.c | 11 +-
libavformat/aiffdec.c | 8 +-
libavformat/aixdec.c | 10 +-
libavformat/allformats.c | 731 +++++++++++++++++----------------
libavformat/alp.c | 7 +-
libavformat/amr.c | 31 +-
libavformat/anm.c | 6 +-
libavformat/apac.c | 12 +-
libavformat/apc.c | 6 +-
libavformat/ape.c | 9 +-
libavformat/apm.c | 7 +-
libavformat/apngdec.c | 11 +-
libavformat/aptxdec.c | 25 +-
libavformat/aqtitledec.c | 11 +-
libavformat/argo_asf.c | 7 +-
libavformat/argo_brp.c | 7 +-
libavformat/argo_cvg.c | 7 +-
libavformat/asfdec_f.c | 10 +-
libavformat/asfdec_o.c | 8 +-
libavformat/assdec.c | 7 +-
libavformat/astdec.c | 13 +-
libavformat/au.c | 9 +-
libavformat/av1dec.c | 25 +-
libavformat/avformat.h | 98 -----
libavformat/avidec.c | 10 +-
libavformat/avisynth.c | 11 +-
libavformat/avr.c | 11 +-
libavformat/avs.c | 7 +-
libavformat/bethsoftvid.c | 7 +-
libavformat/bfi.c | 6 +-
libavformat/bink.c | 8 +-
libavformat/binka.c | 11 +-
libavformat/bintext.c | 37 +-
libavformat/bit.c | 9 +-
libavformat/bmv.c | 9 +-
libavformat/boadec.c | 9 +-
libavformat/bonk.c | 12 +-
libavformat/brstm.c | 16 +-
libavformat/c93.c | 7 +-
libavformat/cafdec.c | 8 +-
libavformat/cdg.c | 11 +-
libavformat/cdxl.c | 13 +-
libavformat/cinedec.c | 7 +-
libavformat/codec2.c | 23 +-
libavformat/concatdec.c | 8 +-
libavformat/dashdec.c | 10 +-
libavformat/dauddec.c | 9 +-
libavformat/dcstr.c | 11 +-
libavformat/demux.c | 20 +-
libavformat/demux.h | 107 ++++-
libavformat/demux_utils.c | 8 +-
libavformat/derf.c | 9 +-
libavformat/dfa.c | 9 +-
libavformat/dfpwmdec.c | 13 +-
libavformat/dhav.c | 11 +-
libavformat/dsfdec.c | 9 +-
libavformat/dsicin.c | 7 +-
libavformat/dss.c | 9 +-
libavformat/dtsdec.c | 13 +-
libavformat/dtshddec.c | 11 +-
libavformat/dv.c | 8 +-
libavformat/dxa.c | 7 +-
libavformat/eacdata.c | 9 +-
libavformat/electronicarts.c | 9 +-
libavformat/epafdec.c | 11 +-
libavformat/evcdec.c | 13 +-
libavformat/ffmetadec.c | 6 +-
libavformat/filmstripdec.c | 9 +-
libavformat/fitsdec.c | 11 +-
libavformat/flacdec.c | 12 +-
libavformat/flic.c | 7 +-
libavformat/flvdec.c | 32 +-
libavformat/format.c | 5 +-
libavformat/frmdec.c | 7 +-
libavformat/fsb.c | 11 +-
libavformat/fwse.c | 9 +-
libavformat/g722.c | 13 +-
libavformat/g723_1.c | 11 +-
libavformat/g726.c | 19 +-
libavformat/g729dec.c | 13 +-
libavformat/gdv.c | 7 +-
libavformat/genh.c | 9 +-
libavformat/gifdec.c | 13 +-
libavformat/gsmdec.c | 13 +-
libavformat/gxf.c | 6 +-
libavformat/hca.c | 13 +-
libavformat/hcom.c | 7 +-
libavformat/hls.c | 12 +-
libavformat/hnm.c | 9 +-
libavformat/iamfdec.c | 11 +-
libavformat/icodec.c | 9 +-
libavformat/idcin.c | 8 +-
libavformat/idroqdec.c | 7 +-
libavformat/iff.c | 9 +-
libavformat/ifv.c | 9 +-
libavformat/ilbc.c | 9 +-
libavformat/imfdec.c | 10 +-
libavformat/img2_alias_pix.c | 9 +-
libavformat/img2_brender_pix.c | 9 +-
libavformat/img2dec.c | 48 +--
libavformat/imx.c | 11 +-
libavformat/ingenientdec.c | 13 +-
libavformat/internal.h | 6 +-
libavformat/ipmovie.c | 6 +-
libavformat/ipudec.c | 13 +-
libavformat/ircamdec.c | 11 +-
libavformat/iss.c | 7 +-
libavformat/iv8.c | 9 +-
libavformat/ivfdec.c | 11 +-
libavformat/jacosubdec.c | 7 +-
libavformat/jpegxl_anim_dec.c | 13 +-
libavformat/jvdec.c | 7 +-
libavformat/kvag.c | 7 +-
libavformat/lafdec.c | 11 +-
libavformat/libgme.c | 9 +-
libavformat/libmodplug.c | 11 +-
libavformat/libopenmpt.c | 19 +-
libavformat/lmlm4.c | 7 +-
libavformat/loasdec.c | 11 +-
libavformat/lrcdec.c | 7 +-
libavformat/luodatdec.c | 11 +-
libavformat/lvfdec.c | 11 +-
libavformat/lxfdec.c | 8 +-
libavformat/matroskadec.c | 18 +-
libavformat/mca.c | 8 +-
libavformat/mccdec.c | 9 +-
libavformat/mgsts.c | 9 +-
libavformat/microdvddec.c | 9 +-
libavformat/mlpdec.c | 25 +-
libavformat/mlvdec.c | 6 +-
libavformat/mm.c | 7 +-
libavformat/mmf.c | 9 +-
libavformat/mods.c | 11 +-
libavformat/moflex.c | 11 +-
libavformat/mov.c | 12 +-
libavformat/mp3dec.c | 12 +-
libavformat/mpc.c | 8 +-
libavformat/mpc8.c | 6 +-
libavformat/mpeg.c | 20 +-
libavformat/mpegts.c | 24 +-
libavformat/mpjpegdec.c | 15 +-
libavformat/mpl2dec.c | 9 +-
libavformat/mpsubdec.c | 9 +-
libavformat/msf.c | 9 +-
libavformat/msnwc_tcp.c | 7 +-
libavformat/mspdec.c | 9 +-
libavformat/mtaf.c | 9 +-
libavformat/mtv.c | 7 +-
libavformat/musx.c | 9 +-
libavformat/mvdec.c | 7 +-
libavformat/mvi.c | 9 +-
libavformat/mxfdec.c | 10 +-
libavformat/mxg.c | 9 +-
libavformat/ncdec.c | 9 +-
libavformat/nistspheredec.c | 11 +-
libavformat/nspdec.c | 11 +-
libavformat/nsvdec.c | 7 +-
libavformat/nutdec.c | 12 +-
libavformat/nuv.c | 8 +-
libavformat/oggdec.c | 10 +-
libavformat/omadec.c | 13 +-
libavformat/osq.c | 12 +-
libavformat/paf.c | 7 +-
libavformat/pcmdec.c | 29 +-
libavformat/pdvdec.c | 9 +-
libavformat/pjsdec.c | 9 +-
libavformat/pmpdec.c | 7 +-
libavformat/pp_bnk.c | 7 +-
libavformat/psxstr.c | 9 +-
libavformat/pva.c | 7 +-
libavformat/pvfdec.c | 11 +-
libavformat/qcp.c | 7 +-
libavformat/qoadec.c | 11 +-
libavformat/r3d.c | 7 +-
libavformat/rawdec.c | 19 +-
libavformat/rawdec.h | 25 +-
libavformat/rawvideodec.c | 63 +--
libavformat/rdt.c | 3 +-
libavformat/realtextdec.c | 9 +-
libavformat/redspark.c | 9 +-
libavformat/rka.c | 8 +-
libavformat/rl2.c | 6 +-
libavformat/rm.h | 2 +-
libavformat/rmdec.c | 22 +-
libavformat/rpl.c | 7 +-
libavformat/rsd.c | 12 +-
libavformat/rsodec.c | 11 +-
libavformat/rtsp.c | 19 +-
libavformat/rtspdec.c | 11 +-
libavformat/s337m.c | 9 +-
libavformat/samidec.c | 9 +-
libavformat/sapdec.c | 9 +-
libavformat/sbcdec.c | 13 +-
libavformat/sbgdec.c | 11 +-
libavformat/sccdec.c | 9 +-
libavformat/scd.c | 7 +-
libavformat/sdns.c | 10 +-
libavformat/sdr2.c | 11 +-
libavformat/sdsdec.c | 11 +-
libavformat/sdxdec.c | 11 +-
libavformat/seek.c | 22 +-
libavformat/segafilm.c | 7 +-
libavformat/serdec.c | 13 +-
libavformat/sga.c | 11 +-
libavformat/shortendec.c | 13 +-
libavformat/sierravmd.c | 7 +-
libavformat/siff.c | 9 +-
libavformat/smacker.c | 6 +-
libavformat/smjpegdec.c | 11 +-
libavformat/smush.c | 7 +-
libavformat/sol.c | 7 +-
libavformat/soxdec.c | 7 +-
libavformat/spdifdec.c | 9 +-
libavformat/srtdec.c | 7 +-
libavformat/stldec.c | 9 +-
libavformat/subtitles.h | 2 +-
libavformat/subviewer1dec.c | 9 +-
libavformat/subviewerdec.c | 9 +-
libavformat/supdec.c | 13 +-
libavformat/svag.c | 9 +-
libavformat/svs.c | 9 +-
libavformat/swfdec.c | 6 +-
libavformat/takdec.c | 13 +-
libavformat/tedcaptionsdec.c | 9 +-
libavformat/thp.c | 7 +-
libavformat/tiertexseq.c | 7 +-
libavformat/tmv.c | 9 +-
libavformat/tta.c | 9 +-
libavformat/tty.c | 13 +-
libavformat/txd.c | 7 +-
libavformat/ty.c | 11 +-
libavformat/usmdec.c | 10 +-
libavformat/vag.c | 9 +-
libavformat/vapoursynth.c | 9 +-
libavformat/vc1test.c | 10 +-
libavformat/vividas.c | 7 +-
libavformat/vivo.c | 9 +-
libavformat/vocdec.c | 9 +-
libavformat/vpk.c | 8 +-
libavformat/vplayerdec.c | 9 +-
libavformat/vqf.c | 9 +-
libavformat/wady.c | 10 +-
libavformat/wavarc.c | 10 +-
libavformat/wavdec.c | 24 +-
libavformat/wc3movie.c | 7 +-
libavformat/webvttdec.c | 11 +-
libavformat/westwood_aud.c | 7 +-
libavformat/westwood_vqa.c | 6 +-
libavformat/wsddec.c | 13 +-
libavformat/wtvdec.c | 8 +-
libavformat/wvdec.c | 9 +-
libavformat/wvedec.c | 7 +-
libavformat/xa.c | 7 +-
libavformat/xmd.c | 10 +-
libavformat/xmv.c | 9 +-
libavformat/xvag.c | 9 +-
libavformat/xwma.c | 7 +-
libavformat/yop.c | 10 +-
libavformat/yuv4mpegdec.c | 9 +-
tools/probetest.c | 5 +-
tools/target_dem_fuzzer.c | 6 +-
299 files changed, 2178 insertions(+), 1940 deletions(-)
diff --git a/configure b/configure
index c0d3791c9e..e44fc755ce 100755
--- a/configure
+++ b/configure
@@ -4117,9 +4117,9 @@ find_filters_extern(){
FILTER_LIST=$(find_filters_extern libavfilter/allfilters.c)
OUTDEV_LIST=$(find_things_extern muxer FFOutputFormat libavdevice/alldevices.c outdev)
-INDEV_LIST=$(find_things_extern demuxer AVInputFormat libavdevice/alldevices.c indev)
+INDEV_LIST=$(find_things_extern demuxer FFInputFormat libavdevice/alldevices.c indev)
MUXER_LIST=$(find_things_extern muxer FFOutputFormat libavformat/allformats.c)
-DEMUXER_LIST=$(find_things_extern demuxer AVInputFormat libavformat/allformats.c)
+DEMUXER_LIST=$(find_things_extern demuxer FFInputFormat libavformat/allformats.c)
ENCODER_LIST=$(find_things_extern encoder FFCodec libavcodec/allcodecs.c)
DECODER_LIST=$(find_things_extern decoder FFCodec libavcodec/allcodecs.c)
CODEC_LIST="
@@ -8187,9 +8187,9 @@ print_enabled_components libavfilter/filter_list.c AVFilter filter_list $FILTER_
print_enabled_components libavcodec/codec_list.c FFCodec codec_list $CODEC_LIST
print_enabled_components libavcodec/parser_list.c AVCodecParser parser_list $PARSER_LIST
print_enabled_components libavcodec/bsf_list.c FFBitStreamFilter bitstream_filters $BSF_LIST
-print_enabled_components libavformat/demuxer_list.c AVInputFormat demuxer_list $DEMUXER_LIST
+print_enabled_components libavformat/demuxer_list.c FFInputFormat demuxer_list $DEMUXER_LIST
print_enabled_components libavformat/muxer_list.c FFOutputFormat muxer_list $MUXER_LIST
-print_enabled_components libavdevice/indev_list.c AVInputFormat indev_list $INDEV_LIST
+print_enabled_components libavdevice/indev_list.c FFInputFormat indev_list $INDEV_LIST
print_enabled_components libavdevice/outdev_list.c FFOutputFormat outdev_list $OUTDEV_LIST
print_enabled_components libavformat/protocol_list.c URLProtocol url_protocols $PROTOCOL_LIST
diff --git a/libavdevice/alldevices.c b/libavdevice/alldevices.c
index 8a90fcb5d7..5ee97c56b6 100644
--- a/libavdevice/alldevices.c
+++ b/libavdevice/alldevices.c
@@ -18,46 +18,47 @@
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*/
+#include "libavformat/demux.h"
#include "libavformat/internal.h"
#include "libavformat/mux.h"
#include "avdevice.h"
/* devices */
-extern const AVInputFormat ff_alsa_demuxer;
+extern const FFInputFormat ff_alsa_demuxer;
extern const FFOutputFormat ff_alsa_muxer;
-extern const AVInputFormat ff_android_camera_demuxer;
+extern const FFInputFormat ff_android_camera_demuxer;
extern const FFOutputFormat ff_audiotoolbox_muxer;
-extern const AVInputFormat ff_avfoundation_demuxer;
-extern const AVInputFormat ff_bktr_demuxer;
+extern const FFInputFormat ff_avfoundation_demuxer;
+extern const FFInputFormat ff_bktr_demuxer;
extern const FFOutputFormat ff_caca_muxer;
-extern const AVInputFormat ff_decklink_demuxer;
+extern const FFInputFormat ff_decklink_demuxer;
extern const FFOutputFormat ff_decklink_muxer;
-extern const AVInputFormat ff_dshow_demuxer;
-extern const AVInputFormat ff_fbdev_demuxer;
+extern const FFInputFormat ff_dshow_demuxer;
+extern const FFInputFormat ff_fbdev_demuxer;
extern const FFOutputFormat ff_fbdev_muxer;
-extern const AVInputFormat ff_gdigrab_demuxer;
-extern const AVInputFormat ff_iec61883_demuxer;
-extern const AVInputFormat ff_jack_demuxer;
-extern const AVInputFormat ff_kmsgrab_demuxer;
-extern const AVInputFormat ff_lavfi_demuxer;
-extern const AVInputFormat ff_openal_demuxer;
+extern const FFInputFormat ff_gdigrab_demuxer;
+extern const FFInputFormat ff_iec61883_demuxer;
+extern const FFInputFormat ff_jack_demuxer;
+extern const FFInputFormat ff_kmsgrab_demuxer;
+extern const FFInputFormat ff_lavfi_demuxer;
+extern const FFInputFormat ff_openal_demuxer;
extern const FFOutputFormat ff_opengl_muxer;
-extern const AVInputFormat ff_oss_demuxer;
+extern const FFInputFormat ff_oss_demuxer;
extern const FFOutputFormat ff_oss_muxer;
-extern const AVInputFormat ff_pulse_demuxer;
+extern const FFInputFormat ff_pulse_demuxer;
extern const FFOutputFormat ff_pulse_muxer;
extern const FFOutputFormat ff_sdl2_muxer;
-extern const AVInputFormat ff_sndio_demuxer;
+extern const FFInputFormat ff_sndio_demuxer;
extern const FFOutputFormat ff_sndio_muxer;
-extern const AVInputFormat ff_v4l2_demuxer;
+extern const FFInputFormat ff_v4l2_demuxer;
extern const FFOutputFormat ff_v4l2_muxer;
-extern const AVInputFormat ff_vfwcap_demuxer;
-extern const AVInputFormat ff_xcbgrab_demuxer;
+extern const FFInputFormat ff_vfwcap_demuxer;
+extern const FFInputFormat ff_xcbgrab_demuxer;
extern const FFOutputFormat ff_xv_muxer;
/* external libraries */
-extern const AVInputFormat ff_libcdio_demuxer;
-extern const AVInputFormat ff_libdc1394_demuxer;
+extern const FFInputFormat ff_libcdio_demuxer;
+extern const FFInputFormat ff_libdc1394_demuxer;
#include "libavdevice/outdev_list.c"
#include "libavdevice/indev_list.c"
@@ -72,12 +73,12 @@ static const void *next_input(const AVInputFormat *prev, AVClassCategory c2)
const AVClass *pc;
const AVClassCategory c1 = AV_CLASS_CATEGORY_DEVICE_INPUT;
AVClassCategory category = AV_CLASS_CATEGORY_NA;
- const AVInputFormat *fmt = NULL;
+ const FFInputFormat *fmt = NULL;
int i = 0;
while (prev && (fmt = indev_list[i])) {
i++;
- if (prev == fmt)
+ if (prev == &fmt->p)
break;
}
@@ -85,7 +86,7 @@ static const void *next_input(const AVInputFormat *prev, AVClassCategory c2)
fmt = indev_list[i++];
if (!fmt)
break;
- pc = fmt->priv_class;
+ pc = fmt->p.priv_class;
if (!pc)
continue;
category = pc->category;
diff --git a/libavdevice/alsa_dec.c b/libavdevice/alsa_dec.c
index b518bbdac6..018afaef08 100644
--- a/libavdevice/alsa_dec.c
+++ b/libavdevice/alsa_dec.c
@@ -52,6 +52,7 @@
#include "libavutil/opt.h"
#include "libavutil/time.h"
+#include "libavformat/demux.h"
#include "libavformat/internal.h"
#include "avdevice.h"
@@ -157,14 +158,14 @@ static const AVClass alsa_demuxer_class = {
.category = AV_CLASS_CATEGORY_DEVICE_AUDIO_INPUT,
};
-const AVInputFormat ff_alsa_demuxer = {
- .name = "alsa",
- .long_name = NULL_IF_CONFIG_SMALL("ALSA audio input"),
+const FFInputFormat ff_alsa_demuxer = {
+ .p.name = "alsa",
+ .p.long_name = NULL_IF_CONFIG_SMALL("ALSA audio input"),
+ .p.flags = AVFMT_NOFILE,
+ .p.priv_class = &alsa_demuxer_class,
.priv_data_size = sizeof(AlsaData),
.read_header = audio_read_header,
.read_packet = audio_read_packet,
.read_close = ff_alsa_close,
.get_device_list = audio_get_device_list,
- .flags = AVFMT_NOFILE,
- .priv_class = &alsa_demuxer_class,
};
diff --git a/libavdevice/android_camera.c b/libavdevice/android_camera.c
index c981985f10..3aa8597c63 100644
--- a/libavdevice/android_camera.c
+++ b/libavdevice/android_camera.c
@@ -33,6 +33,7 @@
#include <media/NdkImageReader.h>
#include "libavformat/avformat.h"
+#include "libavformat/demux.h"
#include "libavformat/internal.h"
#include "libavutil/avstring.h"
#include "libavutil/display.h"
@@ -860,13 +861,13 @@ static const AVClass android_camera_class = {
.category = AV_CLASS_CATEGORY_DEVICE_VIDEO_INPUT,
};
-const AVInputFormat ff_android_camera_demuxer = {
- .name = "android_camera",
- .long_name = NULL_IF_CONFIG_SMALL("Android camera input device"),
+const FFInputFormat ff_android_camera_demuxer = {
+ .p.name = "android_camera",
+ .p.long_name = NULL_IF_CONFIG_SMALL("Android camera input device"),
+ .p.flags = AVFMT_NOFILE,
+ .p.priv_class = &android_camera_class,
.priv_data_size = sizeof(AndroidCameraCtx),
.read_header = android_camera_read_header,
.read_packet = android_camera_read_packet,
.read_close = android_camera_read_close,
- .flags = AVFMT_NOFILE,
- .priv_class = &android_camera_class,
};
diff --git a/libavdevice/avdevice.c b/libavdevice/avdevice.c
index 38110ddfdb..cd7b03ef48 100644
--- a/libavdevice/avdevice.c
+++ b/libavdevice/avdevice.c
@@ -19,6 +19,7 @@
#include "libavutil/avassert.h"
#include "avdevice.h"
#include "internal.h"
+#include "libavformat/demux.h"
#include "libavformat/mux.h"
int avdevice_app_to_dev_control_message(struct AVFormatContext *s, enum AVAppToDevMessageType type,
@@ -44,7 +45,7 @@ int avdevice_list_devices(AVFormatContext *s, AVDeviceInfoList **device_list)
av_assert0(device_list);
av_assert0(s->oformat || s->iformat);
if ((s->oformat && !ffofmt(s->oformat)->get_device_list) ||
- (s->iformat && !s->iformat->get_device_list)) {
+ (s->iformat && !ffifmt(s->iformat)->get_device_list)) {
*device_list = NULL;
return AVERROR(ENOSYS);
}
@@ -56,7 +57,7 @@ int avdevice_list_devices(AVFormatContext *s, AVDeviceInfoList **device_list)
if (s->oformat)
ret = ffofmt(s->oformat)->get_device_list(s, *device_list);
else
- ret = s->iformat->get_device_list(s, *device_list);
+ ret = ffifmt(s->iformat)->get_device_list(s, *device_list);
if (ret < 0) {
avdevice_free_list_devices(device_list);
return ret;
diff --git a/libavdevice/bktr.c b/libavdevice/bktr.c
index 864726468f..a46adfafe0 100644
--- a/libavdevice/bktr.c
+++ b/libavdevice/bktr.c
@@ -24,6 +24,7 @@
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*/
+#include "libavformat/demux.h"
#include "libavformat/internal.h"
#include "libavutil/file_open.h"
#include "libavutil/internal.h"
@@ -352,13 +353,13 @@ static const AVClass bktr_class = {
.category = AV_CLASS_CATEGORY_DEVICE_VIDEO_INPUT,
};
-const AVInputFormat ff_bktr_demuxer = {
- .name = "bktr",
- .long_name = NULL_IF_CONFIG_SMALL("video grab"),
+const FFInputFormat ff_bktr_demuxer = {
+ .p.name = "bktr",
+ .p.long_name = NULL_IF_CONFIG_SMALL("video grab"),
+ .p.flags = AVFMT_NOFILE,
+ .p.priv_class = &bktr_class,
.priv_data_size = sizeof(VideoData),
.read_header = grab_read_header,
.read_packet = grab_read_packet,
.read_close = grab_read_close,
- .flags = AVFMT_NOFILE,
- .priv_class = &bktr_class,
};
diff --git a/libavdevice/decklink_dec_c.c b/libavdevice/decklink_dec_c.c
index 2159702c96..1863833ff4 100644
--- a/libavdevice/decklink_dec_c.c
+++ b/libavdevice/decklink_dec_c.c
@@ -21,6 +21,7 @@
*/
#include "libavformat/avformat.h"
+#include "libavformat/demux.h"
#include "libavutil/opt.h"
#include "decklink_common_c.h"
@@ -111,11 +112,11 @@ static const AVClass decklink_demuxer_class = {
.category = AV_CLASS_CATEGORY_DEVICE_VIDEO_INPUT,
};
-const AVInputFormat ff_decklink_demuxer = {
- .name = "decklink",
- .long_name = NULL_IF_CONFIG_SMALL("Blackmagic DeckLink input"),
- .flags = AVFMT_NOFILE,
- .priv_class = &decklink_demuxer_class,
+const FFInputFormat ff_decklink_demuxer = {
+ .p.name = "decklink",
+ .p.long_name = NULL_IF_CONFIG_SMALL("Blackmagic DeckLink input"),
+ .p.flags = AVFMT_NOFILE,
+ .p.priv_class = &decklink_demuxer_class,
.priv_data_size = sizeof(struct decklink_cctx),
.get_device_list = ff_decklink_list_input_devices,
.read_header = ff_decklink_read_header,
diff --git a/libavdevice/dshow.c b/libavdevice/dshow.c
index 5946a72cc2..0330d1d0b6 100644
--- a/libavdevice/dshow.c
+++ b/libavdevice/dshow.c
@@ -24,6 +24,7 @@
#include "libavutil/pixdesc.h"
#include "libavutil/opt.h"
#include "libavutil/mem.h"
+#include "libavformat/demux.h"
#include "libavformat/internal.h"
#include "libavformat/riff.h"
#include "avdevice.h"
@@ -1924,14 +1925,15 @@ static const AVClass dshow_class = {
.category = AV_CLASS_CATEGORY_DEVICE_VIDEO_INPUT,
};
-const AVInputFormat ff_dshow_demuxer = {
- .name = "dshow",
- .long_name = NULL_IF_CONFIG_SMALL("DirectShow capture"),
+const FFInputFormat ff_dshow_demuxer = {
+ .p.name = "dshow",
+ .p.long_name = NULL_IF_CONFIG_SMALL("DirectShow capture"),
+ .p.flags = AVFMT_NOFILE | AVFMT_NOBINSEARCH |
+ AVFMT_NOGENSEARCH | AVFMT_NO_BYTE_SEEK,
+ .p.priv_class = &dshow_class,
.priv_data_size = sizeof(struct dshow_ctx),
.read_header = dshow_read_header,
.read_packet = dshow_read_packet,
.read_close = dshow_read_close,
.get_device_list= dshow_get_device_list,
- .flags = AVFMT_NOFILE | AVFMT_NOBINSEARCH | AVFMT_NOGENSEARCH | AVFMT_NO_BYTE_SEEK,
- .priv_class = &dshow_class,
};
diff --git a/libavdevice/fbdev_dec.c b/libavdevice/fbdev_dec.c
index 460a71d13f..51e7bd73ab 100644
--- a/libavdevice/fbdev_dec.c
+++ b/libavdevice/fbdev_dec.c
@@ -41,6 +41,7 @@
#include "libavutil/time.h"
#include "libavutil/parseutils.h"
#include "libavutil/pixdesc.h"
+#include "libavformat/demux.h"
#include "libavformat/internal.h"
#include "avdevice.h"
#include "fbdev_common.h"
@@ -232,14 +233,14 @@ static const AVClass fbdev_class = {
.category = AV_CLASS_CATEGORY_DEVICE_VIDEO_INPUT,
};
-const AVInputFormat ff_fbdev_demuxer = {
- .name = "fbdev",
- .long_name = NULL_IF_CONFIG_SMALL("Linux framebuffer"),
+const FFInputFormat ff_fbdev_demuxer = {
+ .p.name = "fbdev",
+ .p.long_name = NULL_IF_CONFIG_SMALL("Linux framebuffer"),
+ .p.flags = AVFMT_NOFILE,
+ .p.priv_class = &fbdev_class,
.priv_data_size = sizeof(FBDevContext),
.read_header = fbdev_read_header,
.read_packet = fbdev_read_packet,
.read_close = fbdev_read_close,
.get_device_list = fbdev_get_device_list,
- .flags = AVFMT_NOFILE,
- .priv_class = &fbdev_class,
};
diff --git a/libavdevice/gdigrab.c b/libavdevice/gdigrab.c
index b2858ecd89..58e876ea9e 100644
--- a/libavdevice/gdigrab.c
+++ b/libavdevice/gdigrab.c
@@ -29,6 +29,7 @@
*/
#include "config.h"
+#include "libavformat/demux.h"
#include "libavformat/internal.h"
#include "libavutil/opt.h"
#include "libavutil/time.h"
@@ -677,13 +678,13 @@ static const AVClass gdigrab_class = {
};
/** gdi grabber device demuxer declaration */
-const AVInputFormat ff_gdigrab_demuxer = {
- .name = "gdigrab",
- .long_name = NULL_IF_CONFIG_SMALL("GDI API Windows frame grabber"),
+const FFInputFormat ff_gdigrab_demuxer = {
+ .p.name = "gdigrab",
+ .p.long_name = NULL_IF_CONFIG_SMALL("GDI API Windows frame grabber"),
+ .p.flags = AVFMT_NOFILE,
+ .p.priv_class = &gdigrab_class,
.priv_data_size = sizeof(struct gdigrab),
.read_header = gdigrab_read_header,
.read_packet = gdigrab_read_packet,
.read_close = gdigrab_read_close,
- .flags = AVFMT_NOFILE,
- .priv_class = &gdigrab_class,
};
diff --git a/libavdevice/iec61883.c b/libavdevice/iec61883.c
index 7223ba2e64..c88e1bd18c 100644
--- a/libavdevice/iec61883.c
+++ b/libavdevice/iec61883.c
@@ -30,6 +30,7 @@
#include <libavc1394/avc1394.h>
#include <libavc1394/rom1394.h>
#include <libiec61883/iec61883.h>
+#include "libavformat/demux.h"
#include "libavformat/dv.h"
#include "libavformat/mpegts.h"
#include "libavutil/opt.h"
@@ -502,13 +503,13 @@ static const AVClass iec61883_class = {
.category = AV_CLASS_CATEGORY_DEVICE_VIDEO_INPUT,
};
-const AVInputFormat ff_iec61883_demuxer = {
- .name = "iec61883",
- .long_name = NULL_IF_CONFIG_SMALL("libiec61883 (new DV1394) A/V input device"),
+const FFInputFormat ff_iec61883_demuxer = {
+ .p.name = "iec61883",
+ .p.long_name = NULL_IF_CONFIG_SMALL("libiec61883 (new DV1394) A/V input device"),
+ .p.flags = AVFMT_NOFILE,
+ .p.priv_class = &iec61883_class,
.priv_data_size = sizeof(struct iec61883_data),
.read_header = iec61883_read_header,
.read_packet = iec61883_read_packet,
.read_close = iec61883_close,
- .flags = AVFMT_NOFILE,
- .priv_class = &iec61883_class,
};
diff --git a/libavdevice/jack.c b/libavdevice/jack.c
index db056d824f..40f2af5ccc 100644
--- a/libavdevice/jack.c
+++ b/libavdevice/jack.c
@@ -30,6 +30,7 @@
#include "libavutil/opt.h"
#include "libavutil/time.h"
#include "libavformat/avformat.h"
+#include "libavformat/demux.h"
#include "libavformat/internal.h"
#include "timefilter.h"
#include "avdevice.h"
@@ -341,13 +342,13 @@ static const AVClass jack_indev_class = {
.category = AV_CLASS_CATEGORY_DEVICE_AUDIO_INPUT,
};
-const AVInputFormat ff_jack_demuxer = {
- .name = "jack",
- .long_name = NULL_IF_CONFIG_SMALL("JACK Audio Connection Kit"),
+const FFInputFormat ff_jack_demuxer = {
+ .p.name = "jack",
+ .p.long_name = NULL_IF_CONFIG_SMALL("JACK Audio Connection Kit"),
+ .p.flags = AVFMT_NOFILE,
+ .p.priv_class = &jack_indev_class,
.priv_data_size = sizeof(JackData),
.read_header = audio_read_header,
.read_packet = audio_read_packet,
.read_close = audio_read_close,
- .flags = AVFMT_NOFILE,
- .priv_class = &jack_indev_class,
};
diff --git a/libavdevice/kmsgrab.c b/libavdevice/kmsgrab.c
index ba9b306c65..bf6341e9fd 100644
--- a/libavdevice/kmsgrab.c
+++ b/libavdevice/kmsgrab.c
@@ -42,6 +42,7 @@
#include "libavutil/time.h"
#include "libavformat/avformat.h"
+#include "libavformat/demux.h"
#include "libavformat/internal.h"
typedef struct KMSGrabContext {
@@ -708,13 +709,13 @@ static const AVClass kmsgrab_class = {
.category = AV_CLASS_CATEGORY_DEVICE_VIDEO_INPUT,
};
-const AVInputFormat ff_kmsgrab_demuxer = {
- .name = "kmsgrab",
- .long_name = NULL_IF_CONFIG_SMALL("KMS screen capture"),
+const FFInputFormat ff_kmsgrab_demuxer = {
+ .p.name = "kmsgrab",
+ .p.long_name = NULL_IF_CONFIG_SMALL("KMS screen capture"),
+ .p.flags = AVFMT_NOFILE,
+ .p.priv_class = &kmsgrab_class,
.priv_data_size = sizeof(KMSGrabContext),
.read_header = &kmsgrab_read_header,
.read_packet = &kmsgrab_read_packet,
.read_close = &kmsgrab_read_close,
- .flags = AVFMT_NOFILE,
- .priv_class = &kmsgrab_class,
};
diff --git a/libavdevice/lavfi.c b/libavdevice/lavfi.c
index 2bfd0b81c7..58ad62bd97 100644
--- a/libavdevice/lavfi.c
+++ b/libavdevice/lavfi.c
@@ -39,6 +39,7 @@
#include "libavutil/pixdesc.h"
#include "libavfilter/avfilter.h"
#include "libavfilter/buffersink.h"
+#include "libavformat/demux.h"
#include "libavformat/internal.h"
#include "avdevice.h"
@@ -493,14 +494,14 @@ static const AVClass lavfi_class = {
.category = AV_CLASS_CATEGORY_DEVICE_INPUT,
};
-const AVInputFormat ff_lavfi_demuxer = {
- .name = "lavfi",
- .long_name = NULL_IF_CONFIG_SMALL("Libavfilter virtual input device"),
+const FFInputFormat ff_lavfi_demuxer = {
+ .p.name = "lavfi",
+ .p.long_name = NULL_IF_CONFIG_SMALL("Libavfilter virtual input device"),
+ .p.flags = AVFMT_NOFILE,
+ .p.priv_class = &lavfi_class,
.priv_data_size = sizeof(LavfiContext),
.read_header = lavfi_read_header,
.read_packet = lavfi_read_packet,
.read_close = lavfi_read_close,
- .flags = AVFMT_NOFILE,
- .priv_class = &lavfi_class,
.flags_internal = FF_FMT_INIT_CLEANUP,
};
diff --git a/libavdevice/libcdio.c b/libavdevice/libcdio.c
index 28c339564f..47ff8fd4d8 100644
--- a/libavdevice/libcdio.c
+++ b/libavdevice/libcdio.c
@@ -180,13 +180,13 @@ static const AVClass libcdio_class = {
.category = AV_CLASS_CATEGORY_DEVICE_AUDIO_INPUT,
};
-const AVInputFormat ff_libcdio_demuxer = {
- .name = "libcdio",
+const FFInputFormat ff_libcdio_demuxer = {
+ .p.name = "libcdio",
+ .p.flags = AVFMT_NOFILE,
+ .p.priv_class = &libcdio_class,
.read_header = read_header,
.read_packet = read_packet,
.read_close = read_close,
.read_seek = read_seek,
.priv_data_size = sizeof(CDIOContext),
- .flags = AVFMT_NOFILE,
- .priv_class = &libcdio_class,
};
diff --git a/libavdevice/libdc1394.c b/libavdevice/libdc1394.c
index e98b88c1a2..c73d07a60f 100644
--- a/libavdevice/libdc1394.c
+++ b/libavdevice/libdc1394.c
@@ -31,6 +31,7 @@
#include "libavutil/pixdesc.h"
#include "libavformat/avformat.h"
+#include "libavformat/demux.h"
#include "libavformat/internal.h"
typedef struct dc1394_data {
@@ -288,13 +289,13 @@ static int dc1394_close(AVFormatContext * context)
return 0;
}
-const AVInputFormat ff_libdc1394_demuxer = {
- .name = "libdc1394",
- .long_name = NULL_IF_CONFIG_SMALL("dc1394 v.2 A/V grab"),
+const FFInputFormat ff_libdc1394_demuxer = {
+ .p.name = "libdc1394",
+ .p.long_name = NULL_IF_CONFIG_SMALL("dc1394 v.2 A/V grab"),
+ .p.flags = AVFMT_NOFILE,
+ .p.priv_class = &libdc1394_class,
.priv_data_size = sizeof(struct dc1394_data),
.read_header = dc1394_read_header,
.read_packet = dc1394_read_packet,
.read_close = dc1394_close,
- .flags = AVFMT_NOFILE,
- .priv_class = &libdc1394_class,
};
diff --git a/libavdevice/openal-dec.c b/libavdevice/openal-dec.c
index 91a40ae020..53b34abd5a 100644
--- a/libavdevice/openal-dec.c
+++ b/libavdevice/openal-dec.c
@@ -26,6 +26,7 @@
#include "libavutil/opt.h"
#include "libavutil/time.h"
+#include "libavformat/demux.h"
#include "libavformat/internal.h"
#include "avdevice.h"
@@ -248,14 +249,14 @@ static const AVClass class = {
.category = AV_CLASS_CATEGORY_DEVICE_AUDIO_INPUT,
};
-const AVInputFormat ff_openal_demuxer = {
- .name = "openal",
- .long_name = NULL_IF_CONFIG_SMALL("OpenAL audio capture device"),
+const FFInputFormat ff_openal_demuxer = {
+ .p.name = "openal",
+ .p.long_name = NULL_IF_CONFIG_SMALL("OpenAL audio capture device"),
+ .p.flags = AVFMT_NOFILE,
+ .p.priv_class = &class,
.priv_data_size = sizeof(al_data),
.read_probe = NULL,
.read_header = read_header,
.read_packet = read_packet,
.read_close = read_close,
- .flags = AVFMT_NOFILE,
- .priv_class = &class
};
diff --git a/libavdevice/oss_dec.c b/libavdevice/oss_dec.c
index 2cdc4324e8..f727d6e110 100644
--- a/libavdevice/oss_dec.c
+++ b/libavdevice/oss_dec.c
@@ -35,6 +35,7 @@
#include "libavutil/time.h"
#include "avdevice.h"
+#include "libavformat/demux.h"
#include "libavformat/internal.h"
#include "oss.h"
@@ -130,13 +131,13 @@ static const AVClass oss_demuxer_class = {
.category = AV_CLASS_CATEGORY_DEVICE_AUDIO_INPUT,
};
-const AVInputFormat ff_oss_demuxer = {
- .name = "oss",
- .long_name = NULL_IF_CONFIG_SMALL("OSS (Open Sound System) capture"),
+const FFInputFormat ff_oss_demuxer = {
+ .p.name = "oss",
+ .p.long_name = NULL_IF_CONFIG_SMALL("OSS (Open Sound System) capture"),
+ .p.flags = AVFMT_NOFILE,
+ .p.priv_class = &oss_demuxer_class,
.priv_data_size = sizeof(OSSAudioData),
.read_header = audio_read_header,
.read_packet = audio_read_packet,
.read_close = audio_read_close,
- .flags = AVFMT_NOFILE,
- .priv_class = &oss_demuxer_class,
};
diff --git a/libavdevice/pulse_audio_dec.c b/libavdevice/pulse_audio_dec.c
index 2545462939..32be18e7dd 100644
--- a/libavdevice/pulse_audio_dec.c
+++ b/libavdevice/pulse_audio_dec.c
@@ -29,6 +29,7 @@
#include "libavutil/time.h"
#include "libavformat/avformat.h"
+#include "libavformat/demux.h"
#include "libavformat/internal.h"
#include "libavformat/version.h"
#include "pulse_audio_common.h"
@@ -393,14 +394,14 @@ static const AVClass pulse_demuxer_class = {
.category = AV_CLASS_CATEGORY_DEVICE_AUDIO_INPUT,
};
-const AVInputFormat ff_pulse_demuxer = {
- .name = "pulse",
- .long_name = NULL_IF_CONFIG_SMALL("Pulse audio input"),
+const FFInputFormat ff_pulse_demuxer = {
+ .p.name = "pulse",
+ .p.long_name = NULL_IF_CONFIG_SMALL("Pulse audio input"),
+ .p.flags = AVFMT_NOFILE,
+ .p.priv_class = &pulse_demuxer_class,
.priv_data_size = sizeof(PulseData),
.read_header = pulse_read_header,
.read_packet = pulse_read_packet,
.read_close = pulse_close,
.get_device_list = pulse_get_device_list,
- .flags = AVFMT_NOFILE,
- .priv_class = &pulse_demuxer_class,
};
diff --git a/libavdevice/sndio_dec.c b/libavdevice/sndio_dec.c
index 6059830367..309394189b 100644
--- a/libavdevice/sndio_dec.c
+++ b/libavdevice/sndio_dec.c
@@ -27,6 +27,7 @@
#include "libavutil/time.h"
#include "libavformat/avformat.h"
+#include "libavformat/demux.h"
#include "libavformat/internal.h"
#include "libavdevice/sndio.h"
@@ -109,13 +110,13 @@ static const AVClass sndio_demuxer_class = {
.category = AV_CLASS_CATEGORY_DEVICE_AUDIO_INPUT,
};
-const AVInputFormat ff_sndio_demuxer = {
- .name = "sndio",
- .long_name = NULL_IF_CONFIG_SMALL("sndio audio capture"),
+const FFInputFormat ff_sndio_demuxer = {
+ .p.name = "sndio",
+ .p.long_name = NULL_IF_CONFIG_SMALL("sndio audio capture"),
+ .p.flags = AVFMT_NOFILE,
+ .p.priv_class = &sndio_demuxer_class,
.priv_data_size = sizeof(SndioData),
.read_header = audio_read_header,
.read_packet = audio_read_packet,
.read_close = audio_read_close,
- .flags = AVFMT_NOFILE,
- .priv_class = &sndio_demuxer_class,
};
diff --git a/libavdevice/utils.c b/libavdevice/utils.c
index d9a52c53ab..c72a839dfa 100644
--- a/libavdevice/utils.c
+++ b/libavdevice/utils.c
@@ -19,6 +19,7 @@
#include "internal.h"
#include "libavutil/opt.h"
#include "libavformat/avformat.h"
+#include "libavformat/demux.h"
int ff_alloc_input_device_context(AVFormatContext **avctx, const AVInputFormat *iformat, const char *format)
{
@@ -38,8 +39,8 @@ int ff_alloc_input_device_context(AVFormatContext **avctx, const AVInputFormat *
goto error;
}
s->iformat = iformat;
- if (s->iformat->priv_data_size > 0) {
- s->priv_data = av_mallocz(s->iformat->priv_data_size);
+ if (ffifmt(s->iformat)->priv_data_size > 0) {
+ s->priv_data = av_mallocz(ffifmt(s->iformat)->priv_data_size);
if (!s->priv_data) {
ret = AVERROR(ENOMEM);
goto error;
diff --git a/libavdevice/v4l2.c b/libavdevice/v4l2.c
index 5e85d1a2b3..818b874eb1 100644
--- a/libavdevice/v4l2.c
+++ b/libavdevice/v4l2.c
@@ -1134,15 +1134,15 @@ static const AVClass v4l2_class = {
.category = AV_CLASS_CATEGORY_DEVICE_VIDEO_INPUT,
};
-const AVInputFormat ff_v4l2_demuxer = {
- .name = "video4linux2,v4l2",
- .long_name = NULL_IF_CONFIG_SMALL("Video4Linux2 device grab"),
+const FFInputFormat ff_v4l2_demuxer = {
+ .p.name = "video4linux2,v4l2",
+ .p.long_name = NULL_IF_CONFIG_SMALL("Video4Linux2 device grab"),
+ .p.flags = AVFMT_NOFILE,
+ .p.priv_class = &v4l2_class,
.priv_data_size = sizeof(struct video_data),
.read_probe = v4l2_read_probe,
.read_header = v4l2_read_header,
.read_packet = v4l2_read_packet,
.read_close = v4l2_read_close,
.get_device_list = v4l2_get_device_list,
- .flags = AVFMT_NOFILE,
- .priv_class = &v4l2_class,
};
diff --git a/libavdevice/vfwcap.c b/libavdevice/vfwcap.c
index 86a40b4af4..dd077dd08c 100644
--- a/libavdevice/vfwcap.c
+++ b/libavdevice/vfwcap.c
@@ -25,6 +25,7 @@
#include "libavutil/parseutils.h"
#include "libavcodec/packet_internal.h"
+#include "libavformat/demux.h"
#include "libavformat/internal.h"
// windows.h must no be included before winsock2.h, and libavformat internal
@@ -482,13 +483,13 @@ static const AVClass vfw_class = {
.category = AV_CLASS_CATEGORY_DEVICE_VIDEO_INPUT
};
-const AVInputFormat ff_vfwcap_demuxer = {
- .name = "vfwcap",
- .long_name = NULL_IF_CONFIG_SMALL("VfW video capture"),
+const FFInputFormat ff_vfwcap_demuxer = {
+ .p.name = "vfwcap",
+ .p.long_name = NULL_IF_CONFIG_SMALL("VfW video capture"),
+ .p.flags = AVFMT_NOFILE,
+ .p.priv_class = &vfw_class,
.priv_data_size = sizeof(struct vfw_ctx),
.read_header = vfw_read_header,
.read_packet = vfw_read_packet,
.read_close = vfw_read_close,
- .flags = AVFMT_NOFILE,
- .priv_class = &vfw_class,
};
diff --git a/libavdevice/xcbgrab.c b/libavdevice/xcbgrab.c
index 64a68ba497..8feae17455 100644
--- a/libavdevice/xcbgrab.c
+++ b/libavdevice/xcbgrab.c
@@ -45,6 +45,7 @@
#include "libavutil/time.h"
#include "libavformat/avformat.h"
+#include "libavformat/demux.h"
#include "libavformat/internal.h"
typedef struct XCBGrabContext {
@@ -900,13 +901,13 @@ static av_cold int xcbgrab_read_header(AVFormatContext *s)
return 0;
}
-const AVInputFormat ff_xcbgrab_demuxer = {
- .name = "x11grab",
- .long_name = NULL_IF_CONFIG_SMALL("X11 screen capture, using XCB"),
+const FFInputFormat ff_xcbgrab_demuxer = {
+ .p.name = "x11grab",
+ .p.long_name = NULL_IF_CONFIG_SMALL("X11 screen capture, using XCB"),
+ .p.flags = AVFMT_NOFILE,
+ .p.priv_class = &xcbgrab_class,
.priv_data_size = sizeof(XCBGrabContext),
.read_header = xcbgrab_read_header,
.read_packet = xcbgrab_read_packet,
.read_close = xcbgrab_read_close,
- .flags = AVFMT_NOFILE,
- .priv_class = &xcbgrab_class,
};
diff --git a/libavformat/3dostr.c b/libavformat/3dostr.c
index fea12d03e6..78b8205904 100644
--- a/libavformat/3dostr.c
+++ b/libavformat/3dostr.c
@@ -21,6 +21,7 @@
#include "libavutil/intreadwrite.h"
#include "avformat.h"
+#include "demux.h"
#include "internal.h"
static int threedostr_probe(const AVProbeData *p)
@@ -191,12 +192,12 @@ static int threedostr_read_packet(AVFormatContext *s, AVPacket *pkt)
return AVERROR_EOF;
}
-const AVInputFormat ff_threedostr_demuxer = {
- .name = "3dostr",
- .long_name = NULL_IF_CONFIG_SMALL("3DO STR"),
+const FFInputFormat ff_threedostr_demuxer = {
+ .p.name = "3dostr",
+ .p.long_name = NULL_IF_CONFIG_SMALL("3DO STR"),
+ .p.extensions = "str",
+ .p.flags = AVFMT_GENERIC_INDEX,
.read_probe = threedostr_probe,
.read_header = threedostr_read_header,
.read_packet = threedostr_read_packet,
- .extensions = "str",
- .flags = AVFMT_GENERIC_INDEX,
};
diff --git a/libavformat/4xm.c b/libavformat/4xm.c
index fdf6e4b84b..3424791b81 100644
--- a/libavformat/4xm.c
+++ b/libavformat/4xm.c
@@ -31,6 +31,7 @@
#include "libavutil/intfloat.h"
#include "libavcodec/internal.h"
#include "avformat.h"
+#include "demux.h"
#include "internal.h"
#define RIFF_TAG MKTAG('R', 'I', 'F', 'F')
@@ -396,9 +397,9 @@ static int fourxm_read_close(AVFormatContext *s)
return 0;
}
-const AVInputFormat ff_fourxm_demuxer = {
- .name = "4xm",
- .long_name = NULL_IF_CONFIG_SMALL("4X Technologies"),
+const FFInputFormat ff_fourxm_demuxer = {
+ .p.name = "4xm",
+ .p.long_name = NULL_IF_CONFIG_SMALL("4X Technologies"),
.priv_data_size = sizeof(FourxmDemuxContext),
.flags_internal = FF_FMT_INIT_CLEANUP,
.read_probe = fourxm_probe,
diff --git a/libavformat/aacdec.c b/libavformat/aacdec.c
index 4da98a6884..e267886e1a 100644
--- a/libavformat/aacdec.c
+++ b/libavformat/aacdec.c
@@ -24,6 +24,7 @@
#include "libavutil/intreadwrite.h"
#include "avformat.h"
#include "avio_internal.h"
+#include "demux.h"
#include "internal.h"
#include "id3v1.h"
#include "id3v2.h"
@@ -208,14 +209,14 @@ retry:
return ret;
}
-const AVInputFormat ff_aac_demuxer = {
- .name = "aac",
- .long_name = NULL_IF_CONFIG_SMALL("raw ADTS AAC (Advanced Audio Coding)"),
+const FFInputFormat ff_aac_demuxer = {
+ .p.name = "aac",
+ .p.long_name = NULL_IF_CONFIG_SMALL("raw ADTS AAC (Advanced Audio Coding)"),
+ .p.flags = AVFMT_GENERIC_INDEX,
+ .p.extensions = "aac",
+ .p.mime_type = "audio/aac,audio/aacp,audio/x-aac",
.read_probe = adts_aac_probe,
.read_header = adts_aac_read_header,
.read_packet = adts_aac_read_packet,
- .flags = AVFMT_GENERIC_INDEX,
- .extensions = "aac",
- .mime_type = "audio/aac,audio/aacp,audio/x-aac",
.raw_codec_id = AV_CODEC_ID_AAC,
};
diff --git a/libavformat/aadec.c b/libavformat/aadec.c
index e7b048b1f9..dd698d0d5d 100644
--- a/libavformat/aadec.c
+++ b/libavformat/aadec.c
@@ -371,17 +371,17 @@ static const AVClass aa_class = {
.version = LIBAVUTIL_VERSION_INT,
};
-const AVInputFormat ff_aa_demuxer = {
- .name = "aa",
- .long_name = NULL_IF_CONFIG_SMALL("Audible AA format files"),
- .priv_class = &aa_class,
+const FFInputFormat ff_aa_demuxer = {
+ .p.name = "aa",
+ .p.long_name = NULL_IF_CONFIG_SMALL("Audible AA format files"),
+ .p.priv_class = &aa_class,
+ .p.extensions = "aa",
+ .p.flags = AVFMT_NO_BYTE_SEEK | AVFMT_NOGENSEARCH,
.priv_data_size = sizeof(AADemuxContext),
- .extensions = "aa",
.read_probe = aa_probe,
.read_header = aa_read_header,
.read_packet = aa_read_packet,
.read_seek = aa_read_seek,
.read_close = aa_read_close,
- .flags = AVFMT_NO_BYTE_SEEK | AVFMT_NOGENSEARCH,
.flags_internal = FF_FMT_INIT_CLEANUP,
};
diff --git a/libavformat/aaxdec.c b/libavformat/aaxdec.c
index 4e352f8ce3..0ccd4944db 100644
--- a/libavformat/aaxdec.c
+++ b/libavformat/aaxdec.c
@@ -383,15 +383,15 @@ static int aax_read_close(AVFormatContext *s)
return 0;
}
-const AVInputFormat ff_aax_demuxer = {
- .name = "aax",
- .long_name = NULL_IF_CONFIG_SMALL("CRI AAX"),
+const FFInputFormat ff_aax_demuxer = {
+ .p.name = "aax",
+ .p.long_name = NULL_IF_CONFIG_SMALL("CRI AAX"),
+ .p.extensions = "aax",
+ .p.flags = AVFMT_GENERIC_INDEX,
.priv_data_size = sizeof(AAXContext),
.flags_internal = FF_FMT_INIT_CLEANUP,
.read_probe = aax_probe,
.read_header = aax_read_header,
.read_packet = aax_read_packet,
.read_close = aax_read_close,
- .extensions = "aax",
- .flags = AVFMT_GENERIC_INDEX,
};
diff --git a/libavformat/ac3dec.c b/libavformat/ac3dec.c
index 989d126a81..0b1557d68c 100644
--- a/libavformat/ac3dec.c
+++ b/libavformat/ac3dec.c
@@ -25,6 +25,7 @@
#include "libavutil/crc.h"
#include "libavcodec/ac3_parser.h"
#include "avformat.h"
+#include "demux.h"
#include "rawdec.h"
static int ac3_eac3_probe(const AVProbeData *p, enum AVCodecID expected_codec_id)
@@ -104,17 +105,17 @@ static int ac3_probe(const AVProbeData *p)
return ac3_eac3_probe(p, AV_CODEC_ID_AC3);
}
-const AVInputFormat ff_ac3_demuxer = {
- .name = "ac3",
- .long_name = NULL_IF_CONFIG_SMALL("raw AC-3"),
+const FFInputFormat ff_ac3_demuxer = {
+ .p.name = "ac3",
+ .p.long_name = NULL_IF_CONFIG_SMALL("raw AC-3"),
+ .p.flags = AVFMT_GENERIC_INDEX,
+ .p.extensions = "ac3",
+ .p.priv_class = &ff_raw_demuxer_class,
.read_probe = ac3_probe,
.read_header = ff_raw_audio_read_header,
.read_packet = ff_raw_read_partial_packet,
- .flags= AVFMT_GENERIC_INDEX,
- .extensions = "ac3",
.raw_codec_id = AV_CODEC_ID_AC3,
.priv_data_size = sizeof(FFRawDemuxerContext),
- .priv_class = &ff_raw_demuxer_class,
};
#endif
@@ -124,16 +125,16 @@ static int eac3_probe(const AVProbeData *p)
return ac3_eac3_probe(p, AV_CODEC_ID_EAC3);
}
-const AVInputFormat ff_eac3_demuxer = {
- .name = "eac3",
- .long_name = NULL_IF_CONFIG_SMALL("raw E-AC-3"),
+const FFInputFormat ff_eac3_demuxer = {
+ .p.name = "eac3",
+ .p.long_name = NULL_IF_CONFIG_SMALL("raw E-AC-3"),
+ .p.flags = AVFMT_GENERIC_INDEX,
+ .p.extensions = "eac3,ec3",
+ .p.priv_class = &ff_raw_demuxer_class,
.read_probe = eac3_probe,
.read_header = ff_raw_audio_read_header,
.read_packet = ff_raw_read_partial_packet,
- .flags = AVFMT_GENERIC_INDEX,
- .extensions = "eac3,ec3",
.raw_codec_id = AV_CODEC_ID_EAC3,
.priv_data_size = sizeof(FFRawDemuxerContext),
- .priv_class = &ff_raw_demuxer_class,
};
#endif
diff --git a/libavformat/ac4dec.c b/libavformat/ac4dec.c
index 71950f52dc..f647f557cc 100644
--- a/libavformat/ac4dec.c
+++ b/libavformat/ac4dec.c
@@ -22,6 +22,7 @@
#include "libavutil/avassert.h"
#include "libavutil/crc.h"
#include "avformat.h"
+#include "demux.h"
#include "rawdec.h"
static int ac4_probe(const AVProbeData *p)
@@ -93,12 +94,12 @@ static int ac4_read_packet(AVFormatContext *s, AVPacket *pkt)
return ret;
}
-const AVInputFormat ff_ac4_demuxer = {
- .name = "ac4",
- .long_name = NULL_IF_CONFIG_SMALL("raw AC-4"),
+const FFInputFormat ff_ac4_demuxer = {
+ .p.name = "ac4",
+ .p.long_name = NULL_IF_CONFIG_SMALL("raw AC-4"),
+ .p.flags = AVFMT_GENERIC_INDEX,
+ .p.extensions = "ac4",
.read_probe = ac4_probe,
.read_header = ac4_read_header,
.read_packet = ac4_read_packet,
- .flags = AVFMT_GENERIC_INDEX,
- .extensions = "ac4",
};
diff --git a/libavformat/acedec.c b/libavformat/acedec.c
index 6322af31f3..5ab6de02f4 100644
--- a/libavformat/acedec.c
+++ b/libavformat/acedec.c
@@ -21,6 +21,7 @@
#include "libavutil/intreadwrite.h"
#include "avformat.h"
+#include "demux.h"
#include "internal.h"
static int ace_probe(const AVProbeData *p)
@@ -104,11 +105,11 @@ static int ace_read_packet(AVFormatContext *s, AVPacket *pkt)
return av_get_packet(s->pb, pkt, par->block_align);
}
-const AVInputFormat ff_ace_demuxer = {
- .name = "ace",
- .long_name = NULL_IF_CONFIG_SMALL("tri-Ace Audio Container"),
+const FFInputFormat ff_ace_demuxer = {
+ .p.name = "ace",
+ .p.long_name = NULL_IF_CONFIG_SMALL("tri-Ace Audio Container"),
+ .p.flags = AVFMT_GENERIC_INDEX,
.read_probe = ace_probe,
.read_header = ace_read_header,
.read_packet = ace_read_packet,
- .flags = AVFMT_GENERIC_INDEX,
};
diff --git a/libavformat/acm.c b/libavformat/acm.c
index 28a040330f..b9126ef824 100644
--- a/libavformat/acm.c
+++ b/libavformat/acm.c
@@ -61,15 +61,15 @@ static int acm_read_header(AVFormatContext *s)
return 0;
}
-const AVInputFormat ff_acm_demuxer = {
- .name = "acm",
- .long_name = NULL_IF_CONFIG_SMALL("Interplay ACM"),
+const FFInputFormat ff_acm_demuxer = {
+ .p.name = "acm",
+ .p.long_name = NULL_IF_CONFIG_SMALL("Interplay ACM"),
+ .p.flags = AVFMT_NOBINSEARCH | AVFMT_NOGENSEARCH | AVFMT_NO_BYTE_SEEK | AVFMT_NOTIMESTAMPS,
+ .p.extensions = "acm",
+ .p.priv_class = &ff_raw_demuxer_class,
.read_probe = acm_probe,
.read_header = acm_read_header,
.read_packet = ff_raw_read_partial_packet,
- .flags = AVFMT_NOBINSEARCH | AVFMT_NOGENSEARCH | AVFMT_NO_BYTE_SEEK | AVFMT_NOTIMESTAMPS,
- .extensions = "acm",
.raw_codec_id = AV_CODEC_ID_INTERPLAY_ACM,
.priv_data_size = sizeof(FFRawDemuxerContext),
- .priv_class = &ff_raw_demuxer_class,
};
diff --git a/libavformat/act.c b/libavformat/act.c
index da73fcceca..255568dd3c 100644
--- a/libavformat/act.c
+++ b/libavformat/act.c
@@ -22,6 +22,7 @@
#include "libavutil/intreadwrite.h"
#include "avformat.h"
#include "avio_internal.h"
+#include "demux.h"
#include "riff.h"
#include "internal.h"
@@ -198,9 +199,9 @@ static int read_packet(AVFormatContext *s,
return ret;
}
-const AVInputFormat ff_act_demuxer = {
- .name = "act",
- .long_name = "ACT Voice file format",
+const FFInputFormat ff_act_demuxer = {
+ .p.name = "act",
+ .p.long_name = "ACT Voice file format",
.priv_data_size = sizeof(ACTContext),
.read_probe = probe,
.read_header = read_header,
diff --git a/libavformat/adp.c b/libavformat/adp.c
index c9a5a04507..2e69c7a199 100644
--- a/libavformat/adp.c
+++ b/libavformat/adp.c
@@ -22,6 +22,7 @@
#include "libavutil/channel_layout.h"
#include "libavutil/intreadwrite.h"
#include "avformat.h"
+#include "demux.h"
#include "internal.h"
static int adp_probe(const AVProbeData *p)
@@ -82,11 +83,11 @@ static int adp_read_packet(AVFormatContext *s, AVPacket *pkt)
return ret;
}
-const AVInputFormat ff_adp_demuxer = {
- .name = "adp",
- .long_name = NULL_IF_CONFIG_SMALL("ADP"),
+const FFInputFormat ff_adp_demuxer = {
+ .p.name = "adp",
+ .p.long_name = NULL_IF_CONFIG_SMALL("ADP"),
+ .p.extensions = "adp,dtk",
.read_probe = adp_probe,
.read_header = adp_read_header,
.read_packet = adp_read_packet,
- .extensions = "adp,dtk",
};
diff --git a/libavformat/ads.c b/libavformat/ads.c
index c19498490d..ea81248765 100644
--- a/libavformat/ads.c
+++ b/libavformat/ads.c
@@ -21,6 +21,7 @@
#include "libavutil/channel_layout.h"
#include "avformat.h"
+#include "demux.h"
#include "internal.h"
static int ads_probe(const AVProbeData *p)
@@ -80,11 +81,11 @@ static int ads_read_packet(AVFormatContext *s, AVPacket *pkt)
return ret;
}
-const AVInputFormat ff_ads_demuxer = {
- .name = "ads",
- .long_name = NULL_IF_CONFIG_SMALL("Sony PS2 ADS"),
+const FFInputFormat ff_ads_demuxer = {
+ .p.name = "ads",
+ .p.long_name = NULL_IF_CONFIG_SMALL("Sony PS2 ADS"),
+ .p.extensions = "ads,ss2",
.read_probe = ads_probe,
.read_header = ads_read_header,
.read_packet = ads_read_packet,
- .extensions = "ads,ss2",
};
diff --git a/libavformat/adxdec.c b/libavformat/adxdec.c
index b6bd3303a7..0909884f19 100644
--- a/libavformat/adxdec.c
+++ b/libavformat/adxdec.c
@@ -128,14 +128,14 @@ static int adx_read_header(AVFormatContext *s)
return 0;
}
-const AVInputFormat ff_adx_demuxer = {
- .name = "adx",
- .long_name = NULL_IF_CONFIG_SMALL("CRI ADX"),
+const FFInputFormat ff_adx_demuxer = {
+ .p.name = "adx",
+ .p.long_name = NULL_IF_CONFIG_SMALL("CRI ADX"),
+ .p.extensions = "adx",
+ .p.flags = AVFMT_GENERIC_INDEX,
.read_probe = adx_probe,
.priv_data_size = sizeof(ADXDemuxerContext),
.read_header = adx_read_header,
.read_packet = adx_read_packet,
- .extensions = "adx",
.raw_codec_id = AV_CODEC_ID_ADPCM_ADX,
- .flags = AVFMT_GENERIC_INDEX,
};
diff --git a/libavformat/aea.c b/libavformat/aea.c
index 52e3147729..4cb2da6639 100644
--- a/libavformat/aea.c
+++ b/libavformat/aea.c
@@ -23,6 +23,7 @@
#include "libavutil/channel_layout.h"
#include "libavutil/intreadwrite.h"
#include "avformat.h"
+#include "demux.h"
#include "pcm.h"
#define AT1_SU_SIZE 212
@@ -89,13 +90,13 @@ static int aea_read_packet(AVFormatContext *s, AVPacket *pkt)
return av_get_packet(s->pb, pkt, s->streams[0]->codecpar->block_align);
}
-const AVInputFormat ff_aea_demuxer = {
- .name = "aea",
- .long_name = NULL_IF_CONFIG_SMALL("MD STUDIO audio"),
+const FFInputFormat ff_aea_demuxer = {
+ .p.name = "aea",
+ .p.long_name = NULL_IF_CONFIG_SMALL("MD STUDIO audio"),
+ .p.flags = AVFMT_GENERIC_INDEX,
+ .p.extensions = "aea",
.read_probe = aea_read_probe,
.read_header = aea_read_header,
.read_packet = aea_read_packet,
.read_seek = ff_pcm_read_seek,
- .flags = AVFMT_GENERIC_INDEX,
- .extensions = "aea",
};
diff --git a/libavformat/afc.c b/libavformat/afc.c
index 898c7d03eb..3113554c0f 100644
--- a/libavformat/afc.c
+++ b/libavformat/afc.c
@@ -21,6 +21,7 @@
#include "libavutil/channel_layout.h"
#include "avformat.h"
+#include "demux.h"
#include "internal.h"
typedef struct AFCDemuxContext {
@@ -68,12 +69,12 @@ static int afc_read_packet(AVFormatContext *s, AVPacket *pkt)
return ret;
}
-const AVInputFormat ff_afc_demuxer = {
- .name = "afc",
- .long_name = NULL_IF_CONFIG_SMALL("AFC"),
+const FFInputFormat ff_afc_demuxer = {
+ .p.name = "afc",
+ .p.long_name = NULL_IF_CONFIG_SMALL("AFC"),
+ .p.extensions = "afc",
+ .p.flags = AVFMT_NOBINSEARCH | AVFMT_NOGENSEARCH | AVFMT_NO_BYTE_SEEK,
.priv_data_size = sizeof(AFCDemuxContext),
.read_header = afc_read_header,
.read_packet = afc_read_packet,
- .extensions = "afc",
- .flags = AVFMT_NOBINSEARCH | AVFMT_NOGENSEARCH | AVFMT_NO_BYTE_SEEK,
};
diff --git a/libavformat/aiffdec.c b/libavformat/aiffdec.c
index 5314d159ef..9318943f96 100644
--- a/libavformat/aiffdec.c
+++ b/libavformat/aiffdec.c
@@ -433,13 +433,13 @@ static int aiff_read_packet(AVFormatContext *s,
return 0;
}
-const AVInputFormat ff_aiff_demuxer = {
- .name = "aiff",
- .long_name = NULL_IF_CONFIG_SMALL("Audio IFF"),
+const FFInputFormat ff_aiff_demuxer = {
+ .p.name = "aiff",
+ .p.long_name = NULL_IF_CONFIG_SMALL("Audio IFF"),
+ .p.codec_tag = ff_aiff_codec_tags_list,
.priv_data_size = sizeof(AIFFInputContext),
.read_probe = aiff_probe,
.read_header = aiff_read_header,
.read_packet = aiff_read_packet,
.read_seek = ff_pcm_read_seek,
- .codec_tag = ff_aiff_codec_tags_list,
};
diff --git a/libavformat/aixdec.c b/libavformat/aixdec.c
index f7d8e17acd..edecbac5b3 100644
--- a/libavformat/aixdec.c
+++ b/libavformat/aixdec.c
@@ -130,12 +130,12 @@ static int aix_read_packet(AVFormatContext *s, AVPacket *pkt)
return ret;
}
-const AVInputFormat ff_aix_demuxer = {
- .name = "aix",
- .long_name = NULL_IF_CONFIG_SMALL("CRI AIX"),
+const FFInputFormat ff_aix_demuxer = {
+ .p.name = "aix",
+ .p.long_name = NULL_IF_CONFIG_SMALL("CRI AIX"),
+ .p.extensions= "aix",
+ .p.flags = AVFMT_GENERIC_INDEX,
.read_probe = aix_probe,
.read_header = aix_read_header,
.read_packet = aix_read_packet,
- .extensions = "aix",
- .flags = AVFMT_GENERIC_INDEX,
};
diff --git a/libavformat/allformats.c b/libavformat/allformats.c
index b04b43cab3..32e443e3b1 100644
--- a/libavformat/allformats.c
+++ b/libavformat/allformats.c
@@ -25,268 +25,269 @@
#include "libavformat/internal.h"
#include "avformat.h"
+#include "demux.h"
#include "mux.h"
/* (de)muxers */
extern const FFOutputFormat ff_a64_muxer;
-extern const AVInputFormat ff_aa_demuxer;
-extern const AVInputFormat ff_aac_demuxer;
-extern const AVInputFormat ff_aax_demuxer;
-extern const AVInputFormat ff_ac3_demuxer;
+extern const FFInputFormat ff_aa_demuxer;
+extern const FFInputFormat ff_aac_demuxer;
+extern const FFInputFormat ff_aax_demuxer;
+extern const FFInputFormat ff_ac3_demuxer;
extern const FFOutputFormat ff_ac3_muxer;
-extern const AVInputFormat ff_ac4_demuxer;
+extern const FFInputFormat ff_ac4_demuxer;
extern const FFOutputFormat ff_ac4_muxer;
-extern const AVInputFormat ff_ace_demuxer;
-extern const AVInputFormat ff_acm_demuxer;
-extern const AVInputFormat ff_act_demuxer;
-extern const AVInputFormat ff_adf_demuxer;
-extern const AVInputFormat ff_adp_demuxer;
-extern const AVInputFormat ff_ads_demuxer;
+extern const FFInputFormat ff_ace_demuxer;
+extern const FFInputFormat ff_acm_demuxer;
+extern const FFInputFormat ff_act_demuxer;
+extern const FFInputFormat ff_adf_demuxer;
+extern const FFInputFormat ff_adp_demuxer;
+extern const FFInputFormat ff_ads_demuxer;
extern const FFOutputFormat ff_adts_muxer;
-extern const AVInputFormat ff_adx_demuxer;
+extern const FFInputFormat ff_adx_demuxer;
extern const FFOutputFormat ff_adx_muxer;
-extern const AVInputFormat ff_aea_demuxer;
-extern const AVInputFormat ff_afc_demuxer;
-extern const AVInputFormat ff_aiff_demuxer;
+extern const FFInputFormat ff_aea_demuxer;
+extern const FFInputFormat ff_afc_demuxer;
+extern const FFInputFormat ff_aiff_demuxer;
extern const FFOutputFormat ff_aiff_muxer;
-extern const AVInputFormat ff_aix_demuxer;
-extern const AVInputFormat ff_alp_demuxer;
+extern const FFInputFormat ff_aix_demuxer;
+extern const FFInputFormat ff_alp_demuxer;
extern const FFOutputFormat ff_alp_muxer;
-extern const AVInputFormat ff_amr_demuxer;
+extern const FFInputFormat ff_amr_demuxer;
extern const FFOutputFormat ff_amr_muxer;
-extern const AVInputFormat ff_amrnb_demuxer;
-extern const AVInputFormat ff_amrwb_demuxer;
+extern const FFInputFormat ff_amrnb_demuxer;
+extern const FFInputFormat ff_amrwb_demuxer;
extern const FFOutputFormat ff_amv_muxer;
-extern const AVInputFormat ff_anm_demuxer;
-extern const AVInputFormat ff_apac_demuxer;
-extern const AVInputFormat ff_apc_demuxer;
-extern const AVInputFormat ff_ape_demuxer;
-extern const AVInputFormat ff_apm_demuxer;
+extern const FFInputFormat ff_anm_demuxer;
+extern const FFInputFormat ff_apac_demuxer;
+extern const FFInputFormat ff_apc_demuxer;
+extern const FFInputFormat ff_ape_demuxer;
+extern const FFInputFormat ff_apm_demuxer;
extern const FFOutputFormat ff_apm_muxer;
-extern const AVInputFormat ff_apng_demuxer;
+extern const FFInputFormat ff_apng_demuxer;
extern const FFOutputFormat ff_apng_muxer;
-extern const AVInputFormat ff_aptx_demuxer;
+extern const FFInputFormat ff_aptx_demuxer;
extern const FFOutputFormat ff_aptx_muxer;
-extern const AVInputFormat ff_aptx_hd_demuxer;
+extern const FFInputFormat ff_aptx_hd_demuxer;
extern const FFOutputFormat ff_aptx_hd_muxer;
-extern const AVInputFormat ff_aqtitle_demuxer;
-extern const AVInputFormat ff_argo_asf_demuxer;
+extern const FFInputFormat ff_aqtitle_demuxer;
+extern const FFInputFormat ff_argo_asf_demuxer;
extern const FFOutputFormat ff_argo_asf_muxer;
-extern const AVInputFormat ff_argo_brp_demuxer;
-extern const AVInputFormat ff_argo_cvg_demuxer;
+extern const FFInputFormat ff_argo_brp_demuxer;
+extern const FFInputFormat ff_argo_cvg_demuxer;
extern const FFOutputFormat ff_argo_cvg_muxer;
-extern const AVInputFormat ff_asf_demuxer;
+extern const FFInputFormat ff_asf_demuxer;
extern const FFOutputFormat ff_asf_muxer;
-extern const AVInputFormat ff_asf_o_demuxer;
-extern const AVInputFormat ff_ass_demuxer;
+extern const FFInputFormat ff_asf_o_demuxer;
+extern const FFInputFormat ff_ass_demuxer;
extern const FFOutputFormat ff_ass_muxer;
-extern const AVInputFormat ff_ast_demuxer;
+extern const FFInputFormat ff_ast_demuxer;
extern const FFOutputFormat ff_ast_muxer;
extern const FFOutputFormat ff_asf_stream_muxer;
-extern const AVInputFormat ff_au_demuxer;
+extern const FFInputFormat ff_au_demuxer;
extern const FFOutputFormat ff_au_muxer;
-extern const AVInputFormat ff_av1_demuxer;
-extern const AVInputFormat ff_avi_demuxer;
+extern const FFInputFormat ff_av1_demuxer;
+extern const FFInputFormat ff_avi_demuxer;
extern const FFOutputFormat ff_avi_muxer;
extern const FFOutputFormat ff_avif_muxer;
-extern const AVInputFormat ff_avisynth_demuxer;
+extern const FFInputFormat ff_avisynth_demuxer;
extern const FFOutputFormat ff_avm2_muxer;
-extern const AVInputFormat ff_avr_demuxer;
-extern const AVInputFormat ff_avs_demuxer;
-extern const AVInputFormat ff_avs2_demuxer;
+extern const FFInputFormat ff_avr_demuxer;
+extern const FFInputFormat ff_avs_demuxer;
+extern const FFInputFormat ff_avs2_demuxer;
extern const FFOutputFormat ff_avs2_muxer;
-extern const AVInputFormat ff_avs3_demuxer;
+extern const FFInputFormat ff_avs3_demuxer;
extern const FFOutputFormat ff_avs3_muxer;
-extern const AVInputFormat ff_bethsoftvid_demuxer;
-extern const AVInputFormat ff_bfi_demuxer;
-extern const AVInputFormat ff_bintext_demuxer;
-extern const AVInputFormat ff_bink_demuxer;
-extern const AVInputFormat ff_binka_demuxer;
-extern const AVInputFormat ff_bit_demuxer;
+extern const FFInputFormat ff_bethsoftvid_demuxer;
+extern const FFInputFormat ff_bfi_demuxer;
+extern const FFInputFormat ff_bintext_demuxer;
+extern const FFInputFormat ff_bink_demuxer;
+extern const FFInputFormat ff_binka_demuxer;
+extern const FFInputFormat ff_bit_demuxer;
extern const FFOutputFormat ff_bit_muxer;
-extern const AVInputFormat ff_bitpacked_demuxer;
-extern const AVInputFormat ff_bmv_demuxer;
-extern const AVInputFormat ff_bfstm_demuxer;
-extern const AVInputFormat ff_brstm_demuxer;
-extern const AVInputFormat ff_boa_demuxer;
-extern const AVInputFormat ff_bonk_demuxer;
-extern const AVInputFormat ff_c93_demuxer;
-extern const AVInputFormat ff_caf_demuxer;
+extern const FFInputFormat ff_bitpacked_demuxer;
+extern const FFInputFormat ff_bmv_demuxer;
+extern const FFInputFormat ff_bfstm_demuxer;
+extern const FFInputFormat ff_brstm_demuxer;
+extern const FFInputFormat ff_boa_demuxer;
+extern const FFInputFormat ff_bonk_demuxer;
+extern const FFInputFormat ff_c93_demuxer;
+extern const FFInputFormat ff_caf_demuxer;
extern const FFOutputFormat ff_caf_muxer;
-extern const AVInputFormat ff_cavsvideo_demuxer;
+extern const FFInputFormat ff_cavsvideo_demuxer;
extern const FFOutputFormat ff_cavsvideo_muxer;
-extern const AVInputFormat ff_cdg_demuxer;
-extern const AVInputFormat ff_cdxl_demuxer;
-extern const AVInputFormat ff_cine_demuxer;
-extern const AVInputFormat ff_codec2_demuxer;
+extern const FFInputFormat ff_cdg_demuxer;
+extern const FFInputFormat ff_cdxl_demuxer;
+extern const FFInputFormat ff_cine_demuxer;
+extern const FFInputFormat ff_codec2_demuxer;
extern const FFOutputFormat ff_codec2_muxer;
-extern const AVInputFormat ff_codec2raw_demuxer;
+extern const FFInputFormat ff_codec2raw_demuxer;
extern const FFOutputFormat ff_codec2raw_muxer;
-extern const AVInputFormat ff_concat_demuxer;
+extern const FFInputFormat ff_concat_demuxer;
extern const FFOutputFormat ff_crc_muxer;
-extern const AVInputFormat ff_dash_demuxer;
+extern const FFInputFormat ff_dash_demuxer;
extern const FFOutputFormat ff_dash_muxer;
-extern const AVInputFormat ff_data_demuxer;
+extern const FFInputFormat ff_data_demuxer;
extern const FFOutputFormat ff_data_muxer;
-extern const AVInputFormat ff_daud_demuxer;
+extern const FFInputFormat ff_daud_demuxer;
extern const FFOutputFormat ff_daud_muxer;
-extern const AVInputFormat ff_dcstr_demuxer;
-extern const AVInputFormat ff_derf_demuxer;
-extern const AVInputFormat ff_dfa_demuxer;
-extern const AVInputFormat ff_dfpwm_demuxer;
+extern const FFInputFormat ff_dcstr_demuxer;
+extern const FFInputFormat ff_derf_demuxer;
+extern const FFInputFormat ff_dfa_demuxer;
+extern const FFInputFormat ff_dfpwm_demuxer;
extern const FFOutputFormat ff_dfpwm_muxer;
-extern const AVInputFormat ff_dhav_demuxer;
-extern const AVInputFormat ff_dirac_demuxer;
+extern const FFInputFormat ff_dhav_demuxer;
+extern const FFInputFormat ff_dirac_demuxer;
extern const FFOutputFormat ff_dirac_muxer;
-extern const AVInputFormat ff_dnxhd_demuxer;
+extern const FFInputFormat ff_dnxhd_demuxer;
extern const FFOutputFormat ff_dnxhd_muxer;
-extern const AVInputFormat ff_dsf_demuxer;
-extern const AVInputFormat ff_dsicin_demuxer;
-extern const AVInputFormat ff_dss_demuxer;
-extern const AVInputFormat ff_dts_demuxer;
+extern const FFInputFormat ff_dsf_demuxer;
+extern const FFInputFormat ff_dsicin_demuxer;
+extern const FFInputFormat ff_dss_demuxer;
+extern const FFInputFormat ff_dts_demuxer;
extern const FFOutputFormat ff_dts_muxer;
-extern const AVInputFormat ff_dtshd_demuxer;
-extern const AVInputFormat ff_dv_demuxer;
+extern const FFInputFormat ff_dtshd_demuxer;
+extern const FFInputFormat ff_dv_demuxer;
extern const FFOutputFormat ff_dv_muxer;
-extern const AVInputFormat ff_dvbsub_demuxer;
-extern const AVInputFormat ff_dvbtxt_demuxer;
-extern const AVInputFormat ff_dxa_demuxer;
-extern const AVInputFormat ff_ea_demuxer;
-extern const AVInputFormat ff_ea_cdata_demuxer;
-extern const AVInputFormat ff_eac3_demuxer;
+extern const FFInputFormat ff_dvbsub_demuxer;
+extern const FFInputFormat ff_dvbtxt_demuxer;
+extern const FFInputFormat ff_dxa_demuxer;
+extern const FFInputFormat ff_ea_demuxer;
+extern const FFInputFormat ff_ea_cdata_demuxer;
+extern const FFInputFormat ff_eac3_demuxer;
extern const FFOutputFormat ff_eac3_muxer;
-extern const AVInputFormat ff_epaf_demuxer;
-extern const AVInputFormat ff_evc_demuxer;
+extern const FFInputFormat ff_epaf_demuxer;
+extern const FFInputFormat ff_evc_demuxer;
extern const FFOutputFormat ff_evc_muxer;
extern const FFOutputFormat ff_f4v_muxer;
-extern const AVInputFormat ff_ffmetadata_demuxer;
+extern const FFInputFormat ff_ffmetadata_demuxer;
extern const FFOutputFormat ff_ffmetadata_muxer;
extern const FFOutputFormat ff_fifo_muxer;
extern const FFOutputFormat ff_fifo_test_muxer;
-extern const AVInputFormat ff_filmstrip_demuxer;
+extern const FFInputFormat ff_filmstrip_demuxer;
extern const FFOutputFormat ff_filmstrip_muxer;
-extern const AVInputFormat ff_fits_demuxer;
+extern const FFInputFormat ff_fits_demuxer;
extern const FFOutputFormat ff_fits_muxer;
-extern const AVInputFormat ff_flac_demuxer;
+extern const FFInputFormat ff_flac_demuxer;
extern const FFOutputFormat ff_flac_muxer;
-extern const AVInputFormat ff_flic_demuxer;
-extern const AVInputFormat ff_flv_demuxer;
+extern const FFInputFormat ff_flic_demuxer;
+extern const FFInputFormat ff_flv_demuxer;
extern const FFOutputFormat ff_flv_muxer;
-extern const AVInputFormat ff_live_flv_demuxer;
-extern const AVInputFormat ff_fourxm_demuxer;
+extern const FFInputFormat ff_live_flv_demuxer;
+extern const FFInputFormat ff_fourxm_demuxer;
extern const FFOutputFormat ff_framecrc_muxer;
extern const FFOutputFormat ff_framehash_muxer;
extern const FFOutputFormat ff_framemd5_muxer;
-extern const AVInputFormat ff_frm_demuxer;
-extern const AVInputFormat ff_fsb_demuxer;
-extern const AVInputFormat ff_fwse_demuxer;
-extern const AVInputFormat ff_g722_demuxer;
+extern const FFInputFormat ff_frm_demuxer;
+extern const FFInputFormat ff_fsb_demuxer;
+extern const FFInputFormat ff_fwse_demuxer;
+extern const FFInputFormat ff_g722_demuxer;
extern const FFOutputFormat ff_g722_muxer;
-extern const AVInputFormat ff_g723_1_demuxer;
+extern const FFInputFormat ff_g723_1_demuxer;
extern const FFOutputFormat ff_g723_1_muxer;
-extern const AVInputFormat ff_g726_demuxer;
+extern const FFInputFormat ff_g726_demuxer;
extern const FFOutputFormat ff_g726_muxer;
-extern const AVInputFormat ff_g726le_demuxer;
+extern const FFInputFormat ff_g726le_demuxer;
extern const FFOutputFormat ff_g726le_muxer;
-extern const AVInputFormat ff_g729_demuxer;
-extern const AVInputFormat ff_gdv_demuxer;
-extern const AVInputFormat ff_genh_demuxer;
-extern const AVInputFormat ff_gif_demuxer;
+extern const FFInputFormat ff_g729_demuxer;
+extern const FFInputFormat ff_gdv_demuxer;
+extern const FFInputFormat ff_genh_demuxer;
+extern const FFInputFormat ff_gif_demuxer;
extern const FFOutputFormat ff_gif_muxer;
-extern const AVInputFormat ff_gsm_demuxer;
+extern const FFInputFormat ff_gsm_demuxer;
extern const FFOutputFormat ff_gsm_muxer;
-extern const AVInputFormat ff_gxf_demuxer;
+extern const FFInputFormat ff_gxf_demuxer;
extern const FFOutputFormat ff_gxf_muxer;
-extern const AVInputFormat ff_h261_demuxer;
+extern const FFInputFormat ff_h261_demuxer;
extern const FFOutputFormat ff_h261_muxer;
-extern const AVInputFormat ff_h263_demuxer;
+extern const FFInputFormat ff_h263_demuxer;
extern const FFOutputFormat ff_h263_muxer;
-extern const AVInputFormat ff_h264_demuxer;
+extern const FFInputFormat ff_h264_demuxer;
extern const FFOutputFormat ff_h264_muxer;
extern const FFOutputFormat ff_hash_muxer;
-extern const AVInputFormat ff_hca_demuxer;
-extern const AVInputFormat ff_hcom_demuxer;
+extern const FFInputFormat ff_hca_demuxer;
+extern const FFInputFormat ff_hcom_demuxer;
extern const FFOutputFormat ff_hds_muxer;
-extern const AVInputFormat ff_hevc_demuxer;
+extern const FFInputFormat ff_hevc_demuxer;
extern const FFOutputFormat ff_hevc_muxer;
-extern const AVInputFormat ff_hls_demuxer;
+extern const FFInputFormat ff_hls_demuxer;
extern const FFOutputFormat ff_hls_muxer;
-extern const AVInputFormat ff_hnm_demuxer;
-extern const AVInputFormat ff_iamf_demuxer;
+extern const FFInputFormat ff_hnm_demuxer;
+extern const FFInputFormat ff_iamf_demuxer;
extern const FFOutputFormat ff_iamf_muxer;
-extern const AVInputFormat ff_ico_demuxer;
+extern const FFInputFormat ff_ico_demuxer;
extern const FFOutputFormat ff_ico_muxer;
-extern const AVInputFormat ff_idcin_demuxer;
-extern const AVInputFormat ff_idf_demuxer;
-extern const AVInputFormat ff_iff_demuxer;
-extern const AVInputFormat ff_ifv_demuxer;
-extern const AVInputFormat ff_ilbc_demuxer;
+extern const FFInputFormat ff_idcin_demuxer;
+extern const FFInputFormat ff_idf_demuxer;
+extern const FFInputFormat ff_iff_demuxer;
+extern const FFInputFormat ff_ifv_demuxer;
+extern const FFInputFormat ff_ilbc_demuxer;
extern const FFOutputFormat ff_ilbc_muxer;
-extern const AVInputFormat ff_image2_demuxer;
+extern const FFInputFormat ff_image2_demuxer;
extern const FFOutputFormat ff_image2_muxer;
-extern const AVInputFormat ff_image2pipe_demuxer;
+extern const FFInputFormat ff_image2pipe_demuxer;
extern const FFOutputFormat ff_image2pipe_muxer;
-extern const AVInputFormat ff_image2_alias_pix_demuxer;
-extern const AVInputFormat ff_image2_brender_pix_demuxer;
-extern const AVInputFormat ff_imf_demuxer;
-extern const AVInputFormat ff_ingenient_demuxer;
-extern const AVInputFormat ff_ipmovie_demuxer;
+extern const FFInputFormat ff_image2_alias_pix_demuxer;
+extern const FFInputFormat ff_image2_brender_pix_demuxer;
+extern const FFInputFormat ff_imf_demuxer;
+extern const FFInputFormat ff_ingenient_demuxer;
+extern const FFInputFormat ff_ipmovie_demuxer;
extern const FFOutputFormat ff_ipod_muxer;
-extern const AVInputFormat ff_ipu_demuxer;
-extern const AVInputFormat ff_ircam_demuxer;
+extern const FFInputFormat ff_ipu_demuxer;
+extern const FFInputFormat ff_ircam_demuxer;
extern const FFOutputFormat ff_ircam_muxer;
extern const FFOutputFormat ff_ismv_muxer;
-extern const AVInputFormat ff_iss_demuxer;
-extern const AVInputFormat ff_iv8_demuxer;
-extern const AVInputFormat ff_ivf_demuxer;
+extern const FFInputFormat ff_iss_demuxer;
+extern const FFInputFormat ff_iv8_demuxer;
+extern const FFInputFormat ff_ivf_demuxer;
extern const FFOutputFormat ff_ivf_muxer;
-extern const AVInputFormat ff_ivr_demuxer;
-extern const AVInputFormat ff_jacosub_demuxer;
+extern const FFInputFormat ff_ivr_demuxer;
+extern const FFInputFormat ff_jacosub_demuxer;
extern const FFOutputFormat ff_jacosub_muxer;
-extern const AVInputFormat ff_jv_demuxer;
-extern const AVInputFormat ff_jpegxl_anim_demuxer;
-extern const AVInputFormat ff_kux_demuxer;
-extern const AVInputFormat ff_kvag_demuxer;
+extern const FFInputFormat ff_jv_demuxer;
+extern const FFInputFormat ff_jpegxl_anim_demuxer;
+extern const FFInputFormat ff_kux_demuxer;
+extern const FFInputFormat ff_kvag_demuxer;
extern const FFOutputFormat ff_kvag_muxer;
-extern const AVInputFormat ff_laf_demuxer;
+extern const FFInputFormat ff_laf_demuxer;
extern const FFOutputFormat ff_latm_muxer;
-extern const AVInputFormat ff_lmlm4_demuxer;
-extern const AVInputFormat ff_loas_demuxer;
-extern const AVInputFormat ff_luodat_demuxer;
-extern const AVInputFormat ff_lrc_demuxer;
+extern const FFInputFormat ff_lmlm4_demuxer;
+extern const FFInputFormat ff_loas_demuxer;
+extern const FFInputFormat ff_luodat_demuxer;
+extern const FFInputFormat ff_lrc_demuxer;
extern const FFOutputFormat ff_lrc_muxer;
-extern const AVInputFormat ff_lvf_demuxer;
-extern const AVInputFormat ff_lxf_demuxer;
-extern const AVInputFormat ff_m4v_demuxer;
+extern const FFInputFormat ff_lvf_demuxer;
+extern const FFInputFormat ff_lxf_demuxer;
+extern const FFInputFormat ff_m4v_demuxer;
extern const FFOutputFormat ff_m4v_muxer;
-extern const AVInputFormat ff_mca_demuxer;
-extern const AVInputFormat ff_mcc_demuxer;
+extern const FFInputFormat ff_mca_demuxer;
+extern const FFInputFormat ff_mcc_demuxer;
extern const FFOutputFormat ff_md5_muxer;
-extern const AVInputFormat ff_matroska_demuxer;
+extern const FFInputFormat ff_matroska_demuxer;
extern const FFOutputFormat ff_matroska_muxer;
extern const FFOutputFormat ff_matroska_audio_muxer;
-extern const AVInputFormat ff_mgsts_demuxer;
-extern const AVInputFormat ff_microdvd_demuxer;
+extern const FFInputFormat ff_mgsts_demuxer;
+extern const FFInputFormat ff_microdvd_demuxer;
extern const FFOutputFormat ff_microdvd_muxer;
-extern const AVInputFormat ff_mjpeg_demuxer;
+extern const FFInputFormat ff_mjpeg_demuxer;
extern const FFOutputFormat ff_mjpeg_muxer;
-extern const AVInputFormat ff_mjpeg_2000_demuxer;
-extern const AVInputFormat ff_mlp_demuxer;
+extern const FFInputFormat ff_mjpeg_2000_demuxer;
+extern const FFInputFormat ff_mlp_demuxer;
extern const FFOutputFormat ff_mlp_muxer;
-extern const AVInputFormat ff_mlv_demuxer;
-extern const AVInputFormat ff_mm_demuxer;
-extern const AVInputFormat ff_mmf_demuxer;
+extern const FFInputFormat ff_mlv_demuxer;
+extern const FFInputFormat ff_mm_demuxer;
+extern const FFInputFormat ff_mmf_demuxer;
extern const FFOutputFormat ff_mmf_muxer;
-extern const AVInputFormat ff_mods_demuxer;
-extern const AVInputFormat ff_moflex_demuxer;
-extern const AVInputFormat ff_mov_demuxer;
+extern const FFInputFormat ff_mods_demuxer;
+extern const FFInputFormat ff_moflex_demuxer;
+extern const FFInputFormat ff_mov_demuxer;
extern const FFOutputFormat ff_mov_muxer;
extern const FFOutputFormat ff_mp2_muxer;
-extern const AVInputFormat ff_mp3_demuxer;
+extern const FFInputFormat ff_mp3_demuxer;
extern const FFOutputFormat ff_mp3_muxer;
extern const FFOutputFormat ff_mp4_muxer;
-extern const AVInputFormat ff_mpc_demuxer;
-extern const AVInputFormat ff_mpc8_demuxer;
+extern const FFInputFormat ff_mpc_demuxer;
+extern const FFInputFormat ff_mpc8_demuxer;
extern const FFOutputFormat ff_mpeg1system_muxer;
extern const FFOutputFormat ff_mpeg1vcd_muxer;
extern const FFOutputFormat ff_mpeg1video_muxer;
@@ -294,282 +295,282 @@ extern const FFOutputFormat ff_mpeg2dvd_muxer;
extern const FFOutputFormat ff_mpeg2svcd_muxer;
extern const FFOutputFormat ff_mpeg2video_muxer;
extern const FFOutputFormat ff_mpeg2vob_muxer;
-extern const AVInputFormat ff_mpegps_demuxer;
-extern const AVInputFormat ff_mpegts_demuxer;
+extern const FFInputFormat ff_mpegps_demuxer;
+extern const FFInputFormat ff_mpegts_demuxer;
extern const FFOutputFormat ff_mpegts_muxer;
-extern const AVInputFormat ff_mpegtsraw_demuxer;
-extern const AVInputFormat ff_mpegvideo_demuxer;
-extern const AVInputFormat ff_mpjpeg_demuxer;
+extern const FFInputFormat ff_mpegtsraw_demuxer;
+extern const FFInputFormat ff_mpegvideo_demuxer;
+extern const FFInputFormat ff_mpjpeg_demuxer;
extern const FFOutputFormat ff_mpjpeg_muxer;
-extern const AVInputFormat ff_mpl2_demuxer;
-extern const AVInputFormat ff_mpsub_demuxer;
-extern const AVInputFormat ff_msf_demuxer;
-extern const AVInputFormat ff_msnwc_tcp_demuxer;
-extern const AVInputFormat ff_msp_demuxer;
-extern const AVInputFormat ff_mtaf_demuxer;
-extern const AVInputFormat ff_mtv_demuxer;
-extern const AVInputFormat ff_musx_demuxer;
-extern const AVInputFormat ff_mv_demuxer;
-extern const AVInputFormat ff_mvi_demuxer;
-extern const AVInputFormat ff_mxf_demuxer;
+extern const FFInputFormat ff_mpl2_demuxer;
+extern const FFInputFormat ff_mpsub_demuxer;
+extern const FFInputFormat ff_msf_demuxer;
+extern const FFInputFormat ff_msnwc_tcp_demuxer;
+extern const FFInputFormat ff_msp_demuxer;
+extern const FFInputFormat ff_mtaf_demuxer;
+extern const FFInputFormat ff_mtv_demuxer;
+extern const FFInputFormat ff_musx_demuxer;
+extern const FFInputFormat ff_mv_demuxer;
+extern const FFInputFormat ff_mvi_demuxer;
+extern const FFInputFormat ff_mxf_demuxer;
extern const FFOutputFormat ff_mxf_muxer;
extern const FFOutputFormat ff_mxf_d10_muxer;
extern const FFOutputFormat ff_mxf_opatom_muxer;
-extern const AVInputFormat ff_mxg_demuxer;
-extern const AVInputFormat ff_nc_demuxer;
-extern const AVInputFormat ff_nistsphere_demuxer;
-extern const AVInputFormat ff_nsp_demuxer;
-extern const AVInputFormat ff_nsv_demuxer;
+extern const FFInputFormat ff_mxg_demuxer;
+extern const FFInputFormat ff_nc_demuxer;
+extern const FFInputFormat ff_nistsphere_demuxer;
+extern const FFInputFormat ff_nsp_demuxer;
+extern const FFInputFormat ff_nsv_demuxer;
extern const FFOutputFormat ff_null_muxer;
-extern const AVInputFormat ff_nut_demuxer;
+extern const FFInputFormat ff_nut_demuxer;
extern const FFOutputFormat ff_nut_muxer;
-extern const AVInputFormat ff_nuv_demuxer;
-extern const AVInputFormat ff_obu_demuxer;
+extern const FFInputFormat ff_nuv_demuxer;
+extern const FFInputFormat ff_obu_demuxer;
extern const FFOutputFormat ff_obu_muxer;
extern const FFOutputFormat ff_oga_muxer;
-extern const AVInputFormat ff_ogg_demuxer;
+extern const FFInputFormat ff_ogg_demuxer;
extern const FFOutputFormat ff_ogg_muxer;
extern const FFOutputFormat ff_ogv_muxer;
-extern const AVInputFormat ff_oma_demuxer;
+extern const FFInputFormat ff_oma_demuxer;
extern const FFOutputFormat ff_oma_muxer;
extern const FFOutputFormat ff_opus_muxer;
-extern const AVInputFormat ff_osq_demuxer;
-extern const AVInputFormat ff_paf_demuxer;
-extern const AVInputFormat ff_pcm_alaw_demuxer;
+extern const FFInputFormat ff_osq_demuxer;
+extern const FFInputFormat ff_paf_demuxer;
+extern const FFInputFormat ff_pcm_alaw_demuxer;
extern const FFOutputFormat ff_pcm_alaw_muxer;
-extern const AVInputFormat ff_pcm_mulaw_demuxer;
+extern const FFInputFormat ff_pcm_mulaw_demuxer;
extern const FFOutputFormat ff_pcm_mulaw_muxer;
-extern const AVInputFormat ff_pcm_vidc_demuxer;
+extern const FFInputFormat ff_pcm_vidc_demuxer;
extern const FFOutputFormat ff_pcm_vidc_muxer;
-extern const AVInputFormat ff_pcm_f64be_demuxer;
+extern const FFInputFormat ff_pcm_f64be_demuxer;
extern const FFOutputFormat ff_pcm_f64be_muxer;
-extern const AVInputFormat ff_pcm_f64le_demuxer;
+extern const FFInputFormat ff_pcm_f64le_demuxer;
extern const FFOutputFormat ff_pcm_f64le_muxer;
-extern const AVInputFormat ff_pcm_f32be_demuxer;
+extern const FFInputFormat ff_pcm_f32be_demuxer;
extern const FFOutputFormat ff_pcm_f32be_muxer;
-extern const AVInputFormat ff_pcm_f32le_demuxer;
+extern const FFInputFormat ff_pcm_f32le_demuxer;
extern const FFOutputFormat ff_pcm_f32le_muxer;
-extern const AVInputFormat ff_pcm_s32be_demuxer;
+extern const FFInputFormat ff_pcm_s32be_demuxer;
extern const FFOutputFormat ff_pcm_s32be_muxer;
-extern const AVInputFormat ff_pcm_s32le_demuxer;
+extern const FFInputFormat ff_pcm_s32le_demuxer;
extern const FFOutputFormat ff_pcm_s32le_muxer;
-extern const AVInputFormat ff_pcm_s24be_demuxer;
+extern const FFInputFormat ff_pcm_s24be_demuxer;
extern const FFOutputFormat ff_pcm_s24be_muxer;
-extern const AVInputFormat ff_pcm_s24le_demuxer;
+extern const FFInputFormat ff_pcm_s24le_demuxer;
extern const FFOutputFormat ff_pcm_s24le_muxer;
-extern const AVInputFormat ff_pcm_s16be_demuxer;
+extern const FFInputFormat ff_pcm_s16be_demuxer;
extern const FFOutputFormat ff_pcm_s16be_muxer;
-extern const AVInputFormat ff_pcm_s16le_demuxer;
+extern const FFInputFormat ff_pcm_s16le_demuxer;
extern const FFOutputFormat ff_pcm_s16le_muxer;
-extern const AVInputFormat ff_pcm_s8_demuxer;
+extern const FFInputFormat ff_pcm_s8_demuxer;
extern const FFOutputFormat ff_pcm_s8_muxer;
-extern const AVInputFormat ff_pcm_u32be_demuxer;
+extern const FFInputFormat ff_pcm_u32be_demuxer;
extern const FFOutputFormat ff_pcm_u32be_muxer;
-extern const AVInputFormat ff_pcm_u32le_demuxer;
+extern const FFInputFormat ff_pcm_u32le_demuxer;
extern const FFOutputFormat ff_pcm_u32le_muxer;
-extern const AVInputFormat ff_pcm_u24be_demuxer;
+extern const FFInputFormat ff_pcm_u24be_demuxer;
extern const FFOutputFormat ff_pcm_u24be_muxer;
-extern const AVInputFormat ff_pcm_u24le_demuxer;
+extern const FFInputFormat ff_pcm_u24le_demuxer;
extern const FFOutputFormat ff_pcm_u24le_muxer;
-extern const AVInputFormat ff_pcm_u16be_demuxer;
+extern const FFInputFormat ff_pcm_u16be_demuxer;
extern const FFOutputFormat ff_pcm_u16be_muxer;
-extern const AVInputFormat ff_pcm_u16le_demuxer;
+extern const FFInputFormat ff_pcm_u16le_demuxer;
extern const FFOutputFormat ff_pcm_u16le_muxer;
-extern const AVInputFormat ff_pcm_u8_demuxer;
+extern const FFInputFormat ff_pcm_u8_demuxer;
extern const FFOutputFormat ff_pcm_u8_muxer;
-extern const AVInputFormat ff_pdv_demuxer;
-extern const AVInputFormat ff_pjs_demuxer;
-extern const AVInputFormat ff_pmp_demuxer;
-extern const AVInputFormat ff_pp_bnk_demuxer;
+extern const FFInputFormat ff_pdv_demuxer;
+extern const FFInputFormat ff_pjs_demuxer;
+extern const FFInputFormat ff_pmp_demuxer;
+extern const FFInputFormat ff_pp_bnk_demuxer;
extern const FFOutputFormat ff_psp_muxer;
-extern const AVInputFormat ff_pva_demuxer;
-extern const AVInputFormat ff_pvf_demuxer;
-extern const AVInputFormat ff_qcp_demuxer;
-extern const AVInputFormat ff_qoa_demuxer;
-extern const AVInputFormat ff_r3d_demuxer;
-extern const AVInputFormat ff_rawvideo_demuxer;
+extern const FFInputFormat ff_pva_demuxer;
+extern const FFInputFormat ff_pvf_demuxer;
+extern const FFInputFormat ff_qcp_demuxer;
+extern const FFInputFormat ff_qoa_demuxer;
+extern const FFInputFormat ff_r3d_demuxer;
+extern const FFInputFormat ff_rawvideo_demuxer;
extern const FFOutputFormat ff_rawvideo_muxer;
extern const FFOutputFormat ff_rcwt_muxer;
-extern const AVInputFormat ff_realtext_demuxer;
-extern const AVInputFormat ff_redspark_demuxer;
-extern const AVInputFormat ff_rka_demuxer;
-extern const AVInputFormat ff_rl2_demuxer;
-extern const AVInputFormat ff_rm_demuxer;
+extern const FFInputFormat ff_realtext_demuxer;
+extern const FFInputFormat ff_redspark_demuxer;
+extern const FFInputFormat ff_rka_demuxer;
+extern const FFInputFormat ff_rl2_demuxer;
+extern const FFInputFormat ff_rm_demuxer;
extern const FFOutputFormat ff_rm_muxer;
-extern const AVInputFormat ff_roq_demuxer;
+extern const FFInputFormat ff_roq_demuxer;
extern const FFOutputFormat ff_roq_muxer;
-extern const AVInputFormat ff_rpl_demuxer;
-extern const AVInputFormat ff_rsd_demuxer;
-extern const AVInputFormat ff_rso_demuxer;
+extern const FFInputFormat ff_rpl_demuxer;
+extern const FFInputFormat ff_rsd_demuxer;
+extern const FFInputFormat ff_rso_demuxer;
extern const FFOutputFormat ff_rso_muxer;
-extern const AVInputFormat ff_rtp_demuxer;
+extern const FFInputFormat ff_rtp_demuxer;
extern const FFOutputFormat ff_rtp_muxer;
extern const FFOutputFormat ff_rtp_mpegts_muxer;
-extern const AVInputFormat ff_rtsp_demuxer;
+extern const FFInputFormat ff_rtsp_demuxer;
extern const FFOutputFormat ff_rtsp_muxer;
-extern const AVInputFormat ff_s337m_demuxer;
-extern const AVInputFormat ff_sami_demuxer;
-extern const AVInputFormat ff_sap_demuxer;
+extern const FFInputFormat ff_s337m_demuxer;
+extern const FFInputFormat ff_sami_demuxer;
+extern const FFInputFormat ff_sap_demuxer;
extern const FFOutputFormat ff_sap_muxer;
-extern const AVInputFormat ff_sbc_demuxer;
+extern const FFInputFormat ff_sbc_demuxer;
extern const FFOutputFormat ff_sbc_muxer;
-extern const AVInputFormat ff_sbg_demuxer;
-extern const AVInputFormat ff_scc_demuxer;
+extern const FFInputFormat ff_sbg_demuxer;
+extern const FFInputFormat ff_scc_demuxer;
extern const FFOutputFormat ff_scc_muxer;
-extern const AVInputFormat ff_scd_demuxer;
-extern const AVInputFormat ff_sdns_demuxer;
-extern const AVInputFormat ff_sdp_demuxer;
-extern const AVInputFormat ff_sdr2_demuxer;
-extern const AVInputFormat ff_sds_demuxer;
-extern const AVInputFormat ff_sdx_demuxer;
-extern const AVInputFormat ff_segafilm_demuxer;
+extern const FFInputFormat ff_scd_demuxer;
+extern const FFInputFormat ff_sdns_demuxer;
+extern const FFInputFormat ff_sdp_demuxer;
+extern const FFInputFormat ff_sdr2_demuxer;
+extern const FFInputFormat ff_sds_demuxer;
+extern const FFInputFormat ff_sdx_demuxer;
+extern const FFInputFormat ff_segafilm_demuxer;
extern const FFOutputFormat ff_segafilm_muxer;
extern const FFOutputFormat ff_segment_muxer;
extern const FFOutputFormat ff_stream_segment_muxer;
-extern const AVInputFormat ff_ser_demuxer;
-extern const AVInputFormat ff_sga_demuxer;
-extern const AVInputFormat ff_shorten_demuxer;
-extern const AVInputFormat ff_siff_demuxer;
-extern const AVInputFormat ff_simbiosis_imx_demuxer;
-extern const AVInputFormat ff_sln_demuxer;
-extern const AVInputFormat ff_smacker_demuxer;
-extern const AVInputFormat ff_smjpeg_demuxer;
+extern const FFInputFormat ff_ser_demuxer;
+extern const FFInputFormat ff_sga_demuxer;
+extern const FFInputFormat ff_shorten_demuxer;
+extern const FFInputFormat ff_siff_demuxer;
+extern const FFInputFormat ff_simbiosis_imx_demuxer;
+extern const FFInputFormat ff_sln_demuxer;
+extern const FFInputFormat ff_smacker_demuxer;
+extern const FFInputFormat ff_smjpeg_demuxer;
extern const FFOutputFormat ff_smjpeg_muxer;
extern const FFOutputFormat ff_smoothstreaming_muxer;
-extern const AVInputFormat ff_smush_demuxer;
-extern const AVInputFormat ff_sol_demuxer;
-extern const AVInputFormat ff_sox_demuxer;
+extern const FFInputFormat ff_smush_demuxer;
+extern const FFInputFormat ff_sol_demuxer;
+extern const FFInputFormat ff_sox_demuxer;
extern const FFOutputFormat ff_sox_muxer;
extern const FFOutputFormat ff_spx_muxer;
-extern const AVInputFormat ff_spdif_demuxer;
+extern const FFInputFormat ff_spdif_demuxer;
extern const FFOutputFormat ff_spdif_muxer;
-extern const AVInputFormat ff_srt_demuxer;
+extern const FFInputFormat ff_srt_demuxer;
extern const FFOutputFormat ff_srt_muxer;
-extern const AVInputFormat ff_str_demuxer;
-extern const AVInputFormat ff_stl_demuxer;
+extern const FFInputFormat ff_str_demuxer;
+extern const FFInputFormat ff_stl_demuxer;
extern const FFOutputFormat ff_streamhash_muxer;
-extern const AVInputFormat ff_subviewer1_demuxer;
-extern const AVInputFormat ff_subviewer_demuxer;
-extern const AVInputFormat ff_sup_demuxer;
+extern const FFInputFormat ff_subviewer1_demuxer;
+extern const FFInputFormat ff_subviewer_demuxer;
+extern const FFInputFormat ff_sup_demuxer;
extern const FFOutputFormat ff_sup_muxer;
-extern const AVInputFormat ff_svag_demuxer;
-extern const AVInputFormat ff_svs_demuxer;
-extern const AVInputFormat ff_swf_demuxer;
+extern const FFInputFormat ff_svag_demuxer;
+extern const FFInputFormat ff_svs_demuxer;
+extern const FFInputFormat ff_swf_demuxer;
extern const FFOutputFormat ff_swf_muxer;
-extern const AVInputFormat ff_tak_demuxer;
+extern const FFInputFormat ff_tak_demuxer;
extern const FFOutputFormat ff_tee_muxer;
-extern const AVInputFormat ff_tedcaptions_demuxer;
+extern const FFInputFormat ff_tedcaptions_demuxer;
extern const FFOutputFormat ff_tg2_muxer;
extern const FFOutputFormat ff_tgp_muxer;
-extern const AVInputFormat ff_thp_demuxer;
-extern const AVInputFormat ff_threedostr_demuxer;
-extern const AVInputFormat ff_tiertexseq_demuxer;
+extern const FFInputFormat ff_thp_demuxer;
+extern const FFInputFormat ff_threedostr_demuxer;
+extern const FFInputFormat ff_tiertexseq_demuxer;
extern const FFOutputFormat ff_mkvtimestamp_v2_muxer;
-extern const AVInputFormat ff_tmv_demuxer;
-extern const AVInputFormat ff_truehd_demuxer;
+extern const FFInputFormat ff_tmv_demuxer;
+extern const FFInputFormat ff_truehd_demuxer;
extern const FFOutputFormat ff_truehd_muxer;
-extern const AVInputFormat ff_tta_demuxer;
+extern const FFInputFormat ff_tta_demuxer;
extern const FFOutputFormat ff_tta_muxer;
extern const FFOutputFormat ff_ttml_muxer;
-extern const AVInputFormat ff_txd_demuxer;
-extern const AVInputFormat ff_tty_demuxer;
-extern const AVInputFormat ff_ty_demuxer;
+extern const FFInputFormat ff_txd_demuxer;
+extern const FFInputFormat ff_tty_demuxer;
+extern const FFInputFormat ff_ty_demuxer;
extern const FFOutputFormat ff_uncodedframecrc_muxer;
-extern const AVInputFormat ff_usm_demuxer;
-extern const AVInputFormat ff_v210_demuxer;
-extern const AVInputFormat ff_v210x_demuxer;
-extern const AVInputFormat ff_vag_demuxer;
-extern const AVInputFormat ff_vc1_demuxer;
+extern const FFInputFormat ff_usm_demuxer;
+extern const FFInputFormat ff_v210_demuxer;
+extern const FFInputFormat ff_v210x_demuxer;
+extern const FFInputFormat ff_vag_demuxer;
+extern const FFInputFormat ff_vc1_demuxer;
extern const FFOutputFormat ff_vc1_muxer;
-extern const AVInputFormat ff_vc1t_demuxer;
+extern const FFInputFormat ff_vc1t_demuxer;
extern const FFOutputFormat ff_vc1t_muxer;
-extern const AVInputFormat ff_vividas_demuxer;
-extern const AVInputFormat ff_vivo_demuxer;
-extern const AVInputFormat ff_vmd_demuxer;
-extern const AVInputFormat ff_vobsub_demuxer;
-extern const AVInputFormat ff_voc_demuxer;
+extern const FFInputFormat ff_vividas_demuxer;
+extern const FFInputFormat ff_vivo_demuxer;
+extern const FFInputFormat ff_vmd_demuxer;
+extern const FFInputFormat ff_vobsub_demuxer;
+extern const FFInputFormat ff_voc_demuxer;
extern const FFOutputFormat ff_voc_muxer;
-extern const AVInputFormat ff_vpk_demuxer;
-extern const AVInputFormat ff_vplayer_demuxer;
-extern const AVInputFormat ff_vqf_demuxer;
-extern const AVInputFormat ff_vvc_demuxer;
+extern const FFInputFormat ff_vpk_demuxer;
+extern const FFInputFormat ff_vplayer_demuxer;
+extern const FFInputFormat ff_vqf_demuxer;
+extern const FFInputFormat ff_vvc_demuxer;
extern const FFOutputFormat ff_vvc_muxer;
-extern const AVInputFormat ff_w64_demuxer;
+extern const FFInputFormat ff_w64_demuxer;
extern const FFOutputFormat ff_w64_muxer;
-extern const AVInputFormat ff_wady_demuxer;
-extern const AVInputFormat ff_wavarc_demuxer;
-extern const AVInputFormat ff_wav_demuxer;
+extern const FFInputFormat ff_wady_demuxer;
+extern const FFInputFormat ff_wavarc_demuxer;
+extern const FFInputFormat ff_wav_demuxer;
extern const FFOutputFormat ff_wav_muxer;
-extern const AVInputFormat ff_wc3_demuxer;
+extern const FFInputFormat ff_wc3_demuxer;
extern const FFOutputFormat ff_webm_muxer;
-extern const AVInputFormat ff_webm_dash_manifest_demuxer;
+extern const FFInputFormat ff_webm_dash_manifest_demuxer;
extern const FFOutputFormat ff_webm_dash_manifest_muxer;
extern const FFOutputFormat ff_webm_chunk_muxer;
extern const FFOutputFormat ff_webp_muxer;
-extern const AVInputFormat ff_webvtt_demuxer;
+extern const FFInputFormat ff_webvtt_demuxer;
extern const FFOutputFormat ff_webvtt_muxer;
-extern const AVInputFormat ff_wsaud_demuxer;
+extern const FFInputFormat ff_wsaud_demuxer;
extern const FFOutputFormat ff_wsaud_muxer;
-extern const AVInputFormat ff_wsd_demuxer;
-extern const AVInputFormat ff_wsvqa_demuxer;
-extern const AVInputFormat ff_wtv_demuxer;
+extern const FFInputFormat ff_wsd_demuxer;
+extern const FFInputFormat ff_wsvqa_demuxer;
+extern const FFInputFormat ff_wtv_demuxer;
extern const FFOutputFormat ff_wtv_muxer;
-extern const AVInputFormat ff_wve_demuxer;
-extern const AVInputFormat ff_wv_demuxer;
+extern const FFInputFormat ff_wve_demuxer;
+extern const FFInputFormat ff_wv_demuxer;
extern const FFOutputFormat ff_wv_muxer;
-extern const AVInputFormat ff_xa_demuxer;
-extern const AVInputFormat ff_xbin_demuxer;
-extern const AVInputFormat ff_xmd_demuxer;
-extern const AVInputFormat ff_xmv_demuxer;
-extern const AVInputFormat ff_xvag_demuxer;
-extern const AVInputFormat ff_xwma_demuxer;
-extern const AVInputFormat ff_yop_demuxer;
-extern const AVInputFormat ff_yuv4mpegpipe_demuxer;
+extern const FFInputFormat ff_xa_demuxer;
+extern const FFInputFormat ff_xbin_demuxer;
+extern const FFInputFormat ff_xmd_demuxer;
+extern const FFInputFormat ff_xmv_demuxer;
+extern const FFInputFormat ff_xvag_demuxer;
+extern const FFInputFormat ff_xwma_demuxer;
+extern const FFInputFormat ff_yop_demuxer;
+extern const FFInputFormat ff_yuv4mpegpipe_demuxer;
extern const FFOutputFormat ff_yuv4mpegpipe_muxer;
/* image demuxers */
-extern const AVInputFormat ff_image_bmp_pipe_demuxer;
-extern const AVInputFormat ff_image_cri_pipe_demuxer;
-extern const AVInputFormat ff_image_dds_pipe_demuxer;
-extern const AVInputFormat ff_image_dpx_pipe_demuxer;
-extern const AVInputFormat ff_image_exr_pipe_demuxer;
-extern const AVInputFormat ff_image_gem_pipe_demuxer;
-extern const AVInputFormat ff_image_gif_pipe_demuxer;
-extern const AVInputFormat ff_image_hdr_pipe_demuxer;
-extern const AVInputFormat ff_image_j2k_pipe_demuxer;
-extern const AVInputFormat ff_image_jpeg_pipe_demuxer;
-extern const AVInputFormat ff_image_jpegls_pipe_demuxer;
-extern const AVInputFormat ff_image_jpegxl_pipe_demuxer;
-extern const AVInputFormat ff_image_pam_pipe_demuxer;
-extern const AVInputFormat ff_image_pbm_pipe_demuxer;
-extern const AVInputFormat ff_image_pcx_pipe_demuxer;
-extern const AVInputFormat ff_image_pfm_pipe_demuxer;
-extern const AVInputFormat ff_image_pgmyuv_pipe_demuxer;
-extern const AVInputFormat ff_image_pgm_pipe_demuxer;
-extern const AVInputFormat ff_image_pgx_pipe_demuxer;
-extern const AVInputFormat ff_image_phm_pipe_demuxer;
-extern const AVInputFormat ff_image_photocd_pipe_demuxer;
-extern const AVInputFormat ff_image_pictor_pipe_demuxer;
-extern const AVInputFormat ff_image_png_pipe_demuxer;
-extern const AVInputFormat ff_image_ppm_pipe_demuxer;
-extern const AVInputFormat ff_image_psd_pipe_demuxer;
-extern const AVInputFormat ff_image_qdraw_pipe_demuxer;
-extern const AVInputFormat ff_image_qoi_pipe_demuxer;
-extern const AVInputFormat ff_image_sgi_pipe_demuxer;
-extern const AVInputFormat ff_image_svg_pipe_demuxer;
-extern const AVInputFormat ff_image_sunrast_pipe_demuxer;
-extern const AVInputFormat ff_image_tiff_pipe_demuxer;
-extern const AVInputFormat ff_image_vbn_pipe_demuxer;
-extern const AVInputFormat ff_image_webp_pipe_demuxer;
-extern const AVInputFormat ff_image_xbm_pipe_demuxer;
-extern const AVInputFormat ff_image_xpm_pipe_demuxer;
-extern const AVInputFormat ff_image_xwd_pipe_demuxer;
+extern const FFInputFormat ff_image_bmp_pipe_demuxer;
+extern const FFInputFormat ff_image_cri_pipe_demuxer;
+extern const FFInputFormat ff_image_dds_pipe_demuxer;
+extern const FFInputFormat ff_image_dpx_pipe_demuxer;
+extern const FFInputFormat ff_image_exr_pipe_demuxer;
+extern const FFInputFormat ff_image_gem_pipe_demuxer;
+extern const FFInputFormat ff_image_gif_pipe_demuxer;
+extern const FFInputFormat ff_image_hdr_pipe_demuxer;
+extern const FFInputFormat ff_image_j2k_pipe_demuxer;
+extern const FFInputFormat ff_image_jpeg_pipe_demuxer;
+extern const FFInputFormat ff_image_jpegls_pipe_demuxer;
+extern const FFInputFormat ff_image_jpegxl_pipe_demuxer;
+extern const FFInputFormat ff_image_pam_pipe_demuxer;
+extern const FFInputFormat ff_image_pbm_pipe_demuxer;
+extern const FFInputFormat ff_image_pcx_pipe_demuxer;
+extern const FFInputFormat ff_image_pfm_pipe_demuxer;
+extern const FFInputFormat ff_image_pgmyuv_pipe_demuxer;
+extern const FFInputFormat ff_image_pgm_pipe_demuxer;
+extern const FFInputFormat ff_image_pgx_pipe_demuxer;
+extern const FFInputFormat ff_image_phm_pipe_demuxer;
+extern const FFInputFormat ff_image_photocd_pipe_demuxer;
+extern const FFInputFormat ff_image_pictor_pipe_demuxer;
+extern const FFInputFormat ff_image_png_pipe_demuxer;
+extern const FFInputFormat ff_image_ppm_pipe_demuxer;
+extern const FFInputFormat ff_image_psd_pipe_demuxer;
+extern const FFInputFormat ff_image_qdraw_pipe_demuxer;
+extern const FFInputFormat ff_image_qoi_pipe_demuxer;
+extern const FFInputFormat ff_image_sgi_pipe_demuxer;
+extern const FFInputFormat ff_image_svg_pipe_demuxer;
+extern const FFInputFormat ff_image_sunrast_pipe_demuxer;
+extern const FFInputFormat ff_image_tiff_pipe_demuxer;
+extern const FFInputFormat ff_image_vbn_pipe_demuxer;
+extern const FFInputFormat ff_image_webp_pipe_demuxer;
+extern const FFInputFormat ff_image_xbm_pipe_demuxer;
+extern const FFInputFormat ff_image_xpm_pipe_demuxer;
+extern const FFInputFormat ff_image_xwd_pipe_demuxer;
/* external libraries */
extern const FFOutputFormat ff_chromaprint_muxer;
-extern const AVInputFormat ff_libgme_demuxer;
-extern const AVInputFormat ff_libmodplug_demuxer;
-extern const AVInputFormat ff_libopenmpt_demuxer;
-extern const AVInputFormat ff_vapoursynth_demuxer;
+extern const FFInputFormat ff_libgme_demuxer;
+extern const FFInputFormat ff_libmodplug_demuxer;
+extern const FFInputFormat ff_libopenmpt_demuxer;
+extern const FFInputFormat ff_vapoursynth_demuxer;
#include "libavformat/muxer_list.c"
#include "libavformat/demuxer_list.c"
@@ -602,22 +603,24 @@ const AVInputFormat *av_demuxer_iterate(void **opaque)
{
static const uintptr_t size = sizeof(demuxer_list)/sizeof(demuxer_list[0]) - 1;
uintptr_t i = (uintptr_t)*opaque;
- const AVInputFormat *f = NULL;
+ const FFInputFormat *f = NULL;
uintptr_t tmp;
if (i < size) {
f = demuxer_list[i];
} else if (tmp = atomic_load_explicit(&indev_list_intptr, memory_order_relaxed)) {
- const AVInputFormat *const *indev_list = (const AVInputFormat *const *)tmp;
+ const FFInputFormat *const *indev_list = (const FFInputFormat *const *)tmp;
f = indev_list[i - size];
}
- if (f)
+ if (f) {
*opaque = (void*)(i + 1);
- return f;
+ return &f->p;
+ }
+ return NULL;
}
-void avpriv_register_devices(const FFOutputFormat * const o[], const AVInputFormat * const i[])
+void avpriv_register_devices(const FFOutputFormat * const o[], const FFInputFormat * const i[])
{
atomic_store_explicit(&outdev_list_intptr, (uintptr_t)o, memory_order_relaxed);
atomic_store_explicit(&indev_list_intptr, (uintptr_t)i, memory_order_relaxed);
diff --git a/libavformat/alp.c b/libavformat/alp.c
index 8c6066a59c..3db256cd05 100644
--- a/libavformat/alp.c
+++ b/libavformat/alp.c
@@ -24,6 +24,7 @@
#include "libavutil/channel_layout.h"
#include "avformat.h"
+#include "demux.h"
#include "internal.h"
#include "mux.h"
#include "rawenc.h"
@@ -163,9 +164,9 @@ static int alp_seek(AVFormatContext *s, int stream_index,
return avio_seek(s->pb, hdr->header_size + 8, SEEK_SET);
}
-const AVInputFormat ff_alp_demuxer = {
- .name = "alp",
- .long_name = NULL_IF_CONFIG_SMALL("LEGO Racers ALP"),
+const FFInputFormat ff_alp_demuxer = {
+ .p.name = "alp",
+ .p.long_name = NULL_IF_CONFIG_SMALL("LEGO Racers ALP"),
.priv_data_size = sizeof(ALPHeader),
.read_probe = alp_probe,
.read_header = alp_read_header,
diff --git a/libavformat/amr.c b/libavformat/amr.c
index b6615d8295..85815e8675 100644
--- a/libavformat/amr.c
+++ b/libavformat/amr.c
@@ -29,6 +29,7 @@ Write and read amr data according to RFC3267, http://www.ietf.org/rfc/rfc3267.tx
#include "libavutil/intreadwrite.h"
#include "avformat.h"
#include "avio_internal.h"
+#include "demux.h"
#include "internal.h"
#include "mux.h"
#include "rawdec.h"
@@ -140,15 +141,15 @@ static int amr_read_header(AVFormatContext *s)
return 0;
}
-const AVInputFormat ff_amr_demuxer = {
- .name = "amr",
- .long_name = NULL_IF_CONFIG_SMALL("3GPP AMR"),
+const FFInputFormat ff_amr_demuxer = {
+ .p.name = "amr",
+ .p.long_name = NULL_IF_CONFIG_SMALL("3GPP AMR"),
+ .p.flags = AVFMT_GENERIC_INDEX,
+ .p.priv_class = &ff_raw_demuxer_class,
.priv_data_size = sizeof(AMRContext),
.read_probe = amr_probe,
.read_header = amr_read_header,
.read_packet = ff_raw_read_partial_packet,
- .flags = AVFMT_GENERIC_INDEX,
- .priv_class = &ff_raw_demuxer_class,
};
#endif
@@ -197,15 +198,15 @@ static int amrnb_read_header(AVFormatContext *s)
return 0;
}
-const AVInputFormat ff_amrnb_demuxer = {
- .name = "amrnb",
- .long_name = NULL_IF_CONFIG_SMALL("raw AMR-NB"),
+const FFInputFormat ff_amrnb_demuxer = {
+ .p.name = "amrnb",
+ .p.long_name = NULL_IF_CONFIG_SMALL("raw AMR-NB"),
+ .p.flags = AVFMT_GENERIC_INDEX,
+ .p.priv_class = &ff_raw_demuxer_class,
.priv_data_size = sizeof(AMRContext),
.read_probe = amrnb_probe,
.read_header = amrnb_read_header,
.read_packet = ff_raw_read_partial_packet,
- .flags = AVFMT_GENERIC_INDEX,
- .priv_class = &ff_raw_demuxer_class,
};
#endif
@@ -254,15 +255,15 @@ static int amrwb_read_header(AVFormatContext *s)
return 0;
}
-const AVInputFormat ff_amrwb_demuxer = {
- .name = "amrwb",
- .long_name = NULL_IF_CONFIG_SMALL("raw AMR-WB"),
+const FFInputFormat ff_amrwb_demuxer = {
+ .p.name = "amrwb",
+ .p.long_name = NULL_IF_CONFIG_SMALL("raw AMR-WB"),
+ .p.flags = AVFMT_GENERIC_INDEX,
+ .p.priv_class = &ff_raw_demuxer_class,
.priv_data_size = sizeof(AMRContext),
.read_probe = amrwb_probe,
.read_header = amrwb_read_header,
.read_packet = ff_raw_read_partial_packet,
- .flags = AVFMT_GENERIC_INDEX,
- .priv_class = &ff_raw_demuxer_class,
};
#endif
diff --git a/libavformat/anm.c b/libavformat/anm.c
index f2ac6958a9..789780d606 100644
--- a/libavformat/anm.c
+++ b/libavformat/anm.c
@@ -215,9 +215,9 @@ repeat:
return 0;
}
-const AVInputFormat ff_anm_demuxer = {
- .name = "anm",
- .long_name = NULL_IF_CONFIG_SMALL("Deluxe Paint Animation"),
+const FFInputFormat ff_anm_demuxer = {
+ .p.name = "anm",
+ .p.long_name = NULL_IF_CONFIG_SMALL("Deluxe Paint Animation"),
.priv_data_size = sizeof(AnmDemuxContext),
.read_probe = probe,
.read_header = read_header,
diff --git a/libavformat/apac.c b/libavformat/apac.c
index 18970e19dd..139035ca13 100644
--- a/libavformat/apac.c
+++ b/libavformat/apac.c
@@ -72,15 +72,15 @@ static int apac_read_header(AVFormatContext *s)
return 0;
}
-const AVInputFormat ff_apac_demuxer = {
- .name = "apac",
- .long_name = NULL_IF_CONFIG_SMALL("raw APAC"),
+const FFInputFormat ff_apac_demuxer = {
+ .p.name = "apac",
+ .p.long_name = NULL_IF_CONFIG_SMALL("raw APAC"),
+ .p.extensions = "apc",
+ .p.flags = AVFMT_NOBINSEARCH | AVFMT_NOGENSEARCH | AVFMT_NO_BYTE_SEEK | AVFMT_NOTIMESTAMPS,
+ .p.priv_class = &ff_raw_demuxer_class,
.read_probe = apac_probe,
.read_header = apac_read_header,
.read_packet = ff_raw_read_partial_packet,
- .extensions = "apc",
- .flags = AVFMT_NOBINSEARCH | AVFMT_NOGENSEARCH | AVFMT_NO_BYTE_SEEK | AVFMT_NOTIMESTAMPS,
.raw_codec_id = AV_CODEC_ID_APAC,
.priv_data_size = sizeof(FFRawDemuxerContext),
- .priv_class = &ff_raw_demuxer_class,
};
diff --git a/libavformat/apc.c b/libavformat/apc.c
index b8b18c966c..d24f57d021 100644
--- a/libavformat/apc.c
+++ b/libavformat/apc.c
@@ -79,9 +79,9 @@ static int apc_read_packet(AVFormatContext *s, AVPacket *pkt)
return 0;
}
-const AVInputFormat ff_apc_demuxer = {
- .name = "apc",
- .long_name = NULL_IF_CONFIG_SMALL("CRYO APC"),
+const FFInputFormat ff_apc_demuxer = {
+ .p.name = "apc",
+ .p.long_name = NULL_IF_CONFIG_SMALL("CRYO APC"),
.read_probe = apc_probe,
.read_header = apc_read_header,
.read_packet = apc_read_packet,
diff --git a/libavformat/ape.c b/libavformat/ape.c
index 92e9ac7cb1..b3994d12fd 100644
--- a/libavformat/ape.c
+++ b/libavformat/ape.c
@@ -24,6 +24,7 @@
#include "libavutil/intreadwrite.h"
#include "avformat.h"
+#include "demux.h"
#include "internal.h"
#include "apetag.h"
@@ -444,9 +445,10 @@ static int ape_read_seek(AVFormatContext *s, int stream_index, int64_t timestamp
return 0;
}
-const AVInputFormat ff_ape_demuxer = {
- .name = "ape",
- .long_name = NULL_IF_CONFIG_SMALL("Monkey's Audio"),
+const FFInputFormat ff_ape_demuxer = {
+ .p.name = "ape",
+ .p.long_name = NULL_IF_CONFIG_SMALL("Monkey's Audio"),
+ .p.extensions = "ape,apl,mac",
.priv_data_size = sizeof(APEContext),
.flags_internal = FF_FMT_INIT_CLEANUP,
.read_probe = ape_probe,
@@ -454,5 +456,4 @@ const AVInputFormat ff_ape_demuxer = {
.read_packet = ape_read_packet,
.read_close = ape_read_close,
.read_seek = ape_read_seek,
- .extensions = "ape,apl,mac",
};
diff --git a/libavformat/apm.c b/libavformat/apm.c
index ccb8e22437..bcde82d958 100644
--- a/libavformat/apm.c
+++ b/libavformat/apm.c
@@ -23,6 +23,7 @@
#include "config_components.h"
#include "avformat.h"
+#include "demux.h"
#include "internal.h"
#include "mux.h"
#include "rawenc.h"
@@ -202,9 +203,9 @@ static int apm_read_packet(AVFormatContext *s, AVPacket *pkt)
return 0;
}
-const AVInputFormat ff_apm_demuxer = {
- .name = "apm",
- .long_name = NULL_IF_CONFIG_SMALL("Ubisoft Rayman 2 APM"),
+const FFInputFormat ff_apm_demuxer = {
+ .p.name = "apm",
+ .p.long_name = NULL_IF_CONFIG_SMALL("Ubisoft Rayman 2 APM"),
.read_probe = apm_probe,
.read_header = apm_read_header,
.read_packet = apm_read_packet
diff --git a/libavformat/apngdec.c b/libavformat/apngdec.c
index 8f5f37a2b1..4690283337 100644
--- a/libavformat/apngdec.c
+++ b/libavformat/apngdec.c
@@ -28,6 +28,7 @@
#include "avformat.h"
#include "avio_internal.h"
+#include "demux.h"
#include "internal.h"
#include "libavutil/imgutils.h"
#include "libavutil/intreadwrite.h"
@@ -421,13 +422,13 @@ static const AVClass demuxer_class = {
.category = AV_CLASS_CATEGORY_DEMUXER,
};
-const AVInputFormat ff_apng_demuxer = {
- .name = "apng",
- .long_name = NULL_IF_CONFIG_SMALL("Animated Portable Network Graphics"),
+const FFInputFormat ff_apng_demuxer = {
+ .p.name = "apng",
+ .p.long_name = NULL_IF_CONFIG_SMALL("Animated Portable Network Graphics"),
+ .p.flags = AVFMT_GENERIC_INDEX,
+ .p.priv_class = &demuxer_class,
.priv_data_size = sizeof(APNGDemuxContext),
.read_probe = apng_probe,
.read_header = apng_read_header,
.read_packet = apng_read_packet,
- .flags = AVFMT_GENERIC_INDEX,
- .priv_class = &demuxer_class,
};
diff --git a/libavformat/aptxdec.c b/libavformat/aptxdec.c
index 0637a8afde..2fca45a71e 100644
--- a/libavformat/aptxdec.c
+++ b/libavformat/aptxdec.c
@@ -24,6 +24,7 @@
#include "libavutil/opt.h"
#include "avformat.h"
+#include "demux.h"
#define APTX_BLOCK_SIZE 4
#define APTX_PACKET_SIZE (256*APTX_BLOCK_SIZE)
@@ -101,27 +102,27 @@ static const AVClass aptx_demuxer_class = {
};
#if CONFIG_APTX_DEMUXER
-const AVInputFormat ff_aptx_demuxer = {
- .name = "aptx",
- .long_name = NULL_IF_CONFIG_SMALL("raw aptX"),
- .extensions = "aptx",
+const FFInputFormat ff_aptx_demuxer = {
+ .p.name = "aptx",
+ .p.long_name = NULL_IF_CONFIG_SMALL("raw aptX"),
+ .p.extensions = "aptx",
+ .p.flags = AVFMT_GENERIC_INDEX,
+ .p.priv_class = &aptx_demuxer_class,
.priv_data_size = sizeof(AptXDemuxerContext),
.read_header = aptx_read_header,
.read_packet = aptx_read_packet,
- .flags = AVFMT_GENERIC_INDEX,
- .priv_class = &aptx_demuxer_class,
};
#endif
#if CONFIG_APTX_HD_DEMUXER
-const AVInputFormat ff_aptx_hd_demuxer = {
- .name = "aptx_hd",
- .long_name = NULL_IF_CONFIG_SMALL("raw aptX HD"),
- .extensions = "aptxhd",
+const FFInputFormat ff_aptx_hd_demuxer = {
+ .p.name = "aptx_hd",
+ .p.long_name = NULL_IF_CONFIG_SMALL("raw aptX HD"),
+ .p.extensions = "aptxhd",
+ .p.flags = AVFMT_GENERIC_INDEX,
+ .p.priv_class = &aptx_demuxer_class,
.priv_data_size = sizeof(AptXDemuxerContext),
.read_header = aptx_hd_read_header,
.read_packet = aptx_hd_read_packet,
- .flags = AVFMT_GENERIC_INDEX,
- .priv_class = &aptx_demuxer_class,
};
#endif
diff --git a/libavformat/aqtitledec.c b/libavformat/aqtitledec.c
index 6c14b23862..e8e538e414 100644
--- a/libavformat/aqtitledec.c
+++ b/libavformat/aqtitledec.c
@@ -27,6 +27,7 @@
*/
#include "avformat.h"
+#include "demux.h"
#include "internal.h"
#include "subtitles.h"
#include "libavutil/opt.h"
@@ -135,9 +136,11 @@ static const AVClass aqt_class = {
.version = LIBAVUTIL_VERSION_INT,
};
-const AVInputFormat ff_aqtitle_demuxer = {
- .name = "aqtitle",
- .long_name = NULL_IF_CONFIG_SMALL("AQTitle subtitles"),
+const FFInputFormat ff_aqtitle_demuxer = {
+ .p.name = "aqtitle",
+ .p.long_name = NULL_IF_CONFIG_SMALL("AQTitle subtitles"),
+ .p.extensions = "aqt",
+ .p.priv_class = &aqt_class,
.priv_data_size = sizeof(AQTitleContext),
.flags_internal = FF_FMT_INIT_CLEANUP,
.read_probe = aqt_probe,
@@ -145,6 +148,4 @@ const AVInputFormat ff_aqtitle_demuxer = {
.read_packet = aqt_read_packet,
.read_seek2 = aqt_read_seek,
.read_close = aqt_read_close,
- .extensions = "aqt",
- .priv_class = &aqt_class,
};
diff --git a/libavformat/argo_asf.c b/libavformat/argo_asf.c
index 5f38b68b6a..0e1eae24fb 100644
--- a/libavformat/argo_asf.c
+++ b/libavformat/argo_asf.c
@@ -24,6 +24,7 @@
#include "libavutil/avstring.h"
#include "avformat.h"
+#include "demux.h"
#include "internal.h"
#include "mux.h"
#include "libavutil/channel_layout.h"
@@ -272,9 +273,9 @@ static int argo_asf_seek(AVFormatContext *s, int stream_index,
* - Argonaut Sound File?
* - Audio Stream File?
*/
-const AVInputFormat ff_argo_asf_demuxer = {
- .name = "argo_asf",
- .long_name = NULL_IF_CONFIG_SMALL("Argonaut Games ASF"),
+const FFInputFormat ff_argo_asf_demuxer = {
+ .p.name = "argo_asf",
+ .p.long_name = NULL_IF_CONFIG_SMALL("Argonaut Games ASF"),
.priv_data_size = sizeof(ArgoASFDemuxContext),
.read_probe = argo_asf_probe,
.read_header = argo_asf_read_header,
diff --git a/libavformat/argo_brp.c b/libavformat/argo_brp.c
index 2ccdbd3e5b..f88def3731 100644
--- a/libavformat/argo_brp.c
+++ b/libavformat/argo_brp.c
@@ -21,6 +21,7 @@
*/
#include "avformat.h"
+#include "demux.h"
#include "internal.h"
#include "libavutil/intreadwrite.h"
#include "libavutil/avassert.h"
@@ -413,9 +414,9 @@ static int argo_brp_read_packet(AVFormatContext *s, AVPacket *pkt)
return 0;
}
-const AVInputFormat ff_argo_brp_demuxer = {
- .name = "argo_brp",
- .long_name = NULL_IF_CONFIG_SMALL("Argonaut Games BRP"),
+const FFInputFormat ff_argo_brp_demuxer = {
+ .p.name = "argo_brp",
+ .p.long_name = NULL_IF_CONFIG_SMALL("Argonaut Games BRP"),
.priv_data_size = sizeof(ArgoBRPDemuxContext),
.read_probe = argo_brp_probe,
.read_header = argo_brp_read_header,
diff --git a/libavformat/argo_cvg.c b/libavformat/argo_cvg.c
index 2c74200b7d..0cf0bf3e9a 100644
--- a/libavformat/argo_cvg.c
+++ b/libavformat/argo_cvg.c
@@ -25,6 +25,7 @@
#include "libavutil/avstring.h"
#include "libavutil/channel_layout.h"
#include "avformat.h"
+#include "demux.h"
#include "internal.h"
#include "mux.h"
#include "libavutil/opt.h"
@@ -253,9 +254,9 @@ static int argo_cvg_seek(AVFormatContext *s, int stream_index,
return 0;
}
-const AVInputFormat ff_argo_cvg_demuxer = {
- .name = "argo_cvg",
- .long_name = NULL_IF_CONFIG_SMALL("Argonaut Games CVG"),
+const FFInputFormat ff_argo_cvg_demuxer = {
+ .p.name = "argo_cvg",
+ .p.long_name = NULL_IF_CONFIG_SMALL("Argonaut Games CVG"),
.priv_data_size = sizeof(ArgoCVGDemuxContext),
.read_probe = argo_cvg_probe,
.read_header = argo_cvg_read_header,
diff --git a/libavformat/asfdec_f.c b/libavformat/asfdec_f.c
index a579c3e894..9713c02b0a 100644
--- a/libavformat/asfdec_f.c
+++ b/libavformat/asfdec_f.c
@@ -1617,9 +1617,11 @@ static int asf_read_seek(AVFormatContext *s, int stream_index,
return 0;
}
-const AVInputFormat ff_asf_demuxer = {
- .name = "asf",
- .long_name = NULL_IF_CONFIG_SMALL("ASF (Advanced / Active Streaming Format)"),
+const FFInputFormat ff_asf_demuxer = {
+ .p.name = "asf",
+ .p.long_name = NULL_IF_CONFIG_SMALL("ASF (Advanced / Active Streaming Format)"),
+ .p.flags = AVFMT_NOBINSEARCH | AVFMT_NOGENSEARCH,
+ .p.priv_class = &asf_class,
.priv_data_size = sizeof(ASFContext),
.read_probe = asf_probe,
.read_header = asf_read_header,
@@ -1627,6 +1629,4 @@ const AVInputFormat ff_asf_demuxer = {
.read_close = asf_read_close,
.read_seek = asf_read_seek,
.read_timestamp = asf_read_pts,
- .flags = AVFMT_NOBINSEARCH | AVFMT_NOGENSEARCH,
- .priv_class = &asf_class,
};
diff --git a/libavformat/asfdec_o.c b/libavformat/asfdec_o.c
index 10942ecfa0..484fb64b36 100644
--- a/libavformat/asfdec_o.c
+++ b/libavformat/asfdec_o.c
@@ -1674,9 +1674,10 @@ failed:
return ret;
}
-const AVInputFormat ff_asf_o_demuxer = {
- .name = "asf_o",
- .long_name = NULL_IF_CONFIG_SMALL("ASF (Advanced / Active Streaming Format)"),
+const FFInputFormat ff_asf_o_demuxer = {
+ .p.name = "asf_o",
+ .p.long_name = NULL_IF_CONFIG_SMALL("ASF (Advanced / Active Streaming Format)"),
+ .p.flags = AVFMT_NOBINSEARCH | AVFMT_NOGENSEARCH,
.priv_data_size = sizeof(ASFContext),
.read_probe = asf_probe,
.read_header = asf_read_header,
@@ -1684,5 +1685,4 @@ const AVInputFormat ff_asf_o_demuxer = {
.read_close = asf_read_close,
.read_timestamp = asf_read_timestamp,
.read_seek = asf_read_seek,
- .flags = AVFMT_NOBINSEARCH | AVFMT_NOGENSEARCH,
};
diff --git a/libavformat/assdec.c b/libavformat/assdec.c
index bf7b8a73a2..a689a59689 100644
--- a/libavformat/assdec.c
+++ b/libavformat/assdec.c
@@ -23,6 +23,7 @@
#include <stdint.h>
#include "avformat.h"
+#include "demux.h"
#include "internal.h"
#include "subtitles.h"
#include "libavutil/bprint.h"
@@ -160,9 +161,9 @@ end:
return res;
}
-const AVInputFormat ff_ass_demuxer = {
- .name = "ass",
- .long_name = NULL_IF_CONFIG_SMALL("SSA (SubStation Alpha) subtitle"),
+const FFInputFormat ff_ass_demuxer = {
+ .p.name = "ass",
+ .p.long_name = NULL_IF_CONFIG_SMALL("SSA (SubStation Alpha) subtitle"),
.flags_internal = FF_FMT_INIT_CLEANUP,
.priv_data_size = sizeof(ASSContext),
.read_probe = ass_probe,
diff --git a/libavformat/astdec.c b/libavformat/astdec.c
index f812f6437c..7185e27fd4 100644
--- a/libavformat/astdec.c
+++ b/libavformat/astdec.c
@@ -22,6 +22,7 @@
#include "libavutil/channel_layout.h"
#include "libavutil/intreadwrite.h"
#include "avformat.h"
+#include "demux.h"
#include "internal.h"
#include "ast.h"
@@ -111,13 +112,13 @@ static int ast_read_packet(AVFormatContext *s, AVPacket *pkt)
return ret;
}
-const AVInputFormat ff_ast_demuxer = {
- .name = "ast",
- .long_name = NULL_IF_CONFIG_SMALL("AST (Audio Stream)"),
+const FFInputFormat ff_ast_demuxer = {
+ .p.name = "ast",
+ .p.long_name = NULL_IF_CONFIG_SMALL("AST (Audio Stream)"),
+ .p.extensions = "ast",
+ .p.flags = AVFMT_GENERIC_INDEX,
+ .p.codec_tag = ff_ast_codec_tags_list,
.read_probe = ast_probe,
.read_header = ast_read_header,
.read_packet = ast_read_packet,
- .extensions = "ast",
- .flags = AVFMT_GENERIC_INDEX,
- .codec_tag = ff_ast_codec_tags_list,
};
diff --git a/libavformat/au.c b/libavformat/au.c
index 63dfd71d0f..da1fc79f0d 100644
--- a/libavformat/au.c
+++ b/libavformat/au.c
@@ -32,6 +32,7 @@
#include "libavutil/bprint.h"
#include "libavutil/intreadwrite.h"
#include "avformat.h"
+#include "demux.h"
#include "internal.h"
#include "avio_internal.h"
#include "mux.h"
@@ -235,14 +236,14 @@ static int au_read_header(AVFormatContext *s)
return 0;
}
-const AVInputFormat ff_au_demuxer = {
- .name = "au",
- .long_name = NULL_IF_CONFIG_SMALL("Sun AU"),
+const FFInputFormat ff_au_demuxer = {
+ .p.name = "au",
+ .p.long_name = NULL_IF_CONFIG_SMALL("Sun AU"),
+ .p.codec_tag = au_codec_tags,
.read_probe = au_probe,
.read_header = au_read_header,
.read_packet = ff_pcm_read_packet,
.read_seek = ff_pcm_read_seek,
- .codec_tag = au_codec_tags,
};
#endif /* CONFIG_AU_DEMUXER */
diff --git a/libavformat/av1dec.c b/libavformat/av1dec.c
index c4542a5cbe..3382613d54 100644
--- a/libavformat/av1dec.c
+++ b/libavformat/av1dec.c
@@ -27,6 +27,7 @@
#include "libavcodec/bsf.h"
#include "avformat.h"
#include "avio_internal.h"
+#include "demux.h"
#include "internal.h"
typedef struct AV1DemuxContext {
@@ -281,18 +282,18 @@ end:
return ret;
}
-const AVInputFormat ff_av1_demuxer = {
- .name = "av1",
- .long_name = NULL_IF_CONFIG_SMALL("AV1 Annex B"),
+const FFInputFormat ff_av1_demuxer = {
+ .p.name = "av1",
+ .p.long_name = NULL_IF_CONFIG_SMALL("AV1 Annex B"),
+ .p.extensions = "obu",
+ .p.flags = AVFMT_GENERIC_INDEX | AVFMT_NOTIMESTAMPS,
+ .p.priv_class = &av1_demuxer_class,
.priv_data_size = sizeof(AV1DemuxContext),
.flags_internal = FF_FMT_INIT_CLEANUP,
.read_probe = annexb_probe,
.read_header = av1_read_header,
.read_packet = annexb_read_packet,
.read_close = av1_read_close,
- .extensions = "obu",
- .flags = AVFMT_GENERIC_INDEX | AVFMT_NOTIMESTAMPS,
- .priv_class = &av1_demuxer_class,
};
#endif
@@ -426,17 +427,17 @@ static int obu_read_packet(AVFormatContext *s, AVPacket *pkt)
return ret;
}
-const AVInputFormat ff_obu_demuxer = {
- .name = "obu",
- .long_name = NULL_IF_CONFIG_SMALL("AV1 low overhead OBU"),
+const FFInputFormat ff_obu_demuxer = {
+ .p.name = "obu",
+ .p.long_name = NULL_IF_CONFIG_SMALL("AV1 low overhead OBU"),
+ .p.extensions = "obu",
+ .p.flags = AVFMT_GENERIC_INDEX | AVFMT_NO_BYTE_SEEK | AVFMT_NOTIMESTAMPS,
+ .p.priv_class = &av1_demuxer_class,
.priv_data_size = sizeof(AV1DemuxContext),
.flags_internal = FF_FMT_INIT_CLEANUP,
.read_probe = obu_probe,
.read_header = av1_read_header,
.read_packet = obu_read_packet,
.read_close = av1_read_close,
- .extensions = "obu",
- .flags = AVFMT_GENERIC_INDEX | AVFMT_NO_BYTE_SEEK | AVFMT_NOTIMESTAMPS,
- .priv_class = &av1_demuxer_class,
};
#endif
diff --git a/libavformat/avformat.h b/libavformat/avformat.h
index ed02dd87b9..5fd1387e9e 100644
--- a/libavformat/avformat.h
+++ b/libavformat/avformat.h
@@ -330,7 +330,6 @@
struct AVFormatContext;
struct AVFrame;
-struct AVDeviceInfoList;
/**
* @defgroup metadata_api Public Metadata API
@@ -584,103 +583,6 @@ typedef struct AVInputFormat {
* @see av_probe_input_format2
*/
const char *mime_type;
-
- /*****************************************************************
- * No fields below this line are part of the public API. They
- * may not be used outside of libavformat and can be changed and
- * removed at will.
- * New public fields should be added right above.
- *****************************************************************
- */
- /**
- * Raw demuxers store their codec ID here.
- */
- int raw_codec_id;
-
- /**
- * Size of private data so that it can be allocated in the wrapper.
- */
- int priv_data_size;
-
- /**
- * Internal flags. See FF_FMT_FLAG_* in internal.h.
- */
- int flags_internal;
-
- /**
- * Tell if a given file has a chance of being parsed as this format.
- * The buffer provided is guaranteed to be AVPROBE_PADDING_SIZE bytes
- * big so you do not have to check for that unless you need more.
- */
- int (*read_probe)(const AVProbeData *);
-
- /**
- * Read the format header and initialize the AVFormatContext
- * structure. Return 0 if OK. 'avformat_new_stream' should be
- * called to create new streams.
- */
- int (*read_header)(struct AVFormatContext *);
-
- /**
- * Read one packet and put it in 'pkt'. pts and flags are also
- * set. 'avformat_new_stream' can be called only if the flag
- * AVFMTCTX_NOHEADER is used and only in the calling thread (not in a
- * background thread).
- * @return 0 on success, < 0 on error.
- * Upon returning an error, pkt must be unreferenced by the caller.
- */
- int (*read_packet)(struct AVFormatContext *, AVPacket *pkt);
-
- /**
- * Close the stream. The AVFormatContext and AVStreams are not
- * freed by this function
- */
- int (*read_close)(struct AVFormatContext *);
-
- /**
- * Seek to a given timestamp relative to the frames in
- * stream component stream_index.
- * @param stream_index Must not be -1.
- * @param flags Selects which direction should be preferred if no exact
- * match is available.
- * @return >= 0 on success (but not necessarily the new offset)
- */
- int (*read_seek)(struct AVFormatContext *,
- int stream_index, int64_t timestamp, int flags);
-
- /**
- * Get the next timestamp in stream[stream_index].time_base units.
- * @return the timestamp or AV_NOPTS_VALUE if an error occurred
- */
- int64_t (*read_timestamp)(struct AVFormatContext *s, int stream_index,
- int64_t *pos, int64_t pos_limit);
-
- /**
- * Start/resume playing - only meaningful if using a network-based format
- * (RTSP).
- */
- int (*read_play)(struct AVFormatContext *);
-
- /**
- * Pause playing - only meaningful if using a network-based format
- * (RTSP).
- */
- int (*read_pause)(struct AVFormatContext *);
-
- /**
- * Seek to timestamp ts.
- * Seeking will be done so that the point from which all active streams
- * can be presented successfully will be closest to ts and within min/max_ts.
- * Active streams are all streams that have AVStream.discard < AVDISCARD_ALL.
- */
- int (*read_seek2)(struct AVFormatContext *s, int stream_index, int64_t min_ts, int64_t ts, int64_t max_ts, int flags);
-
- /**
- * Returns device list with it properties.
- * @see avdevice_list_devices() for more details.
- */
- int (*get_device_list)(struct AVFormatContext *s, struct AVDeviceInfoList *device_list);
-
} AVInputFormat;
/**
* @}
diff --git a/libavformat/avidec.c b/libavformat/avidec.c
index 00bd7a98a9..f3183b2698 100644
--- a/libavformat/avidec.c
+++ b/libavformat/avidec.c
@@ -2010,16 +2010,16 @@ static int avi_probe(const AVProbeData *p)
return 0;
}
-const AVInputFormat ff_avi_demuxer = {
- .name = "avi",
- .long_name = NULL_IF_CONFIG_SMALL("AVI (Audio Video Interleaved)"),
+const FFInputFormat ff_avi_demuxer = {
+ .p.name = "avi",
+ .p.long_name = NULL_IF_CONFIG_SMALL("AVI (Audio Video Interleaved)"),
+ .p.extensions = "avi",
+ .p.priv_class = &demuxer_class,
.priv_data_size = sizeof(AVIContext),
.flags_internal = FF_FMT_INIT_CLEANUP,
- .extensions = "avi",
.read_probe = avi_probe,
.read_header = avi_read_header,
.read_packet = avi_read_packet,
.read_close = avi_read_close,
.read_seek = avi_read_seek,
- .priv_class = &demuxer_class,
};
diff --git a/libavformat/avisynth.c b/libavformat/avisynth.c
index 027e8c63f6..482607460b 100644
--- a/libavformat/avisynth.c
+++ b/libavformat/avisynth.c
@@ -26,6 +26,7 @@
#include "libavcodec/internal.h"
#include "avformat.h"
+#include "demux.h"
#include "internal.h"
#include "config.h"
@@ -1197,14 +1198,14 @@ static const AVClass avisynth_demuxer_class = {
.version = LIBAVUTIL_VERSION_INT,
};
-const AVInputFormat ff_avisynth_demuxer = {
- .name = "avisynth",
- .long_name = NULL_IF_CONFIG_SMALL("AviSynth script"),
+const FFInputFormat ff_avisynth_demuxer = {
+ .p.name = "avisynth",
+ .p.long_name = NULL_IF_CONFIG_SMALL("AviSynth script"),
+ .p.extensions = "avs",
+ .p.priv_class = &avisynth_demuxer_class,
.priv_data_size = sizeof(AviSynthContext),
.read_header = avisynth_read_header,
.read_packet = avisynth_read_packet,
.read_close = avisynth_read_close,
.read_seek = avisynth_read_seek,
- .extensions = "avs",
- .priv_class = &avisynth_demuxer_class,
};
diff --git a/libavformat/avr.c b/libavformat/avr.c
index dce977b6ac..12286c04d4 100644
--- a/libavformat/avr.c
+++ b/libavformat/avr.c
@@ -21,6 +21,7 @@
#include "libavutil/intreadwrite.h"
#include "avformat.h"
+#include "demux.h"
#include "internal.h"
#include "pcm.h"
@@ -90,13 +91,13 @@ static int avr_read_header(AVFormatContext *s)
return 0;
}
-const AVInputFormat ff_avr_demuxer = {
- .name = "avr",
- .long_name = NULL_IF_CONFIG_SMALL("AVR (Audio Visual Research)"),
+const FFInputFormat ff_avr_demuxer = {
+ .p.name = "avr",
+ .p.long_name = NULL_IF_CONFIG_SMALL("AVR (Audio Visual Research)"),
+ .p.extensions = "avr",
+ .p.flags = AVFMT_GENERIC_INDEX,
.read_probe = avr_probe,
.read_header = avr_read_header,
.read_packet = ff_pcm_read_packet,
.read_seek = ff_pcm_read_seek,
- .extensions = "avr",
- .flags = AVFMT_GENERIC_INDEX,
};
diff --git a/libavformat/avs.c b/libavformat/avs.c
index 19f0373157..3cd814836b 100644
--- a/libavformat/avs.c
+++ b/libavformat/avs.c
@@ -26,6 +26,7 @@
*/
#include "avformat.h"
+#include "demux.h"
#include "voc.h"
@@ -228,9 +229,9 @@ static int avs_read_packet(AVFormatContext * s, AVPacket * pkt)
}
}
-const AVInputFormat ff_avs_demuxer = {
- .name = "avs",
- .long_name = NULL_IF_CONFIG_SMALL("Argonaut Games Creature Shock"),
+const FFInputFormat ff_avs_demuxer = {
+ .p.name = "avs",
+ .p.long_name = NULL_IF_CONFIG_SMALL("Argonaut Games Creature Shock"),
.priv_data_size = sizeof(AvsFormat),
.read_probe = avs_probe,
.read_header = avs_read_header,
diff --git a/libavformat/bethsoftvid.c b/libavformat/bethsoftvid.c
index cfb7d57332..bdf1bdc6c0 100644
--- a/libavformat/bethsoftvid.c
+++ b/libavformat/bethsoftvid.c
@@ -31,6 +31,7 @@
#include "libavutil/imgutils.h"
#include "libavutil/intreadwrite.h"
#include "avformat.h"
+#include "demux.h"
#include "internal.h"
#include "libavcodec/bethsoftvideo.h"
@@ -290,9 +291,9 @@ static int vid_read_packet(AVFormatContext *s,
}
}
-const AVInputFormat ff_bethsoftvid_demuxer = {
- .name = "bethsoftvid",
- .long_name = NULL_IF_CONFIG_SMALL("Bethesda Softworks VID"),
+const FFInputFormat ff_bethsoftvid_demuxer = {
+ .p.name = "bethsoftvid",
+ .p.long_name = NULL_IF_CONFIG_SMALL("Bethesda Softworks VID"),
.priv_data_size = sizeof(BVID_DemuxContext),
.read_probe = vid_probe,
.read_header = vid_read_header,
diff --git a/libavformat/bfi.c b/libavformat/bfi.c
index 6bcd3cd400..06bf5d2c17 100644
--- a/libavformat/bfi.c
+++ b/libavformat/bfi.c
@@ -176,9 +176,9 @@ static int bfi_read_packet(AVFormatContext * s, AVPacket * pkt)
return ret;
}
-const AVInputFormat ff_bfi_demuxer = {
- .name = "bfi",
- .long_name = NULL_IF_CONFIG_SMALL("Brute Force & Ignorance"),
+const FFInputFormat ff_bfi_demuxer = {
+ .p.name = "bfi",
+ .p.long_name = NULL_IF_CONFIG_SMALL("Brute Force & Ignorance"),
.priv_data_size = sizeof(BFIContext),
.read_probe = bfi_probe,
.read_header = bfi_read_header,
diff --git a/libavformat/bink.c b/libavformat/bink.c
index f4079dfb1d..0632d390a2 100644
--- a/libavformat/bink.c
+++ b/libavformat/bink.c
@@ -324,13 +324,13 @@ static int read_seek(AVFormatContext *s, int stream_index, int64_t timestamp, in
return 0;
}
-const AVInputFormat ff_bink_demuxer = {
- .name = "bink",
- .long_name = NULL_IF_CONFIG_SMALL("Bink"),
+const FFInputFormat ff_bink_demuxer = {
+ .p.name = "bink",
+ .p.long_name = NULL_IF_CONFIG_SMALL("Bink"),
+ .p.flags = AVFMT_SHOW_IDS,
.priv_data_size = sizeof(BinkDemuxContext),
.read_probe = probe,
.read_header = read_header,
.read_packet = read_packet,
.read_seek = read_seek,
- .flags = AVFMT_SHOW_IDS,
};
diff --git a/libavformat/binka.c b/libavformat/binka.c
index 00703ad015..cc5f2555ca 100644
--- a/libavformat/binka.c
+++ b/libavformat/binka.c
@@ -20,6 +20,7 @@
#include "libavutil/intreadwrite.h"
#include "avformat.h"
+#include "demux.h"
#include "internal.h"
static int binka_probe(const AVProbeData *p)
@@ -89,12 +90,12 @@ static int binka_read_packet(AVFormatContext *s, AVPacket *pkt)
return 0;
}
-const AVInputFormat ff_binka_demuxer = {
- .name = "binka",
- .long_name = NULL_IF_CONFIG_SMALL("Bink Audio"),
+const FFInputFormat ff_binka_demuxer = {
+ .p.name = "binka",
+ .p.long_name = NULL_IF_CONFIG_SMALL("Bink Audio"),
+ .p.flags = AVFMT_GENERIC_INDEX,
+ .p.extensions = "binka",
.read_probe = binka_probe,
.read_header = binka_read_header,
.read_packet = binka_read_packet,
- .flags = AVFMT_GENERIC_INDEX,
- .extensions = "binka",
};
diff --git a/libavformat/bintext.c b/libavformat/bintext.c
index b6f14a03e5..90d48b6691 100644
--- a/libavformat/bintext.c
+++ b/libavformat/bintext.c
@@ -36,6 +36,7 @@
#include "libavutil/opt.h"
#include "libavutil/parseutils.h"
#include "avformat.h"
+#include "demux.h"
#include "internal.h"
#include "sauce.h"
#include "libavcodec/bintext.h"
@@ -388,50 +389,50 @@ static const AVOption options[] = {
}}
#if CONFIG_BINTEXT_DEMUXER
-const AVInputFormat ff_bintext_demuxer = {
- .name = "bin",
- .long_name = NULL_IF_CONFIG_SMALL("Binary text"),
+const FFInputFormat ff_bintext_demuxer = {
+ .p.name = "bin",
+ .p.long_name = NULL_IF_CONFIG_SMALL("Binary text"),
+ .p.priv_class = CLASS("Binary text demuxer"),
.priv_data_size = sizeof(BinDemuxContext),
.read_probe = bin_probe,
.read_header = bintext_read_header,
.read_packet = read_packet,
- .priv_class = CLASS("Binary text demuxer"),
};
#endif
#if CONFIG_XBIN_DEMUXER
-const AVInputFormat ff_xbin_demuxer = {
- .name = "xbin",
- .long_name = NULL_IF_CONFIG_SMALL("eXtended BINary text (XBIN)"),
+const FFInputFormat ff_xbin_demuxer = {
+ .p.name = "xbin",
+ .p.long_name = NULL_IF_CONFIG_SMALL("eXtended BINary text (XBIN)"),
+ .p.priv_class = CLASS("eXtended BINary text (XBIN) demuxer"),
.priv_data_size = sizeof(BinDemuxContext),
.read_probe = xbin_probe,
.read_header = xbin_read_header,
.read_packet = read_packet,
- .priv_class = CLASS("eXtended BINary text (XBIN) demuxer"),
};
#endif
#if CONFIG_ADF_DEMUXER
-const AVInputFormat ff_adf_demuxer = {
- .name = "adf",
- .long_name = NULL_IF_CONFIG_SMALL("Artworx Data Format"),
+const FFInputFormat ff_adf_demuxer = {
+ .p.name = "adf",
+ .p.long_name = NULL_IF_CONFIG_SMALL("Artworx Data Format"),
+ .p.extensions = "adf",
+ .p.priv_class = CLASS("Artworx Data Format demuxer"),
.priv_data_size = sizeof(BinDemuxContext),
.read_header = adf_read_header,
.read_packet = read_packet,
- .extensions = "adf",
- .priv_class = CLASS("Artworx Data Format demuxer"),
};
#endif
#if CONFIG_IDF_DEMUXER
-const AVInputFormat ff_idf_demuxer = {
- .name = "idf",
- .long_name = NULL_IF_CONFIG_SMALL("iCE Draw File"),
+const FFInputFormat ff_idf_demuxer = {
+ .p.name = "idf",
+ .p.long_name = NULL_IF_CONFIG_SMALL("iCE Draw File"),
+ .p.extensions = "idf",
+ .p.priv_class = CLASS("iCE Draw File demuxer"),
.priv_data_size = sizeof(BinDemuxContext),
.read_probe = idf_probe,
.read_header = idf_read_header,
.read_packet = read_packet,
- .extensions = "idf",
- .priv_class = CLASS("iCE Draw File demuxer"),
};
#endif
diff --git a/libavformat/bit.c b/libavformat/bit.c
index c3b9cf4d3d..8133b1f44d 100644
--- a/libavformat/bit.c
+++ b/libavformat/bit.c
@@ -22,6 +22,7 @@
#include "config_components.h"
#include "avformat.h"
+#include "demux.h"
#include "internal.h"
#include "mux.h"
#include "libavcodec/get_bits.h"
@@ -113,13 +114,13 @@ static int read_packet(AVFormatContext *s,
return 0;
}
-const AVInputFormat ff_bit_demuxer = {
- .name = "bit",
- .long_name = NULL_IF_CONFIG_SMALL("G.729 BIT file format"),
+const FFInputFormat ff_bit_demuxer = {
+ .p.name = "bit",
+ .p.long_name = NULL_IF_CONFIG_SMALL("G.729 BIT file format"),
+ .p.extensions = "bit",
.read_probe = probe,
.read_header = read_header,
.read_packet = read_packet,
- .extensions = "bit",
};
#endif
diff --git a/libavformat/bmv.c b/libavformat/bmv.c
index e1f667076e..b2980cf582 100644
--- a/libavformat/bmv.c
+++ b/libavformat/bmv.c
@@ -21,6 +21,7 @@
#include "libavutil/channel_layout.h"
#include "avformat.h"
+#include "demux.h"
#include "internal.h"
enum BMVFlags {
@@ -124,12 +125,12 @@ static int bmv_read_close(AVFormatContext *s)
return 0;
}
-const AVInputFormat ff_bmv_demuxer = {
- .name = "bmv",
- .long_name = NULL_IF_CONFIG_SMALL("Discworld II BMV"),
+const FFInputFormat ff_bmv_demuxer = {
+ .p.name = "bmv",
+ .p.long_name = NULL_IF_CONFIG_SMALL("Discworld II BMV"),
+ .p.extensions = "bmv",
.priv_data_size = sizeof(BMVContext),
.read_header = bmv_read_header,
.read_packet = bmv_read_packet,
.read_close = bmv_read_close,
- .extensions = "bmv",
};
diff --git a/libavformat/boadec.c b/libavformat/boadec.c
index 02763142fb..d70966c97f 100644
--- a/libavformat/boadec.c
+++ b/libavformat/boadec.c
@@ -22,6 +22,7 @@
#include "libavutil/intreadwrite.h"
#include "libavcodec/internal.h"
#include "avformat.h"
+#include "demux.h"
#include "internal.h"
static int probe(const AVProbeData *p)
@@ -78,11 +79,11 @@ static int read_packet(AVFormatContext *s, AVPacket *pkt)
return av_get_packet(s->pb, pkt, st->codecpar->block_align);
}
-const AVInputFormat ff_boa_demuxer = {
- .name = "boa",
- .long_name = NULL_IF_CONFIG_SMALL("Black Ops Audio"),
+const FFInputFormat ff_boa_demuxer = {
+ .p.name = "boa",
+ .p.long_name = NULL_IF_CONFIG_SMALL("Black Ops Audio"),
+ .p.flags = AVFMT_GENERIC_INDEX,
.read_probe = probe,
.read_header = read_header,
.read_packet = read_packet,
- .flags = AVFMT_GENERIC_INDEX,
};
diff --git a/libavformat/bonk.c b/libavformat/bonk.c
index bd99c553e7..44de8e2087 100644
--- a/libavformat/bonk.c
+++ b/libavformat/bonk.c
@@ -103,15 +103,15 @@ static int bonk_read_header(AVFormatContext *s)
return 0;
}
-const AVInputFormat ff_bonk_demuxer = {
- .name = "bonk",
- .long_name = NULL_IF_CONFIG_SMALL("raw Bonk"),
+const FFInputFormat ff_bonk_demuxer = {
+ .p.name = "bonk",
+ .p.long_name = NULL_IF_CONFIG_SMALL("raw Bonk"),
+ .p.extensions = "bonk",
+ .p.flags = AVFMT_NOBINSEARCH | AVFMT_NOGENSEARCH | AVFMT_NO_BYTE_SEEK | AVFMT_NOTIMESTAMPS,
+ .p.priv_class = &ff_raw_demuxer_class,
.read_probe = bonk_probe,
.read_header = bonk_read_header,
.read_packet = ff_raw_read_partial_packet,
- .extensions = "bonk",
- .flags = AVFMT_NOBINSEARCH | AVFMT_NOGENSEARCH | AVFMT_NO_BYTE_SEEK | AVFMT_NOTIMESTAMPS,
.raw_codec_id = AV_CODEC_ID_BONK,
.priv_data_size = sizeof(FFRawDemuxerContext),
- .priv_class = &ff_raw_demuxer_class,
};
diff --git a/libavformat/brstm.c b/libavformat/brstm.c
index 628c556e66..5b2a59b6eb 100644
--- a/libavformat/brstm.c
+++ b/libavformat/brstm.c
@@ -467,9 +467,10 @@ static int read_seek(AVFormatContext *s, int stream_index,
return 0;
}
-const AVInputFormat ff_brstm_demuxer = {
- .name = "brstm",
- .long_name = NULL_IF_CONFIG_SMALL("BRSTM (Binary Revolution Stream)"),
+const FFInputFormat ff_brstm_demuxer = {
+ .p.name = "brstm",
+ .p.long_name = NULL_IF_CONFIG_SMALL("BRSTM (Binary Revolution Stream)"),
+ .p.extensions = "brstm",
.priv_data_size = sizeof(BRSTMDemuxContext),
.flags_internal = FF_FMT_INIT_CLEANUP,
.read_probe = probe,
@@ -477,12 +478,12 @@ const AVInputFormat ff_brstm_demuxer = {
.read_packet = read_packet,
.read_close = read_close,
.read_seek = read_seek,
- .extensions = "brstm",
};
-const AVInputFormat ff_bfstm_demuxer = {
- .name = "bfstm",
- .long_name = NULL_IF_CONFIG_SMALL("BFSTM (Binary Cafe Stream)"),
+const FFInputFormat ff_bfstm_demuxer = {
+ .p.name = "bfstm",
+ .p.long_name = NULL_IF_CONFIG_SMALL("BFSTM (Binary Cafe Stream)"),
+ .p.extensions = "bfstm,bcstm",
.priv_data_size = sizeof(BRSTMDemuxContext),
.flags_internal = FF_FMT_INIT_CLEANUP,
.read_probe = probe_bfstm,
@@ -490,5 +491,4 @@ const AVInputFormat ff_bfstm_demuxer = {
.read_packet = read_packet,
.read_close = read_close,
.read_seek = read_seek,
- .extensions = "bfstm,bcstm",
};
diff --git a/libavformat/c93.c b/libavformat/c93.c
index 9ecf1427a9..933fe4a99e 100644
--- a/libavformat/c93.c
+++ b/libavformat/c93.c
@@ -20,6 +20,7 @@
*/
#include "avformat.h"
+#include "demux.h"
#include "internal.h"
#include "voc.h"
#include "libavutil/intreadwrite.h"
@@ -185,9 +186,9 @@ static int read_packet(AVFormatContext *s, AVPacket *pkt)
return 0;
}
-const AVInputFormat ff_c93_demuxer = {
- .name = "c93",
- .long_name = NULL_IF_CONFIG_SMALL("Interplay C93"),
+const FFInputFormat ff_c93_demuxer = {
+ .p.name = "c93",
+ .p.long_name = NULL_IF_CONFIG_SMALL("Interplay C93"),
.priv_data_size = sizeof(C93DemuxContext),
.read_probe = probe,
.read_header = read_header,
diff --git a/libavformat/cafdec.c b/libavformat/cafdec.c
index f5ba0f4108..426c56b9bd 100644
--- a/libavformat/cafdec.c
+++ b/libavformat/cafdec.c
@@ -512,13 +512,13 @@ static int read_seek(AVFormatContext *s, int stream_index,
return 0;
}
-const AVInputFormat ff_caf_demuxer = {
- .name = "caf",
- .long_name = NULL_IF_CONFIG_SMALL("Apple CAF (Core Audio Format)"),
+const FFInputFormat ff_caf_demuxer = {
+ .p.name = "caf",
+ .p.long_name = NULL_IF_CONFIG_SMALL("Apple CAF (Core Audio Format)"),
+ .p.codec_tag = ff_caf_codec_tags_list,
.priv_data_size = sizeof(CafContext),
.read_probe = probe,
.read_header = read_header,
.read_packet = read_packet,
.read_seek = read_seek,
- .codec_tag = ff_caf_codec_tags_list,
};
diff --git a/libavformat/cdg.c b/libavformat/cdg.c
index f598285911..2030cdff89 100644
--- a/libavformat/cdg.c
+++ b/libavformat/cdg.c
@@ -20,6 +20,7 @@
*/
#include "avformat.h"
+#include "demux.h"
#include "internal.h"
#define CDG_PACKET_SIZE 24
@@ -83,12 +84,12 @@ static int read_packet(AVFormatContext *s, AVPacket *pkt)
return ret;
}
-const AVInputFormat ff_cdg_demuxer = {
- .name = "cdg",
- .long_name = NULL_IF_CONFIG_SMALL("CD Graphics"),
+const FFInputFormat ff_cdg_demuxer = {
+ .p.name = "cdg",
+ .p.long_name = NULL_IF_CONFIG_SMALL("CD Graphics"),
+ .p.flags = AVFMT_GENERIC_INDEX,
+ .p.extensions = "cdg",
.read_probe = read_probe,
.read_header = read_header,
.read_packet = read_packet,
- .flags = AVFMT_GENERIC_INDEX,
- .extensions = "cdg",
};
diff --git a/libavformat/cdxl.c b/libavformat/cdxl.c
index 065148360e..0ed426d55a 100644
--- a/libavformat/cdxl.c
+++ b/libavformat/cdxl.c
@@ -24,6 +24,7 @@
#include "libavutil/parseutils.h"
#include "libavutil/opt.h"
#include "avformat.h"
+#include "demux.h"
#include "internal.h"
#define CDXL_HEADER_SIZE 32
@@ -257,15 +258,15 @@ static const AVClass cdxl_demuxer_class = {
.version = LIBAVUTIL_VERSION_INT,
};
-const AVInputFormat ff_cdxl_demuxer = {
- .name = "cdxl",
- .long_name = NULL_IF_CONFIG_SMALL("Commodore CDXL video"),
+const FFInputFormat ff_cdxl_demuxer = {
+ .p.name = "cdxl",
+ .p.long_name = NULL_IF_CONFIG_SMALL("Commodore CDXL video"),
+ .p.priv_class = &cdxl_demuxer_class,
+ .p.extensions = "cdxl,xl",
+ .p.flags = AVFMT_GENERIC_INDEX,
.priv_data_size = sizeof(CDXLDemuxContext),
- .priv_class = &cdxl_demuxer_class,
.read_probe = cdxl_read_probe,
.read_header = cdxl_read_header,
.read_packet = cdxl_read_packet,
.read_seek = read_seek,
- .extensions = "cdxl,xl",
- .flags = AVFMT_GENERIC_INDEX,
};
diff --git a/libavformat/cinedec.c b/libavformat/cinedec.c
index e8d9657ee1..9ddfc90b47 100644
--- a/libavformat/cinedec.c
+++ b/libavformat/cinedec.c
@@ -29,6 +29,7 @@
#include "libavcodec/bmp.h"
#include "libavutil/intfloat.h"
#include "avformat.h"
+#include "demux.h"
#include "internal.h"
typedef struct {
@@ -336,9 +337,9 @@ static int cine_read_seek(AVFormatContext *avctx, int stream_index, int64_t time
return 0;
}
-const AVInputFormat ff_cine_demuxer = {
- .name = "cine",
- .long_name = NULL_IF_CONFIG_SMALL("Phantom Cine"),
+const FFInputFormat ff_cine_demuxer = {
+ .p.name = "cine",
+ .p.long_name = NULL_IF_CONFIG_SMALL("Phantom Cine"),
.priv_data_size = sizeof(CineDemuxContext),
.read_probe = cine_read_probe,
.read_header = cine_read_header,
diff --git a/libavformat/codec2.c b/libavformat/codec2.c
index f0f7b89253..4a3e10c6e3 100644
--- a/libavformat/codec2.c
+++ b/libavformat/codec2.c
@@ -27,6 +27,7 @@
#include "libavutil/opt.h"
#include "avio_internal.h"
#include "avformat.h"
+#include "demux.h"
#include "internal.h"
#include "mux.h"
#include "rawenc.h"
@@ -294,18 +295,18 @@ static const AVClass codec2raw_demux_class = {
};
#if CONFIG_CODEC2_DEMUXER
-const AVInputFormat ff_codec2_demuxer = {
- .name = "codec2",
- .long_name = NULL_IF_CONFIG_SMALL("codec2 .c2 demuxer"),
+const FFInputFormat ff_codec2_demuxer = {
+ .p.name = "codec2",
+ .p.long_name = NULL_IF_CONFIG_SMALL("codec2 .c2 demuxer"),
+ .p.extensions = "c2",
+ .p.flags = AVFMT_GENERIC_INDEX,
+ .p.priv_class = &codec2_demux_class,
.priv_data_size = sizeof(Codec2Context),
- .extensions = "c2",
.read_probe = codec2_probe,
.read_header = codec2_read_header,
.read_packet = codec2_read_packet,
.read_seek = ff_pcm_read_seek,
- .flags = AVFMT_GENERIC_INDEX,
.raw_codec_id = AV_CODEC_ID_CODEC2,
- .priv_class = &codec2_demux_class,
};
#endif
@@ -324,15 +325,15 @@ const FFOutputFormat ff_codec2_muxer = {
#endif
#if CONFIG_CODEC2RAW_DEMUXER
-const AVInputFormat ff_codec2raw_demuxer = {
- .name = "codec2raw",
- .long_name = NULL_IF_CONFIG_SMALL("raw codec2 demuxer"),
+const FFInputFormat ff_codec2raw_demuxer = {
+ .p.name = "codec2raw",
+ .p.long_name = NULL_IF_CONFIG_SMALL("raw codec2 demuxer"),
+ .p.flags = AVFMT_GENERIC_INDEX,
+ .p.priv_class = &codec2raw_demux_class,
.priv_data_size = sizeof(Codec2Context),
.read_header = codec2raw_read_header,
.read_packet = codec2_read_packet,
.read_seek = ff_pcm_read_seek,
- .flags = AVFMT_GENERIC_INDEX,
.raw_codec_id = AV_CODEC_ID_CODEC2,
- .priv_class = &codec2raw_demux_class,
};
#endif
diff --git a/libavformat/concatdec.c b/libavformat/concatdec.c
index ffa8ade25b..2abe479fb0 100644
--- a/libavformat/concatdec.c
+++ b/libavformat/concatdec.c
@@ -936,9 +936,10 @@ static const AVClass concat_class = {
};
-const AVInputFormat ff_concat_demuxer = {
- .name = "concat",
- .long_name = NULL_IF_CONFIG_SMALL("Virtual concatenation script"),
+const FFInputFormat ff_concat_demuxer = {
+ .p.name = "concat",
+ .p.long_name = NULL_IF_CONFIG_SMALL("Virtual concatenation script"),
+ .p.priv_class = &concat_class,
.priv_data_size = sizeof(ConcatContext),
.flags_internal = FF_FMT_INIT_CLEANUP,
.read_probe = concat_probe,
@@ -946,5 +947,4 @@ const AVInputFormat ff_concat_demuxer = {
.read_packet = concat_read_packet,
.read_close = concat_read_close,
.read_seek2 = concat_seek,
- .priv_class = &concat_class,
};
diff --git a/libavformat/dashdec.c b/libavformat/dashdec.c
index 1215407f3c..2998bcfb48 100644
--- a/libavformat/dashdec.c
+++ b/libavformat/dashdec.c
@@ -2355,10 +2355,11 @@ static const AVClass dash_class = {
.version = LIBAVUTIL_VERSION_INT,
};
-const AVInputFormat ff_dash_demuxer = {
- .name = "dash",
- .long_name = NULL_IF_CONFIG_SMALL("Dynamic Adaptive Streaming over HTTP"),
- .priv_class = &dash_class,
+const FFInputFormat ff_dash_demuxer = {
+ .p.name = "dash",
+ .p.long_name = NULL_IF_CONFIG_SMALL("Dynamic Adaptive Streaming over HTTP"),
+ .p.priv_class = &dash_class,
+ .p.flags = AVFMT_NO_BYTE_SEEK,
.priv_data_size = sizeof(DASHContext),
.flags_internal = FF_FMT_INIT_CLEANUP,
.read_probe = dash_probe,
@@ -2366,5 +2367,4 @@ const AVInputFormat ff_dash_demuxer = {
.read_packet = dash_read_packet,
.read_close = dash_close,
.read_seek = dash_read_seek,
- .flags = AVFMT_NO_BYTE_SEEK,
};
diff --git a/libavformat/dauddec.c b/libavformat/dauddec.c
index 7e411091ec..7631cd7065 100644
--- a/libavformat/dauddec.c
+++ b/libavformat/dauddec.c
@@ -21,6 +21,7 @@
#include "libavutil/channel_layout.h"
#include "avformat.h"
+#include "demux.h"
#include "internal.h"
static int daud_header(AVFormatContext *s) {
@@ -53,10 +54,10 @@ static int daud_packet(AVFormatContext *s, AVPacket *pkt) {
return ret;
}
-const AVInputFormat ff_daud_demuxer = {
- .name = "daud",
- .long_name = NULL_IF_CONFIG_SMALL("D-Cinema audio"),
+const FFInputFormat ff_daud_demuxer = {
+ .p.name = "daud",
+ .p.long_name = NULL_IF_CONFIG_SMALL("D-Cinema audio"),
+ .p.extensions = "302,daud",
.read_header = daud_header,
.read_packet = daud_packet,
- .extensions = "302,daud",
};
diff --git a/libavformat/dcstr.c b/libavformat/dcstr.c
index 286ec92df3..3badb7d4c8 100644
--- a/libavformat/dcstr.c
+++ b/libavformat/dcstr.c
@@ -20,6 +20,7 @@
*/
#include "avformat.h"
+#include "demux.h"
#include "internal.h"
static int dcstr_probe(const AVProbeData *p)
@@ -80,12 +81,12 @@ static int dcstr_read_packet(AVFormatContext *s, AVPacket *pkt)
return av_get_packet(s->pb, pkt, par->block_align);
}
-const AVInputFormat ff_dcstr_demuxer = {
- .name = "dcstr",
- .long_name = NULL_IF_CONFIG_SMALL("Sega DC STR"),
+const FFInputFormat ff_dcstr_demuxer = {
+ .p.name = "dcstr",
+ .p.long_name = NULL_IF_CONFIG_SMALL("Sega DC STR"),
+ .p.extensions = "str",
+ .p.flags = AVFMT_GENERIC_INDEX | AVFMT_NO_BYTE_SEEK | AVFMT_NOBINSEARCH,
.read_probe = dcstr_probe,
.read_header = dcstr_read_header,
.read_packet = dcstr_read_packet,
- .extensions = "str",
- .flags = AVFMT_GENERIC_INDEX | AVFMT_NO_BYTE_SEEK | AVFMT_NOBINSEARCH,
};
diff --git a/libavformat/demux.c b/libavformat/demux.c
index f0929a2479..670f2c0a65 100644
--- a/libavformat/demux.c
+++ b/libavformat/demux.c
@@ -283,8 +283,8 @@ int avformat_open_input(AVFormatContext **ps, const char *filename,
s->duration = s->start_time = AV_NOPTS_VALUE;
/* Allocate private data. */
- if (s->iformat->priv_data_size > 0) {
- if (!(s->priv_data = av_mallocz(s->iformat->priv_data_size))) {
+ if (ffifmt(s->iformat)->priv_data_size > 0) {
+ if (!(s->priv_data = av_mallocz(ffifmt(s->iformat)->priv_data_size))) {
ret = AVERROR(ENOMEM);
goto fail;
}
@@ -300,9 +300,9 @@ int avformat_open_input(AVFormatContext **ps, const char *filename,
if (s->pb)
ff_id3v2_read_dict(s->pb, &si->id3v2_meta, ID3v2_DEFAULT_MAGIC, &id3v2_extra_meta);
- if (s->iformat->read_header)
- if ((ret = s->iformat->read_header(s)) < 0) {
- if (s->iformat->flags_internal & FF_FMT_INIT_CLEANUP)
+ if (ffifmt(s->iformat)->read_header)
+ if ((ret = ffifmt(s->iformat)->read_header(s)) < 0) {
+ if (ffifmt(s->iformat)->flags_internal & FF_FMT_INIT_CLEANUP)
goto close;
goto fail;
}
@@ -347,8 +347,8 @@ int avformat_open_input(AVFormatContext **ps, const char *filename,
return 0;
close:
- if (s->iformat->read_close)
- s->iformat->read_close(s);
+ if (ffifmt(s->iformat)->read_close)
+ ffifmt(s->iformat)->read_close(s);
fail:
ff_id3v2_free_extra_meta(&id3v2_extra_meta);
av_dict_free(&tmp);
@@ -375,8 +375,8 @@ void avformat_close_input(AVFormatContext **ps)
pb = NULL;
if (s->iformat)
- if (s->iformat->read_close)
- s->iformat->read_close(s);
+ if (ffifmt(s->iformat)->read_close)
+ ffifmt(s->iformat)->read_close(s);
avformat_free_context(s);
@@ -561,7 +561,7 @@ FF_ENABLE_DEPRECATION_WARNINGS
}
}
- err = s->iformat->read_packet(s, pkt);
+ err = ffifmt(s->iformat)->read_packet(s, pkt);
if (err < 0) {
av_packet_unref(pkt);
diff --git a/libavformat/demux.h b/libavformat/demux.h
index d65eb16ff8..41d1318f75 100644
--- a/libavformat/demux.h
+++ b/libavformat/demux.h
@@ -26,6 +26,109 @@
#include "libavcodec/packet.h"
#include "avformat.h"
+struct AVDeviceInfoList;
+
+typedef struct FFInputFormat {
+ /**
+ * The public AVInputFormat. See avformat.h for it.
+ */
+ AVInputFormat p;
+
+ /**
+ * Raw demuxers store their codec ID here.
+ */
+ int raw_codec_id;
+
+ /**
+ * Size of private data so that it can be allocated in the wrapper.
+ */
+ int priv_data_size;
+
+ /**
+ * Internal flags. See FF_FMT_FLAG_* in internal.h.
+ */
+ int flags_internal;
+
+ /**
+ * Tell if a given file has a chance of being parsed as this format.
+ * The buffer provided is guaranteed to be AVPROBE_PADDING_SIZE bytes
+ * big so you do not have to check for that unless you need more.
+ */
+ int (*read_probe)(const AVProbeData *);
+
+ /**
+ * Read the format header and initialize the AVFormatContext
+ * structure. Return 0 if OK. 'avformat_new_stream' should be
+ * called to create new streams.
+ */
+ int (*read_header)(struct AVFormatContext *);
+
+ /**
+ * Read one packet and put it in 'pkt'. pts and flags are also
+ * set. 'avformat_new_stream' can be called only if the flag
+ * AVFMTCTX_NOHEADER is used and only in the calling thread (not in a
+ * background thread).
+ * @return 0 on success, < 0 on error.
+ * Upon returning an error, pkt must be unreferenced by the caller.
+ */
+ int (*read_packet)(struct AVFormatContext *, AVPacket *pkt);
+
+ /**
+ * Close the stream. The AVFormatContext and AVStreams are not
+ * freed by this function
+ */
+ int (*read_close)(struct AVFormatContext *);
+
+ /**
+ * Seek to a given timestamp relative to the frames in
+ * stream component stream_index.
+ * @param stream_index Must not be -1.
+ * @param flags Selects which direction should be preferred if no exact
+ * match is available.
+ * @return >= 0 on success (but not necessarily the new offset)
+ */
+ int (*read_seek)(struct AVFormatContext *,
+ int stream_index, int64_t timestamp, int flags);
+
+ /**
+ * Get the next timestamp in stream[stream_index].time_base units.
+ * @return the timestamp or AV_NOPTS_VALUE if an error occurred
+ */
+ int64_t (*read_timestamp)(struct AVFormatContext *s, int stream_index,
+ int64_t *pos, int64_t pos_limit);
+
+ /**
+ * Start/resume playing - only meaningful if using a network-based format
+ * (RTSP).
+ */
+ int (*read_play)(struct AVFormatContext *);
+
+ /**
+ * Pause playing - only meaningful if using a network-based format
+ * (RTSP).
+ */
+ int (*read_pause)(struct AVFormatContext *);
+
+ /**
+ * Seek to timestamp ts.
+ * Seeking will be done so that the point from which all active streams
+ * can be presented successfully will be closest to ts and within min/max_ts.
+ * Active streams are all streams that have AVStream.discard < AVDISCARD_ALL.
+ */
+ int (*read_seek2)(struct AVFormatContext *s, int stream_index, int64_t min_ts, int64_t ts, int64_t max_ts, int flags);
+
+ /**
+ * Returns device list with it properties.
+ * @see avdevice_list_devices() for more details.
+ */
+ int (*get_device_list)(struct AVFormatContext *s, struct AVDeviceInfoList *device_list);
+} FFInputFormat;
+
+static inline const FFInputFormat *ffifmt(const AVInputFormat *fmt)
+{
+ return (const FFInputFormat*)fmt;
+}
+
#define MAX_STD_TIMEBASES (30*12+30+3+6)
typedef struct FFStreamInfo {
int64_t last_dts;
@@ -90,7 +193,7 @@ void ff_read_frame_flush(AVFormatContext *s);
/**
* Perform a binary search using av_index_search_timestamp() and
- * AVInputFormat.read_timestamp().
+ * FFInputFormat.read_timestamp().
*
* @param target_ts target timestamp in the time base of the given stream
* @param stream_index stream number
@@ -166,7 +269,7 @@ void ff_rfps_calculate(AVFormatContext *ic);
* rounded to the nearest integer and halfway cases away from zero, and can
* therefore fall outside of the output interval.
*
- * Useful to simplify the rescaling of the arguments of AVInputFormat::read_seek2()
+ * Useful to simplify the rescaling of the arguments of FFInputFormat::read_seek2()
*
* @param[in] tb_in Timebase of the input `min_ts`, `ts` and `max_ts`
* @param[in] tb_out Timebase of the output `min_ts`, `ts` and `max_ts`
diff --git a/libavformat/demux_utils.c b/libavformat/demux_utils.c
index b16bc47a96..171a07107b 100644
--- a/libavformat/demux_utils.c
+++ b/libavformat/demux_utils.c
@@ -181,8 +181,8 @@ int ff_add_param_change(AVPacket *pkt, int32_t channels,
int av_read_play(AVFormatContext *s)
{
- if (s->iformat->read_play)
- return s->iformat->read_play(s);
+ if (ffifmt(s->iformat)->read_play)
+ return ffifmt(s->iformat)->read_play(s);
if (s->pb)
return avio_pause(s->pb, 0);
return AVERROR(ENOSYS);
@@ -190,8 +190,8 @@ int av_read_play(AVFormatContext *s)
int av_read_pause(AVFormatContext *s)
{
- if (s->iformat->read_pause)
- return s->iformat->read_pause(s);
+ if (ffifmt(s->iformat)->read_pause)
+ return ffifmt(s->iformat)->read_pause(s);
if (s->pb)
return avio_pause(s->pb, 1);
return AVERROR(ENOSYS);
diff --git a/libavformat/derf.c b/libavformat/derf.c
index 9da7fc4f19..f0077e9f06 100644
--- a/libavformat/derf.c
+++ b/libavformat/derf.c
@@ -22,6 +22,7 @@
#include "libavutil/channel_layout.h"
#include "libavutil/intreadwrite.h"
#include "avformat.h"
+#include "demux.h"
#include "internal.h"
#include "pcm.h"
@@ -67,12 +68,12 @@ static int derf_read_header(AVFormatContext *s)
return 0;
}
-const AVInputFormat ff_derf_demuxer = {
- .name = "derf",
- .long_name = NULL_IF_CONFIG_SMALL("Xilam DERF"),
+const FFInputFormat ff_derf_demuxer = {
+ .p.name = "derf",
+ .p.long_name = NULL_IF_CONFIG_SMALL("Xilam DERF"),
+ .p.extensions = "adp",
.read_probe = derf_probe,
.read_header = derf_read_header,
.read_packet = ff_pcm_read_packet,
.read_seek = ff_pcm_read_seek,
- .extensions = "adp",
};
diff --git a/libavformat/dfa.c b/libavformat/dfa.c
index 9808c9b617..1d78c348b1 100644
--- a/libavformat/dfa.c
+++ b/libavformat/dfa.c
@@ -23,6 +23,7 @@
#include "libavutil/intreadwrite.h"
#include "avformat.h"
+#include "demux.h"
#include "internal.h"
static int dfa_probe(const AVProbeData *p)
@@ -120,11 +121,11 @@ static int dfa_read_packet(AVFormatContext *s, AVPacket *pkt)
return 0;
}
-const AVInputFormat ff_dfa_demuxer = {
- .name = "dfa",
- .long_name = NULL_IF_CONFIG_SMALL("Chronomaster DFA"),
+const FFInputFormat ff_dfa_demuxer = {
+ .p.name = "dfa",
+ .p.long_name = NULL_IF_CONFIG_SMALL("Chronomaster DFA"),
+ .p.flags = AVFMT_GENERIC_INDEX,
.read_probe = dfa_probe,
.read_header = dfa_read_header,
.read_packet = dfa_read_packet,
- .flags = AVFMT_GENERIC_INDEX,
};
diff --git a/libavformat/dfpwmdec.c b/libavformat/dfpwmdec.c
index 4c998bea48..52ed33b8cf 100644
--- a/libavformat/dfpwmdec.c
+++ b/libavformat/dfpwmdec.c
@@ -22,6 +22,7 @@
#include "libavutil/avstring.h"
#include "avformat.h"
+#include "demux.h"
#include "internal.h"
#include "pcm.h"
#include "libavutil/log.h"
@@ -71,15 +72,15 @@ static const AVClass dfpwm_demuxer_class = {
.version = LIBAVUTIL_VERSION_INT,
};
-const AVInputFormat ff_dfpwm_demuxer = {
- .name = "dfpwm",
- .long_name = NULL_IF_CONFIG_SMALL("raw DFPWM1a"),
+const FFInputFormat ff_dfpwm_demuxer = {
+ .p.name = "dfpwm",
+ .p.long_name = NULL_IF_CONFIG_SMALL("raw DFPWM1a"),
+ .p.flags = AVFMT_GENERIC_INDEX,
+ .p.extensions = "dfpwm",
+ .p.priv_class = &dfpwm_demuxer_class,
.priv_data_size = sizeof(DFPWMAudioDemuxerContext),
.read_header = dfpwm_read_header,
.read_packet = ff_pcm_read_packet,
.read_seek = ff_pcm_read_seek,
- .flags = AVFMT_GENERIC_INDEX,
- .extensions = "dfpwm",
.raw_codec_id = AV_CODEC_ID_DFPWM,
- .priv_class = &dfpwm_demuxer_class,
};
diff --git a/libavformat/dhav.c b/libavformat/dhav.c
index 2ec4857f29..997875eff6 100644
--- a/libavformat/dhav.c
+++ b/libavformat/dhav.c
@@ -25,6 +25,7 @@
#include "libavutil/parseutils.h"
#include "avio_internal.h"
#include "avformat.h"
+#include "demux.h"
#include "internal.h"
typedef struct DHAVContext {
@@ -462,14 +463,14 @@ static int dhav_read_seek(AVFormatContext *s, int stream_index,
return 0;
}
-const AVInputFormat ff_dhav_demuxer = {
- .name = "dhav",
- .long_name = NULL_IF_CONFIG_SMALL("Video DAV"),
+const FFInputFormat ff_dhav_demuxer = {
+ .p.name = "dhav",
+ .p.long_name = NULL_IF_CONFIG_SMALL("Video DAV"),
+ .p.extensions = "dav",
+ .p.flags = AVFMT_GENERIC_INDEX | AVFMT_NO_BYTE_SEEK | AVFMT_TS_DISCONT | AVFMT_TS_NONSTRICT | AVFMT_SEEK_TO_PTS,
.priv_data_size = sizeof(DHAVContext),
.read_probe = dhav_probe,
.read_header = dhav_read_header,
.read_packet = dhav_read_packet,
.read_seek = dhav_read_seek,
- .extensions = "dav",
- .flags = AVFMT_GENERIC_INDEX | AVFMT_NO_BYTE_SEEK | AVFMT_TS_DISCONT | AVFMT_TS_NONSTRICT | AVFMT_SEEK_TO_PTS,
};
diff --git a/libavformat/dsfdec.c b/libavformat/dsfdec.c
index 3d3a82956e..17e109e345 100644
--- a/libavformat/dsfdec.c
+++ b/libavformat/dsfdec.c
@@ -22,6 +22,7 @@
#include "libavutil/channel_layout.h"
#include "libavutil/intreadwrite.h"
#include "avformat.h"
+#include "demux.h"
#include "internal.h"
#include "id3v2.h"
@@ -209,12 +210,12 @@ static int dsf_read_packet(AVFormatContext *s, AVPacket *pkt)
return 0;
}
-const AVInputFormat ff_dsf_demuxer = {
- .name = "dsf",
- .long_name = NULL_IF_CONFIG_SMALL("DSD Stream File (DSF)"),
+const FFInputFormat ff_dsf_demuxer = {
+ .p.name = "dsf",
+ .p.long_name = NULL_IF_CONFIG_SMALL("DSD Stream File (DSF)"),
+ .p.flags = AVFMT_GENERIC_INDEX | AVFMT_NO_BYTE_SEEK,
.priv_data_size = sizeof(DSFContext),
.read_probe = dsf_probe,
.read_header = dsf_read_header,
.read_packet = dsf_read_packet,
- .flags = AVFMT_GENERIC_INDEX | AVFMT_NO_BYTE_SEEK,
};
diff --git a/libavformat/dsicin.c b/libavformat/dsicin.c
index 13ee9f87bb..6eff38e010 100644
--- a/libavformat/dsicin.c
+++ b/libavformat/dsicin.c
@@ -27,6 +27,7 @@
#include "libavutil/channel_layout.h"
#include "libavutil/intreadwrite.h"
#include "avformat.h"
+#include "demux.h"
#include "internal.h"
#include "avio_internal.h"
@@ -227,9 +228,9 @@ static int cin_read_packet(AVFormatContext *s, AVPacket *pkt)
return 0;
}
-const AVInputFormat ff_dsicin_demuxer = {
- .name = "dsicin",
- .long_name = NULL_IF_CONFIG_SMALL("Delphine Software International CIN"),
+const FFInputFormat ff_dsicin_demuxer = {
+ .p.name = "dsicin",
+ .p.long_name = NULL_IF_CONFIG_SMALL("Delphine Software International CIN"),
.priv_data_size = sizeof(CinDemuxContext),
.read_probe = cin_probe,
.read_header = cin_read_header,
diff --git a/libavformat/dss.c b/libavformat/dss.c
index d619ea00d7..510b1bd60c 100644
--- a/libavformat/dss.c
+++ b/libavformat/dss.c
@@ -23,6 +23,7 @@
#include "libavutil/intreadwrite.h"
#include "avformat.h"
+#include "demux.h"
#include "internal.h"
#define DSS_HEAD_OFFSET_AUTHOR 0xc
@@ -353,13 +354,13 @@ static int dss_read_seek(AVFormatContext *s, int stream_index,
}
-const AVInputFormat ff_dss_demuxer = {
- .name = "dss",
- .long_name = NULL_IF_CONFIG_SMALL("Digital Speech Standard (DSS)"),
+const FFInputFormat ff_dss_demuxer = {
+ .p.name = "dss",
+ .p.long_name = NULL_IF_CONFIG_SMALL("Digital Speech Standard (DSS)"),
+ .p.extensions = "dss",
.priv_data_size = sizeof(DSSDemuxContext),
.read_probe = dss_probe,
.read_header = dss_read_header,
.read_packet = dss_read_packet,
.read_seek = dss_read_seek,
- .extensions = "dss"
};
diff --git a/libavformat/dtsdec.c b/libavformat/dtsdec.c
index ceedb2eb49..38ba3e73d4 100644
--- a/libavformat/dtsdec.c
+++ b/libavformat/dtsdec.c
@@ -27,6 +27,7 @@
#include "libavcodec/get_bits.h"
#include "avformat.h"
+#include "demux.h"
#include "rawdec.h"
static int dts_probe(const AVProbeData *p)
@@ -132,15 +133,15 @@ static int dts_probe(const AVProbeData *p)
return 0;
}
-const AVInputFormat ff_dts_demuxer = {
- .name = "dts",
- .long_name = NULL_IF_CONFIG_SMALL("raw DTS"),
+const FFInputFormat ff_dts_demuxer = {
+ .p.name = "dts",
+ .p.long_name = NULL_IF_CONFIG_SMALL("raw DTS"),
+ .p.flags = AVFMT_GENERIC_INDEX,
+ .p.extensions = "dts",
+ .p.priv_class = &ff_raw_demuxer_class,
.read_probe = dts_probe,
.read_header = ff_raw_audio_read_header,
.read_packet = ff_raw_read_partial_packet,
- .flags = AVFMT_GENERIC_INDEX,
- .extensions = "dts",
.raw_codec_id = AV_CODEC_ID_DTS,
.priv_data_size = sizeof(FFRawDemuxerContext),
- .priv_class = &ff_raw_demuxer_class,
};
diff --git a/libavformat/dtshddec.c b/libavformat/dtshddec.c
index a3dea0668f..9939724ac7 100644
--- a/libavformat/dtshddec.c
+++ b/libavformat/dtshddec.c
@@ -23,6 +23,7 @@
#include "libavutil/dict.h"
#include "libavcodec/dca.h"
#include "avformat.h"
+#include "demux.h"
#include "internal.h"
#define AUPR_HDR 0x415550522D484452
@@ -162,14 +163,14 @@ static int raw_read_packet(AVFormatContext *s, AVPacket *pkt)
return ret;
}
-const AVInputFormat ff_dtshd_demuxer = {
- .name = "dtshd",
- .long_name = NULL_IF_CONFIG_SMALL("raw DTS-HD"),
+const FFInputFormat ff_dtshd_demuxer = {
+ .p.name = "dtshd",
+ .p.long_name = NULL_IF_CONFIG_SMALL("raw DTS-HD"),
+ .p.flags = AVFMT_GENERIC_INDEX,
+ .p.extensions = "dtshd",
.priv_data_size = sizeof(DTSHDDemuxContext),
.read_probe = dtshd_probe,
.read_header = dtshd_read_header,
.read_packet = raw_read_packet,
- .flags = AVFMT_GENERIC_INDEX,
- .extensions = "dtshd",
.raw_codec_id = AV_CODEC_ID_DTS,
};
diff --git a/libavformat/dv.c b/libavformat/dv.c
index 6df93fe416..c0d3343e37 100644
--- a/libavformat/dv.c
+++ b/libavformat/dv.c
@@ -710,15 +710,15 @@ static int dv_probe(const AVProbeData *p)
return 0;
}
-const AVInputFormat ff_dv_demuxer = {
- .name = "dv",
- .long_name = NULL_IF_CONFIG_SMALL("DV (Digital Video)"),
+const FFInputFormat ff_dv_demuxer = {
+ .p.name = "dv",
+ .p.long_name = NULL_IF_CONFIG_SMALL("DV (Digital Video)"),
+ .p.extensions = "dv,dif",
.priv_data_size = sizeof(RawDVContext),
.read_probe = dv_probe,
.read_header = dv_read_header,
.read_packet = dv_read_packet,
.read_seek = dv_read_seek,
- .extensions = "dv,dif",
};
#else // CONFIG_DV_DEMUXER
diff --git a/libavformat/dxa.c b/libavformat/dxa.c
index 474b85270a..58757e8358 100644
--- a/libavformat/dxa.c
+++ b/libavformat/dxa.c
@@ -23,6 +23,7 @@
#include "libavutil/intreadwrite.h"
#include "avformat.h"
+#include "demux.h"
#include "internal.h"
#include "riff.h"
@@ -229,9 +230,9 @@ static int dxa_read_packet(AVFormatContext *s, AVPacket *pkt)
return AVERROR_EOF;
}
-const AVInputFormat ff_dxa_demuxer = {
- .name = "dxa",
- .long_name = NULL_IF_CONFIG_SMALL("DXA"),
+const FFInputFormat ff_dxa_demuxer = {
+ .p.name = "dxa",
+ .p.long_name = NULL_IF_CONFIG_SMALL("DXA"),
.priv_data_size = sizeof(DXAContext),
.read_probe = dxa_probe,
.read_header = dxa_read_header,
diff --git a/libavformat/eacdata.c b/libavformat/eacdata.c
index ebc98d274f..381f93dc71 100644
--- a/libavformat/eacdata.c
+++ b/libavformat/eacdata.c
@@ -30,6 +30,7 @@
#include "libavutil/channel_layout.h"
#include "avformat.h"
+#include "demux.h"
#include "internal.h"
#include "libavutil/channel_layout.h"
@@ -103,12 +104,12 @@ static int cdata_read_packet(AVFormatContext *s, AVPacket *pkt)
return 0;
}
-const AVInputFormat ff_ea_cdata_demuxer = {
- .name = "ea_cdata",
- .long_name = NULL_IF_CONFIG_SMALL("Electronic Arts cdata"),
+const FFInputFormat ff_ea_cdata_demuxer = {
+ .p.name = "ea_cdata",
+ .p.long_name = NULL_IF_CONFIG_SMALL("Electronic Arts cdata"),
+ .p.extensions = "cdata",
.priv_data_size = sizeof(CdataDemuxContext),
.read_probe = cdata_probe,
.read_header = cdata_read_header,
.read_packet = cdata_read_packet,
- .extensions = "cdata",
};
diff --git a/libavformat/electronicarts.c b/libavformat/electronicarts.c
index e7f574aede..f7f6fd4cab 100644
--- a/libavformat/electronicarts.c
+++ b/libavformat/electronicarts.c
@@ -30,6 +30,7 @@
#include "libavutil/intreadwrite.h"
#include "libavutil/opt.h"
#include "avformat.h"
+#include "demux.h"
#include "internal.h"
#define SCHl_TAG MKTAG('S', 'C', 'H', 'l')
@@ -783,12 +784,12 @@ static const AVClass ea_class = {
.version = LIBAVUTIL_VERSION_INT,
};
-const AVInputFormat ff_ea_demuxer = {
- .name = "ea",
- .long_name = NULL_IF_CONFIG_SMALL("Electronic Arts Multimedia"),
+const FFInputFormat ff_ea_demuxer = {
+ .p.name = "ea",
+ .p.long_name = NULL_IF_CONFIG_SMALL("Electronic Arts Multimedia"),
+ .p.priv_class = &ea_class,
.priv_data_size = sizeof(EaDemuxContext),
.read_probe = ea_probe,
.read_header = ea_read_header,
.read_packet = ea_read_packet,
- .priv_class = &ea_class,
};
diff --git a/libavformat/epafdec.c b/libavformat/epafdec.c
index a132360ebf..f2701b60ca 100644
--- a/libavformat/epafdec.c
+++ b/libavformat/epafdec.c
@@ -22,6 +22,7 @@
#include "libavutil/intreadwrite.h"
#include "libavcodec/internal.h"
#include "avformat.h"
+#include "demux.h"
#include "internal.h"
#include "pcm.h"
@@ -94,13 +95,13 @@ static int epaf_read_header(AVFormatContext *s)
return 0;
}
-const AVInputFormat ff_epaf_demuxer = {
- .name = "epaf",
- .long_name = NULL_IF_CONFIG_SMALL("Ensoniq Paris Audio File"),
+const FFInputFormat ff_epaf_demuxer = {
+ .p.name = "epaf",
+ .p.long_name = NULL_IF_CONFIG_SMALL("Ensoniq Paris Audio File"),
+ .p.extensions = "paf,fap",
+ .p.flags = AVFMT_GENERIC_INDEX,
.read_probe = epaf_probe,
.read_header = epaf_read_header,
.read_packet = ff_pcm_read_packet,
.read_seek = ff_pcm_read_seek,
- .extensions = "paf,fap",
- .flags = AVFMT_GENERIC_INDEX,
};
diff --git a/libavformat/evcdec.c b/libavformat/evcdec.c
index 5ace604db6..5e565809ec 100644
--- a/libavformat/evcdec.c
+++ b/libavformat/evcdec.c
@@ -27,6 +27,7 @@
#include "avformat.h"
#include "avio_internal.h"
+#include "demux.h"
#include "evc.h"
#include "internal.h"
@@ -201,17 +202,17 @@ static int evc_read_close(AVFormatContext *s)
return 0;
}
-const AVInputFormat ff_evc_demuxer = {
- .name = "evc",
- .long_name = NULL_IF_CONFIG_SMALL("EVC Annex B"),
+const FFInputFormat ff_evc_demuxer = {
+ .p.name = "evc",
+ .p.long_name = NULL_IF_CONFIG_SMALL("EVC Annex B"),
+ .p.extensions = "evc",
+ .p.flags = AVFMT_GENERIC_INDEX | AVFMT_NOTIMESTAMPS,
+ .p.priv_class = &evc_demuxer_class,
.read_probe = annexb_probe,
.read_header = evc_read_header, // annexb_read_header
.read_packet = evc_read_packet, // annexb_read_packet
.read_close = evc_read_close,
- .extensions = "evc",
- .flags = AVFMT_GENERIC_INDEX | AVFMT_NOTIMESTAMPS,
.flags_internal = FF_FMT_INIT_CLEANUP,
.raw_codec_id = AV_CODEC_ID_EVC,
.priv_data_size = sizeof(EVCDemuxContext),
- .priv_class = &evc_demuxer_class,
};
diff --git a/libavformat/ffmetadec.c b/libavformat/ffmetadec.c
index 90f2e2b861..ab62b7006e 100644
--- a/libavformat/ffmetadec.c
+++ b/libavformat/ffmetadec.c
@@ -222,9 +222,9 @@ static int read_packet(AVFormatContext *s, AVPacket *pkt)
return AVERROR_EOF;
}
-const AVInputFormat ff_ffmetadata_demuxer = {
- .name = "ffmetadata",
- .long_name = NULL_IF_CONFIG_SMALL("FFmpeg metadata in text"),
+const FFInputFormat ff_ffmetadata_demuxer = {
+ .p.name = "ffmetadata",
+ .p.long_name = NULL_IF_CONFIG_SMALL("FFmpeg metadata in text"),
.read_probe = probe,
.read_header = read_header,
.read_packet = read_packet,
diff --git a/libavformat/filmstripdec.c b/libavformat/filmstripdec.c
index 000f807181..5ce0af234c 100644
--- a/libavformat/filmstripdec.c
+++ b/libavformat/filmstripdec.c
@@ -27,6 +27,7 @@
#include "libavutil/intreadwrite.h"
#include "libavutil/imgutils.h"
#include "avformat.h"
+#include "demux.h"
#include "internal.h"
#define RAND_TAG MKBETAG('R','a','n','d')
@@ -104,12 +105,12 @@ static int read_seek(AVFormatContext *s, int stream_index, int64_t timestamp, in
return 0;
}
-const AVInputFormat ff_filmstrip_demuxer = {
- .name = "filmstrip",
- .long_name = NULL_IF_CONFIG_SMALL("Adobe Filmstrip"),
+const FFInputFormat ff_filmstrip_demuxer = {
+ .p.name = "filmstrip",
+ .p.long_name = NULL_IF_CONFIG_SMALL("Adobe Filmstrip"),
+ .p.extensions = "flm",
.priv_data_size = sizeof(FilmstripDemuxContext),
.read_header = read_header,
.read_packet = read_packet,
.read_seek = read_seek,
- .extensions = "flm",
};
diff --git a/libavformat/fitsdec.c b/libavformat/fitsdec.c
index e0f502e4e3..fe2dd5ad5d 100644
--- a/libavformat/fitsdec.c
+++ b/libavformat/fitsdec.c
@@ -26,6 +26,7 @@
#include "libavutil/avassert.h"
#include "libavutil/intreadwrite.h"
+#include "demux.h"
#include "internal.h"
#include "libavutil/opt.h"
#include "libavcodec/fits.h"
@@ -220,13 +221,13 @@ static const AVClass fits_demuxer_class = {
.category = AV_CLASS_CATEGORY_DEMUXER,
};
-const AVInputFormat ff_fits_demuxer = {
- .name = "fits",
- .long_name = NULL_IF_CONFIG_SMALL("Flexible Image Transport System"),
+const FFInputFormat ff_fits_demuxer = {
+ .p.name = "fits",
+ .p.long_name = NULL_IF_CONFIG_SMALL("Flexible Image Transport System"),
+ .p.priv_class = &fits_demuxer_class,
+ .p.flags = AVFMT_NOTIMESTAMPS,
.priv_data_size = sizeof(FITSContext),
.read_probe = fits_probe,
.read_header = fits_read_header,
.read_packet = fits_read_packet,
- .priv_class = &fits_demuxer_class,
- .flags = AVFMT_NOTIMESTAMPS,
};
diff --git a/libavformat/flacdec.c b/libavformat/flacdec.c
index bbb205078a..4ce6251137 100644
--- a/libavformat/flacdec.c
+++ b/libavformat/flacdec.c
@@ -364,18 +364,18 @@ static int flac_seek(AVFormatContext *s, int stream_index, int64_t timestamp, in
return -1;
}
-const AVInputFormat ff_flac_demuxer = {
- .name = "flac",
- .long_name = NULL_IF_CONFIG_SMALL("raw FLAC"),
+const FFInputFormat ff_flac_demuxer = {
+ .p.name = "flac",
+ .p.long_name = NULL_IF_CONFIG_SMALL("raw FLAC"),
+ .p.flags = AVFMT_GENERIC_INDEX,
+ .p.extensions = "flac",
+ .p.priv_class = &ff_raw_demuxer_class,
.read_probe = flac_probe,
.read_header = flac_read_header,
.read_close = flac_close,
.read_packet = ff_raw_read_partial_packet,
.read_seek = flac_seek,
.read_timestamp = flac_read_timestamp,
- .flags = AVFMT_GENERIC_INDEX,
- .extensions = "flac",
.raw_codec_id = AV_CODEC_ID_FLAC,
.priv_data_size = sizeof(FLACDecContext),
- .priv_class = &ff_raw_demuxer_class,
};
diff --git a/libavformat/flic.c b/libavformat/flic.c
index 222452eac8..41dfb4f39e 100644
--- a/libavformat/flic.c
+++ b/libavformat/flic.c
@@ -34,6 +34,7 @@
#include "libavutil/channel_layout.h"
#include "libavutil/intreadwrite.h"
#include "avformat.h"
+#include "demux.h"
#include "internal.h"
#define FLIC_FILE_MAGIC_1 0xAF11
@@ -285,9 +286,9 @@ static int flic_read_seek(AVFormatContext *s, int stream_index,
return 0;
}
-const AVInputFormat ff_flic_demuxer = {
- .name = "flic",
- .long_name = NULL_IF_CONFIG_SMALL("FLI/FLC/FLX animation"),
+const FFInputFormat ff_flic_demuxer = {
+ .p.name = "flic",
+ .p.long_name = NULL_IF_CONFIG_SMALL("FLI/FLC/FLX animation"),
.priv_data_size = sizeof(FlicDemuxContext),
.read_probe = flic_probe,
.read_header = flic_read_header,
diff --git a/libavformat/flvdec.c b/libavformat/flvdec.c
index e25b5bd163..31dcb41b06 100644
--- a/libavformat/flvdec.c
+++ b/libavformat/flvdec.c
@@ -1412,42 +1412,42 @@ static const AVClass flv_kux_class = {
.version = LIBAVUTIL_VERSION_INT,
};
-const AVInputFormat ff_flv_demuxer = {
- .name = "flv",
- .long_name = NULL_IF_CONFIG_SMALL("FLV (Flash Video)"),
+const FFInputFormat ff_flv_demuxer = {
+ .p.name = "flv",
+ .p.long_name = NULL_IF_CONFIG_SMALL("FLV (Flash Video)"),
+ .p.extensions = "flv",
+ .p.priv_class = &flv_kux_class,
.priv_data_size = sizeof(FLVContext),
.read_probe = flv_probe,
.read_header = flv_read_header,
.read_packet = flv_read_packet,
.read_seek = flv_read_seek,
.read_close = flv_read_close,
- .extensions = "flv",
- .priv_class = &flv_kux_class,
};
-const AVInputFormat ff_live_flv_demuxer = {
- .name = "live_flv",
- .long_name = NULL_IF_CONFIG_SMALL("live RTMP FLV (Flash Video)"),
+const FFInputFormat ff_live_flv_demuxer = {
+ .p.name = "live_flv",
+ .p.long_name = NULL_IF_CONFIG_SMALL("live RTMP FLV (Flash Video)"),
+ .p.extensions = "flv",
+ .p.priv_class = &flv_kux_class,
+ .p.flags = AVFMT_TS_DISCONT,
.priv_data_size = sizeof(FLVContext),
.read_probe = live_flv_probe,
.read_header = flv_read_header,
.read_packet = flv_read_packet,
.read_seek = flv_read_seek,
.read_close = flv_read_close,
- .extensions = "flv",
- .priv_class = &flv_kux_class,
- .flags = AVFMT_TS_DISCONT
};
-const AVInputFormat ff_kux_demuxer = {
- .name = "kux",
- .long_name = NULL_IF_CONFIG_SMALL("KUX (YouKu)"),
+const FFInputFormat ff_kux_demuxer = {
+ .p.name = "kux",
+ .p.long_name = NULL_IF_CONFIG_SMALL("KUX (YouKu)"),
+ .p.extensions = "kux",
+ .p.priv_class = &flv_kux_class,
.priv_data_size = sizeof(FLVContext),
.read_probe = kux_probe,
.read_header = flv_read_header,
.read_packet = flv_read_packet,
.read_seek = flv_read_seek,
.read_close = flv_read_close,
- .extensions = "kux",
- .priv_class = &flv_kux_class,
};
diff --git a/libavformat/format.c b/libavformat/format.c
index 4738e69a1c..0cdfd85c22 100644
--- a/libavformat/format.c
+++ b/libavformat/format.c
@@ -28,6 +28,7 @@
#include "avio_internal.h"
#include "avformat.h"
+#include "demux.h"
#include "id3v2.h"
#include "internal.h"
#include "url.h"
@@ -189,8 +190,8 @@ const AVInputFormat *av_probe_input_format3(const AVProbeData *pd,
if (!is_opened == !(fmt1->flags & AVFMT_NOFILE) && strcmp(fmt1->name, "image2"))
continue;
score = 0;
- if (fmt1->read_probe) {
- score = fmt1->read_probe(&lpd);
+ if (ffifmt(fmt1)->read_probe) {
+ score = ffifmt(fmt1)->read_probe(&lpd);
if (score)
av_log(NULL, AV_LOG_TRACE, "Probing %s score:%d size:%d\n", fmt1->name, score, lpd.buf_size);
if (fmt1->extensions && av_match_ext(lpd.filename, fmt1->extensions)) {
diff --git a/libavformat/frmdec.c b/libavformat/frmdec.c
index e6c1179dcd..412430e4fc 100644
--- a/libavformat/frmdec.c
+++ b/libavformat/frmdec.c
@@ -27,6 +27,7 @@
#include "libavutil/imgutils.h"
#include "libavutil/intreadwrite.h"
#include "avformat.h"
+#include "demux.h"
static const enum AVPixelFormat frm_pix_fmt_tags[] = {
AV_PIX_FMT_RGB555,
@@ -102,10 +103,10 @@ static int frm_read_packet(AVFormatContext *avctx, AVPacket *pkt)
return 0;
}
-const AVInputFormat ff_frm_demuxer = {
- .name = "frm",
+const FFInputFormat ff_frm_demuxer = {
+ .p.name = "frm",
+ .p.long_name = NULL_IF_CONFIG_SMALL("Megalux Frame"),
.priv_data_size = sizeof(FrmContext),
- .long_name = NULL_IF_CONFIG_SMALL("Megalux Frame"),
.read_probe = frm_read_probe,
.read_header = frm_read_header,
.read_packet = frm_read_packet,
diff --git a/libavformat/fsb.c b/libavformat/fsb.c
index 12b67f631c..4189822d8e 100644
--- a/libavformat/fsb.c
+++ b/libavformat/fsb.c
@@ -23,6 +23,7 @@
#include "libavutil/intreadwrite.h"
#include "avformat.h"
#include "avio.h"
+#include "demux.h"
#include "internal.h"
static int fsb_probe(const AVProbeData *p)
@@ -200,12 +201,12 @@ static int fsb_read_packet(AVFormatContext *s, AVPacket *pkt)
return ret;
}
-const AVInputFormat ff_fsb_demuxer = {
- .name = "fsb",
- .long_name = NULL_IF_CONFIG_SMALL("FMOD Sample Bank"),
+const FFInputFormat ff_fsb_demuxer = {
+ .p.name = "fsb",
+ .p.long_name = NULL_IF_CONFIG_SMALL("FMOD Sample Bank"),
+ .p.extensions = "fsb",
+ .p.flags = AVFMT_GENERIC_INDEX,
.read_probe = fsb_probe,
.read_header = fsb_read_header,
.read_packet = fsb_read_packet,
- .extensions = "fsb",
- .flags = AVFMT_GENERIC_INDEX,
};
diff --git a/libavformat/fwse.c b/libavformat/fwse.c
index 28a322d9d6..6c1103da14 100644
--- a/libavformat/fwse.c
+++ b/libavformat/fwse.c
@@ -22,6 +22,7 @@
#include "libavutil/channel_layout.h"
#include "libavutil/intreadwrite.h"
#include "avformat.h"
+#include "demux.h"
#include "internal.h"
#include "pcm.h"
@@ -77,11 +78,11 @@ static int fwse_read_header(AVFormatContext *s)
return 0;
}
-const AVInputFormat ff_fwse_demuxer = {
- .name = "fwse",
- .long_name = NULL_IF_CONFIG_SMALL("Capcom's MT Framework sound"),
+const FFInputFormat ff_fwse_demuxer = {
+ .p.name = "fwse",
+ .p.long_name = NULL_IF_CONFIG_SMALL("Capcom's MT Framework sound"),
+ .p.extensions = "fwse",
.read_probe = fwse_probe,
.read_header = fwse_read_header,
.read_packet = ff_pcm_read_packet,
- .extensions = "fwse",
};
diff --git a/libavformat/g722.c b/libavformat/g722.c
index 08cd2cbc87..15519d90b5 100644
--- a/libavformat/g722.c
+++ b/libavformat/g722.c
@@ -21,6 +21,7 @@
#include "libavutil/avassert.h"
#include "avformat.h"
+#include "demux.h"
#include "internal.h"
#include "rawdec.h"
@@ -46,14 +47,14 @@ static int g722_read_header(AVFormatContext *s)
return 0;
}
-const AVInputFormat ff_g722_demuxer = {
- .name = "g722",
- .long_name = NULL_IF_CONFIG_SMALL("raw G.722"),
+const FFInputFormat ff_g722_demuxer = {
+ .p.name = "g722",
+ .p.long_name = NULL_IF_CONFIG_SMALL("raw G.722"),
+ .p.flags = AVFMT_GENERIC_INDEX,
+ .p.extensions = "g722,722",
+ .p.priv_class = &ff_raw_demuxer_class,
.read_header = g722_read_header,
.read_packet = ff_raw_read_partial_packet,
- .flags = AVFMT_GENERIC_INDEX,
- .extensions = "g722,722",
.raw_codec_id = AV_CODEC_ID_ADPCM_G722,
.priv_data_size = sizeof(FFRawDemuxerContext),
- .priv_class = &ff_raw_demuxer_class,
};
diff --git a/libavformat/g723_1.c b/libavformat/g723_1.c
index e35b4ed503..17c7a13d38 100644
--- a/libavformat/g723_1.c
+++ b/libavformat/g723_1.c
@@ -27,6 +27,7 @@
#include "libavutil/attributes.h"
#include "libavutil/channel_layout.h"
#include "avformat.h"
+#include "demux.h"
#include "internal.h"
static const uint8_t frame_size[4] = { 24, 20, 4, 1 };
@@ -74,11 +75,11 @@ static int g723_1_read_packet(AVFormatContext *s, AVPacket *pkt)
return pkt->size;
}
-const AVInputFormat ff_g723_1_demuxer = {
- .name = "g723_1",
- .long_name = NULL_IF_CONFIG_SMALL("G.723.1"),
+const FFInputFormat ff_g723_1_demuxer = {
+ .p.name = "g723_1",
+ .p.long_name = NULL_IF_CONFIG_SMALL("G.723.1"),
+ .p.extensions = "tco,rco,g723_1",
+ .p.flags = AVFMT_GENERIC_INDEX,
.read_header = g723_1_init,
.read_packet = g723_1_read_packet,
- .extensions = "tco,rco,g723_1",
- .flags = AVFMT_GENERIC_INDEX
};
diff --git a/libavformat/g726.c b/libavformat/g726.c
index 97580a74f8..e783fa4123 100644
--- a/libavformat/g726.c
+++ b/libavformat/g726.c
@@ -22,6 +22,7 @@
#include "config_components.h"
#include "avformat.h"
+#include "demux.h"
#include "internal.h"
#include "libavutil/opt.h"
@@ -39,7 +40,7 @@ static int g726_read_header(AVFormatContext *s)
return AVERROR(ENOMEM);
st->codecpar->codec_type = AVMEDIA_TYPE_AUDIO;
- st->codecpar->codec_id = s->iformat->raw_codec_id;
+ st->codecpar->codec_id = ffifmt(s->iformat)->raw_codec_id;
st->codecpar->sample_rate = c->sample_rate;
st->codecpar->bits_per_coded_sample = c->code_size;
@@ -75,25 +76,25 @@ static const AVClass g726_demuxer_class = {
};
#if CONFIG_G726_DEMUXER
-const AVInputFormat ff_g726_demuxer = {
- .name = "g726",
- .long_name = NULL_IF_CONFIG_SMALL("raw big-endian G.726 (\"left aligned\")"),
+const FFInputFormat ff_g726_demuxer = {
+ .p.name = "g726",
+ .p.long_name = NULL_IF_CONFIG_SMALL("raw big-endian G.726 (\"left aligned\")"),
+ .p.priv_class = &g726_demuxer_class,
.read_header = g726_read_header,
.read_packet = g726_read_packet,
.priv_data_size = sizeof(G726Context),
- .priv_class = &g726_demuxer_class,
.raw_codec_id = AV_CODEC_ID_ADPCM_G726,
};
#endif
#if CONFIG_G726LE_DEMUXER
-const AVInputFormat ff_g726le_demuxer = {
- .name = "g726le",
- .long_name = NULL_IF_CONFIG_SMALL("raw little-endian G.726 (\"right aligned\")"),
+const FFInputFormat ff_g726le_demuxer = {
+ .p.name = "g726le",
+ .p.long_name = NULL_IF_CONFIG_SMALL("raw little-endian G.726 (\"right aligned\")"),
+ .p.priv_class = &g726_demuxer_class,
.read_header = g726_read_header,
.read_packet = g726_read_packet,
.priv_data_size = sizeof(G726Context),
- .priv_class = &g726_demuxer_class,
.raw_codec_id = AV_CODEC_ID_ADPCM_G726LE,
};
#endif
diff --git a/libavformat/g729dec.c b/libavformat/g729dec.c
index 9c92ea4fcf..d6f55b70de 100644
--- a/libavformat/g729dec.c
+++ b/libavformat/g729dec.c
@@ -23,6 +23,7 @@
#include "libavutil/opt.h"
#include "avformat.h"
+#include "demux.h"
#include "internal.h"
typedef struct G729DemuxerContext {
@@ -93,13 +94,13 @@ static const AVClass g729_demuxer_class = {
.version = LIBAVUTIL_VERSION_INT,
};
-const AVInputFormat ff_g729_demuxer = {
- .name = "g729",
- .long_name = NULL_IF_CONFIG_SMALL("G.729 raw format demuxer"),
+const FFInputFormat ff_g729_demuxer = {
+ .p.name = "g729",
+ .p.long_name = NULL_IF_CONFIG_SMALL("G.729 raw format demuxer"),
+ .p.flags = AVFMT_GENERIC_INDEX,
+ .p.extensions = "g729",
+ .p.priv_class = &g729_demuxer_class,
.priv_data_size = sizeof(G729DemuxerContext),
.read_header = g729_read_header,
.read_packet = g729_read_packet,
- .flags = AVFMT_GENERIC_INDEX,
- .extensions = "g729",
- .priv_class = &g729_demuxer_class,
};
diff --git a/libavformat/gdv.c b/libavformat/gdv.c
index f8a8f50351..9a042a1fc8 100644
--- a/libavformat/gdv.c
+++ b/libavformat/gdv.c
@@ -23,6 +23,7 @@
#include "avformat.h"
#include "avio.h"
+#include "demux.h"
#include "internal.h"
typedef struct GDVContext {
@@ -194,9 +195,9 @@ static int gdv_read_packet(AVFormatContext *ctx, AVPacket *pkt)
return 0;
}
-const AVInputFormat ff_gdv_demuxer = {
- .name = "gdv",
- .long_name = NULL_IF_CONFIG_SMALL("Gremlin Digital Video"),
+const FFInputFormat ff_gdv_demuxer = {
+ .p.name = "gdv",
+ .p.long_name = NULL_IF_CONFIG_SMALL("Gremlin Digital Video"),
.priv_data_size = sizeof(GDVContext),
.read_probe = gdv_read_probe,
.read_header = gdv_read_header,
diff --git a/libavformat/genh.c b/libavformat/genh.c
index 1f707b5555..deecca4a4c 100644
--- a/libavformat/genh.c
+++ b/libavformat/genh.c
@@ -22,6 +22,7 @@
#include "libavutil/channel_layout.h"
#include "libavutil/intreadwrite.h"
#include "avformat.h"
+#include "demux.h"
#include "internal.h"
typedef struct GENHDemuxContext {
@@ -195,12 +196,12 @@ static int genh_read_packet(AVFormatContext *s, AVPacket *pkt)
return ret;
}
-const AVInputFormat ff_genh_demuxer = {
- .name = "genh",
- .long_name = NULL_IF_CONFIG_SMALL("GENeric Header"),
+const FFInputFormat ff_genh_demuxer = {
+ .p.name = "genh",
+ .p.long_name = NULL_IF_CONFIG_SMALL("GENeric Header"),
+ .p.extensions = "genh",
.priv_data_size = sizeof(GENHDemuxContext),
.read_probe = genh_probe,
.read_header = genh_read_header,
.read_packet = genh_read_packet,
- .extensions = "genh",
};
diff --git a/libavformat/gifdec.c b/libavformat/gifdec.c
index 32286adafe..294007682b 100644
--- a/libavformat/gifdec.c
+++ b/libavformat/gifdec.c
@@ -25,6 +25,7 @@
*/
#include "avformat.h"
+#include "demux.h"
#include "libavutil/bprint.h"
#include "libavutil/intreadwrite.h"
#include "libavutil/opt.h"
@@ -278,14 +279,14 @@ static const AVClass demuxer_class = {
.category = AV_CLASS_CATEGORY_DEMUXER,
};
-const AVInputFormat ff_gif_demuxer = {
- .name = "gif",
- .long_name = NULL_IF_CONFIG_SMALL("CompuServe Graphics Interchange Format (GIF)"),
+const FFInputFormat ff_gif_demuxer = {
+ .p.name = "gif",
+ .p.long_name = NULL_IF_CONFIG_SMALL("CompuServe Graphics Interchange Format (GIF)"),
+ .p.flags = AVFMT_GENERIC_INDEX,
+ .p.extensions = "gif",
+ .p.priv_class = &demuxer_class,
.priv_data_size = sizeof(GIFDemuxContext),
.read_probe = gif_probe,
.read_header = gif_read_header,
.read_packet = gif_read_packet,
- .flags = AVFMT_GENERIC_INDEX,
- .extensions = "gif",
- .priv_class = &demuxer_class,
};
diff --git a/libavformat/gsmdec.c b/libavformat/gsmdec.c
index 7150daa510..10fba212e9 100644
--- a/libavformat/gsmdec.c
+++ b/libavformat/gsmdec.c
@@ -23,6 +23,7 @@
#include "libavutil/mathematics.h"
#include "libavutil/opt.h"
#include "avformat.h"
+#include "demux.h"
#include "internal.h"
#define GSM_BLOCK_SIZE 33
@@ -102,15 +103,15 @@ static const AVClass gsm_class = {
.version = LIBAVUTIL_VERSION_INT,
};
-const AVInputFormat ff_gsm_demuxer = {
- .name = "gsm",
- .long_name = NULL_IF_CONFIG_SMALL("raw GSM"),
+const FFInputFormat ff_gsm_demuxer = {
+ .p.name = "gsm",
+ .p.long_name = NULL_IF_CONFIG_SMALL("raw GSM"),
+ .p.flags = AVFMT_GENERIC_INDEX,
+ .p.extensions = "gsm",
+ .p.priv_class = &gsm_class,
.priv_data_size = sizeof(GSMDemuxerContext),
.read_probe = gsm_probe,
.read_header = gsm_read_header,
.read_packet = gsm_read_packet,
- .flags = AVFMT_GENERIC_INDEX,
- .extensions = "gsm",
.raw_codec_id = AV_CODEC_ID_GSM,
- .priv_class = &gsm_class,
};
diff --git a/libavformat/gxf.c b/libavformat/gxf.c
index f720521c1b..1a9f0d75b0 100644
--- a/libavformat/gxf.c
+++ b/libavformat/gxf.c
@@ -599,9 +599,9 @@ static int64_t gxf_read_timestamp(AVFormatContext *s, int stream_index,
return res;
}
-const AVInputFormat ff_gxf_demuxer = {
- .name = "gxf",
- .long_name = NULL_IF_CONFIG_SMALL("GXF (General eXchange Format)"),
+const FFInputFormat ff_gxf_demuxer = {
+ .p.name = "gxf",
+ .p.long_name = NULL_IF_CONFIG_SMALL("GXF (General eXchange Format)"),
.priv_data_size = sizeof(struct gxf_stream_info),
.read_probe = gxf_probe,
.read_header = gxf_header,
diff --git a/libavformat/hca.c b/libavformat/hca.c
index e796512a62..713082f8b0 100644
--- a/libavformat/hca.c
+++ b/libavformat/hca.c
@@ -24,6 +24,7 @@
#include "libavcodec/bytestream.h"
#include "avformat.h"
+#include "demux.h"
#include "internal.h"
#define HCA_MASK 0x7f7f7f7f
@@ -148,14 +149,14 @@ static const AVClass hca_class = {
.version = LIBAVUTIL_VERSION_INT,
};
-const AVInputFormat ff_hca_demuxer = {
- .name = "hca",
- .long_name = NULL_IF_CONFIG_SMALL("CRI HCA"),
- .priv_class = &hca_class,
+const FFInputFormat ff_hca_demuxer = {
+ .p.name = "hca",
+ .p.long_name = NULL_IF_CONFIG_SMALL("CRI HCA"),
+ .p.priv_class = &hca_class,
+ .p.extensions = "hca",
+ .p.flags = AVFMT_GENERIC_INDEX,
.priv_data_size = sizeof(HCADemuxContext),
.read_probe = hca_probe,
.read_header = hca_read_header,
.read_packet = hca_read_packet,
- .extensions = "hca",
- .flags = AVFMT_GENERIC_INDEX,
};
diff --git a/libavformat/hcom.c b/libavformat/hcom.c
index 5031f00297..2a8c524496 100644
--- a/libavformat/hcom.c
+++ b/libavformat/hcom.c
@@ -21,6 +21,7 @@
#include "libavutil/intreadwrite.h"
#include "avformat.h"
+#include "demux.h"
#include "internal.h"
#include "pcm.h"
@@ -81,9 +82,9 @@ static int hcom_read_header(AVFormatContext *s)
return 0;
}
-const AVInputFormat ff_hcom_demuxer = {
- .name = "hcom",
- .long_name = NULL_IF_CONFIG_SMALL("Macintosh HCOM"),
+const FFInputFormat ff_hcom_demuxer = {
+ .p.name = "hcom",
+ .p.long_name = NULL_IF_CONFIG_SMALL("Macintosh HCOM"),
.read_probe = hcom_probe,
.read_header = hcom_read_header,
.read_packet = ff_pcm_read_packet,
diff --git a/libavformat/hls.c b/libavformat/hls.c
index 61e2d67588..f6b44c2e35 100644
--- a/libavformat/hls.c
+++ b/libavformat/hls.c
@@ -2102,7 +2102,7 @@ static int hls_read_header(AVFormatContext *s)
pls->audio_setup_info.codec_id != AV_CODEC_ID_NONE) {
void *iter = NULL;
while ((in_fmt = av_demuxer_iterate(&iter)))
- if (in_fmt->raw_codec_id == pls->audio_setup_info.codec_id)
+ if (ffifmt(in_fmt)->raw_codec_id == pls->audio_setup_info.codec_id)
break;
} else {
pls->ctx->probesize = s->probesize > 0 ? s->probesize : 1024 * 4;
@@ -2594,12 +2594,12 @@ static const AVClass hls_class = {
.version = LIBAVUTIL_VERSION_INT,
};
-const AVInputFormat ff_hls_demuxer = {
- .name = "hls",
- .long_name = NULL_IF_CONFIG_SMALL("Apple HTTP Live Streaming"),
- .priv_class = &hls_class,
+const FFInputFormat ff_hls_demuxer = {
+ .p.name = "hls",
+ .p.long_name = NULL_IF_CONFIG_SMALL("Apple HTTP Live Streaming"),
+ .p.priv_class = &hls_class,
+ .p.flags = AVFMT_NOGENSEARCH | AVFMT_TS_DISCONT | AVFMT_NO_BYTE_SEEK,
.priv_data_size = sizeof(HLSContext),
- .flags = AVFMT_NOGENSEARCH | AVFMT_TS_DISCONT | AVFMT_NO_BYTE_SEEK,
.flags_internal = FF_FMT_INIT_CLEANUP,
.read_probe = hls_probe,
.read_header = hls_read_header,
diff --git a/libavformat/hnm.c b/libavformat/hnm.c
index 97990b2673..42efaaa3e8 100644
--- a/libavformat/hnm.c
+++ b/libavformat/hnm.c
@@ -24,6 +24,7 @@
#include "libavutil/intreadwrite.h"
#include "avformat.h"
+#include "demux.h"
#include "internal.h"
#define HNM4_TAG MKTAG('H', 'N', 'M', '4')
@@ -158,12 +159,12 @@ static int hnm_read_packet(AVFormatContext *s, AVPacket *pkt)
return ret;
}
-const AVInputFormat ff_hnm_demuxer = {
- .name = "hnm",
- .long_name = NULL_IF_CONFIG_SMALL("Cryo HNM v4"),
+const FFInputFormat ff_hnm_demuxer = {
+ .p.name = "hnm",
+ .p.long_name = NULL_IF_CONFIG_SMALL("Cryo HNM v4"),
+ .p.flags = AVFMT_NO_BYTE_SEEK | AVFMT_NOGENSEARCH | AVFMT_NOBINSEARCH,
.priv_data_size = sizeof(Hnm4DemuxContext),
.read_probe = hnm_probe,
.read_header = hnm_read_header,
.read_packet = hnm_read_packet,
- .flags = AVFMT_NO_BYTE_SEEK | AVFMT_NOGENSEARCH | AVFMT_NOBINSEARCH
};
diff --git a/libavformat/iamfdec.c b/libavformat/iamfdec.c
index 99622f697b..900e8a450b 100644
--- a/libavformat/iamfdec.c
+++ b/libavformat/iamfdec.c
@@ -26,6 +26,7 @@
#include "libavcodec/mathops.h"
#include "avformat.h"
#include "avio_internal.h"
+#include "demux.h"
#include "iamf.h"
#include "iamf_parse.h"
#include "internal.h"
@@ -490,15 +491,15 @@ static int iamf_read_close(AVFormatContext *s)
return 0;
}
-const AVInputFormat ff_iamf_demuxer = {
- .name = "iamf",
- .long_name = NULL_IF_CONFIG_SMALL("Raw Immersive Audio Model and Formats"),
+const FFInputFormat ff_iamf_demuxer = {
+ .p.name = "iamf",
+ .p.long_name = NULL_IF_CONFIG_SMALL("Raw Immersive Audio Model and Formats"),
+ .p.extensions = "iamf",
+ .p.flags = AVFMT_GENERIC_INDEX | AVFMT_NO_BYTE_SEEK | AVFMT_NOTIMESTAMPS | AVFMT_SHOW_IDS,
.priv_data_size = sizeof(IAMFDemuxContext),
.flags_internal = FF_FMT_INIT_CLEANUP,
.read_probe = iamf_probe,
.read_header = iamf_read_header,
.read_packet = iamf_read_packet,
.read_close = iamf_read_close,
- .extensions = "iamf",
- .flags = AVFMT_GENERIC_INDEX | AVFMT_NO_BYTE_SEEK | AVFMT_NOTIMESTAMPS | AVFMT_SHOW_IDS,
};
diff --git a/libavformat/icodec.c b/libavformat/icodec.c
index 85dab3bca0..0ec6e0b258 100644
--- a/libavformat/icodec.c
+++ b/libavformat/icodec.c
@@ -28,6 +28,7 @@
#include "libavcodec/bytestream.h"
#include "libavcodec/png.h"
#include "avformat.h"
+#include "demux.h"
#include "internal.h"
typedef struct {
@@ -216,14 +217,14 @@ static int ico_read_close(AVFormatContext * s)
return 0;
}
-const AVInputFormat ff_ico_demuxer = {
- .name = "ico",
- .long_name = NULL_IF_CONFIG_SMALL("Microsoft Windows ICO"),
+const FFInputFormat ff_ico_demuxer = {
+ .p.name = "ico",
+ .p.long_name = NULL_IF_CONFIG_SMALL("Microsoft Windows ICO"),
+ .p.flags = AVFMT_NOTIMESTAMPS,
.priv_data_size = sizeof(IcoDemuxContext),
.flags_internal = FF_FMT_INIT_CLEANUP,
.read_probe = probe,
.read_header = read_header,
.read_packet = read_packet,
.read_close = ico_read_close,
- .flags = AVFMT_NOTIMESTAMPS,
};
diff --git a/libavformat/idcin.c b/libavformat/idcin.c
index 1560d58e39..561715d3d9 100644
--- a/libavformat/idcin.c
+++ b/libavformat/idcin.c
@@ -365,13 +365,13 @@ static int idcin_read_seek(AVFormatContext *s, int stream_index,
return -1;
}
-const AVInputFormat ff_idcin_demuxer = {
- .name = "idcin",
- .long_name = NULL_IF_CONFIG_SMALL("id Cinematic"),
+const FFInputFormat ff_idcin_demuxer = {
+ .p.name = "idcin",
+ .p.long_name = NULL_IF_CONFIG_SMALL("id Cinematic"),
+ .p.flags = AVFMT_NO_BYTE_SEEK,
.priv_data_size = sizeof(IdcinDemuxContext),
.read_probe = idcin_probe,
.read_header = idcin_read_header,
.read_packet = idcin_read_packet,
.read_seek = idcin_read_seek,
- .flags = AVFMT_NO_BYTE_SEEK,
};
diff --git a/libavformat/idroqdec.c b/libavformat/idroqdec.c
index 01ea2bb77b..67bc1246e6 100644
--- a/libavformat/idroqdec.c
+++ b/libavformat/idroqdec.c
@@ -30,6 +30,7 @@
#include "libavutil/channel_layout.h"
#include "libavutil/intreadwrite.h"
#include "avformat.h"
+#include "demux.h"
#include "internal.h"
#include "avio_internal.h"
@@ -237,9 +238,9 @@ static int roq_read_packet(AVFormatContext *s,
return ret;
}
-const AVInputFormat ff_roq_demuxer = {
- .name = "roq",
- .long_name = NULL_IF_CONFIG_SMALL("id RoQ"),
+const FFInputFormat ff_roq_demuxer = {
+ .p.name = "roq",
+ .p.long_name = NULL_IF_CONFIG_SMALL("id RoQ"),
.priv_data_size = sizeof(RoqDemuxContext),
.read_probe = roq_probe,
.read_header = roq_read_header,
diff --git a/libavformat/iff.c b/libavformat/iff.c
index b8e8bffe03..633e0c11fd 100644
--- a/libavformat/iff.c
+++ b/libavformat/iff.c
@@ -36,6 +36,7 @@
#include "libavutil/dict.h"
#include "libavcodec/bytestream.h"
#include "avformat.h"
+#include "demux.h"
#include "id3v2.h"
#include "internal.h"
@@ -901,12 +902,12 @@ static int iff_read_packet(AVFormatContext *s,
return ret;
}
-const AVInputFormat ff_iff_demuxer = {
- .name = "iff",
- .long_name = NULL_IF_CONFIG_SMALL("IFF (Interchange File Format)"),
+const FFInputFormat ff_iff_demuxer = {
+ .p.name = "iff",
+ .p.long_name = NULL_IF_CONFIG_SMALL("IFF (Interchange File Format)"),
+ .p.flags = AVFMT_GENERIC_INDEX | AVFMT_NO_BYTE_SEEK,
.priv_data_size = sizeof(IffDemuxContext),
.read_probe = iff_probe,
.read_header = iff_read_header,
.read_packet = iff_read_packet,
- .flags = AVFMT_GENERIC_INDEX | AVFMT_NO_BYTE_SEEK,
};
diff --git a/libavformat/ifv.c b/libavformat/ifv.c
index 694abd951b..0cfd2763a9 100644
--- a/libavformat/ifv.c
+++ b/libavformat/ifv.c
@@ -23,6 +23,7 @@
#include "libavutil/channel_layout.h"
#include "libavutil/dict_internal.h"
#include "avformat.h"
+#include "demux.h"
#include "internal.h"
#include "avio_internal.h"
@@ -309,11 +310,11 @@ static int ifv_read_seek(AVFormatContext *s, int stream_index, int64_t ts, int f
return 0;
}
-const AVInputFormat ff_ifv_demuxer = {
- .name = "ifv",
- .long_name = NULL_IF_CONFIG_SMALL("IFV CCTV DVR"),
+const FFInputFormat ff_ifv_demuxer = {
+ .p.name = "ifv",
+ .p.long_name = NULL_IF_CONFIG_SMALL("IFV CCTV DVR"),
+ .p.extensions = "ifv",
.priv_data_size = sizeof(IFVContext),
- .extensions = "ifv",
.read_probe = ifv_probe,
.read_header = ifv_read_header,
.read_packet = ifv_read_packet,
diff --git a/libavformat/ilbc.c b/libavformat/ilbc.c
index 6b5bb33b62..bb98d0e62a 100644
--- a/libavformat/ilbc.c
+++ b/libavformat/ilbc.c
@@ -22,6 +22,7 @@
#include "config_components.h"
#include "avformat.h"
+#include "demux.h"
#include "internal.h"
#include "mux.h"
#include "rawenc.h"
@@ -111,13 +112,13 @@ static int ilbc_read_packet(AVFormatContext *s,
return 0;
}
-const AVInputFormat ff_ilbc_demuxer = {
- .name = "ilbc",
- .long_name = NULL_IF_CONFIG_SMALL("iLBC storage"),
+const FFInputFormat ff_ilbc_demuxer = {
+ .p.name = "ilbc",
+ .p.long_name = NULL_IF_CONFIG_SMALL("iLBC storage"),
+ .p.flags = AVFMT_GENERIC_INDEX,
.read_probe = ilbc_probe,
.read_header = ilbc_read_header,
.read_packet = ilbc_read_packet,
- .flags = AVFMT_GENERIC_INDEX,
};
#if CONFIG_ILBC_MUXER
diff --git a/libavformat/imfdec.c b/libavformat/imfdec.c
index 901080555a..b57c54bd14 100644
--- a/libavformat/imfdec.c
+++ b/libavformat/imfdec.c
@@ -1014,12 +1014,12 @@ static const AVClass imf_class = {
.version = LIBAVUTIL_VERSION_INT,
};
-const AVInputFormat ff_imf_demuxer = {
- .name = "imf",
- .long_name = NULL_IF_CONFIG_SMALL("IMF (Interoperable Master Format)"),
- .flags = AVFMT_NO_BYTE_SEEK,
+const FFInputFormat ff_imf_demuxer = {
+ .p.name = "imf",
+ .p.long_name = NULL_IF_CONFIG_SMALL("IMF (Interoperable Master Format)"),
+ .p.flags = AVFMT_NO_BYTE_SEEK,
+ .p.priv_class = &imf_class,
.flags_internal = FF_FMT_INIT_CLEANUP,
- .priv_class = &imf_class,
.priv_data_size = sizeof(IMFContext),
.read_probe = imf_probe,
.read_header = imf_read_header,
diff --git a/libavformat/img2_alias_pix.c b/libavformat/img2_alias_pix.c
index d0aac83924..d96c0ccf55 100644
--- a/libavformat/img2_alias_pix.c
+++ b/libavformat/img2_alias_pix.c
@@ -19,6 +19,7 @@
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*/
+#include "demux.h"
#include "img2.h"
#include "libavcodec/bytestream.h"
@@ -61,13 +62,13 @@ static const AVClass image2_alias_pix_class = {
.version = LIBAVUTIL_VERSION_INT,
};
-const AVInputFormat ff_image2_alias_pix_demuxer = {
- .name = "alias_pix",
- .long_name = NULL_IF_CONFIG_SMALL("Alias/Wavefront PIX image"),
+const FFInputFormat ff_image2_alias_pix_demuxer = {
+ .p.name = "alias_pix",
+ .p.long_name = NULL_IF_CONFIG_SMALL("Alias/Wavefront PIX image"),
+ .p.priv_class = &image2_alias_pix_class,
.priv_data_size = sizeof(VideoDemuxData),
.read_probe = alias_pix_read_probe,
.read_header = ff_img_read_header,
.read_packet = ff_img_read_packet,
.raw_codec_id = AV_CODEC_ID_ALIAS_PIX,
- .priv_class = &image2_alias_pix_class,
};
diff --git a/libavformat/img2_brender_pix.c b/libavformat/img2_brender_pix.c
index 9d9a7c0819..9e9335eafe 100644
--- a/libavformat/img2_brender_pix.c
+++ b/libavformat/img2_brender_pix.c
@@ -19,6 +19,7 @@
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*/
+#include "demux.h"
#include "img2.h"
#include "libavutil/intreadwrite.h"
@@ -45,13 +46,13 @@ static const AVClass image2_brender_pix_class = {
.version = LIBAVUTIL_VERSION_INT,
};
-const AVInputFormat ff_image2_brender_pix_demuxer = {
- .name = "brender_pix",
- .long_name = NULL_IF_CONFIG_SMALL("BRender PIX image"),
+const FFInputFormat ff_image2_brender_pix_demuxer = {
+ .p.name = "brender_pix",
+ .p.long_name = NULL_IF_CONFIG_SMALL("BRender PIX image"),
+ .p.priv_class = &image2_brender_pix_class,
.priv_data_size = sizeof(VideoDemuxData),
.read_probe = brender_read_probe,
.read_header = ff_img_read_header,
.read_packet = ff_img_read_packet,
.raw_codec_id = AV_CODEC_ID_BRENDER_PIX,
- .priv_class = &image2_brender_pix_class,
};
diff --git a/libavformat/img2dec.c b/libavformat/img2dec.c
index 2761cb37a4..ead92f22c4 100644
--- a/libavformat/img2dec.c
+++ b/libavformat/img2dec.c
@@ -34,6 +34,7 @@
#include "libavcodec/gif.h"
#include "avformat.h"
#include "avio_internal.h"
+#include "demux.h"
#include "internal.h"
#include "img2.h"
#include "os_support.h"
@@ -322,9 +323,9 @@ int ff_img_read_header(AVFormatContext *s1)
} else if (s1->audio_codec_id) {
st->codecpar->codec_type = AVMEDIA_TYPE_AUDIO;
st->codecpar->codec_id = s1->audio_codec_id;
- } else if (s1->iformat->raw_codec_id) {
+ } else if (ffifmt(s1->iformat)->raw_codec_id) {
st->codecpar->codec_type = AVMEDIA_TYPE_VIDEO;
- st->codecpar->codec_id = s1->iformat->raw_codec_id;
+ st->codecpar->codec_id = ffifmt(s1->iformat)->raw_codec_id;
} else {
const char *str = strrchr(s->path, '.');
s->split_planes = str && !av_strcasecmp(str + 1, "y");
@@ -351,13 +352,14 @@ int ff_img_read_header(AVFormatContext *s1)
pd.filename = s1->url;
while ((fmt = av_demuxer_iterate(&fmt_iter))) {
- if (fmt->read_header != ff_img_read_header ||
- !fmt->read_probe ||
+ const FFInputFormat *fmt2 = ffifmt(fmt);
+ if (fmt2->read_header != ff_img_read_header ||
+ !fmt2->read_probe ||
(fmt->flags & AVFMT_NOFILE) ||
- !fmt->raw_codec_id)
+ !fmt2->raw_codec_id)
continue;
- if (fmt->read_probe(&pd) > 0) {
- st->codecpar->codec_id = fmt->raw_codec_id;
+ if (fmt2->read_probe(&pd) > 0) {
+ st->codecpar->codec_id = fmt2->raw_codec_id;
break;
}
}
@@ -458,7 +460,7 @@ int ff_img_read_packet(AVFormatContext *s1, AVPacket *pkt)
if (par->codec_id == AV_CODEC_ID_NONE) {
AVProbeData pd = { 0 };
- const AVInputFormat *ifmt;
+ const FFInputFormat *ifmt;
uint8_t header[PROBE_BUF_MIN + AVPROBE_PADDING_SIZE];
int ret;
int score = 0;
@@ -472,7 +474,7 @@ int ff_img_read_packet(AVFormatContext *s1, AVPacket *pkt)
pd.buf_size = ret;
pd.filename = filename;
- ifmt = av_probe_input_format3(&pd, 1, &score);
+ ifmt = ffifmt(av_probe_input_format3(&pd, 1, &score));
if (ifmt && ifmt->read_packet == ff_img_read_packet && ifmt->raw_codec_id)
par->codec_id = ifmt->raw_codec_id;
}
@@ -638,17 +640,17 @@ static const AVClass img2_class = {
.option = ff_img_options,
.version = LIBAVUTIL_VERSION_INT,
};
-const AVInputFormat ff_image2_demuxer = {
- .name = "image2",
- .long_name = NULL_IF_CONFIG_SMALL("image2 sequence"),
+const FFInputFormat ff_image2_demuxer = {
+ .p.name = "image2",
+ .p.long_name = NULL_IF_CONFIG_SMALL("image2 sequence"),
+ .p.flags = AVFMT_NOFILE,
+ .p.priv_class = &img2_class,
.priv_data_size = sizeof(VideoDemuxData),
.read_probe = img_read_probe,
.read_header = ff_img_read_header,
.read_packet = ff_img_read_packet,
.read_close = img_read_close,
.read_seek = img_read_seek,
- .flags = AVFMT_NOFILE,
- .priv_class = &img2_class,
};
#endif
@@ -664,13 +666,13 @@ static const AVClass imagepipe_class = {
};
#if CONFIG_IMAGE2PIPE_DEMUXER
-const AVInputFormat ff_image2pipe_demuxer = {
- .name = "image2pipe",
- .long_name = NULL_IF_CONFIG_SMALL("piped image2 sequence"),
+const FFInputFormat ff_image2pipe_demuxer = {
+ .p.name = "image2pipe",
+ .p.long_name = NULL_IF_CONFIG_SMALL("piped image2 sequence"),
+ .p.priv_class = &imagepipe_class,
.priv_data_size = sizeof(VideoDemuxData),
.read_header = ff_img_read_header,
.read_packet = ff_img_read_packet,
- .priv_class = &imagepipe_class,
};
#endif
@@ -1205,15 +1207,15 @@ static int vbn_probe(const AVProbeData *p)
#define IMAGEAUTO_DEMUXER_0(imgname, codecid)
#define IMAGEAUTO_DEMUXER_1(imgname, codecid)\
-const AVInputFormat ff_image_ ## imgname ## _pipe_demuxer = {\
- .name = AV_STRINGIFY(imgname) "_pipe",\
- .long_name = NULL_IF_CONFIG_SMALL("piped " AV_STRINGIFY(imgname) " sequence"),\
+const FFInputFormat ff_image_ ## imgname ## _pipe_demuxer = {\
+ .p.name = AV_STRINGIFY(imgname) "_pipe",\
+ .p.long_name = NULL_IF_CONFIG_SMALL("piped " AV_STRINGIFY(imgname) " sequence"),\
+ .p.priv_class = &imagepipe_class,\
+ .p.flags = AVFMT_GENERIC_INDEX,\
.priv_data_size = sizeof(VideoDemuxData),\
.read_probe = imgname ## _probe,\
.read_header = ff_img_read_header,\
.read_packet = ff_img_read_packet,\
- .priv_class = &imagepipe_class,\
- .flags = AVFMT_GENERIC_INDEX, \
.raw_codec_id = codecid,\
};
diff --git a/libavformat/imx.c b/libavformat/imx.c
index c8b1a3b2ad..70b62b63d7 100644
--- a/libavformat/imx.c
+++ b/libavformat/imx.c
@@ -21,6 +21,7 @@
*/
#include "avformat.h"
+#include "demux.h"
#include "internal.h"
#include "libavutil/intreadwrite.h"
#include "libavutil/channel_layout.h"
@@ -155,13 +156,13 @@ retry:
return ret;
}
-const AVInputFormat ff_simbiosis_imx_demuxer = {
- .name = "simbiosis_imx",
- .long_name = NULL_IF_CONFIG_SMALL("Simbiosis Interactive IMX"),
+const FFInputFormat ff_simbiosis_imx_demuxer = {
+ .p.name = "simbiosis_imx",
+ .p.long_name = NULL_IF_CONFIG_SMALL("Simbiosis Interactive IMX"),
+ .p.extensions = "imx",
+ .p.flags = AVFMT_GENERIC_INDEX,
.priv_data_size = sizeof(SimbiosisIMXDemuxContext),
.read_probe = simbiosis_imx_probe,
.read_header = simbiosis_imx_read_header,
.read_packet = simbiosis_imx_read_packet,
- .extensions = "imx",
- .flags = AVFMT_GENERIC_INDEX,
};
diff --git a/libavformat/ingenientdec.c b/libavformat/ingenientdec.c
index 7a9cce155f..63624372a6 100644
--- a/libavformat/ingenientdec.c
+++ b/libavformat/ingenientdec.c
@@ -20,6 +20,7 @@
*/
#include "avformat.h"
+#include "demux.h"
#include "rawdec.h"
#include "libavutil/intreadwrite.h"
@@ -61,15 +62,15 @@ static int ingenient_read_packet(AVFormatContext *s, AVPacket *pkt)
return ret;
}
-const AVInputFormat ff_ingenient_demuxer = {
- .name = "ingenient",
- .long_name = NULL_IF_CONFIG_SMALL("raw Ingenient MJPEG"),
+const FFInputFormat ff_ingenient_demuxer = {
+ .p.name = "ingenient",
+ .p.long_name = NULL_IF_CONFIG_SMALL("raw Ingenient MJPEG"),
+ .p.flags = AVFMT_GENERIC_INDEX,
+ .p.extensions = "cgi", // FIXME
+ .p.priv_class = &ff_rawvideo_demuxer_class,
.priv_data_size = sizeof(FFRawVideoDemuxerContext),
.read_probe = ingenient_probe,
.read_header = ff_raw_video_read_header,
.read_packet = ingenient_read_packet,
- .flags = AVFMT_GENERIC_INDEX,
- .extensions = "cgi", // FIXME
.raw_codec_id = AV_CODEC_ID_MJPEG,
- .priv_class = &ff_rawvideo_demuxer_class,
};
diff --git a/libavformat/internal.h b/libavformat/internal.h
index c66f959e9f..350762def7 100644
--- a/libavformat/internal.h
+++ b/libavformat/internal.h
@@ -40,7 +40,7 @@
#endif
/**
- * For an AVInputFormat with this flag set read_close() needs to be called
+ * For an FFInputFormat with this flag set read_close() needs to be called
* by the caller upon read_header() failure.
*/
#define FF_FMT_INIT_CLEANUP (1 << 0)
@@ -752,6 +752,8 @@ void ff_format_set_url(AVFormatContext *s, char *url);
int ff_match_url_ext(const char *url, const char *extensions);
struct FFOutputFormat;
-void avpriv_register_devices(const struct FFOutputFormat * const o[], const AVInputFormat * const i[]);
+struct FFInputFormat;
+void avpriv_register_devices(const struct FFOutputFormat * const o[],
+ const struct FFInputFormat * const i[]);
#endif /* AVFORMAT_INTERNAL_H */
diff --git a/libavformat/ipmovie.c b/libavformat/ipmovie.c
index 4f5c164d3f..5d1748953a 100644
--- a/libavformat/ipmovie.c
+++ b/libavformat/ipmovie.c
@@ -700,9 +700,9 @@ static int ipmovie_read_packet(AVFormatContext *s,
}
}
-const AVInputFormat ff_ipmovie_demuxer = {
- .name = "ipmovie",
- .long_name = NULL_IF_CONFIG_SMALL("Interplay MVE"),
+const FFInputFormat ff_ipmovie_demuxer = {
+ .p.name = "ipmovie",
+ .p.long_name = NULL_IF_CONFIG_SMALL("Interplay MVE"),
.priv_data_size = sizeof(IPMVEContext),
.read_probe = ipmovie_probe,
.read_header = ipmovie_read_header,
diff --git a/libavformat/ipudec.c b/libavformat/ipudec.c
index 4e346f9638..770eb8a3d1 100644
--- a/libavformat/ipudec.c
+++ b/libavformat/ipudec.c
@@ -20,6 +20,7 @@
*/
#include "avformat.h"
+#include "demux.h"
#include "internal.h"
#include "avio_internal.h"
#include "rawdec.h"
@@ -67,15 +68,15 @@ static int ipu_read_header(AVFormatContext *s)
return 0;
}
-const AVInputFormat ff_ipu_demuxer = {
- .name = "ipu",
- .long_name = NULL_IF_CONFIG_SMALL("raw IPU Video"),
+const FFInputFormat ff_ipu_demuxer = {
+ .p.name = "ipu",
+ .p.long_name = NULL_IF_CONFIG_SMALL("raw IPU Video"),
+ .p.extensions = "ipu",
+ .p.flags = AVFMT_GENERIC_INDEX,
+ .p.priv_class = &ff_raw_demuxer_class,
.read_probe = ipu_read_probe,
.read_header = ipu_read_header,
.read_packet = ff_raw_read_partial_packet,
- .extensions = "ipu",
- .flags = AVFMT_GENERIC_INDEX,
.raw_codec_id = AV_CODEC_ID_IPU,
.priv_data_size = sizeof(FFRawDemuxerContext),
- .priv_class = &ff_raw_demuxer_class,
};
diff --git a/libavformat/ircamdec.c b/libavformat/ircamdec.c
index eb59c95e14..03a61e9f13 100644
--- a/libavformat/ircamdec.c
+++ b/libavformat/ircamdec.c
@@ -22,6 +22,7 @@
#include "libavutil/intreadwrite.h"
#include "libavcodec/internal.h"
#include "avformat.h"
+#include "demux.h"
#include "internal.h"
#include "pcm.h"
#include "ircam.h"
@@ -107,13 +108,13 @@ static int ircam_read_header(AVFormatContext *s)
return 0;
}
-const AVInputFormat ff_ircam_demuxer = {
- .name = "ircam",
- .long_name = NULL_IF_CONFIG_SMALL("Berkeley/IRCAM/CARL Sound Format"),
+const FFInputFormat ff_ircam_demuxer = {
+ .p.name = "ircam",
+ .p.long_name = NULL_IF_CONFIG_SMALL("Berkeley/IRCAM/CARL Sound Format"),
+ .p.extensions = "sf,ircam",
+ .p.flags = AVFMT_GENERIC_INDEX,
.read_probe = ircam_probe,
.read_header = ircam_read_header,
.read_packet = ff_pcm_read_packet,
.read_seek = ff_pcm_read_seek,
- .extensions = "sf,ircam",
- .flags = AVFMT_GENERIC_INDEX,
};
diff --git a/libavformat/iss.c b/libavformat/iss.c
index f54ff8b0de..7a68fcaf63 100644
--- a/libavformat/iss.c
+++ b/libavformat/iss.c
@@ -28,6 +28,7 @@
#include "libavutil/channel_layout.h"
#include "avformat.h"
+#include "demux.h"
#include "internal.h"
#include "libavutil/avstring.h"
@@ -144,9 +145,9 @@ static int iss_read_packet(AVFormatContext *s, AVPacket *pkt)
return 0;
}
-const AVInputFormat ff_iss_demuxer = {
- .name = "iss",
- .long_name = NULL_IF_CONFIG_SMALL("Funcom ISS"),
+const FFInputFormat ff_iss_demuxer = {
+ .p.name = "iss",
+ .p.long_name = NULL_IF_CONFIG_SMALL("Funcom ISS"),
.priv_data_size = sizeof(IssDemuxContext),
.read_probe = iss_probe,
.read_header = iss_read_header,
diff --git a/libavformat/iv8.c b/libavformat/iv8.c
index a3954ca1ed..635675cdc7 100644
--- a/libavformat/iv8.c
+++ b/libavformat/iv8.c
@@ -19,6 +19,7 @@
*/
#include "avformat.h"
+#include "demux.h"
#include "internal.h"
@@ -107,11 +108,11 @@ static int read_packet(AVFormatContext *s, AVPacket *pkt)
return 0;
}
-const AVInputFormat ff_iv8_demuxer = {
- .name = "iv8",
- .long_name = NULL_IF_CONFIG_SMALL("IndigoVision 8000 video"),
+const FFInputFormat ff_iv8_demuxer = {
+ .p.name = "iv8",
+ .p.long_name = NULL_IF_CONFIG_SMALL("IndigoVision 8000 video"),
+ .p.flags = AVFMT_GENERIC_INDEX,
.read_probe = probe,
.read_header = read_header,
.read_packet = read_packet,
- .flags = AVFMT_GENERIC_INDEX,
};
diff --git a/libavformat/ivfdec.c b/libavformat/ivfdec.c
index 141ce4f1be..9e34fb014e 100644
--- a/libavformat/ivfdec.c
+++ b/libavformat/ivfdec.c
@@ -19,6 +19,7 @@
*/
#include "avformat.h"
+#include "demux.h"
#include "internal.h"
#include "riff.h"
#include "libavutil/intreadwrite.h"
@@ -88,12 +89,12 @@ static int read_packet(AVFormatContext *s, AVPacket *pkt)
return ret;
}
-const AVInputFormat ff_ivf_demuxer = {
- .name = "ivf",
- .long_name = NULL_IF_CONFIG_SMALL("On2 IVF"),
+const FFInputFormat ff_ivf_demuxer = {
+ .p.name = "ivf",
+ .p.long_name = NULL_IF_CONFIG_SMALL("On2 IVF"),
+ .p.flags = AVFMT_GENERIC_INDEX,
+ .p.codec_tag = (const AVCodecTag* const []){ ff_codec_bmp_tags, 0 },
.read_probe = probe,
.read_header = read_header,
.read_packet = read_packet,
- .flags = AVFMT_GENERIC_INDEX,
- .codec_tag = (const AVCodecTag* const []){ ff_codec_bmp_tags, 0 },
};
diff --git a/libavformat/jacosubdec.c b/libavformat/jacosubdec.c
index c6e5b4aa6d..8b0aa312fc 100644
--- a/libavformat/jacosubdec.c
+++ b/libavformat/jacosubdec.c
@@ -26,6 +26,7 @@
*/
#include "avformat.h"
+#include "demux.h"
#include "internal.h"
#include "subtitles.h"
#include "libavcodec/jacosub.h"
@@ -256,9 +257,9 @@ static int jacosub_read_header(AVFormatContext *s)
return 0;
}
-const AVInputFormat ff_jacosub_demuxer = {
- .name = "jacosub",
- .long_name = NULL_IF_CONFIG_SMALL("JACOsub subtitle format"),
+const FFInputFormat ff_jacosub_demuxer = {
+ .p.name = "jacosub",
+ .p.long_name = NULL_IF_CONFIG_SMALL("JACOsub subtitle format"),
.priv_data_size = sizeof(JACOsubContext),
.flags_internal = FF_FMT_INIT_CLEANUP,
.read_probe = jacosub_probe,
diff --git a/libavformat/jpegxl_anim_dec.c b/libavformat/jpegxl_anim_dec.c
index 54cd6e4e9d..f749b378b3 100644
--- a/libavformat/jpegxl_anim_dec.c
+++ b/libavformat/jpegxl_anim_dec.c
@@ -34,6 +34,7 @@
#include "libavutil/opt.h"
#include "avformat.h"
+#include "demux.h"
#include "internal.h"
typedef struct JXLAnimDemuxContext {
@@ -188,16 +189,16 @@ static int jpegxl_anim_close(AVFormatContext *s)
return 0;
}
-const AVInputFormat ff_jpegxl_anim_demuxer = {
- .name = "jpegxl_anim",
- .long_name = NULL_IF_CONFIG_SMALL("Animated JPEG XL"),
+const FFInputFormat ff_jpegxl_anim_demuxer = {
+ .p.name = "jpegxl_anim",
+ .p.long_name = NULL_IF_CONFIG_SMALL("Animated JPEG XL"),
+ .p.flags = AVFMT_GENERIC_INDEX | AVFMT_NOTIMESTAMPS,
+ .p.mime_type = "image/jxl",
+ .p.extensions = "jxl",
.priv_data_size = sizeof(JXLAnimDemuxContext),
.read_probe = jpegxl_anim_probe,
.read_header = jpegxl_anim_read_header,
.read_packet = jpegxl_anim_read_packet,
.read_close = jpegxl_anim_close,
.flags_internal = FF_FMT_INIT_CLEANUP,
- .flags = AVFMT_GENERIC_INDEX | AVFMT_NOTIMESTAMPS,
- .mime_type = "image/jxl",
- .extensions = "jxl",
};
diff --git a/libavformat/jvdec.c b/libavformat/jvdec.c
index 5e0e2239f5..89c82483aa 100644
--- a/libavformat/jvdec.c
+++ b/libavformat/jvdec.c
@@ -29,6 +29,7 @@
#include "libavutil/intreadwrite.h"
#include "avformat.h"
+#include "demux.h"
#include "internal.h"
#define JV_PREAMBLE_SIZE 5
@@ -250,9 +251,9 @@ static int read_seek(AVFormatContext *s, int stream_index,
return 0;
}
-const AVInputFormat ff_jv_demuxer = {
- .name = "jv",
- .long_name = NULL_IF_CONFIG_SMALL("Bitmap Brothers JV"),
+const FFInputFormat ff_jv_demuxer = {
+ .p.name = "jv",
+ .p.long_name = NULL_IF_CONFIG_SMALL("Bitmap Brothers JV"),
.priv_data_size = sizeof(JVDemuxContext),
.flags_internal = FF_FMT_INIT_CLEANUP,
.read_probe = read_probe,
diff --git a/libavformat/kvag.c b/libavformat/kvag.c
index 9487e7dd0e..bea1dda3e5 100644
--- a/libavformat/kvag.c
+++ b/libavformat/kvag.c
@@ -25,6 +25,7 @@
#include "libavutil/channel_layout.h"
#include "avformat.h"
#include "avio_internal.h"
+#include "demux.h"
#include "internal.h"
#include "mux.h"
#include "rawenc.h"
@@ -115,9 +116,9 @@ static int kvag_seek(AVFormatContext *s, int stream_index,
return avio_seek(s->pb, KVAG_HEADER_SIZE, SEEK_SET);
}
-const AVInputFormat ff_kvag_demuxer = {
- .name = "kvag",
- .long_name = NULL_IF_CONFIG_SMALL("Simon & Schuster Interactive VAG"),
+const FFInputFormat ff_kvag_demuxer = {
+ .p.name = "kvag",
+ .p.long_name = NULL_IF_CONFIG_SMALL("Simon & Schuster Interactive VAG"),
.read_probe = kvag_probe,
.read_header = kvag_read_header,
.read_packet = kvag_read_packet,
diff --git a/libavformat/lafdec.c b/libavformat/lafdec.c
index b867f106ae..05f30691ba 100644
--- a/libavformat/lafdec.c
+++ b/libavformat/lafdec.c
@@ -22,6 +22,7 @@
#include "libavutil/intreadwrite.h"
#include "avformat.h"
#include "avio_internal.h"
+#include "demux.h"
#include "internal.h"
#define MAX_STREAMS 4096
@@ -277,16 +278,16 @@ static int laf_read_seek(AVFormatContext *ctx, int stream_index,
return -1;
}
-const AVInputFormat ff_laf_demuxer = {
- .name = "laf",
- .long_name = NULL_IF_CONFIG_SMALL("LAF (Limitless Audio Format)"),
+const FFInputFormat ff_laf_demuxer = {
+ .p.name = "laf",
+ .p.long_name = NULL_IF_CONFIG_SMALL("LAF (Limitless Audio Format)"),
+ .p.extensions = "laf",
+ .p.flags = AVFMT_GENERIC_INDEX,
.priv_data_size = sizeof(LAFContext),
.read_probe = laf_probe,
.read_header = laf_read_header,
.read_packet = laf_read_packet,
.read_close = laf_read_close,
.read_seek = laf_read_seek,
- .extensions = "laf",
- .flags = AVFMT_GENERIC_INDEX,
.flags_internal = FF_FMT_INIT_CLEANUP,
};
diff --git a/libavformat/libgme.c b/libavformat/libgme.c
index 695155c9ac..c2baa9c3ff 100644
--- a/libavformat/libgme.c
+++ b/libavformat/libgme.c
@@ -26,6 +26,7 @@
#include "libavutil/eval.h"
#include "libavutil/opt.h"
#include "avformat.h"
+#include "demux.h"
#include "internal.h"
typedef struct GMEContext {
@@ -193,9 +194,10 @@ static const AVClass class_gme = {
.version = LIBAVUTIL_VERSION_INT,
};
-const AVInputFormat ff_libgme_demuxer = {
- .name = "libgme",
- .long_name = NULL_IF_CONFIG_SMALL("Game Music Emu demuxer"),
+const FFInputFormat ff_libgme_demuxer = {
+ .p.name = "libgme",
+ .p.long_name = NULL_IF_CONFIG_SMALL("Game Music Emu demuxer"),
+ .p.priv_class = &class_gme,
.priv_data_size = sizeof(GMEContext),
.flags_internal = FF_FMT_INIT_CLEANUP,
.read_probe = probe_gme,
@@ -203,5 +205,4 @@ const AVInputFormat ff_libgme_demuxer = {
.read_packet = read_packet_gme,
.read_close = read_close_gme,
.read_seek = read_seek_gme,
- .priv_class = &class_gme,
};
diff --git a/libavformat/libmodplug.c b/libavformat/libmodplug.c
index 0cae13bd2e..8c6569f778 100644
--- a/libavformat/libmodplug.c
+++ b/libavformat/libmodplug.c
@@ -28,6 +28,7 @@
#include "libavutil/eval.h"
#include "libavutil/opt.h"
#include "avformat.h"
+#include "demux.h"
#include "internal.h"
typedef struct ModPlugContext {
@@ -380,15 +381,15 @@ static const AVClass modplug_class = {
.version = LIBAVUTIL_VERSION_INT,
};
-const AVInputFormat ff_libmodplug_demuxer = {
- .name = "libmodplug",
- .long_name = NULL_IF_CONFIG_SMALL("ModPlug demuxer"),
+const FFInputFormat ff_libmodplug_demuxer = {
+ .p.name = "libmodplug",
+ .p.long_name = NULL_IF_CONFIG_SMALL("ModPlug demuxer"),
+ .p.extensions = modplug_extensions,
+ .p.priv_class = &modplug_class,
.priv_data_size = sizeof(ModPlugContext),
.read_probe = modplug_probe,
.read_header = modplug_read_header,
.read_packet = modplug_read_packet,
.read_close = modplug_read_close,
.read_seek = modplug_read_seek,
- .extensions = modplug_extensions,
- .priv_class = &modplug_class,
};
diff --git a/libavformat/libopenmpt.c b/libavformat/libopenmpt.c
index 3ca59f506f..bba1c38521 100644
--- a/libavformat/libopenmpt.c
+++ b/libavformat/libopenmpt.c
@@ -34,6 +34,7 @@
#include "libavutil/channel_layout.h"
#include "libavutil/opt.h"
#include "avformat.h"
+#include "demux.h"
#include "internal.h"
typedef struct OpenMPTContext {
@@ -278,9 +279,15 @@ static const AVClass class_openmpt = {
.version = LIBAVUTIL_VERSION_INT,
};
-const AVInputFormat ff_libopenmpt_demuxer = {
- .name = "libopenmpt",
- .long_name = NULL_IF_CONFIG_SMALL("Tracker formats (libopenmpt)"),
+const FFInputFormat ff_libopenmpt_demuxer = {
+ .p.name = "libopenmpt",
+ .p.long_name = NULL_IF_CONFIG_SMALL("Tracker formats (libopenmpt)"),
+ .p.priv_class = &class_openmpt,
+#if OPENMPT_API_VERSION_AT_LEAST(0,3,0)
+ .p.extensions = "669,amf,ams,dbm,digi,dmf,dsm,dtm,far,gdm,ice,imf,it,j2b,m15,mdl,med,mmcmp,mms,mo3,mod,mptm,mt2,mtm,nst,okt,plm,ppm,psm,pt36,ptm,s3m,sfx,sfx2,st26,stk,stm,stp,ult,umx,wow,xm,xpk",
+#else
+ .p.extensions = "669,amf,ams,dbm,digi,dmf,dsm,far,gdm,ice,imf,it,j2b,m15,mdl,med,mmcmp,mms,mo3,mod,mptm,mt2,mtm,nst,okt,plm,ppm,psm,pt36,ptm,s3m,sfx,sfx2,st26,stk,stm,ult,umx,wow,xm,xpk",
+#endif
.priv_data_size = sizeof(OpenMPTContext),
.flags_internal = FF_FMT_INIT_CLEANUP,
.read_probe = read_probe_openmpt,
@@ -288,10 +295,4 @@ const AVInputFormat ff_libopenmpt_demuxer = {
.read_packet = read_packet_openmpt,
.read_close = read_close_openmpt,
.read_seek = read_seek_openmpt,
- .priv_class = &class_openmpt,
-#if OPENMPT_API_VERSION_AT_LEAST(0,3,0)
- .extensions = "669,amf,ams,dbm,digi,dmf,dsm,dtm,far,gdm,ice,imf,it,j2b,m15,mdl,med,mmcmp,mms,mo3,mod,mptm,mt2,mtm,nst,okt,plm,ppm,psm,pt36,ptm,s3m,sfx,sfx2,st26,stk,stm,stp,ult,umx,wow,xm,xpk",
-#else
- .extensions = "669,amf,ams,dbm,digi,dmf,dsm,far,gdm,ice,imf,it,j2b,m15,mdl,med,mmcmp,mms,mo3,mod,mptm,mt2,mtm,nst,okt,plm,ppm,psm,pt36,ptm,s3m,sfx,sfx2,st26,stk,stm,ult,umx,wow,xm,xpk",
-#endif
};
diff --git a/libavformat/lmlm4.c b/libavformat/lmlm4.c
index b0bfad001b..209b544ccd 100644
--- a/libavformat/lmlm4.c
+++ b/libavformat/lmlm4.c
@@ -25,6 +25,7 @@
#include "libavutil/intreadwrite.h"
#include "avformat.h"
+#include "demux.h"
#include "internal.h"
#define LMLM4_I_FRAME 0x00
@@ -121,9 +122,9 @@ static int lmlm4_read_packet(AVFormatContext *s, AVPacket *pkt)
return ret;
}
-const AVInputFormat ff_lmlm4_demuxer = {
- .name = "lmlm4",
- .long_name = NULL_IF_CONFIG_SMALL("raw lmlm4"),
+const FFInputFormat ff_lmlm4_demuxer = {
+ .p.name = "lmlm4",
+ .p.long_name = NULL_IF_CONFIG_SMALL("raw lmlm4"),
.read_probe = lmlm4_probe,
.read_header = lmlm4_read_header,
.read_packet = lmlm4_read_packet,
diff --git a/libavformat/loasdec.c b/libavformat/loasdec.c
index 7b8b2ea4bc..fcb812f5ca 100644
--- a/libavformat/loasdec.c
+++ b/libavformat/loasdec.c
@@ -22,6 +22,7 @@
#include "libavutil/intreadwrite.h"
#include "libavutil/internal.h"
#include "avformat.h"
+#include "demux.h"
#include "internal.h"
#include "rawdec.h"
@@ -83,14 +84,14 @@ static int loas_read_header(AVFormatContext *s)
return 0;
}
-const AVInputFormat ff_loas_demuxer = {
- .name = "loas",
- .long_name = NULL_IF_CONFIG_SMALL("LOAS AudioSyncStream"),
+const FFInputFormat ff_loas_demuxer = {
+ .p.name = "loas",
+ .p.long_name = NULL_IF_CONFIG_SMALL("LOAS AudioSyncStream"),
+ .p.flags = AVFMT_GENERIC_INDEX,
+ .p.priv_class = &ff_raw_demuxer_class,
.read_probe = loas_probe,
.read_header = loas_read_header,
.read_packet = ff_raw_read_partial_packet,
- .flags= AVFMT_GENERIC_INDEX,
.raw_codec_id = AV_CODEC_ID_AAC_LATM,
.priv_data_size = sizeof(FFRawDemuxerContext),
- .priv_class = &ff_raw_demuxer_class,
};
diff --git a/libavformat/lrcdec.c b/libavformat/lrcdec.c
index f43e9dccf5..216bcc42eb 100644
--- a/libavformat/lrcdec.c
+++ b/libavformat/lrcdec.c
@@ -24,6 +24,7 @@
#include <string.h>
#include "avformat.h"
+#include "demux.h"
#include "internal.h"
#include "lrc.h"
#include "metadata.h"
@@ -224,9 +225,9 @@ err_nomem_out:
return AVERROR(ENOMEM);
}
-const AVInputFormat ff_lrc_demuxer = {
- .name = "lrc",
- .long_name = NULL_IF_CONFIG_SMALL("LRC lyrics"),
+const FFInputFormat ff_lrc_demuxer = {
+ .p.name = "lrc",
+ .p.long_name = NULL_IF_CONFIG_SMALL("LRC lyrics"),
.priv_data_size = sizeof (LRCContext),
.flags_internal = FF_FMT_INIT_CLEANUP,
.read_probe = lrc_probe,
diff --git a/libavformat/luodatdec.c b/libavformat/luodatdec.c
index fbd621dae6..c166ad71f0 100644
--- a/libavformat/luodatdec.c
+++ b/libavformat/luodatdec.c
@@ -23,6 +23,7 @@
#include "libavutil/intreadwrite.h"
#include "avio_internal.h"
#include "avformat.h"
+#include "demux.h"
#include "internal.h"
static int dat_probe(const AVProbeData *p)
@@ -115,12 +116,12 @@ static int dat_read_packet(AVFormatContext *s, AVPacket *pkt)
return ret;
}
-const AVInputFormat ff_luodat_demuxer = {
- .name = "luodat",
- .long_name = NULL_IF_CONFIG_SMALL("Video CCTV DAT"),
+const FFInputFormat ff_luodat_demuxer = {
+ .p.name = "luodat",
+ .p.long_name = NULL_IF_CONFIG_SMALL("Video CCTV DAT"),
+ .p.extensions = "dat",
+ .p.flags = AVFMT_GENERIC_INDEX,
.read_probe = dat_probe,
.read_header = dat_read_header,
.read_packet = dat_read_packet,
- .extensions = "dat",
- .flags = AVFMT_GENERIC_INDEX,
};
diff --git a/libavformat/lvfdec.c b/libavformat/lvfdec.c
index cc1e9be58c..cd013844fb 100644
--- a/libavformat/lvfdec.c
+++ b/libavformat/lvfdec.c
@@ -21,6 +21,7 @@
#include "libavutil/intreadwrite.h"
#include "avformat.h"
+#include "demux.h"
#include "riff.h"
static int lvf_probe(const AVProbeData *p)
@@ -145,12 +146,12 @@ static int lvf_read_packet(AVFormatContext *s, AVPacket *pkt)
return AVERROR_EOF;
}
-const AVInputFormat ff_lvf_demuxer = {
- .name = "lvf",
- .long_name = NULL_IF_CONFIG_SMALL("LVF"),
+const FFInputFormat ff_lvf_demuxer = {
+ .p.name = "lvf",
+ .p.long_name = NULL_IF_CONFIG_SMALL("LVF"),
+ .p.extensions = "lvf",
+ .p.flags = AVFMT_GENERIC_INDEX,
.read_probe = lvf_probe,
.read_header = lvf_read_header,
.read_packet = lvf_read_packet,
- .extensions = "lvf",
- .flags = AVFMT_GENERIC_INDEX,
};
diff --git a/libavformat/lxfdec.c b/libavformat/lxfdec.c
index 8003ae98b7..00a7813984 100644
--- a/libavformat/lxfdec.c
+++ b/libavformat/lxfdec.c
@@ -335,12 +335,12 @@ static int lxf_read_packet(AVFormatContext *s, AVPacket *pkt)
return ret;
}
-const AVInputFormat ff_lxf_demuxer = {
- .name = "lxf",
- .long_name = NULL_IF_CONFIG_SMALL("VR native stream (LXF)"),
+const FFInputFormat ff_lxf_demuxer = {
+ .p.name = "lxf",
+ .p.long_name = NULL_IF_CONFIG_SMALL("VR native stream (LXF)"),
+ .p.codec_tag = (const AVCodecTag* const []){lxf_tags, 0},
.priv_data_size = sizeof(LXFDemuxContext),
.read_probe = lxf_probe,
.read_header = lxf_read_header,
.read_packet = lxf_read_packet,
- .codec_tag = (const AVCodecTag* const []){lxf_tags, 0},
};
diff --git a/libavformat/matroskadec.c b/libavformat/matroskadec.c
index 8f000f86be..75768d429b 100644
--- a/libavformat/matroskadec.c
+++ b/libavformat/matroskadec.c
@@ -4777,10 +4777,10 @@ static const AVClass webm_dash_class = {
.version = LIBAVUTIL_VERSION_INT,
};
-const AVInputFormat ff_webm_dash_manifest_demuxer = {
- .name = "webm_dash_manifest",
- .long_name = NULL_IF_CONFIG_SMALL("WebM DASH Manifest"),
- .priv_class = &webm_dash_class,
+const FFInputFormat ff_webm_dash_manifest_demuxer = {
+ .p.name = "webm_dash_manifest",
+ .p.long_name = NULL_IF_CONFIG_SMALL("WebM DASH Manifest"),
+ .p.priv_class = &webm_dash_class,
.priv_data_size = sizeof(MatroskaDemuxContext),
.flags_internal = FF_FMT_INIT_CLEANUP,
.read_header = webm_dash_manifest_read_header,
@@ -4789,10 +4789,11 @@ const AVInputFormat ff_webm_dash_manifest_demuxer = {
};
#endif
-const AVInputFormat ff_matroska_demuxer = {
- .name = "matroska,webm",
- .long_name = NULL_IF_CONFIG_SMALL("Matroska / WebM"),
- .extensions = "mkv,mk3d,mka,mks,webm",
+const FFInputFormat ff_matroska_demuxer = {
+ .p.name = "matroska,webm",
+ .p.long_name = NULL_IF_CONFIG_SMALL("Matroska / WebM"),
+ .p.extensions = "mkv,mk3d,mka,mks,webm",
+ .p.mime_type = "audio/webm,audio/x-matroska,video/webm,video/x-matroska",
.priv_data_size = sizeof(MatroskaDemuxContext),
.flags_internal = FF_FMT_INIT_CLEANUP,
.read_probe = matroska_probe,
@@ -4800,5 +4801,4 @@ const AVInputFormat ff_matroska_demuxer = {
.read_packet = matroska_read_packet,
.read_close = matroska_read_close,
.read_seek = matroska_read_seek,
- .mime_type = "audio/webm,audio/x-matroska,video/webm,video/x-matroska"
};
diff --git a/libavformat/mca.c b/libavformat/mca.c
index 74654c3b39..e707de3c3b 100644
--- a/libavformat/mca.c
+++ b/libavformat/mca.c
@@ -218,13 +218,13 @@ static int read_seek(AVFormatContext *s, int stream_index,
return 0;
}
-const AVInputFormat ff_mca_demuxer = {
- .name = "mca",
- .long_name = NULL_IF_CONFIG_SMALL("MCA Audio Format"),
+const FFInputFormat ff_mca_demuxer = {
+ .p.name = "mca",
+ .p.long_name = NULL_IF_CONFIG_SMALL("MCA Audio Format"),
+ .p.extensions = "mca",
.priv_data_size = sizeof(MCADemuxContext),
.read_probe = probe,
.read_header = read_header,
.read_packet = read_packet,
.read_seek = read_seek,
- .extensions = "mca",
};
diff --git a/libavformat/mccdec.c b/libavformat/mccdec.c
index 8c36b27f12..d20724b879 100644
--- a/libavformat/mccdec.c
+++ b/libavformat/mccdec.c
@@ -20,6 +20,7 @@
*/
#include "avformat.h"
+#include "demux.h"
#include "internal.h"
#include "subtitles.h"
#include "libavutil/avstring.h"
@@ -200,14 +201,14 @@ static int mcc_read_header(AVFormatContext *s)
return ret;
}
-const AVInputFormat ff_mcc_demuxer = {
- .name = "mcc",
- .long_name = NULL_IF_CONFIG_SMALL("MacCaption"),
+const FFInputFormat ff_mcc_demuxer = {
+ .p.name = "mcc",
+ .p.long_name = NULL_IF_CONFIG_SMALL("MacCaption"),
+ .p.extensions = "mcc",
.priv_data_size = sizeof(MCCContext),
.flags_internal = FF_FMT_INIT_CLEANUP,
.read_probe = mcc_probe,
.read_header = mcc_read_header,
- .extensions = "mcc",
.read_packet = ff_subtitles_read_packet,
.read_seek2 = ff_subtitles_read_seek,
.read_close = ff_subtitles_read_close,
diff --git a/libavformat/mgsts.c b/libavformat/mgsts.c
index b5c704829d..07ea66163c 100644
--- a/libavformat/mgsts.c
+++ b/libavformat/mgsts.c
@@ -22,6 +22,7 @@
#include "libavutil/intreadwrite.h"
#include "libavutil/intfloat.h"
#include "avformat.h"
+#include "demux.h"
#include "riff.h"
static int read_probe(const AVProbeData *p)
@@ -96,11 +97,11 @@ static int read_packet(AVFormatContext *s, AVPacket *pkt)
return ret;
}
-const AVInputFormat ff_mgsts_demuxer = {
- .name = "mgsts",
- .long_name = NULL_IF_CONFIG_SMALL("Metal Gear Solid: The Twin Snakes"),
+const FFInputFormat ff_mgsts_demuxer = {
+ .p.name = "mgsts",
+ .p.long_name = NULL_IF_CONFIG_SMALL("Metal Gear Solid: The Twin Snakes"),
+ .p.flags = AVFMT_GENERIC_INDEX,
.read_probe = read_probe,
.read_header = read_header,
.read_packet = read_packet,
- .flags = AVFMT_GENERIC_INDEX,
};
diff --git a/libavformat/microdvddec.c b/libavformat/microdvddec.c
index e536d12b85..8660c43ef9 100644
--- a/libavformat/microdvddec.c
+++ b/libavformat/microdvddec.c
@@ -21,6 +21,7 @@
*/
#include "avformat.h"
+#include "demux.h"
#include "internal.h"
#include "subtitles.h"
#include "libavutil/intreadwrite.h"
@@ -198,9 +199,10 @@ static const AVClass microdvd_class = {
.version = LIBAVUTIL_VERSION_INT,
};
-const AVInputFormat ff_microdvd_demuxer = {
- .name = "microdvd",
- .long_name = NULL_IF_CONFIG_SMALL("MicroDVD subtitle format"),
+const FFInputFormat ff_microdvd_demuxer = {
+ .p.name = "microdvd",
+ .p.long_name = NULL_IF_CONFIG_SMALL("MicroDVD subtitle format"),
+ .p.priv_class = µdvd_class,
.priv_data_size = sizeof(MicroDVDContext),
.flags_internal = FF_FMT_INIT_CLEANUP,
.read_probe = microdvd_probe,
@@ -208,5 +210,4 @@ const AVInputFormat ff_microdvd_demuxer = {
.read_packet = microdvd_read_packet,
.read_seek2 = microdvd_read_seek,
.read_close = microdvd_read_close,
- .priv_class = µdvd_class,
};
diff --git a/libavformat/mlpdec.c b/libavformat/mlpdec.c
index f4fed65851..4927f9d351 100644
--- a/libavformat/mlpdec.c
+++ b/libavformat/mlpdec.c
@@ -25,6 +25,7 @@
#include "avformat.h"
#include "avio_internal.h"
+#include "demux.h"
#include "internal.h"
#include "rawdec.h"
#include "libavutil/intreadwrite.h"
@@ -95,17 +96,17 @@ static int mlp_probe(const AVProbeData *p)
return mlp_thd_probe(p, 0xf8726fbb);
}
-const AVInputFormat ff_mlp_demuxer = {
- .name = "mlp",
- .long_name = NULL_IF_CONFIG_SMALL("raw MLP"),
+const FFInputFormat ff_mlp_demuxer = {
+ .p.name = "mlp",
+ .p.long_name = NULL_IF_CONFIG_SMALL("raw MLP"),
+ .p.flags = AVFMT_GENERIC_INDEX | AVFMT_NOTIMESTAMPS,
+ .p.extensions = "mlp",
+ .p.priv_class = &ff_raw_demuxer_class,
.read_probe = mlp_probe,
.read_header = mlp_read_header,
.read_packet = ff_raw_read_partial_packet,
- .flags = AVFMT_GENERIC_INDEX | AVFMT_NOTIMESTAMPS,
- .extensions = "mlp",
.raw_codec_id = AV_CODEC_ID_MLP,
.priv_data_size = sizeof(FFRawDemuxerContext),
- .priv_class = &ff_raw_demuxer_class,
};
#endif
@@ -115,16 +116,16 @@ static int thd_probe(const AVProbeData *p)
return mlp_thd_probe(p, 0xf8726fba);
}
-const AVInputFormat ff_truehd_demuxer = {
- .name = "truehd",
- .long_name = NULL_IF_CONFIG_SMALL("raw TrueHD"),
+const FFInputFormat ff_truehd_demuxer = {
+ .p.name = "truehd",
+ .p.long_name = NULL_IF_CONFIG_SMALL("raw TrueHD"),
+ .p.flags = AVFMT_GENERIC_INDEX | AVFMT_NOTIMESTAMPS,
+ .p.extensions = "thd",
+ .p.priv_class = &ff_raw_demuxer_class,
.read_probe = thd_probe,
.read_header = mlp_read_header,
.read_packet = ff_raw_read_partial_packet,
- .flags = AVFMT_GENERIC_INDEX | AVFMT_NOTIMESTAMPS,
- .extensions = "thd",
.raw_codec_id = AV_CODEC_ID_TRUEHD,
.priv_data_size = sizeof(FFRawDemuxerContext),
- .priv_class = &ff_raw_demuxer_class,
};
#endif
diff --git a/libavformat/mlvdec.c b/libavformat/mlvdec.c
index b706898cb3..b969a45550 100644
--- a/libavformat/mlvdec.c
+++ b/libavformat/mlvdec.c
@@ -488,9 +488,9 @@ static int read_close(AVFormatContext *s)
return 0;
}
-const AVInputFormat ff_mlv_demuxer = {
- .name = "mlv",
- .long_name = NULL_IF_CONFIG_SMALL("Magic Lantern Video (MLV)"),
+const FFInputFormat ff_mlv_demuxer = {
+ .p.name = "mlv",
+ .p.long_name = NULL_IF_CONFIG_SMALL("Magic Lantern Video (MLV)"),
.priv_data_size = sizeof(MlvContext),
.flags_internal = FF_FMT_INIT_CLEANUP,
.read_probe = probe,
diff --git a/libavformat/mm.c b/libavformat/mm.c
index 1d44f41a94..23c025d852 100644
--- a/libavformat/mm.c
+++ b/libavformat/mm.c
@@ -34,6 +34,7 @@
#include "libavutil/channel_layout.h"
#include "libavutil/intreadwrite.h"
#include "avformat.h"
+#include "demux.h"
#include "internal.h"
#define MM_PREAMBLE_SIZE 6
@@ -189,9 +190,9 @@ static int read_packet(AVFormatContext *s,
}
}
-const AVInputFormat ff_mm_demuxer = {
- .name = "mm",
- .long_name = NULL_IF_CONFIG_SMALL("American Laser Games MM"),
+const FFInputFormat ff_mm_demuxer = {
+ .p.name = "mm",
+ .p.long_name = NULL_IF_CONFIG_SMALL("American Laser Games MM"),
.priv_data_size = sizeof(MmDemuxContext),
.read_probe = probe,
.read_header = read_header,
diff --git a/libavformat/mmf.c b/libavformat/mmf.c
index 5cac4381f4..b3e257616d 100644
--- a/libavformat/mmf.c
+++ b/libavformat/mmf.c
@@ -24,6 +24,7 @@
#include "libavutil/channel_layout.h"
#include "avformat.h"
#include "avio_internal.h"
+#include "demux.h"
#include "internal.h"
#include "mux.h"
#include "pcm.h"
@@ -298,14 +299,14 @@ static int mmf_read_packet(AVFormatContext *s, AVPacket *pkt)
}
#if CONFIG_MMF_DEMUXER
-const AVInputFormat ff_mmf_demuxer = {
- .name = "mmf",
- .long_name = NULL_IF_CONFIG_SMALL("Yamaha SMAF"),
+const FFInputFormat ff_mmf_demuxer = {
+ .p.name = "mmf",
+ .p.long_name = NULL_IF_CONFIG_SMALL("Yamaha SMAF"),
+ .p.flags = AVFMT_GENERIC_INDEX,
.priv_data_size = sizeof(MMFContext),
.read_probe = mmf_probe,
.read_header = mmf_read_header,
.read_packet = mmf_read_packet,
- .flags = AVFMT_GENERIC_INDEX,
};
#endif
diff --git a/libavformat/mods.c b/libavformat/mods.c
index 34524a19d8..7f76124821 100644
--- a/libavformat/mods.c
+++ b/libavformat/mods.c
@@ -24,6 +24,7 @@
#include "libavutil/intreadwrite.h"
#include "avformat.h"
+#include "demux.h"
#include "internal.h"
static int mods_probe(const AVProbeData *p)
@@ -91,12 +92,12 @@ static int mods_read_packet(AVFormatContext *s, AVPacket *pkt)
return ret;
}
-const AVInputFormat ff_mods_demuxer = {
- .name = "mods",
- .long_name = NULL_IF_CONFIG_SMALL("MobiClip MODS"),
+const FFInputFormat ff_mods_demuxer = {
+ .p.name = "mods",
+ .p.long_name = NULL_IF_CONFIG_SMALL("MobiClip MODS"),
+ .p.extensions = "mods",
+ .p.flags = AVFMT_GENERIC_INDEX,
.read_probe = mods_probe,
.read_header = mods_read_header,
.read_packet = mods_read_packet,
- .extensions = "mods",
- .flags = AVFMT_GENERIC_INDEX,
};
diff --git a/libavformat/moflex.c b/libavformat/moflex.c
index 2ea7c1f994..44fdaf3269 100644
--- a/libavformat/moflex.c
+++ b/libavformat/moflex.c
@@ -24,6 +24,7 @@
#include "libavcodec/bytestream.h"
#include "avformat.h"
+#include "demux.h"
#include "internal.h"
typedef struct BitReader {
@@ -371,16 +372,16 @@ static int moflex_read_close(AVFormatContext *s)
return 0;
}
-const AVInputFormat ff_moflex_demuxer = {
- .name = "moflex",
- .long_name = NULL_IF_CONFIG_SMALL("MobiClip MOFLEX"),
+const FFInputFormat ff_moflex_demuxer = {
+ .p.name = "moflex",
+ .p.long_name = NULL_IF_CONFIG_SMALL("MobiClip MOFLEX"),
+ .p.extensions = "moflex",
+ .p.flags = AVFMT_GENERIC_INDEX,
.priv_data_size = sizeof(MOFLEXDemuxContext),
.read_probe = moflex_probe,
.read_header = moflex_read_header,
.read_packet = moflex_read_packet,
.read_seek = moflex_read_seek,
.read_close = moflex_read_close,
- .extensions = "moflex",
- .flags = AVFMT_GENERIC_INDEX,
.flags_internal = FF_FMT_INIT_CLEANUP,
};
diff --git a/libavformat/mov.c b/libavformat/mov.c
index 42b0135987..f8c0fe9151 100644
--- a/libavformat/mov.c
+++ b/libavformat/mov.c
@@ -9641,17 +9641,17 @@ static const AVClass mov_class = {
.version = LIBAVUTIL_VERSION_INT,
};
-const AVInputFormat ff_mov_demuxer = {
- .name = "mov,mp4,m4a,3gp,3g2,mj2",
- .long_name = NULL_IF_CONFIG_SMALL("QuickTime / MOV"),
- .priv_class = &mov_class,
+const FFInputFormat ff_mov_demuxer = {
+ .p.name = "mov,mp4,m4a,3gp,3g2,mj2",
+ .p.long_name = NULL_IF_CONFIG_SMALL("QuickTime / MOV"),
+ .p.priv_class = &mov_class,
+ .p.extensions = "mov,mp4,m4a,3gp,3g2,mj2,psp,m4b,ism,ismv,isma,f4v,avif,heic,heif",
+ .p.flags = AVFMT_NO_BYTE_SEEK | AVFMT_SEEK_TO_PTS | AVFMT_SHOW_IDS,
.priv_data_size = sizeof(MOVContext),
- .extensions = "mov,mp4,m4a,3gp,3g2,mj2,psp,m4b,ism,ismv,isma,f4v,avif,heic,heif",
.flags_internal = FF_FMT_INIT_CLEANUP,
.read_probe = mov_probe,
.read_header = mov_read_header,
.read_packet = mov_read_packet,
.read_close = mov_read_close,
.read_seek = mov_read_seek,
- .flags = AVFMT_NO_BYTE_SEEK | AVFMT_SEEK_TO_PTS | AVFMT_SHOW_IDS,
};
diff --git a/libavformat/mp3dec.c b/libavformat/mp3dec.c
index 05c13228bc..ec6cf567bc 100644
--- a/libavformat/mp3dec.c
+++ b/libavformat/mp3dec.c
@@ -610,15 +610,15 @@ static const AVClass demuxer_class = {
.category = AV_CLASS_CATEGORY_DEMUXER,
};
-const AVInputFormat ff_mp3_demuxer = {
- .name = "mp3",
- .long_name = NULL_IF_CONFIG_SMALL("MP2/3 (MPEG audio layer 2/3)"),
+const FFInputFormat ff_mp3_demuxer = {
+ .p.name = "mp3",
+ .p.long_name = NULL_IF_CONFIG_SMALL("MP2/3 (MPEG audio layer 2/3)"),
+ .p.flags = AVFMT_GENERIC_INDEX,
+ .p.extensions = "mp2,mp3,m2a,mpa", /* XXX: use probe */
+ .p.priv_class = &demuxer_class,
.read_probe = mp3_read_probe,
.read_header = mp3_read_header,
.read_packet = mp3_read_packet,
.read_seek = mp3_seek,
.priv_data_size = sizeof(MP3DecContext),
- .flags = AVFMT_GENERIC_INDEX,
- .extensions = "mp2,mp3,m2a,mpa", /* XXX: use probe */
- .priv_class = &demuxer_class,
};
diff --git a/libavformat/mpc.c b/libavformat/mpc.c
index ef16237ab6..89130d5a7e 100644
--- a/libavformat/mpc.c
+++ b/libavformat/mpc.c
@@ -219,13 +219,13 @@ static int mpc_read_seek(AVFormatContext *s, int stream_index, int64_t timestamp
}
-const AVInputFormat ff_mpc_demuxer = {
- .name = "mpc",
- .long_name = NULL_IF_CONFIG_SMALL("Musepack"),
+const FFInputFormat ff_mpc_demuxer = {
+ .p.name = "mpc",
+ .p.long_name = NULL_IF_CONFIG_SMALL("Musepack"),
+ .p.extensions = "mpc",
.priv_data_size = sizeof(MPCContext),
.read_probe = mpc_probe,
.read_header = mpc_read_header,
.read_packet = mpc_read_packet,
.read_seek = mpc_read_seek,
- .extensions = "mpc",
};
diff --git a/libavformat/mpc8.c b/libavformat/mpc8.c
index 95a1529c5d..42a34a3255 100644
--- a/libavformat/mpc8.c
+++ b/libavformat/mpc8.c
@@ -348,9 +348,9 @@ static int mpc8_read_seek(AVFormatContext *s, int stream_index, int64_t timestam
}
-const AVInputFormat ff_mpc8_demuxer = {
- .name = "mpc8",
- .long_name = NULL_IF_CONFIG_SMALL("Musepack SV8"),
+const FFInputFormat ff_mpc8_demuxer = {
+ .p.name = "mpc8",
+ .p.long_name = NULL_IF_CONFIG_SMALL("Musepack SV8"),
.priv_data_size = sizeof(MPCContext),
.read_probe = mpc8_probe,
.read_header = mpc8_read_header,
diff --git a/libavformat/mpeg.c b/libavformat/mpeg.c
index a0f2c6da05..8399ad7062 100644
--- a/libavformat/mpeg.c
+++ b/libavformat/mpeg.c
@@ -692,15 +692,15 @@ static int64_t mpegps_read_dts(AVFormatContext *s, int stream_index,
return dts;
}
-const AVInputFormat ff_mpegps_demuxer = {
- .name = "mpeg",
- .long_name = NULL_IF_CONFIG_SMALL("MPEG-PS (MPEG-2 Program Stream)"),
+const FFInputFormat ff_mpegps_demuxer = {
+ .p.name = "mpeg",
+ .p.long_name = NULL_IF_CONFIG_SMALL("MPEG-PS (MPEG-2 Program Stream)"),
+ .p.flags = AVFMT_SHOW_IDS | AVFMT_TS_DISCONT,
.priv_data_size = sizeof(MpegDemuxContext),
.read_probe = mpegps_probe,
.read_header = mpegps_read_header,
.read_packet = mpegps_read_packet,
.read_timestamp = mpegps_read_dts,
- .flags = AVFMT_SHOW_IDS | AVFMT_TS_DISCONT,
};
#if CONFIG_VOBSUB_DEMUXER
@@ -1048,9 +1048,12 @@ static const AVClass vobsub_demuxer_class = {
.version = LIBAVUTIL_VERSION_INT,
};
-const AVInputFormat ff_vobsub_demuxer = {
- .name = "vobsub",
- .long_name = NULL_IF_CONFIG_SMALL("VobSub subtitle format"),
+const FFInputFormat ff_vobsub_demuxer = {
+ .p.name = "vobsub",
+ .p.long_name = NULL_IF_CONFIG_SMALL("VobSub subtitle format"),
+ .p.flags = AVFMT_SHOW_IDS,
+ .p.extensions = "idx",
+ .p.priv_class = &vobsub_demuxer_class,
.priv_data_size = sizeof(VobSubDemuxContext),
.flags_internal = FF_FMT_INIT_CLEANUP,
.read_probe = vobsub_probe,
@@ -1058,8 +1061,5 @@ const AVInputFormat ff_vobsub_demuxer = {
.read_packet = vobsub_read_packet,
.read_seek2 = vobsub_read_seek,
.read_close = vobsub_read_close,
- .flags = AVFMT_SHOW_IDS,
- .extensions = "idx",
- .priv_class = &vobsub_demuxer_class,
};
#endif
diff --git a/libavformat/mpegts.c b/libavformat/mpegts.c
index 1cf390e98e..401e2cbb78 100644
--- a/libavformat/mpegts.c
+++ b/libavformat/mpegts.c
@@ -272,7 +272,7 @@ typedef struct PESContext {
int merged_st;
} PESContext;
-extern const AVInputFormat ff_mpegts_demuxer;
+extern const FFInputFormat ff_mpegts_demuxer;
static struct Program * get_program(MpegTSContext *ts, unsigned int programid)
{
@@ -3117,7 +3117,7 @@ static int mpegts_read_header(AVFormatContext *s)
ts->stream = s;
ts->auto_guess = 0;
- if (s->iformat == &ff_mpegts_demuxer) {
+ if (s->iformat == &ff_mpegts_demuxer.p) {
/* normal demux */
/* first do a scan to get all the services */
@@ -3425,27 +3425,27 @@ void avpriv_mpegts_parse_close(MpegTSContext *ts)
av_free(ts);
}
-const AVInputFormat ff_mpegts_demuxer = {
- .name = "mpegts",
- .long_name = NULL_IF_CONFIG_SMALL("MPEG-TS (MPEG-2 Transport Stream)"),
+const FFInputFormat ff_mpegts_demuxer = {
+ .p.name = "mpegts",
+ .p.long_name = NULL_IF_CONFIG_SMALL("MPEG-TS (MPEG-2 Transport Stream)"),
+ .p.flags = AVFMT_SHOW_IDS | AVFMT_TS_DISCONT,
+ .p.priv_class = &mpegts_class,
.priv_data_size = sizeof(MpegTSContext),
.read_probe = mpegts_probe,
.read_header = mpegts_read_header,
.read_packet = mpegts_read_packet,
.read_close = mpegts_read_close,
.read_timestamp = mpegts_get_dts,
- .flags = AVFMT_SHOW_IDS | AVFMT_TS_DISCONT,
- .priv_class = &mpegts_class,
};
-const AVInputFormat ff_mpegtsraw_demuxer = {
- .name = "mpegtsraw",
- .long_name = NULL_IF_CONFIG_SMALL("raw MPEG-TS (MPEG-2 Transport Stream)"),
+const FFInputFormat ff_mpegtsraw_demuxer = {
+ .p.name = "mpegtsraw",
+ .p.long_name = NULL_IF_CONFIG_SMALL("raw MPEG-TS (MPEG-2 Transport Stream)"),
+ .p.flags = AVFMT_SHOW_IDS | AVFMT_TS_DISCONT,
+ .p.priv_class = &mpegtsraw_class,
.priv_data_size = sizeof(MpegTSContext),
.read_header = mpegts_read_header,
.read_packet = mpegts_raw_read_packet,
.read_close = mpegts_read_close,
.read_timestamp = mpegts_get_dts,
- .flags = AVFMT_SHOW_IDS | AVFMT_TS_DISCONT,
- .priv_class = &mpegtsraw_class,
};
diff --git a/libavformat/mpjpegdec.c b/libavformat/mpjpegdec.c
index 236aed716a..e20c61be9b 100644
--- a/libavformat/mpjpegdec.c
+++ b/libavformat/mpjpegdec.c
@@ -23,6 +23,7 @@
#include "libavutil/opt.h"
#include "avformat.h"
+#include "demux.h"
#include "internal.h"
#include "avio_internal.h"
@@ -368,16 +369,16 @@ static const AVClass mpjpeg_demuxer_class = {
.version = LIBAVUTIL_VERSION_INT,
};
-const AVInputFormat ff_mpjpeg_demuxer = {
- .name = "mpjpeg",
- .long_name = NULL_IF_CONFIG_SMALL("MIME multipart JPEG"),
- .mime_type = "multipart/x-mixed-replace",
- .extensions = "mjpg",
+const FFInputFormat ff_mpjpeg_demuxer = {
+ .p.name = "mpjpeg",
+ .p.long_name = NULL_IF_CONFIG_SMALL("MIME multipart JPEG"),
+ .p.mime_type = "multipart/x-mixed-replace",
+ .p.extensions = "mjpg",
+ .p.priv_class = &mpjpeg_demuxer_class,
+ .p.flags = AVFMT_NOTIMESTAMPS,
.priv_data_size = sizeof(MPJPEGDemuxContext),
.read_probe = mpjpeg_read_probe,
.read_header = mpjpeg_read_header,
.read_packet = mpjpeg_read_packet,
.read_close = mpjpeg_read_close,
- .priv_class = &mpjpeg_demuxer_class,
- .flags = AVFMT_NOTIMESTAMPS,
};
diff --git a/libavformat/mpl2dec.c b/libavformat/mpl2dec.c
index 912a707d1a..6c3dba2d8f 100644
--- a/libavformat/mpl2dec.c
+++ b/libavformat/mpl2dec.c
@@ -26,6 +26,7 @@
#include "libavutil/intreadwrite.h"
#include "avformat.h"
+#include "demux.h"
#include "internal.h"
#include "subtitles.h"
@@ -122,14 +123,14 @@ static int mpl2_read_header(AVFormatContext *s)
return 0;
}
-const AVInputFormat ff_mpl2_demuxer = {
- .name = "mpl2",
- .long_name = NULL_IF_CONFIG_SMALL("MPL2 subtitles"),
+const FFInputFormat ff_mpl2_demuxer = {
+ .p.name = "mpl2",
+ .p.long_name = NULL_IF_CONFIG_SMALL("MPL2 subtitles"),
+ .p.extensions = "txt,mpl2",
.priv_data_size = sizeof(MPL2Context),
.flags_internal = FF_FMT_INIT_CLEANUP,
.read_probe = mpl2_probe,
.read_header = mpl2_read_header,
- .extensions = "txt,mpl2",
.read_packet = ff_subtitles_read_packet,
.read_seek2 = ff_subtitles_read_seek,
.read_close = ff_subtitles_read_close,
diff --git a/libavformat/mpsubdec.c b/libavformat/mpsubdec.c
index 0374563575..b5abe296f1 100644
--- a/libavformat/mpsubdec.c
+++ b/libavformat/mpsubdec.c
@@ -24,6 +24,7 @@
*/
#include "avformat.h"
+#include "demux.h"
#include "internal.h"
#include "subtitles.h"
@@ -170,14 +171,14 @@ end:
return res;
}
-const AVInputFormat ff_mpsub_demuxer = {
- .name = "mpsub",
- .long_name = NULL_IF_CONFIG_SMALL("MPlayer subtitles"),
+const FFInputFormat ff_mpsub_demuxer = {
+ .p.name = "mpsub",
+ .p.long_name = NULL_IF_CONFIG_SMALL("MPlayer subtitles"),
+ .p.extensions = "sub",
.priv_data_size = sizeof(MPSubContext),
.flags_internal = FF_FMT_INIT_CLEANUP,
.read_probe = mpsub_probe,
.read_header = mpsub_read_header,
- .extensions = "sub",
.read_packet = ff_subtitles_read_packet,
.read_seek2 = ff_subtitles_read_seek,
.read_close = ff_subtitles_read_close,
diff --git a/libavformat/msf.c b/libavformat/msf.c
index 354758971a..37e05b538b 100644
--- a/libavformat/msf.c
+++ b/libavformat/msf.c
@@ -21,6 +21,7 @@
#include "libavutil/intreadwrite.h"
#include "avformat.h"
+#include "demux.h"
#include "internal.h"
static int msf_probe(const AVProbeData *p)
@@ -103,11 +104,11 @@ static int msf_read_packet(AVFormatContext *s, AVPacket *pkt)
return av_get_packet(s->pb, pkt, par->block_align ? par->block_align : 1024 * par->ch_layout.nb_channels);
}
-const AVInputFormat ff_msf_demuxer = {
- .name = "msf",
- .long_name = NULL_IF_CONFIG_SMALL("Sony PS3 MSF"),
+const FFInputFormat ff_msf_demuxer = {
+ .p.name = "msf",
+ .p.long_name = NULL_IF_CONFIG_SMALL("Sony PS3 MSF"),
+ .p.extensions = "msf",
.read_probe = msf_probe,
.read_header = msf_read_header,
.read_packet = msf_read_packet,
- .extensions = "msf",
};
diff --git a/libavformat/msnwc_tcp.c b/libavformat/msnwc_tcp.c
index 95d4e2bd33..c0b775e0e5 100644
--- a/libavformat/msnwc_tcp.c
+++ b/libavformat/msnwc_tcp.c
@@ -20,6 +20,7 @@
#include "libavcodec/bytestream.h"
#include "avformat.h"
+#include "demux.h"
#include "internal.h"
#define HEADER_SIZE 24
@@ -136,9 +137,9 @@ static int msnwc_tcp_read_packet(AVFormatContext *ctx, AVPacket *pkt)
return HEADER_SIZE + size;
}
-const AVInputFormat ff_msnwc_tcp_demuxer = {
- .name = "msnwctcp",
- .long_name = NULL_IF_CONFIG_SMALL("MSN TCP Webcam stream"),
+const FFInputFormat ff_msnwc_tcp_demuxer = {
+ .p.name = "msnwctcp",
+ .p.long_name = NULL_IF_CONFIG_SMALL("MSN TCP Webcam stream"),
.read_probe = msnwc_tcp_probe,
.read_header = msnwc_tcp_read_header,
.read_packet = msnwc_tcp_read_packet,
diff --git a/libavformat/mspdec.c b/libavformat/mspdec.c
index 44854e99c2..6b3926f4cd 100644
--- a/libavformat/mspdec.c
+++ b/libavformat/mspdec.c
@@ -27,6 +27,7 @@
#include "libavutil/intreadwrite.h"
#include "libavutil/imgutils.h"
#include "avformat.h"
+#include "demux.h"
#include "internal.h"
typedef struct {
@@ -106,12 +107,12 @@ static int msp_read_packet(AVFormatContext *s, AVPacket *pkt)
return 0;
}
-const AVInputFormat ff_msp_demuxer = {
- .name = "msp",
- .long_name = NULL_IF_CONFIG_SMALL("Microsoft Paint (MSP))"),
+const FFInputFormat ff_msp_demuxer = {
+ .p.name = "msp",
+ .p.long_name = NULL_IF_CONFIG_SMALL("Microsoft Paint (MSP))"),
+ .p.flags = AVFMT_NOTIMESTAMPS,
.read_probe = msp_probe,
.read_header = msp_read_header,
.read_packet = msp_read_packet,
- .flags = AVFMT_NOTIMESTAMPS,
.priv_data_size = sizeof(MSPContext),
};
diff --git a/libavformat/mtaf.c b/libavformat/mtaf.c
index 954ffaa8ba..251da54963 100644
--- a/libavformat/mtaf.c
+++ b/libavformat/mtaf.c
@@ -22,6 +22,7 @@
#include "libavutil/channel_layout.h"
#include "libavutil/intreadwrite.h"
#include "avformat.h"
+#include "demux.h"
#include "internal.h"
static int mtaf_probe(const AVProbeData *p)
@@ -71,11 +72,11 @@ static int mtaf_read_packet(AVFormatContext *s, AVPacket *pkt)
return av_get_packet(s->pb, pkt, par->block_align);
}
-const AVInputFormat ff_mtaf_demuxer = {
- .name = "mtaf",
- .long_name = NULL_IF_CONFIG_SMALL("Konami PS2 MTAF"),
+const FFInputFormat ff_mtaf_demuxer = {
+ .p.name = "mtaf",
+ .p.long_name = NULL_IF_CONFIG_SMALL("Konami PS2 MTAF"),
+ .p.extensions = "mtaf",
.read_probe = mtaf_probe,
.read_header = mtaf_read_header,
.read_packet = mtaf_read_packet,
- .extensions = "mtaf",
};
diff --git a/libavformat/mtv.c b/libavformat/mtv.c
index b6ed43d444..9f52cb6c67 100644
--- a/libavformat/mtv.c
+++ b/libavformat/mtv.c
@@ -27,6 +27,7 @@
#include "libavutil/bswap.h"
#include "libavutil/intreadwrite.h"
#include "avformat.h"
+#include "demux.h"
#include "internal.h"
#define MTV_ASUBCHUNK_DATA_SIZE 500
@@ -225,9 +226,9 @@ static int mtv_read_packet(AVFormatContext *s, AVPacket *pkt)
return ret;
}
-const AVInputFormat ff_mtv_demuxer = {
- .name = "mtv",
- .long_name = NULL_IF_CONFIG_SMALL("MTV"),
+const FFInputFormat ff_mtv_demuxer = {
+ .p.name = "mtv",
+ .p.long_name = NULL_IF_CONFIG_SMALL("MTV"),
.priv_data_size = sizeof(MTVDemuxContext),
.read_probe = mtv_probe,
.read_header = mtv_read_header,
diff --git a/libavformat/musx.c b/libavformat/musx.c
index 5bf793f882..c87ee3c4ec 100644
--- a/libavformat/musx.c
+++ b/libavformat/musx.c
@@ -22,6 +22,7 @@
#include "libavutil/avassert.h"
#include "libavutil/intreadwrite.h"
#include "avformat.h"
+#include "demux.h"
#include "internal.h"
static int musx_probe(const AVProbeData *p)
@@ -178,11 +179,11 @@ static int musx_read_packet(AVFormatContext *s, AVPacket *pkt)
return av_get_packet(s->pb, pkt, par->block_align);
}
-const AVInputFormat ff_musx_demuxer = {
- .name = "musx",
- .long_name = NULL_IF_CONFIG_SMALL("Eurocom MUSX"),
+const FFInputFormat ff_musx_demuxer = {
+ .p.name = "musx",
+ .p.long_name = NULL_IF_CONFIG_SMALL("Eurocom MUSX"),
+ .p.extensions = "musx",
.read_probe = musx_probe,
.read_header = musx_read_header,
.read_packet = musx_read_packet,
- .extensions = "musx",
};
diff --git a/libavformat/mvdec.c b/libavformat/mvdec.c
index b37fe2ce69..31640f7590 100644
--- a/libavformat/mvdec.c
+++ b/libavformat/mvdec.c
@@ -31,6 +31,7 @@
#include "libavutil/rational.h"
#include "avformat.h"
+#include "demux.h"
#include "internal.h"
typedef struct MvContext {
@@ -539,9 +540,9 @@ static int mv_read_seek(AVFormatContext *avctx, int stream_index,
return 0;
}
-const AVInputFormat ff_mv_demuxer = {
- .name = "mv",
- .long_name = NULL_IF_CONFIG_SMALL("Silicon Graphics Movie"),
+const FFInputFormat ff_mv_demuxer = {
+ .p.name = "mv",
+ .p.long_name = NULL_IF_CONFIG_SMALL("Silicon Graphics Movie"),
.priv_data_size = sizeof(MvContext),
.read_probe = mv_probe,
.read_header = mv_read_header,
diff --git a/libavformat/mvi.c b/libavformat/mvi.c
index b2d6a92a4b..05aa25f348 100644
--- a/libavformat/mvi.c
+++ b/libavformat/mvi.c
@@ -23,6 +23,7 @@
#include "libavutil/channel_layout.h"
#include "avformat.h"
+#include "demux.h"
#include "internal.h"
#define MVI_FRAC_BITS 10
@@ -142,11 +143,11 @@ static int read_packet(AVFormatContext *s, AVPacket *pkt)
return 0;
}
-const AVInputFormat ff_mvi_demuxer = {
- .name = "mvi",
- .long_name = NULL_IF_CONFIG_SMALL("Motion Pixels MVI"),
+const FFInputFormat ff_mvi_demuxer = {
+ .p.name = "mvi",
+ .p.long_name = NULL_IF_CONFIG_SMALL("Motion Pixels MVI"),
+ .p.extensions = "mvi",
.priv_data_size = sizeof(MviDemuxContext),
.read_header = read_header,
.read_packet = read_packet,
- .extensions = "mvi",
};
diff --git a/libavformat/mxfdec.c b/libavformat/mxfdec.c
index e42975e7fd..a0e53b8ef5 100644
--- a/libavformat/mxfdec.c
+++ b/libavformat/mxfdec.c
@@ -4314,10 +4314,11 @@ static const AVClass demuxer_class = {
.category = AV_CLASS_CATEGORY_DEMUXER,
};
-const AVInputFormat ff_mxf_demuxer = {
- .name = "mxf",
- .long_name = NULL_IF_CONFIG_SMALL("MXF (Material eXchange Format)"),
- .flags = AVFMT_SEEK_TO_PTS,
+const FFInputFormat ff_mxf_demuxer = {
+ .p.name = "mxf",
+ .p.long_name = NULL_IF_CONFIG_SMALL("MXF (Material eXchange Format)"),
+ .p.flags = AVFMT_SEEK_TO_PTS,
+ .p.priv_class = &demuxer_class,
.priv_data_size = sizeof(MXFContext),
.flags_internal = FF_FMT_INIT_CLEANUP,
.read_probe = mxf_probe,
@@ -4325,5 +4326,4 @@ const AVInputFormat ff_mxf_demuxer = {
.read_packet = mxf_read_packet,
.read_close = mxf_read_close,
.read_seek = mxf_read_seek,
- .priv_class = &demuxer_class,
};
diff --git a/libavformat/mxg.c b/libavformat/mxg.c
index b160ccb9f9..23d72ad23b 100644
--- a/libavformat/mxg.c
+++ b/libavformat/mxg.c
@@ -24,6 +24,7 @@
#include "libavutil/intreadwrite.h"
#include "libavcodec/mjpeg.h"
#include "avformat.h"
+#include "demux.h"
#include "internal.h"
#include "avio.h"
@@ -248,12 +249,12 @@ static int mxg_close(struct AVFormatContext *s)
return 0;
}
-const AVInputFormat ff_mxg_demuxer = {
- .name = "mxg",
- .long_name = NULL_IF_CONFIG_SMALL("MxPEG clip"),
+const FFInputFormat ff_mxg_demuxer = {
+ .p.name = "mxg",
+ .p.long_name = NULL_IF_CONFIG_SMALL("MxPEG clip"),
+ .p.extensions = "mxg",
.priv_data_size = sizeof(MXGContext),
.read_header = mxg_read_header,
.read_packet = mxg_read_packet,
.read_close = mxg_close,
- .extensions = "mxg",
};
diff --git a/libavformat/ncdec.c b/libavformat/ncdec.c
index b2f4dfe282..050d98bf5d 100644
--- a/libavformat/ncdec.c
+++ b/libavformat/ncdec.c
@@ -22,6 +22,7 @@
#include "libavutil/intreadwrite.h"
#include "avformat.h"
+#include "demux.h"
#include "internal.h"
#define NC_VIDEO_FLAG 0x1A5
@@ -90,11 +91,11 @@ static int nc_read_packet(AVFormatContext *s, AVPacket *pkt)
return size;
}
-const AVInputFormat ff_nc_demuxer = {
- .name = "nc",
- .long_name = NULL_IF_CONFIG_SMALL("NC camera feed"),
+const FFInputFormat ff_nc_demuxer = {
+ .p.name = "nc",
+ .p.long_name = NULL_IF_CONFIG_SMALL("NC camera feed"),
+ .p.extensions = "v",
.read_probe = nc_probe,
.read_header = nc_read_header,
.read_packet = nc_read_packet,
- .extensions = "v",
};
diff --git a/libavformat/nistspheredec.c b/libavformat/nistspheredec.c
index 85aa5e2cbf..1e6c567e01 100644
--- a/libavformat/nistspheredec.c
+++ b/libavformat/nistspheredec.c
@@ -22,6 +22,7 @@
#include "libavutil/avstring.h"
#include "libavutil/intreadwrite.h"
#include "avformat.h"
+#include "demux.h"
#include "internal.h"
#include "pcm.h"
@@ -133,13 +134,13 @@ static int nist_read_header(AVFormatContext *s)
return AVERROR_EOF;
}
-const AVInputFormat ff_nistsphere_demuxer = {
- .name = "nistsphere",
- .long_name = NULL_IF_CONFIG_SMALL("NIST SPeech HEader REsources"),
+const FFInputFormat ff_nistsphere_demuxer = {
+ .p.name = "nistsphere",
+ .p.long_name = NULL_IF_CONFIG_SMALL("NIST SPeech HEader REsources"),
+ .p.extensions = "nist,sph",
+ .p.flags = AVFMT_GENERIC_INDEX,
.read_probe = nist_probe,
.read_header = nist_read_header,
.read_packet = ff_pcm_read_packet,
.read_seek = ff_pcm_read_seek,
- .extensions = "nist,sph",
- .flags = AVFMT_GENERIC_INDEX,
};
diff --git a/libavformat/nspdec.c b/libavformat/nspdec.c
index 923432ac92..bb605426f6 100644
--- a/libavformat/nspdec.c
+++ b/libavformat/nspdec.c
@@ -22,6 +22,7 @@
#include "libavutil/avstring.h"
#include "libavutil/intreadwrite.h"
#include "avformat.h"
+#include "demux.h"
#include "internal.h"
#include "pcm.h"
@@ -96,13 +97,13 @@ static int nsp_read_header(AVFormatContext *s)
return 0;
}
-const AVInputFormat ff_nsp_demuxer = {
- .name = "nsp",
- .long_name = NULL_IF_CONFIG_SMALL("Computerized Speech Lab NSP"),
+const FFInputFormat ff_nsp_demuxer = {
+ .p.name = "nsp",
+ .p.long_name = NULL_IF_CONFIG_SMALL("Computerized Speech Lab NSP"),
+ .p.extensions = "nsp",
+ .p.flags = AVFMT_GENERIC_INDEX,
.read_probe = nsp_probe,
.read_header = nsp_read_header,
.read_packet = ff_pcm_read_packet,
.read_seek = ff_pcm_read_seek,
- .extensions = "nsp",
- .flags = AVFMT_GENERIC_INDEX,
};
diff --git a/libavformat/nsvdec.c b/libavformat/nsvdec.c
index b28576ea11..d6a39730cc 100644
--- a/libavformat/nsvdec.c
+++ b/libavformat/nsvdec.c
@@ -24,6 +24,7 @@
#include "libavutil/attributes.h"
#include "libavutil/mathematics.h"
#include "avformat.h"
+#include "demux.h"
#include "internal.h"
#include "libavutil/dict.h"
#include "libavutil/intreadwrite.h"
@@ -747,9 +748,9 @@ static int nsv_probe(const AVProbeData *p)
return score;
}
-const AVInputFormat ff_nsv_demuxer = {
- .name = "nsv",
- .long_name = NULL_IF_CONFIG_SMALL("Nullsoft Streaming Video"),
+const FFInputFormat ff_nsv_demuxer = {
+ .p.name = "nsv",
+ .p.long_name = NULL_IF_CONFIG_SMALL("Nullsoft Streaming Video"),
.priv_data_size = sizeof(NSVContext),
.flags_internal = FF_FMT_INIT_CLEANUP,
.read_probe = nsv_probe,
diff --git a/libavformat/nutdec.c b/libavformat/nutdec.c
index e2b39ccffb..670964fab3 100644
--- a/libavformat/nutdec.c
+++ b/libavformat/nutdec.c
@@ -1306,10 +1306,12 @@ static int read_seek(AVFormatContext *s, int stream_index,
return 0;
}
-const AVInputFormat ff_nut_demuxer = {
- .name = "nut",
- .long_name = NULL_IF_CONFIG_SMALL("NUT"),
- .flags = AVFMT_SEEK_TO_PTS,
+const FFInputFormat ff_nut_demuxer = {
+ .p.name = "nut",
+ .p.long_name = NULL_IF_CONFIG_SMALL("NUT"),
+ .p.flags = AVFMT_SEEK_TO_PTS,
+ .p.extensions = "nut",
+ .p.codec_tag = ff_nut_codec_tags,
.priv_data_size = sizeof(NUTContext),
.flags_internal = FF_FMT_INIT_CLEANUP,
.read_probe = nut_probe,
@@ -1317,6 +1319,4 @@ const AVInputFormat ff_nut_demuxer = {
.read_packet = nut_read_packet,
.read_close = nut_read_close,
.read_seek = read_seek,
- .extensions = "nut",
- .codec_tag = ff_nut_codec_tags,
};
diff --git a/libavformat/nuv.c b/libavformat/nuv.c
index 12c6c691ee..507a73b0fe 100644
--- a/libavformat/nuv.c
+++ b/libavformat/nuv.c
@@ -396,13 +396,13 @@ static int64_t nuv_read_dts(AVFormatContext *s, int stream_index,
}
-const AVInputFormat ff_nuv_demuxer = {
- .name = "nuv",
- .long_name = NULL_IF_CONFIG_SMALL("NuppelVideo"),
+const FFInputFormat ff_nuv_demuxer = {
+ .p.name = "nuv",
+ .p.long_name = NULL_IF_CONFIG_SMALL("NuppelVideo"),
+ .p.flags = AVFMT_GENERIC_INDEX,
.priv_data_size = sizeof(NUVContext),
.read_probe = nuv_probe,
.read_header = nuv_header,
.read_packet = nuv_packet,
.read_timestamp = nuv_read_dts,
- .flags = AVFMT_GENERIC_INDEX,
};
diff --git a/libavformat/oggdec.c b/libavformat/oggdec.c
index 3b19e0bd89..e473683aeb 100644
--- a/libavformat/oggdec.c
+++ b/libavformat/oggdec.c
@@ -960,9 +960,11 @@ static int ogg_probe(const AVProbeData *p)
return 0;
}
-const AVInputFormat ff_ogg_demuxer = {
- .name = "ogg",
- .long_name = NULL_IF_CONFIG_SMALL("Ogg"),
+const FFInputFormat ff_ogg_demuxer = {
+ .p.name = "ogg",
+ .p.long_name = NULL_IF_CONFIG_SMALL("Ogg"),
+ .p.extensions = "ogg",
+ .p.flags = AVFMT_GENERIC_INDEX | AVFMT_TS_DISCONT | AVFMT_NOBINSEARCH,
.priv_data_size = sizeof(struct ogg),
.flags_internal = FF_FMT_INIT_CLEANUP,
.read_probe = ogg_probe,
@@ -971,6 +973,4 @@ const AVInputFormat ff_ogg_demuxer = {
.read_close = ogg_read_close,
.read_seek = ogg_read_seek,
.read_timestamp = ogg_read_timestamp,
- .extensions = "ogg",
- .flags = AVFMT_GENERIC_INDEX | AVFMT_TS_DISCONT | AVFMT_NOBINSEARCH,
};
diff --git a/libavformat/omadec.c b/libavformat/omadec.c
index 066b2d85bd..f4bd6fb964 100644
--- a/libavformat/omadec.c
+++ b/libavformat/omadec.c
@@ -44,6 +44,7 @@
#include "libavutil/channel_layout.h"
#include "avformat.h"
+#include "demux.h"
#include "internal.h"
#include "libavutil/intreadwrite.h"
#include "libavutil/des.h"
@@ -607,9 +608,12 @@ wipe:
return err;
}
-const AVInputFormat ff_oma_demuxer = {
- .name = "oma",
- .long_name = NULL_IF_CONFIG_SMALL("Sony OpenMG audio"),
+const FFInputFormat ff_oma_demuxer = {
+ .p.name = "oma",
+ .p.long_name = NULL_IF_CONFIG_SMALL("Sony OpenMG audio"),
+ .p.flags = AVFMT_GENERIC_INDEX,
+ .p.extensions = "oma,omg,aa3",
+ .p.codec_tag = ff_oma_codec_tags_list,
.priv_data_size = sizeof(OMAContext),
.flags_internal = FF_FMT_INIT_CLEANUP,
.read_probe = oma_read_probe,
@@ -617,7 +621,4 @@ const AVInputFormat ff_oma_demuxer = {
.read_packet = oma_read_packet,
.read_seek = oma_read_seek,
.read_close = oma_read_close,
- .flags = AVFMT_GENERIC_INDEX,
- .extensions = "oma,omg,aa3",
- .codec_tag = ff_oma_codec_tags_list,
};
diff --git a/libavformat/osq.c b/libavformat/osq.c
index c5a63d3398..9e9dbfdbe1 100644
--- a/libavformat/osq.c
+++ b/libavformat/osq.c
@@ -104,15 +104,15 @@ static int osq_read_header(AVFormatContext *s)
return 0;
}
-const AVInputFormat ff_osq_demuxer = {
- .name = "osq",
- .long_name = NULL_IF_CONFIG_SMALL("raw OSQ"),
+const FFInputFormat ff_osq_demuxer = {
+ .p.name = "osq",
+ .p.long_name = NULL_IF_CONFIG_SMALL("raw OSQ"),
+ .p.extensions = "osq",
+ .p.flags = AVFMT_NOBINSEARCH | AVFMT_NOGENSEARCH | AVFMT_NO_BYTE_SEEK | AVFMT_NOTIMESTAMPS,
+ .p.priv_class = &ff_raw_demuxer_class,
.read_probe = osq_probe,
.read_header = osq_read_header,
.read_packet = ff_raw_read_partial_packet,
- .extensions = "osq",
- .flags = AVFMT_NOBINSEARCH | AVFMT_NOGENSEARCH | AVFMT_NO_BYTE_SEEK | AVFMT_NOTIMESTAMPS,
.raw_codec_id = AV_CODEC_ID_OSQ,
.priv_data_size = sizeof(FFRawDemuxerContext),
- .priv_class = &ff_raw_demuxer_class,
};
diff --git a/libavformat/paf.c b/libavformat/paf.c
index d48cf57645..c99acbd3e7 100644
--- a/libavformat/paf.c
+++ b/libavformat/paf.c
@@ -22,6 +22,7 @@
#include "libavutil/channel_layout.h"
#include "libavcodec/paf.h"
#include "avformat.h"
+#include "demux.h"
#include "internal.h"
#define MAGIC "Packed Animation File V1.0\n(c) 1992-96 Amazing Studio\x0a\x1a"
@@ -265,9 +266,9 @@ static int read_packet(AVFormatContext *s, AVPacket *pkt)
return pkt->size;
}
-const AVInputFormat ff_paf_demuxer = {
- .name = "paf",
- .long_name = NULL_IF_CONFIG_SMALL("Amazing Studio Packed Animation File"),
+const FFInputFormat ff_paf_demuxer = {
+ .p.name = "paf",
+ .p.long_name = NULL_IF_CONFIG_SMALL("Amazing Studio Packed Animation File"),
.priv_data_size = sizeof(PAFDemuxContext),
.flags_internal = FF_FMT_INIT_CLEANUP,
.read_probe = read_probe,
diff --git a/libavformat/pcmdec.c b/libavformat/pcmdec.c
index 377e6d80a1..e9c97f7959 100644
--- a/libavformat/pcmdec.c
+++ b/libavformat/pcmdec.c
@@ -24,6 +24,7 @@
#include "libavutil/avstring.h"
#include "libavutil/channel_layout.h"
#include "avformat.h"
+#include "demux.h"
#include "internal.h"
#include "pcm.h"
#include "libavutil/log.h"
@@ -50,7 +51,7 @@ static int pcm_read_header(AVFormatContext *s)
par = st->codecpar;
par->codec_type = AVMEDIA_TYPE_AUDIO;
- par->codec_id = s->iformat->raw_codec_id;
+ par->codec_id = ffifmt(s->iformat)->raw_codec_id;
par->sample_rate = s1->sample_rate;
ret = av_channel_layout_copy(&par->ch_layout, &s1->ch_layout);
if (ret < 0)
@@ -116,17 +117,17 @@ static const AVClass pcm_demuxer_class = {
#define PCMDEF_0(name_, long_name_, ext, codec, ...)
#define PCMDEF_1(name_, long_name_, ext, codec, ...) \
-const AVInputFormat ff_pcm_ ## name_ ## _demuxer = { \
- .name = #name_, \
- .long_name = NULL_IF_CONFIG_SMALL(long_name_), \
+const FFInputFormat ff_pcm_ ## name_ ## _demuxer = { \
+ .p.name = #name_, \
+ .p.long_name = NULL_IF_CONFIG_SMALL(long_name_), \
+ .p.flags = AVFMT_GENERIC_INDEX, \
+ .p.extensions = ext, \
+ .p.priv_class = &pcm_demuxer_class, \
.priv_data_size = sizeof(PCMAudioDemuxerContext), \
.read_header = pcm_read_header, \
.read_packet = ff_pcm_read_packet, \
.read_seek = ff_pcm_read_seek, \
- .flags = AVFMT_GENERIC_INDEX, \
- .extensions = ext, \
.raw_codec_id = codec, \
- .priv_class = &pcm_demuxer_class, \
__VA_ARGS__ \
};
#define PCMDEF_2(name, long_name, ext, codec, enabled, ...) \
@@ -148,7 +149,7 @@ PCMDEF(s32le, "PCM signed 32-bit little-endian", NULL, S32LE)
PCMDEF(s24be, "PCM signed 24-bit big-endian", NULL, S24BE)
PCMDEF(s24le, "PCM signed 24-bit little-endian", NULL, S24LE)
PCMDEF_EXT(s16be, "PCM signed 16-bit big-endian",
- AV_NE("sw", NULL), S16BE, .mime_type = "audio/L16")
+ AV_NE("sw", NULL), S16BE, .p.mime_type = "audio/L16")
PCMDEF(s16le, "PCM signed 16-bit little-endian", AV_NE(NULL, "sw"), S16LE)
PCMDEF(s8, "PCM signed 8-bit", "sb", S8)
PCMDEF(u32be, "PCM unsigned 32-bit big-endian", NULL, U32BE)
@@ -176,16 +177,16 @@ static const AVClass sln_demuxer_class = {
.version = LIBAVUTIL_VERSION_INT,
};
-const AVInputFormat ff_sln_demuxer = {
- .name = "sln",
- .long_name = NULL_IF_CONFIG_SMALL("Asterisk raw pcm"),
+const FFInputFormat ff_sln_demuxer = {
+ .p.name = "sln",
+ .p.long_name = NULL_IF_CONFIG_SMALL("Asterisk raw pcm"),
+ .p.flags = AVFMT_GENERIC_INDEX,
+ .p.extensions = "sln",
+ .p.priv_class = &sln_demuxer_class,
.priv_data_size = sizeof(PCMAudioDemuxerContext),
.read_header = pcm_read_header,
.read_packet = ff_pcm_read_packet,
.read_seek = ff_pcm_read_seek,
- .flags = AVFMT_GENERIC_INDEX,
- .extensions = "sln",
.raw_codec_id = AV_CODEC_ID_PCM_S16LE,
- .priv_class = &sln_demuxer_class,
};
#endif
diff --git a/libavformat/pdvdec.c b/libavformat/pdvdec.c
index 9d3f386e40..79e09bd9d4 100644
--- a/libavformat/pdvdec.c
+++ b/libavformat/pdvdec.c
@@ -20,6 +20,7 @@
*/
#include "avformat.h"
+#include "demux.h"
#include "internal.h"
#define PDV_MAGIC "Playdate VID\x00\x00\x00\x00"
@@ -159,9 +160,10 @@ static int pdv_read_seek(AVFormatContext *s, int stream_index, int64_t timestamp
return 0;
}
-const AVInputFormat ff_pdv_demuxer = {
- .name = "pdv",
- .long_name = NULL_IF_CONFIG_SMALL("PlayDate Video"),
+const FFInputFormat ff_pdv_demuxer = {
+ .p.name = "pdv",
+ .p.long_name = NULL_IF_CONFIG_SMALL("PlayDate Video"),
+ .p.extensions = "pdv",
.priv_data_size = sizeof(PDVDemuxContext),
.flags_internal = FF_FMT_INIT_CLEANUP,
.read_probe = pdv_probe,
@@ -169,5 +171,4 @@ const AVInputFormat ff_pdv_demuxer = {
.read_packet = pdv_read_packet,
.read_close = pdv_read_close,
.read_seek = pdv_read_seek,
- .extensions = "pdv",
};
diff --git a/libavformat/pjsdec.c b/libavformat/pjsdec.c
index 5b2111f726..22ddea3596 100644
--- a/libavformat/pjsdec.c
+++ b/libavformat/pjsdec.c
@@ -26,6 +26,7 @@
*/
#include "avformat.h"
+#include "demux.h"
#include "internal.h"
#include "subtitles.h"
@@ -105,14 +106,14 @@ static int pjs_read_header(AVFormatContext *s)
return 0;
}
-const AVInputFormat ff_pjs_demuxer = {
- .name = "pjs",
- .long_name = NULL_IF_CONFIG_SMALL("PJS (Phoenix Japanimation Society) subtitles"),
+const FFInputFormat ff_pjs_demuxer = {
+ .p.name = "pjs",
+ .p.long_name = NULL_IF_CONFIG_SMALL("PJS (Phoenix Japanimation Society) subtitles"),
+ .p.extensions = "pjs",
.priv_data_size = sizeof(PJSContext),
.flags_internal = FF_FMT_INIT_CLEANUP,
.read_probe = pjs_probe,
.read_header = pjs_read_header,
- .extensions = "pjs",
.read_packet = ff_subtitles_read_packet,
.read_seek2 = ff_subtitles_read_seek,
.read_close = ff_subtitles_read_close,
diff --git a/libavformat/pmpdec.c b/libavformat/pmpdec.c
index 554f1a776d..06ef53d277 100644
--- a/libavformat/pmpdec.c
+++ b/libavformat/pmpdec.c
@@ -21,6 +21,7 @@
#include "libavutil/intreadwrite.h"
#include "avformat.h"
+#include "demux.h"
#include "internal.h"
typedef struct {
@@ -183,9 +184,9 @@ static int pmp_close(AVFormatContext *s)
return 0;
}
-const AVInputFormat ff_pmp_demuxer = {
- .name = "pmp",
- .long_name = NULL_IF_CONFIG_SMALL("Playstation Portable PMP"),
+const FFInputFormat ff_pmp_demuxer = {
+ .p.name = "pmp",
+ .p.long_name = NULL_IF_CONFIG_SMALL("Playstation Portable PMP"),
.priv_data_size = sizeof(PMPContext),
.read_probe = pmp_probe,
.read_header = pmp_header,
diff --git a/libavformat/pp_bnk.c b/libavformat/pp_bnk.c
index c4172e2260..d545694bef 100644
--- a/libavformat/pp_bnk.c
+++ b/libavformat/pp_bnk.c
@@ -20,6 +20,7 @@
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*/
#include "avformat.h"
+#include "demux.h"
#include "internal.h"
#include "libavutil/intreadwrite.h"
#include "libavutil/avassert.h"
@@ -315,9 +316,9 @@ static int pp_bnk_seek(AVFormatContext *s, int stream_index,
return 0;
}
-const AVInputFormat ff_pp_bnk_demuxer = {
- .name = "pp_bnk",
- .long_name = NULL_IF_CONFIG_SMALL("Pro Pinball Series Soundbank"),
+const FFInputFormat ff_pp_bnk_demuxer = {
+ .p.name = "pp_bnk",
+ .p.long_name = NULL_IF_CONFIG_SMALL("Pro Pinball Series Soundbank"),
.priv_data_size = sizeof(PPBnkCtx),
.flags_internal = FF_FMT_INIT_CLEANUP,
.read_probe = pp_bnk_probe,
diff --git a/libavformat/psxstr.c b/libavformat/psxstr.c
index 009699e288..0dd4e8d377 100644
--- a/libavformat/psxstr.c
+++ b/libavformat/psxstr.c
@@ -33,6 +33,7 @@
#include "libavutil/internal.h"
#include "libavutil/intreadwrite.h"
#include "avformat.h"
+#include "demux.h"
#include "internal.h"
#define RIFF_TAG MKTAG('R', 'I', 'F', 'F')
@@ -302,13 +303,13 @@ static int str_read_close(AVFormatContext *s)
return 0;
}
-const AVInputFormat ff_str_demuxer = {
- .name = "psxstr",
- .long_name = NULL_IF_CONFIG_SMALL("Sony Playstation STR"),
+const FFInputFormat ff_str_demuxer = {
+ .p.name = "psxstr",
+ .p.long_name = NULL_IF_CONFIG_SMALL("Sony Playstation STR"),
+ .p.flags = AVFMT_NO_BYTE_SEEK,
.priv_data_size = sizeof(StrDemuxContext),
.read_probe = str_probe,
.read_header = str_read_header,
.read_packet = str_read_packet,
.read_close = str_read_close,
- .flags = AVFMT_NO_BYTE_SEEK,
};
diff --git a/libavformat/pva.c b/libavformat/pva.c
index da54b30bfc..047c93c9c4 100644
--- a/libavformat/pva.c
+++ b/libavformat/pva.c
@@ -21,6 +21,7 @@
#include "avformat.h"
#include "avio_internal.h"
+#include "demux.h"
#include "internal.h"
#include "mpeg.h"
@@ -228,9 +229,9 @@ static int64_t pva_read_timestamp(struct AVFormatContext *s, int stream_index,
return res;
}
-const AVInputFormat ff_pva_demuxer = {
- .name = "pva",
- .long_name = NULL_IF_CONFIG_SMALL("TechnoTrend PVA"),
+const FFInputFormat ff_pva_demuxer = {
+ .p.name = "pva",
+ .p.long_name = NULL_IF_CONFIG_SMALL("TechnoTrend PVA"),
.priv_data_size = sizeof(PVAContext),
.read_probe = pva_probe,
.read_header = pva_read_header,
diff --git a/libavformat/pvfdec.c b/libavformat/pvfdec.c
index 62c169a314..aaf60a853e 100644
--- a/libavformat/pvfdec.c
+++ b/libavformat/pvfdec.c
@@ -21,6 +21,7 @@
#include "libavcodec/internal.h"
#include "avformat.h"
+#include "demux.h"
#include "internal.h"
#include "pcm.h"
@@ -65,13 +66,13 @@ static int pvf_read_header(AVFormatContext *s)
return 0;
}
-const AVInputFormat ff_pvf_demuxer = {
- .name = "pvf",
- .long_name = NULL_IF_CONFIG_SMALL("PVF (Portable Voice Format)"),
+const FFInputFormat ff_pvf_demuxer = {
+ .p.name = "pvf",
+ .p.long_name = NULL_IF_CONFIG_SMALL("PVF (Portable Voice Format)"),
+ .p.extensions = "pvf",
+ .p.flags = AVFMT_GENERIC_INDEX,
.read_probe = pvf_probe,
.read_header = pvf_read_header,
.read_packet = ff_pcm_read_packet,
.read_seek = ff_pcm_read_seek,
- .extensions = "pvf",
- .flags = AVFMT_GENERIC_INDEX,
};
diff --git a/libavformat/qcp.c b/libavformat/qcp.c
index 8d80b726a5..fdf18618d2 100644
--- a/libavformat/qcp.c
+++ b/libavformat/qcp.c
@@ -30,6 +30,7 @@
#include "libavutil/channel_layout.h"
#include "libavutil/intreadwrite.h"
#include "avformat.h"
+#include "demux.h"
#include "riff.h"
typedef struct QCPContext {
@@ -195,9 +196,9 @@ static int qcp_read_packet(AVFormatContext *s, AVPacket *pkt)
return AVERROR_EOF;
}
-const AVInputFormat ff_qcp_demuxer = {
- .name = "qcp",
- .long_name = NULL_IF_CONFIG_SMALL("QCP"),
+const FFInputFormat ff_qcp_demuxer = {
+ .p.name = "qcp",
+ .p.long_name = NULL_IF_CONFIG_SMALL("QCP"),
.priv_data_size = sizeof(QCPContext),
.read_probe = qcp_probe,
.read_header = qcp_read_header,
diff --git a/libavformat/qoadec.c b/libavformat/qoadec.c
index acf7c02741..9cce5157fc 100644
--- a/libavformat/qoadec.c
+++ b/libavformat/qoadec.c
@@ -20,6 +20,7 @@
#include "avformat.h"
#include "avio_internal.h"
+#include "demux.h"
#include "internal.h"
#include "libavutil/intreadwrite.h"
@@ -99,12 +100,12 @@ static int qoa_read_packet(AVFormatContext *s, AVPacket *pkt)
return 0;
}
-const AVInputFormat ff_qoa_demuxer = {
- .name = "qoa",
- .long_name = NULL_IF_CONFIG_SMALL("QOA"),
+const FFInputFormat ff_qoa_demuxer = {
+ .p.name = "qoa",
+ .p.long_name = NULL_IF_CONFIG_SMALL("QOA"),
+ .p.flags = AVFMT_GENERIC_INDEX,
+ .p.extensions = "qoa",
.read_probe = qoa_probe,
.read_header = qoa_read_header,
.read_packet = qoa_read_packet,
- .flags = AVFMT_GENERIC_INDEX,
- .extensions = "qoa",
};
diff --git a/libavformat/r3d.c b/libavformat/r3d.c
index be119b6b74..c83399b8fc 100644
--- a/libavformat/r3d.c
+++ b/libavformat/r3d.c
@@ -23,6 +23,7 @@
#include "libavutil/dict.h"
#include "libavutil/mathematics.h"
#include "avformat.h"
+#include "demux.h"
#include "internal.h"
typedef struct R3DContext {
@@ -401,9 +402,9 @@ static int r3d_seek(AVFormatContext *s, int stream_index, int64_t sample_time, i
return 0;
}
-const AVInputFormat ff_r3d_demuxer = {
- .name = "r3d",
- .long_name = NULL_IF_CONFIG_SMALL("REDCODE R3D"),
+const FFInputFormat ff_r3d_demuxer = {
+ .p.name = "r3d",
+ .p.long_name = NULL_IF_CONFIG_SMALL("REDCODE R3D"),
.priv_data_size = sizeof(R3DContext),
.read_probe = r3d_probe,
.read_header = r3d_read_header,
diff --git a/libavformat/rawdec.c b/libavformat/rawdec.c
index 1dd7fafcf0..d0c829dc42 100644
--- a/libavformat/rawdec.c
+++ b/libavformat/rawdec.c
@@ -23,6 +23,7 @@
#include "config_components.h"
#include "avformat.h"
+#include "demux.h"
#include "internal.h"
#include "rawdec.h"
#include "libavutil/opt.h"
@@ -56,7 +57,7 @@ int ff_raw_audio_read_header(AVFormatContext *s)
if (!st)
return AVERROR(ENOMEM);
st->codecpar->codec_type = AVMEDIA_TYPE_AUDIO;
- st->codecpar->codec_id = s->iformat->raw_codec_id;
+ st->codecpar->codec_id = ffifmt(s->iformat)->raw_codec_id;
ffstream(st)->need_parsing = AVSTREAM_PARSE_FULL_RAW;
st->start_time = 0;
/* the parameters will be extracted from the compressed bitstream */
@@ -81,7 +82,7 @@ int ff_raw_video_read_header(AVFormatContext *s)
sti = ffstream(st);
st->codecpar->codec_type = AVMEDIA_TYPE_VIDEO;
- st->codecpar->codec_id = s->iformat->raw_codec_id;
+ st->codecpar->codec_id = ffifmt(s->iformat)->raw_codec_id;
sti->need_parsing = AVSTREAM_PARSE_FULL_RAW;
st->avg_frame_rate = s1->framerate;
@@ -97,7 +98,7 @@ int ff_raw_subtitle_read_header(AVFormatContext *s)
if (!st)
return AVERROR(ENOMEM);
st->codecpar->codec_type = AVMEDIA_TYPE_SUBTITLE;
- st->codecpar->codec_id = s->iformat->raw_codec_id;
+ st->codecpar->codec_id = ffifmt(s->iformat)->raw_codec_id;
st->start_time = 0;
return 0;
}
@@ -108,7 +109,7 @@ static int raw_data_read_header(AVFormatContext *s)
if (!st)
return AVERROR(ENOMEM);
st->codecpar->codec_type = AVMEDIA_TYPE_DATA;
- st->codecpar->codec_id = s->iformat->raw_codec_id;
+ st->codecpar->codec_id = ffifmt(s->iformat)->raw_codec_id;
st->start_time = 0;
return 0;
}
@@ -145,15 +146,15 @@ const AVClass ff_raw_demuxer_class = {
};
#if CONFIG_DATA_DEMUXER
-const AVInputFormat ff_data_demuxer = {
- .name = "data",
- .long_name = NULL_IF_CONFIG_SMALL("raw data"),
+const FFInputFormat ff_data_demuxer = {
+ .p.name = "data",
+ .p.long_name = NULL_IF_CONFIG_SMALL("raw data"),
+ .p.flags = AVFMT_NOTIMESTAMPS,
+ .p.priv_class = &ff_raw_demuxer_class,
.read_header = raw_data_read_header,
.read_packet = ff_raw_read_partial_packet,
.raw_codec_id = AV_CODEC_ID_NONE,
- .flags = AVFMT_NOTIMESTAMPS,
.priv_data_size = sizeof(FFRawDemuxerContext),\
- .priv_class = &ff_raw_demuxer_class,
};
#endif
diff --git a/libavformat/rawdec.h b/libavformat/rawdec.h
index 91d0b659af..2773b1a72b 100644
--- a/libavformat/rawdec.h
+++ b/libavformat/rawdec.h
@@ -23,6 +23,7 @@
#define AVFORMAT_RAWDEC_H
#include "avformat.h"
+#include "demux.h"
#include "libavutil/log.h"
typedef struct FFRawVideoDemuxerContext {
@@ -50,34 +51,34 @@ int ff_raw_video_read_header(AVFormatContext *s);
int ff_raw_subtitle_read_header(AVFormatContext *s);
#define FF_DEF_RAWVIDEO_DEMUXER2(shortname, longname, probe, ext, id, flag)\
-const AVInputFormat ff_ ## shortname ## _demuxer = {\
- .name = #shortname,\
- .long_name = NULL_IF_CONFIG_SMALL(longname),\
+const FFInputFormat ff_ ## shortname ## _demuxer = {\
+ .p.name = #shortname,\
+ .p.long_name = NULL_IF_CONFIG_SMALL(longname),\
+ .p.extensions = ext,\
+ .p.flags = flag | AVFMT_NOTIMESTAMPS,\
+ .p.priv_class = &ff_rawvideo_demuxer_class,\
.read_probe = probe,\
.read_header = ff_raw_video_read_header,\
.read_packet = ff_raw_read_partial_packet,\
- .extensions = ext,\
- .flags = flag | AVFMT_NOTIMESTAMPS,\
.raw_codec_id = id,\
.priv_data_size = sizeof(FFRawVideoDemuxerContext),\
- .priv_class = &ff_rawvideo_demuxer_class,\
};
#define FF_DEF_RAWVIDEO_DEMUXER(shortname, longname, probe, ext, id)\
FF_DEF_RAWVIDEO_DEMUXER2(shortname, longname, probe, ext, id, AVFMT_GENERIC_INDEX)
#define FF_DEF_RAWSUB_DEMUXER(shortname, longname, probe, ext, id, flag)\
-const AVInputFormat ff_ ## shortname ## _demuxer = {\
- .name = #shortname,\
- .long_name = NULL_IF_CONFIG_SMALL(longname),\
+const FFInputFormat ff_ ## shortname ## _demuxer = {\
+ .p.name = #shortname,\
+ .p.long_name = NULL_IF_CONFIG_SMALL(longname),\
+ .p.extensions = ext,\
+ .p.flags = flag,\
+ .p.priv_class = &ff_raw_demuxer_class,\
.read_probe = probe,\
.read_header = ff_raw_subtitle_read_header,\
.read_packet = ff_raw_read_partial_packet,\
- .extensions = ext,\
- .flags = flag,\
.raw_codec_id = id,\
.priv_data_size = sizeof(FFRawDemuxerContext),\
- .priv_class = &ff_raw_demuxer_class,\
};
#endif /* AVFORMAT_RAWDEC_H */
diff --git a/libavformat/rawvideodec.c b/libavformat/rawvideodec.c
index 514e4e044f..0d0b8876e6 100644
--- a/libavformat/rawvideodec.c
+++ b/libavformat/rawvideodec.c
@@ -25,6 +25,7 @@
#include "libavutil/parseutils.h"
#include "libavutil/pixdesc.h"
#include "libavutil/opt.h"
+#include "demux.h"
#include "internal.h"
#include "avformat.h"
@@ -52,10 +53,10 @@ static int rawvideo_read_header(AVFormatContext *ctx)
st->codecpar->codec_type = AVMEDIA_TYPE_VIDEO;
- st->codecpar->codec_id = ctx->iformat->raw_codec_id;
+ st->codecpar->codec_id = ffifmt(ctx->iformat)->raw_codec_id;
- if ((ctx->iformat->raw_codec_id != AV_CODEC_ID_V210) &&
- (ctx->iformat->raw_codec_id != AV_CODEC_ID_V210X)) {
+ if ((ffifmt(ctx->iformat)->raw_codec_id != AV_CODEC_ID_V210) &&
+ (ffifmt(ctx->iformat)->raw_codec_id != AV_CODEC_ID_V210X)) {
if ((pix_fmt = av_get_pix_fmt(s->pixel_format)) == AV_PIX_FMT_NONE) {
av_log(ctx, AV_LOG_ERROR, "No such pixel format: %s.\n",
s->pixel_format);
@@ -72,7 +73,7 @@ static int rawvideo_read_header(AVFormatContext *ctx)
st->codecpar->width = s->width;
st->codecpar->height = s->height;
- if (ctx->iformat->raw_codec_id == AV_CODEC_ID_BITPACKED) {
+ if (ffifmt(ctx->iformat)->raw_codec_id == AV_CODEC_ID_BITPACKED) {
unsigned int pgroup; /* size of the pixel group in bytes */
unsigned int xinc;
const AVPixFmtDescriptor *desc;
@@ -96,9 +97,9 @@ static int rawvideo_read_header(AVFormatContext *ctx)
}
st->codecpar->codec_tag = tag;
packet_size = s->width * s->height * pgroup / xinc;
- } else if ((ctx->iformat->raw_codec_id == AV_CODEC_ID_V210) ||
- (ctx->iformat->raw_codec_id == AV_CODEC_ID_V210X)) {
- pix_fmt = ctx->iformat->raw_codec_id == AV_CODEC_ID_V210 ?
+ } else if ((ffifmt(ctx->iformat)->raw_codec_id == AV_CODEC_ID_V210) ||
+ (ffifmt(ctx->iformat)->raw_codec_id == AV_CODEC_ID_V210X)) {
+ pix_fmt = ffifmt(ctx->iformat)->raw_codec_id == AV_CODEC_ID_V210 ?
AV_PIX_FMT_YUV422P10 : AV_PIX_FMT_YUV422P16;
packet_size = GET_PACKET_SIZE(s->width, s->height);
@@ -149,16 +150,16 @@ static const AVClass rawvideo_demuxer_class = {
.version = LIBAVUTIL_VERSION_INT,
};
-const AVInputFormat ff_rawvideo_demuxer = {
- .name = "rawvideo",
- .long_name = NULL_IF_CONFIG_SMALL("raw video"),
+const FFInputFormat ff_rawvideo_demuxer = {
+ .p.name = "rawvideo",
+ .p.long_name = NULL_IF_CONFIG_SMALL("raw video"),
+ .p.flags = AVFMT_GENERIC_INDEX,
+ .p.extensions = "yuv,cif,qcif,rgb",
+ .p.priv_class = &rawvideo_demuxer_class,
.priv_data_size = sizeof(RawVideoDemuxerContext),
.read_header = rawvideo_read_header,
.read_packet = rawvideo_read_packet,
- .flags = AVFMT_GENERIC_INDEX,
- .extensions = "yuv,cif,qcif,rgb",
.raw_codec_id = AV_CODEC_ID_RAWVIDEO,
- .priv_class = &rawvideo_demuxer_class,
};
static const AVClass bitpacked_demuxer_class = {
@@ -169,16 +170,16 @@ static const AVClass bitpacked_demuxer_class = {
};
#if CONFIG_BITPACKED_DEMUXER
-const AVInputFormat ff_bitpacked_demuxer = {
- .name = "bitpacked",
- .long_name = NULL_IF_CONFIG_SMALL("Bitpacked"),
+const FFInputFormat ff_bitpacked_demuxer = {
+ .p.name = "bitpacked",
+ .p.long_name = NULL_IF_CONFIG_SMALL("Bitpacked"),
+ .p.flags = AVFMT_GENERIC_INDEX,
+ .p.extensions = "bitpacked",
+ .p.priv_class = &bitpacked_demuxer_class,
.priv_data_size = sizeof(RawVideoDemuxerContext),
.read_header = rawvideo_read_header,
.read_packet = rawvideo_read_packet,
- .flags = AVFMT_GENERIC_INDEX,
- .extensions = "bitpacked",
.raw_codec_id = AV_CODEC_ID_BITPACKED,
- .priv_class = &bitpacked_demuxer_class,
};
#endif // CONFIG_BITPACKED_DEMUXER
@@ -190,29 +191,29 @@ static const AVClass v210_demuxer_class = {
};
#if CONFIG_V210_DEMUXER
-const AVInputFormat ff_v210_demuxer = {
- .name = "v210",
- .long_name = NULL_IF_CONFIG_SMALL("Uncompressed 4:2:2 10-bit"),
+const FFInputFormat ff_v210_demuxer = {
+ .p.name = "v210",
+ .p.long_name = NULL_IF_CONFIG_SMALL("Uncompressed 4:2:2 10-bit"),
+ .p.flags = AVFMT_GENERIC_INDEX,
+ .p.extensions = "v210",
+ .p.priv_class = &v210_demuxer_class,
.priv_data_size = sizeof(RawVideoDemuxerContext),
.read_header = rawvideo_read_header,
.read_packet = rawvideo_read_packet,
- .flags = AVFMT_GENERIC_INDEX,
- .extensions = "v210",
.raw_codec_id = AV_CODEC_ID_V210,
- .priv_class = &v210_demuxer_class,
};
#endif // CONFIG_V210_DEMUXER
#if CONFIG_V210X_DEMUXER
-const AVInputFormat ff_v210x_demuxer = {
- .name = "v210x",
- .long_name = NULL_IF_CONFIG_SMALL("Uncompressed 4:2:2 10-bit"),
+const FFInputFormat ff_v210x_demuxer = {
+ .p.name = "v210x",
+ .p.long_name = NULL_IF_CONFIG_SMALL("Uncompressed 4:2:2 10-bit"),
+ .p.flags = AVFMT_GENERIC_INDEX,
+ .p.extensions = "yuv10",
+ .p.priv_class = &v210_demuxer_class,
.priv_data_size = sizeof(RawVideoDemuxerContext),
.read_header = rawvideo_read_header,
.read_packet = rawvideo_read_packet,
- .flags = AVFMT_GENERIC_INDEX,
- .extensions = "yuv10",
.raw_codec_id = AV_CODEC_ID_V210X,
- .priv_class = &v210_demuxer_class,
};
#endif // CONFIG_V210X_DEMUXER
diff --git a/libavformat/rdt.c b/libavformat/rdt.c
index b9b02a371f..4721f01ace 100644
--- a/libavformat/rdt.c
+++ b/libavformat/rdt.c
@@ -27,6 +27,7 @@
#include "avformat.h"
#include "libavutil/avstring.h"
+#include "demux.h"
#include "rtpdec.h"
#include "rdt.h"
#include "libavutil/base64.h"
@@ -534,7 +535,7 @@ static av_cold int rdt_init(AVFormatContext *s, int st_index, PayloadContext *rd
if ((ret = ff_copy_whiteblacklists(rdt->rmctx, s)) < 0)
return ret;
- return avformat_open_input(&rdt->rmctx, "", &ff_rdt_demuxer, NULL);
+ return avformat_open_input(&rdt->rmctx, "", &ff_rdt_demuxer.p, NULL);
}
static void
diff --git a/libavformat/realtextdec.c b/libavformat/realtextdec.c
index 7992a5b7fc..713e174b92 100644
--- a/libavformat/realtextdec.c
+++ b/libavformat/realtextdec.c
@@ -25,6 +25,7 @@
*/
#include "avformat.h"
+#include "demux.h"
#include "internal.h"
#include "subtitles.h"
#include "libavutil/avstring.h"
@@ -131,14 +132,14 @@ end:
return res;
}
-const AVInputFormat ff_realtext_demuxer = {
- .name = "realtext",
- .long_name = NULL_IF_CONFIG_SMALL("RealText subtitle format"),
+const FFInputFormat ff_realtext_demuxer = {
+ .p.name = "realtext",
+ .p.long_name = NULL_IF_CONFIG_SMALL("RealText subtitle format"),
+ .p.extensions = "rt",
.priv_data_size = sizeof(RealTextContext),
.flags_internal = FF_FMT_INIT_CLEANUP,
.read_probe = realtext_probe,
.read_header = realtext_read_header,
- .extensions = "rt",
.read_packet = ff_subtitles_read_packet,
.read_seek2 = ff_subtitles_read_seek,
.read_close = ff_subtitles_read_close,
diff --git a/libavformat/redspark.c b/libavformat/redspark.c
index c6ee22678d..2642d7af67 100644
--- a/libavformat/redspark.c
+++ b/libavformat/redspark.c
@@ -23,6 +23,7 @@
#include "libavutil/intreadwrite.h"
#include "avformat.h"
#include "avio.h"
+#include "demux.h"
#include "internal.h"
#define HEADER_SIZE 4096
@@ -150,12 +151,12 @@ static int redspark_read_packet(AVFormatContext *s, AVPacket *pkt)
return ret;
}
-const AVInputFormat ff_redspark_demuxer = {
- .name = "redspark",
- .long_name = NULL_IF_CONFIG_SMALL("RedSpark"),
+const FFInputFormat ff_redspark_demuxer = {
+ .p.name = "redspark",
+ .p.long_name = NULL_IF_CONFIG_SMALL("RedSpark"),
+ .p.extensions = "rsd",
.priv_data_size = sizeof(RedSparkContext),
.read_probe = redspark_probe,
.read_header = redspark_read_header,
.read_packet = redspark_read_packet,
- .extensions = "rsd",
};
diff --git a/libavformat/rka.c b/libavformat/rka.c
index 36e25ade01..954ec96509 100644
--- a/libavformat/rka.c
+++ b/libavformat/rka.c
@@ -161,13 +161,13 @@ static int rka_read_seek(AVFormatContext *s, int stream_index, int64_t timestamp
return 0;
}
-const AVInputFormat ff_rka_demuxer = {
- .name = "rka",
- .long_name = NULL_IF_CONFIG_SMALL("RKA (RK Audio)"),
+const FFInputFormat ff_rka_demuxer = {
+ .p.name = "rka",
+ .p.long_name = NULL_IF_CONFIG_SMALL("RKA (RK Audio)"),
+ .p.extensions = "rka",
.priv_data_size = sizeof(RKAContext),
.read_probe = rka_probe,
.read_header = rka_read_header,
.read_packet = rka_read_packet,
.read_seek = rka_read_seek,
- .extensions = "rka",
};
diff --git a/libavformat/rl2.c b/libavformat/rl2.c
index 669cb0400b..d64c4b81d4 100644
--- a/libavformat/rl2.c
+++ b/libavformat/rl2.c
@@ -302,9 +302,9 @@ static int rl2_read_seek(AVFormatContext *s, int stream_index, int64_t timestamp
return 0;
}
-const AVInputFormat ff_rl2_demuxer = {
- .name = "rl2",
- .long_name = NULL_IF_CONFIG_SMALL("RL2"),
+const FFInputFormat ff_rl2_demuxer = {
+ .p.name = "rl2",
+ .p.long_name = NULL_IF_CONFIG_SMALL("RL2"),
.priv_data_size = sizeof(Rl2DemuxContext),
.read_probe = rl2_probe,
.read_header = rl2_read_header,
diff --git a/libavformat/rm.h b/libavformat/rm.h
index 8f47559a36..91007f5ca2 100644
--- a/libavformat/rm.h
+++ b/libavformat/rm.h
@@ -34,7 +34,7 @@ RMStream *ff_rm_alloc_rmstream (void);
void ff_rm_free_rmstream (RMStream *rms);
/*< input format for Realmedia-style RTSP streams */
-extern const AVInputFormat ff_rdt_demuxer;
+extern const struct FFInputFormat ff_rdt_demuxer;
/**
* Read the MDPR chunk, which contains stream-specific codec initialization
diff --git a/libavformat/rmdec.c b/libavformat/rmdec.c
index 0f1534b582..4219cc5636 100644
--- a/libavformat/rmdec.c
+++ b/libavformat/rmdec.c
@@ -1145,9 +1145,9 @@ static int rm_read_seek(AVFormatContext *s, int stream_index,
}
-const AVInputFormat ff_rm_demuxer = {
- .name = "rm",
- .long_name = NULL_IF_CONFIG_SMALL("RealMedia"),
+const FFInputFormat ff_rm_demuxer = {
+ .p.name = "rm",
+ .p.long_name = NULL_IF_CONFIG_SMALL("RealMedia"),
.priv_data_size = sizeof(RMDemuxContext),
.flags_internal = FF_FMT_INIT_CLEANUP,
.read_probe = rm_probe,
@@ -1158,12 +1158,12 @@ const AVInputFormat ff_rm_demuxer = {
.read_seek = rm_read_seek,
};
-const AVInputFormat ff_rdt_demuxer = {
- .name = "rdt",
- .long_name = NULL_IF_CONFIG_SMALL("RDT demuxer"),
+const FFInputFormat ff_rdt_demuxer = {
+ .p.name = "rdt",
+ .p.long_name = NULL_IF_CONFIG_SMALL("RDT demuxer"),
+ .p.flags = AVFMT_NOFILE,
.priv_data_size = sizeof(RMDemuxContext),
.read_close = rm_read_close,
- .flags = AVFMT_NOFILE,
};
static int ivr_probe(const AVProbeData *p)
@@ -1398,14 +1398,14 @@ static int ivr_read_packet(AVFormatContext *s, AVPacket *pkt)
return ret;
}
-const AVInputFormat ff_ivr_demuxer = {
- .name = "ivr",
- .long_name = NULL_IF_CONFIG_SMALL("IVR (Internet Video Recording)"),
+const FFInputFormat ff_ivr_demuxer = {
+ .p.name = "ivr",
+ .p.long_name = NULL_IF_CONFIG_SMALL("IVR (Internet Video Recording)"),
+ .p.extensions = "ivr",
.priv_data_size = sizeof(RMDemuxContext),
.flags_internal = FF_FMT_INIT_CLEANUP,
.read_probe = ivr_probe,
.read_header = ivr_read_header,
.read_packet = ivr_read_packet,
.read_close = rm_read_close,
- .extensions = "ivr",
};
diff --git a/libavformat/rpl.c b/libavformat/rpl.c
index eae0da891b..3f10e51d48 100644
--- a/libavformat/rpl.c
+++ b/libavformat/rpl.c
@@ -25,6 +25,7 @@
#include "libavutil/avstring.h"
#include "libavutil/dict.h"
#include "avformat.h"
+#include "demux.h"
#include "internal.h"
#define RPL_SIGNATURE "ARMovie\x0A"
@@ -393,9 +394,9 @@ static int rpl_read_packet(AVFormatContext *s, AVPacket *pkt)
return ret;
}
-const AVInputFormat ff_rpl_demuxer = {
- .name = "rpl",
- .long_name = NULL_IF_CONFIG_SMALL("RPL / ARMovie"),
+const FFInputFormat ff_rpl_demuxer = {
+ .p.name = "rpl",
+ .p.long_name = NULL_IF_CONFIG_SMALL("RPL / ARMovie"),
.priv_data_size = sizeof(RPLContext),
.read_probe = rpl_probe,
.read_header = rpl_read_header,
diff --git a/libavformat/rsd.c b/libavformat/rsd.c
index 33aa0e2c0d..b9098646f6 100644
--- a/libavformat/rsd.c
+++ b/libavformat/rsd.c
@@ -220,13 +220,13 @@ static int rsd_read_packet(AVFormatContext *s, AVPacket *pkt)
return ret;
}
-const AVInputFormat ff_rsd_demuxer = {
- .name = "rsd",
- .long_name = NULL_IF_CONFIG_SMALL("GameCube RSD"),
+const FFInputFormat ff_rsd_demuxer = {
+ .p.name = "rsd",
+ .p.long_name = NULL_IF_CONFIG_SMALL("GameCube RSD"),
+ .p.extensions = "rsd",
+ .p.codec_tag = (const AVCodecTag* const []){rsd_tags, 0},
+ .p.flags = AVFMT_GENERIC_INDEX,
.read_probe = rsd_probe,
.read_header = rsd_read_header,
.read_packet = rsd_read_packet,
- .extensions = "rsd",
- .codec_tag = (const AVCodecTag* const []){rsd_tags, 0},
- .flags = AVFMT_GENERIC_INDEX,
};
diff --git a/libavformat/rsodec.c b/libavformat/rsodec.c
index 569368b422..62a2964414 100644
--- a/libavformat/rsodec.c
+++ b/libavformat/rsodec.c
@@ -23,6 +23,7 @@
#include "libavutil/channel_layout.h"
#include "libavutil/intreadwrite.h"
#include "avformat.h"
+#include "demux.h"
#include "internal.h"
#include "pcm.h"
#include "rso.h"
@@ -71,12 +72,12 @@ static int rso_read_header(AVFormatContext *s)
return 0;
}
-const AVInputFormat ff_rso_demuxer = {
- .name = "rso",
- .long_name = NULL_IF_CONFIG_SMALL("Lego Mindstorms RSO"),
- .extensions = "rso",
+const FFInputFormat ff_rso_demuxer = {
+ .p.name = "rso",
+ .p.long_name = NULL_IF_CONFIG_SMALL("Lego Mindstorms RSO"),
+ .p.extensions = "rso",
+ .p.codec_tag = ff_rso_codec_tags_list,
.read_header = rso_read_header,
.read_packet = ff_pcm_read_packet,
.read_seek = ff_pcm_read_seek,
- .codec_tag = ff_rso_codec_tags_list,
};
diff --git a/libavformat/rtsp.c b/libavformat/rtsp.c
index c7d9b48684..7d4a64f245 100644
--- a/libavformat/rtsp.c
+++ b/libavformat/rtsp.c
@@ -35,6 +35,7 @@
#include "libavcodec/codec_desc.h"
#include "avformat.h"
#include "avio_internal.h"
+#include "demux.h"
#if HAVE_POLL_H
#include <poll.h>
@@ -2484,15 +2485,15 @@ static const AVClass sdp_demuxer_class = {
.version = LIBAVUTIL_VERSION_INT,
};
-const AVInputFormat ff_sdp_demuxer = {
- .name = "sdp",
- .long_name = NULL_IF_CONFIG_SMALL("SDP"),
+const FFInputFormat ff_sdp_demuxer = {
+ .p.name = "sdp",
+ .p.long_name = NULL_IF_CONFIG_SMALL("SDP"),
+ .p.priv_class = &sdp_demuxer_class,
.priv_data_size = sizeof(RTSPState),
.read_probe = sdp_probe,
.read_header = sdp_read_header,
.read_packet = ff_rtsp_fetch_packet,
.read_close = sdp_read_close,
- .priv_class = &sdp_demuxer_class,
};
#endif /* CONFIG_SDP_DEMUXER */
@@ -2643,15 +2644,15 @@ static const AVClass rtp_demuxer_class = {
.version = LIBAVUTIL_VERSION_INT,
};
-const AVInputFormat ff_rtp_demuxer = {
- .name = "rtp",
- .long_name = NULL_IF_CONFIG_SMALL("RTP input"),
+const FFInputFormat ff_rtp_demuxer = {
+ .p.name = "rtp",
+ .p.long_name = NULL_IF_CONFIG_SMALL("RTP input"),
+ .p.flags = AVFMT_NOFILE,
+ .p.priv_class = &rtp_demuxer_class,
.priv_data_size = sizeof(RTSPState),
.read_probe = rtp_probe,
.read_header = rtp_read_header,
.read_packet = ff_rtsp_fetch_packet,
.read_close = sdp_read_close,
- .flags = AVFMT_NOFILE,
- .priv_class = &rtp_demuxer_class,
};
#endif /* CONFIG_RTP_DEMUXER */
diff --git a/libavformat/rtspdec.c b/libavformat/rtspdec.c
index b54ce4e597..8ca6f723e4 100644
--- a/libavformat/rtspdec.c
+++ b/libavformat/rtspdec.c
@@ -27,6 +27,7 @@
#include "libavutil/random_seed.h"
#include "libavutil/time.h"
#include "avformat.h"
+#include "demux.h"
#include "internal.h"
#include "network.h"
@@ -992,17 +993,17 @@ static const AVClass rtsp_demuxer_class = {
.version = LIBAVUTIL_VERSION_INT,
};
-const AVInputFormat ff_rtsp_demuxer = {
- .name = "rtsp",
- .long_name = NULL_IF_CONFIG_SMALL("RTSP input"),
+const FFInputFormat ff_rtsp_demuxer = {
+ .p.name = "rtsp",
+ .p.long_name = NULL_IF_CONFIG_SMALL("RTSP input"),
+ .p.flags = AVFMT_NOFILE,
+ .p.priv_class = &rtsp_demuxer_class,
.priv_data_size = sizeof(RTSPState),
.read_probe = rtsp_probe,
.read_header = rtsp_read_header,
.read_packet = rtsp_read_packet,
.read_close = rtsp_read_close,
.read_seek = rtsp_read_seek,
- .flags = AVFMT_NOFILE,
.read_play = rtsp_read_play,
.read_pause = rtsp_read_pause,
- .priv_class = &rtsp_demuxer_class,
};
diff --git a/libavformat/s337m.c b/libavformat/s337m.c
index 6fecfeffae..4518f032d2 100644
--- a/libavformat/s337m.c
+++ b/libavformat/s337m.c
@@ -20,6 +20,7 @@
#include "libavutil/intreadwrite.h"
#include "avformat.h"
+#include "demux.h"
#include "internal.h"
#include "spdif.h"
@@ -187,11 +188,11 @@ static int s337m_read_packet(AVFormatContext *s, AVPacket *pkt)
return 0;
}
-const AVInputFormat ff_s337m_demuxer = {
- .name = "s337m",
- .long_name = NULL_IF_CONFIG_SMALL("SMPTE 337M"),
+const FFInputFormat ff_s337m_demuxer = {
+ .p.name = "s337m",
+ .p.long_name = NULL_IF_CONFIG_SMALL("SMPTE 337M"),
+ .p.flags = AVFMT_GENERIC_INDEX,
.read_probe = s337m_probe,
.read_header = s337m_read_header,
.read_packet = s337m_read_packet,
- .flags = AVFMT_GENERIC_INDEX,
};
diff --git a/libavformat/samidec.c b/libavformat/samidec.c
index 070b623ebf..4abf7789d1 100644
--- a/libavformat/samidec.c
+++ b/libavformat/samidec.c
@@ -25,6 +25,7 @@
*/
#include "avformat.h"
+#include "demux.h"
#include "internal.h"
#include "subtitles.h"
#include "libavutil/avstring.h"
@@ -121,14 +122,14 @@ end:
return res;
}
-const AVInputFormat ff_sami_demuxer = {
- .name = "sami",
- .long_name = NULL_IF_CONFIG_SMALL("SAMI subtitle format"),
+const FFInputFormat ff_sami_demuxer = {
+ .p.name = "sami",
+ .p.long_name = NULL_IF_CONFIG_SMALL("SAMI subtitle format"),
+ .p.extensions = "smi,sami",
.priv_data_size = sizeof(SAMIContext),
.flags_internal = FF_FMT_INIT_CLEANUP,
.read_probe = sami_probe,
.read_header = sami_read_header,
- .extensions = "smi,sami",
.read_packet = ff_subtitles_read_packet,
.read_seek2 = ff_subtitles_read_seek,
.read_close = ff_subtitles_read_close,
diff --git a/libavformat/sapdec.c b/libavformat/sapdec.c
index 59141448f4..7480697f83 100644
--- a/libavformat/sapdec.c
+++ b/libavformat/sapdec.c
@@ -20,6 +20,7 @@
*/
#include "avformat.h"
+#include "demux.h"
#include "libavutil/avstring.h"
#include "libavutil/intreadwrite.h"
#include "network.h"
@@ -232,13 +233,13 @@ static int sap_fetch_packet(AVFormatContext *s, AVPacket *pkt)
return ret;
}
-const AVInputFormat ff_sap_demuxer = {
- .name = "sap",
- .long_name = NULL_IF_CONFIG_SMALL("SAP input"),
+const FFInputFormat ff_sap_demuxer = {
+ .p.name = "sap",
+ .p.long_name = NULL_IF_CONFIG_SMALL("SAP input"),
+ .p.flags = AVFMT_NOFILE,
.priv_data_size = sizeof(struct SAPState),
.read_probe = sap_probe,
.read_header = sap_read_header,
.read_packet = sap_fetch_packet,
.read_close = sap_read_close,
- .flags = AVFMT_NOFILE,
};
diff --git a/libavformat/sbcdec.c b/libavformat/sbcdec.c
index c917743fa1..2fbee012c3 100644
--- a/libavformat/sbcdec.c
+++ b/libavformat/sbcdec.c
@@ -20,16 +20,17 @@
*/
#include "avformat.h"
+#include "demux.h"
#include "rawdec.h"
-const AVInputFormat ff_sbc_demuxer = {
- .name = "sbc",
- .long_name = NULL_IF_CONFIG_SMALL("raw SBC (low-complexity subband codec)"),
- .extensions = "sbc,msbc",
+const FFInputFormat ff_sbc_demuxer = {
+ .p.name = "sbc",
+ .p.long_name = NULL_IF_CONFIG_SMALL("raw SBC (low-complexity subband codec)"),
+ .p.extensions = "sbc,msbc",
+ .p.flags = AVFMT_GENERIC_INDEX,
+ .p.priv_class = &ff_raw_demuxer_class,
.raw_codec_id = AV_CODEC_ID_SBC,
.read_header = ff_raw_audio_read_header,
.read_packet = ff_raw_read_partial_packet,
- .flags = AVFMT_GENERIC_INDEX,
.priv_data_size = sizeof(FFRawDemuxerContext),
- .priv_class = &ff_raw_demuxer_class,
};
diff --git a/libavformat/sbgdec.c b/libavformat/sbgdec.c
index b2662ea418..bc2469afd1 100644
--- a/libavformat/sbgdec.c
+++ b/libavformat/sbgdec.c
@@ -29,6 +29,7 @@
#include "libavutil/opt.h"
#include "libavutil/time_internal.h"
#include "avformat.h"
+#include "demux.h"
#include "internal.h"
#define SBG_SCALE (1 << 16)
@@ -1529,15 +1530,15 @@ static const AVClass sbg_demuxer_class = {
.version = LIBAVUTIL_VERSION_INT,
};
-const AVInputFormat ff_sbg_demuxer = {
- .name = "sbg",
- .long_name = NULL_IF_CONFIG_SMALL("SBaGen binaural beats script"),
+const FFInputFormat ff_sbg_demuxer = {
+ .p.name = "sbg",
+ .p.long_name = NULL_IF_CONFIG_SMALL("SBaGen binaural beats script"),
+ .p.extensions = "sbg",
+ .p.priv_class = &sbg_demuxer_class,
.priv_data_size = sizeof(struct sbg_demuxer),
.read_probe = sbg_read_probe,
.read_header = sbg_read_header,
.read_packet = sbg_read_packet,
.read_seek = sbg_read_seek,
.read_seek2 = sbg_read_seek2,
- .extensions = "sbg",
- .priv_class = &sbg_demuxer_class,
};
diff --git a/libavformat/sccdec.c b/libavformat/sccdec.c
index 720fd0434f..5f2f95d80e 100644
--- a/libavformat/sccdec.c
+++ b/libavformat/sccdec.c
@@ -20,6 +20,7 @@
*/
#include "avformat.h"
+#include "demux.h"
#include "internal.h"
#include "subtitles.h"
#include "libavutil/avstring.h"
@@ -147,14 +148,14 @@ static int scc_read_header(AVFormatContext *s)
return 0;
}
-const AVInputFormat ff_scc_demuxer = {
- .name = "scc",
- .long_name = NULL_IF_CONFIG_SMALL("Scenarist Closed Captions"),
+const FFInputFormat ff_scc_demuxer = {
+ .p.name = "scc",
+ .p.long_name = NULL_IF_CONFIG_SMALL("Scenarist Closed Captions"),
+ .p.extensions = "scc",
.priv_data_size = sizeof(SCCContext),
.flags_internal = FF_FMT_INIT_CLEANUP,
.read_probe = scc_probe,
.read_header = scc_read_header,
- .extensions = "scc",
.read_packet = ff_subtitles_read_packet,
.read_seek2 = ff_subtitles_read_seek,
.read_close = ff_subtitles_read_close,
diff --git a/libavformat/scd.c b/libavformat/scd.c
index f0048bcc85..e34d60dcfb 100644
--- a/libavformat/scd.c
+++ b/libavformat/scd.c
@@ -28,6 +28,7 @@
#include "libavutil/avassert.h"
#include "libavformat/internal.h"
#include "avformat.h"
+#include "demux.h"
#define SCD_MAGIC ((uint64_t)MKBETAG('S', 'E', 'D', 'B') << 32 | \
MKBETAG('S', 'S', 'C', 'F'))
@@ -365,9 +366,9 @@ static int scd_read_close(AVFormatContext *s)
return 0;
}
-const AVInputFormat ff_scd_demuxer = {
- .name = "scd",
- .long_name = NULL_IF_CONFIG_SMALL("Square Enix SCD"),
+const FFInputFormat ff_scd_demuxer = {
+ .p.name = "scd",
+ .p.long_name = NULL_IF_CONFIG_SMALL("Square Enix SCD"),
.priv_data_size = sizeof(SCDDemuxContext),
.flags_internal = FF_FMT_INIT_CLEANUP,
.read_probe = scd_probe,
diff --git a/libavformat/sdns.c b/libavformat/sdns.c
index f00c6bcc49..9d1e356a23 100644
--- a/libavformat/sdns.c
+++ b/libavformat/sdns.c
@@ -85,12 +85,12 @@ static int sdns_read_packet(AVFormatContext *s, AVPacket *pkt)
return ret;
}
-const AVInputFormat ff_sdns_demuxer = {
- .name = "sdns",
- .long_name = NULL_IF_CONFIG_SMALL("Xbox SDNS"),
+const FFInputFormat ff_sdns_demuxer = {
+ .p.name = "sdns",
+ .p.long_name = NULL_IF_CONFIG_SMALL("Xbox SDNS"),
+ .p.flags = AVFMT_GENERIC_INDEX,
+ .p.extensions = "sdns",
.read_probe = sdns_probe,
.read_header = sdns_read_header,
.read_packet = sdns_read_packet,
- .flags = AVFMT_GENERIC_INDEX,
- .extensions = "sdns",
};
diff --git a/libavformat/sdr2.c b/libavformat/sdr2.c
index 3023d5f7d1..c7990bec3d 100644
--- a/libavformat/sdr2.c
+++ b/libavformat/sdr2.c
@@ -21,6 +21,7 @@
#include "libavutil/intreadwrite.h"
#include "avformat.h"
+#include "demux.h"
#include "internal.h"
static int sdr2_probe(const AVProbeData *p)
@@ -109,12 +110,12 @@ static int sdr2_read_packet(AVFormatContext *s, AVPacket *pkt)
return ret;
}
-const AVInputFormat ff_sdr2_demuxer = {
- .name = "sdr2",
- .long_name = NULL_IF_CONFIG_SMALL("SDR2"),
+const FFInputFormat ff_sdr2_demuxer = {
+ .p.name = "sdr2",
+ .p.long_name = NULL_IF_CONFIG_SMALL("SDR2"),
+ .p.extensions= "sdr2",
+ .p.flags = AVFMT_GENERIC_INDEX,
.read_probe = sdr2_probe,
.read_header = sdr2_read_header,
.read_packet = sdr2_read_packet,
- .extensions = "sdr2",
- .flags = AVFMT_GENERIC_INDEX,
};
diff --git a/libavformat/sdsdec.c b/libavformat/sdsdec.c
index d296500bec..1b47f45504 100644
--- a/libavformat/sdsdec.c
+++ b/libavformat/sdsdec.c
@@ -21,6 +21,7 @@
#include "libavutil/intreadwrite.h"
#include "avformat.h"
+#include "demux.h"
#include "internal.h"
typedef struct SDSContext {
@@ -153,13 +154,13 @@ static int sds_read_packet(AVFormatContext *ctx, AVPacket *pkt)
return ret;
}
-const AVInputFormat ff_sds_demuxer = {
- .name = "sds",
- .long_name = NULL_IF_CONFIG_SMALL("MIDI Sample Dump Standard"),
+const FFInputFormat ff_sds_demuxer = {
+ .p.name = "sds",
+ .p.long_name = NULL_IF_CONFIG_SMALL("MIDI Sample Dump Standard"),
+ .p.extensions = "sds",
+ .p.flags = AVFMT_GENERIC_INDEX,
.priv_data_size = sizeof(SDSContext),
.read_probe = sds_probe,
.read_header = sds_read_header,
.read_packet = sds_read_packet,
- .extensions = "sds",
- .flags = AVFMT_GENERIC_INDEX,
};
diff --git a/libavformat/sdxdec.c b/libavformat/sdxdec.c
index 5628278928..26ccd78ddd 100644
--- a/libavformat/sdxdec.c
+++ b/libavformat/sdxdec.c
@@ -22,6 +22,7 @@
#include "libavutil/avstring.h"
#include "libavutil/intreadwrite.h"
#include "avformat.h"
+#include "demux.h"
#include "internal.h"
#include "pcm.h"
@@ -78,13 +79,13 @@ static int sdx_read_header(AVFormatContext *s)
return 0;
}
-const AVInputFormat ff_sdx_demuxer = {
- .name = "sdx",
- .long_name = NULL_IF_CONFIG_SMALL("Sample Dump eXchange"),
+const FFInputFormat ff_sdx_demuxer = {
+ .p.name = "sdx",
+ .p.long_name = NULL_IF_CONFIG_SMALL("Sample Dump eXchange"),
+ .p.extensions = "sdx",
+ .p.flags = AVFMT_GENERIC_INDEX,
.read_probe = sdx_probe,
.read_header = sdx_read_header,
.read_packet = ff_pcm_read_packet,
.read_seek = ff_pcm_read_seek,
- .extensions = "sdx",
- .flags = AVFMT_GENERIC_INDEX,
};
diff --git a/libavformat/seek.c b/libavformat/seek.c
index 0180188595..9ac133bf23 100644
--- a/libavformat/seek.c
+++ b/libavformat/seek.c
@@ -288,7 +288,7 @@ static int64_t read_timestamp(AVFormatContext *s, int stream_index, int64_t *ppo
int ff_seek_frame_binary(AVFormatContext *s, int stream_index,
int64_t target_ts, int flags)
{
- const AVInputFormat *const avif = s->iformat;
+ const FFInputFormat *const avif = ffifmt(s->iformat);
int64_t pos_min = 0, pos_max = 0, pos, pos_limit;
int64_t ts_min, ts_max, ts;
int index;
@@ -580,8 +580,8 @@ static int seek_frame_generic(AVFormatContext *s, int stream_index,
return -1;
ff_read_frame_flush(s);
- if (s->iformat->read_seek)
- if (s->iformat->read_seek(s, stream_index, timestamp, flags) >= 0)
+ if (ffifmt(s->iformat)->read_seek)
+ if (ffifmt(s->iformat)->read_seek(s, stream_index, timestamp, flags) >= 0)
return 0;
ie = &sti->index_entries[index];
if ((ret = avio_seek(s->pb, ie->pos, SEEK_SET)) < 0)
@@ -617,15 +617,15 @@ static int seek_frame_internal(AVFormatContext *s, int stream_index,
}
/* first, we try the format specific seek */
- if (s->iformat->read_seek) {
+ if (ffifmt(s->iformat)->read_seek) {
ff_read_frame_flush(s);
- ret = s->iformat->read_seek(s, stream_index, timestamp, flags);
+ ret = ffifmt(s->iformat)->read_seek(s, stream_index, timestamp, flags);
} else
ret = -1;
if (ret >= 0)
return 0;
- if (s->iformat->read_timestamp &&
+ if (ffifmt(s->iformat)->read_timestamp &&
!(s->iformat->flags & AVFMT_NOBINSEARCH)) {
ff_read_frame_flush(s);
return ff_seek_frame_binary(s, stream_index, timestamp, flags);
@@ -641,7 +641,7 @@ int av_seek_frame(AVFormatContext *s, int stream_index,
{
int ret;
- if (s->iformat->read_seek2 && !s->iformat->read_seek) {
+ if (ffifmt(s->iformat)->read_seek2 && !ffifmt(s->iformat)->read_seek) {
int64_t min_ts = INT64_MIN, max_ts = INT64_MAX;
if ((flags & AVSEEK_FLAG_BACKWARD))
max_ts = timestamp;
@@ -671,7 +671,7 @@ int avformat_seek_file(AVFormatContext *s, int stream_index, int64_t min_ts,
flags |= AVSEEK_FLAG_ANY;
flags &= ~AVSEEK_FLAG_BACKWARD;
- if (s->iformat->read_seek2) {
+ if (ffifmt(s->iformat)->read_seek2) {
int ret;
ff_read_frame_flush(s);
@@ -687,7 +687,7 @@ int avformat_seek_file(AVFormatContext *s, int stream_index, int64_t min_ts,
stream_index = 0;
}
- ret = s->iformat->read_seek2(s, stream_index, min_ts,
+ ret = ffifmt(s->iformat)->read_seek2(s, stream_index, min_ts,
ts, max_ts, flags);
if (ret >= 0)
@@ -695,13 +695,13 @@ int avformat_seek_file(AVFormatContext *s, int stream_index, int64_t min_ts,
return ret;
}
- if (s->iformat->read_timestamp) {
+ if (ffifmt(s->iformat)->read_timestamp) {
// try to seek via read_timestamp()
}
// Fall back on old API if new is not implemented but old is.
// Note the old API has somewhat different semantics.
- if (s->iformat->read_seek || 1) {
+ if (ffifmt(s->iformat)->read_seek || 1) {
int dir = (ts - (uint64_t)min_ts > (uint64_t)max_ts - ts ? AVSEEK_FLAG_BACKWARD : 0);
int ret = av_seek_frame(s, stream_index, ts, flags | dir);
if (ret < 0 && ts != min_ts && max_ts != ts) {
diff --git a/libavformat/segafilm.c b/libavformat/segafilm.c
index 4c6b68426c..5cbeed6d91 100644
--- a/libavformat/segafilm.c
+++ b/libavformat/segafilm.c
@@ -29,6 +29,7 @@
#include "libavutil/intreadwrite.h"
#include "avformat.h"
+#include "demux.h"
#include "internal.h"
#include "avio_internal.h"
@@ -324,9 +325,9 @@ static int film_read_seek(AVFormatContext *s, int stream_index, int64_t timestam
return 0;
}
-const AVInputFormat ff_segafilm_demuxer = {
- .name = "film_cpk",
- .long_name = NULL_IF_CONFIG_SMALL("Sega FILM / CPK"),
+const FFInputFormat ff_segafilm_demuxer = {
+ .p.name = "film_cpk",
+ .p.long_name = NULL_IF_CONFIG_SMALL("Sega FILM / CPK"),
.priv_data_size = sizeof(FilmDemuxContext),
.flags_internal = FF_FMT_INIT_CLEANUP,
.read_probe = film_probe,
diff --git a/libavformat/serdec.c b/libavformat/serdec.c
index 639c899249..a8b2375199 100644
--- a/libavformat/serdec.c
+++ b/libavformat/serdec.c
@@ -23,6 +23,7 @@
#include "libavutil/parseutils.h"
#include "libavutil/pixdesc.h"
#include "libavutil/opt.h"
+#include "demux.h"
#include "internal.h"
#include "avformat.h"
@@ -132,15 +133,15 @@ static const AVClass ser_demuxer_class = {
.version = LIBAVUTIL_VERSION_INT,
};
-const AVInputFormat ff_ser_demuxer = {
- .name = "ser",
- .long_name = NULL_IF_CONFIG_SMALL("SER (Simple uncompressed video format for astronomical capturing)"),
+const FFInputFormat ff_ser_demuxer = {
+ .p.name = "ser",
+ .p.long_name = NULL_IF_CONFIG_SMALL("SER (Simple uncompressed video format for astronomical capturing)"),
+ .p.flags = AVFMT_GENERIC_INDEX,
+ .p.extensions = "ser",
+ .p.priv_class = &ser_demuxer_class,
.priv_data_size = sizeof(SERDemuxerContext),
.read_probe = ser_probe,
.read_header = ser_read_header,
.read_packet = ser_read_packet,
- .flags = AVFMT_GENERIC_INDEX,
- .extensions = "ser",
.raw_codec_id = AV_CODEC_ID_RAWVIDEO,
- .priv_class = &ser_demuxer_class,
};
diff --git a/libavformat/sga.c b/libavformat/sga.c
index 12e9cc1441..23a18657cf 100644
--- a/libavformat/sga.c
+++ b/libavformat/sga.c
@@ -25,6 +25,7 @@
#include "libavutil/channel_layout.h"
#include "libavutil/internal.h"
#include "avformat.h"
+#include "demux.h"
#include "internal.h"
#include "avio_internal.h"
@@ -466,14 +467,14 @@ static int sga_seek(AVFormatContext *s, int stream_index,
return -1;
}
-const AVInputFormat ff_sga_demuxer = {
- .name = "sga",
- .long_name = NULL_IF_CONFIG_SMALL("Digital Pictures SGA"),
+const FFInputFormat ff_sga_demuxer = {
+ .p.name = "sga",
+ .p.long_name = NULL_IF_CONFIG_SMALL("Digital Pictures SGA"),
+ .p.extensions = "sga",
+ .p.flags = AVFMT_GENERIC_INDEX,
.priv_data_size = sizeof(SGADemuxContext),
.read_probe = sga_probe,
.read_header = sga_read_header,
.read_packet = sga_read_packet,
.read_seek = sga_seek,
- .extensions = "sga",
- .flags = AVFMT_GENERIC_INDEX,
};
diff --git a/libavformat/shortendec.c b/libavformat/shortendec.c
index cd14b55d70..2bb4d9d0c5 100644
--- a/libavformat/shortendec.c
+++ b/libavformat/shortendec.c
@@ -22,6 +22,7 @@
*/
#include "avformat.h"
+#include "demux.h"
#include "rawdec.h"
#include "libavcodec/golomb.h"
@@ -65,15 +66,15 @@ static int shn_probe(const AVProbeData *p)
return AVPROBE_SCORE_EXTENSION + 1;
}
-const AVInputFormat ff_shorten_demuxer = {
- .name = "shn",
- .long_name = NULL_IF_CONFIG_SMALL("raw Shorten"),
+const FFInputFormat ff_shorten_demuxer = {
+ .p.name = "shn",
+ .p.long_name = NULL_IF_CONFIG_SMALL("raw Shorten"),
+ .p.flags = AVFMT_NOBINSEARCH | AVFMT_NOGENSEARCH | AVFMT_NO_BYTE_SEEK | AVFMT_NOTIMESTAMPS,
+ .p.extensions = "shn",
+ .p.priv_class = &ff_raw_demuxer_class,
.read_probe = shn_probe,
.read_header = ff_raw_audio_read_header,
.read_packet = ff_raw_read_partial_packet,
- .flags = AVFMT_NOBINSEARCH | AVFMT_NOGENSEARCH | AVFMT_NO_BYTE_SEEK | AVFMT_NOTIMESTAMPS,
- .extensions = "shn",
.raw_codec_id = AV_CODEC_ID_SHORTEN,
.priv_data_size = sizeof(FFRawDemuxerContext),
- .priv_class = &ff_raw_demuxer_class,
};
diff --git a/libavformat/sierravmd.c b/libavformat/sierravmd.c
index d110457ec9..e7cc4075de 100644
--- a/libavformat/sierravmd.c
+++ b/libavformat/sierravmd.c
@@ -30,6 +30,7 @@
#include "libavutil/channel_layout.h"
#include "libavutil/intreadwrite.h"
#include "avformat.h"
+#include "demux.h"
#include "internal.h"
#include "avio_internal.h"
@@ -313,9 +314,9 @@ static int vmd_read_close(AVFormatContext *s)
return 0;
}
-const AVInputFormat ff_vmd_demuxer = {
- .name = "vmd",
- .long_name = NULL_IF_CONFIG_SMALL("Sierra VMD"),
+const FFInputFormat ff_vmd_demuxer = {
+ .p.name = "vmd",
+ .p.long_name = NULL_IF_CONFIG_SMALL("Sierra VMD"),
.priv_data_size = sizeof(VmdDemuxContext),
.flags_internal = FF_FMT_INIT_CLEANUP,
.read_probe = vmd_probe,
diff --git a/libavformat/siff.c b/libavformat/siff.c
index 99756574b4..5aad03d870 100644
--- a/libavformat/siff.c
+++ b/libavformat/siff.c
@@ -23,6 +23,7 @@
#include "libavutil/intreadwrite.h"
#include "avformat.h"
+#include "demux.h"
#include "internal.h"
#include "avio_internal.h"
@@ -248,12 +249,12 @@ static int siff_read_packet(AVFormatContext *s, AVPacket *pkt)
return pkt->size;
}
-const AVInputFormat ff_siff_demuxer = {
- .name = "siff",
- .long_name = NULL_IF_CONFIG_SMALL("Beam Software SIFF"),
+const FFInputFormat ff_siff_demuxer = {
+ .p.name = "siff",
+ .p.long_name = NULL_IF_CONFIG_SMALL("Beam Software SIFF"),
+ .p.extensions = "vb,son",
.priv_data_size = sizeof(SIFFContext),
.read_probe = siff_probe,
.read_header = siff_read_header,
.read_packet = siff_read_packet,
- .extensions = "vb,son",
};
diff --git a/libavformat/smacker.c b/libavformat/smacker.c
index d04c8b91a6..c87174476b 100644
--- a/libavformat/smacker.c
+++ b/libavformat/smacker.c
@@ -404,9 +404,9 @@ static int smacker_read_seek(AVFormatContext *s, int stream_index,
return 0;
}
-const AVInputFormat ff_smacker_demuxer = {
- .name = "smk",
- .long_name = NULL_IF_CONFIG_SMALL("Smacker"),
+const FFInputFormat ff_smacker_demuxer = {
+ .p.name = "smk",
+ .p.long_name = NULL_IF_CONFIG_SMALL("Smacker"),
.priv_data_size = sizeof(SmackerContext),
.read_probe = smacker_probe,
.read_header = smacker_read_header,
diff --git a/libavformat/smjpegdec.c b/libavformat/smjpegdec.c
index 02d0f29b99..0003dbf0f5 100644
--- a/libavformat/smjpegdec.c
+++ b/libavformat/smjpegdec.c
@@ -27,6 +27,7 @@
#include <inttypes.h>
#include "avformat.h"
+#include "demux.h"
#include "internal.h"
#include "riff.h"
#include "smjpeg.h"
@@ -180,13 +181,13 @@ static int smjpeg_read_packet(AVFormatContext *s, AVPacket *pkt)
return ret;
}
-const AVInputFormat ff_smjpeg_demuxer = {
- .name = "smjpeg",
- .long_name = NULL_IF_CONFIG_SMALL("Loki SDL MJPEG"),
+const FFInputFormat ff_smjpeg_demuxer = {
+ .p.name = "smjpeg",
+ .p.long_name = NULL_IF_CONFIG_SMALL("Loki SDL MJPEG"),
+ .p.extensions = "mjpg",
+ .p.flags = AVFMT_GENERIC_INDEX,
.priv_data_size = sizeof(SMJPEGContext),
.read_probe = smjpeg_probe,
.read_header = smjpeg_read_header,
.read_packet = smjpeg_read_packet,
- .extensions = "mjpg",
- .flags = AVFMT_GENERIC_INDEX,
};
diff --git a/libavformat/smush.c b/libavformat/smush.c
index f133bbb02c..0877f7faff 100644
--- a/libavformat/smush.c
+++ b/libavformat/smush.c
@@ -23,6 +23,7 @@
#include "avformat.h"
#include "avio.h"
+#include "demux.h"
#include "internal.h"
typedef struct SMUSHContext {
@@ -241,9 +242,9 @@ static int smush_read_packet(AVFormatContext *ctx, AVPacket *pkt)
return 0;
}
-const AVInputFormat ff_smush_demuxer = {
- .name = "smush",
- .long_name = NULL_IF_CONFIG_SMALL("LucasArts Smush"),
+const FFInputFormat ff_smush_demuxer = {
+ .p.name = "smush",
+ .p.long_name = NULL_IF_CONFIG_SMALL("LucasArts Smush"),
.priv_data_size = sizeof(SMUSHContext),
.read_probe = smush_read_probe,
.read_header = smush_read_header,
diff --git a/libavformat/sol.c b/libavformat/sol.c
index a276642728..145906c936 100644
--- a/libavformat/sol.c
+++ b/libavformat/sol.c
@@ -26,6 +26,7 @@
#include "libavutil/channel_layout.h"
#include "libavutil/intreadwrite.h"
#include "avformat.h"
+#include "demux.h"
#include "internal.h"
#include "pcm.h"
@@ -137,9 +138,9 @@ static int sol_read_packet(AVFormatContext *s,
return 0;
}
-const AVInputFormat ff_sol_demuxer = {
- .name = "sol",
- .long_name = NULL_IF_CONFIG_SMALL("Sierra SOL"),
+const FFInputFormat ff_sol_demuxer = {
+ .p.name = "sol",
+ .p.long_name = NULL_IF_CONFIG_SMALL("Sierra SOL"),
.read_probe = sol_probe,
.read_header = sol_read_header,
.read_packet = sol_read_packet,
diff --git a/libavformat/soxdec.c b/libavformat/soxdec.c
index d47a8ba927..661d6b30e5 100644
--- a/libavformat/soxdec.c
+++ b/libavformat/soxdec.c
@@ -33,6 +33,7 @@
#include "libavutil/intfloat.h"
#include "libavutil/dict.h"
#include "avformat.h"
+#include "demux.h"
#include "internal.h"
#include "pcm.h"
#include "sox.h"
@@ -131,9 +132,9 @@ static int sox_read_header(AVFormatContext *s)
return 0;
}
-const AVInputFormat ff_sox_demuxer = {
- .name = "sox",
- .long_name = NULL_IF_CONFIG_SMALL("SoX (Sound eXchange) native"),
+const FFInputFormat ff_sox_demuxer = {
+ .p.name = "sox",
+ .p.long_name = NULL_IF_CONFIG_SMALL("SoX (Sound eXchange) native"),
.read_probe = sox_probe,
.read_header = sox_read_header,
.read_packet = ff_pcm_read_packet,
diff --git a/libavformat/spdifdec.c b/libavformat/spdifdec.c
index 7a6b77aae8..6a01f2ba29 100644
--- a/libavformat/spdifdec.c
+++ b/libavformat/spdifdec.c
@@ -31,6 +31,7 @@
#include "libavcodec/adts_parser.h"
#include "avformat.h"
+#include "demux.h"
#include "internal.h"
#include "spdif.h"
@@ -248,11 +249,11 @@ int ff_spdif_read_packet(AVFormatContext *s, AVPacket *pkt)
return 0;
}
-const AVInputFormat ff_spdif_demuxer = {
- .name = "spdif",
- .long_name = NULL_IF_CONFIG_SMALL("IEC 61937 (compressed data in S/PDIF)"),
+const FFInputFormat ff_spdif_demuxer = {
+ .p.name = "spdif",
+ .p.long_name = NULL_IF_CONFIG_SMALL("IEC 61937 (compressed data in S/PDIF)"),
+ .p.flags = AVFMT_GENERIC_INDEX,
.read_probe = spdif_probe,
.read_header = spdif_read_header,
.read_packet = ff_spdif_read_packet,
- .flags = AVFMT_GENERIC_INDEX,
};
diff --git a/libavformat/srtdec.c b/libavformat/srtdec.c
index 635c1550b9..678796c9dd 100644
--- a/libavformat/srtdec.c
+++ b/libavformat/srtdec.c
@@ -21,6 +21,7 @@
*/
#include "avformat.h"
+#include "demux.h"
#include "internal.h"
#include "subtitles.h"
#include "libavutil/bprint.h"
@@ -213,9 +214,9 @@ end:
return res;
}
-const AVInputFormat ff_srt_demuxer = {
- .name = "srt",
- .long_name = NULL_IF_CONFIG_SMALL("SubRip subtitle"),
+const FFInputFormat ff_srt_demuxer = {
+ .p.name = "srt",
+ .p.long_name = NULL_IF_CONFIG_SMALL("SubRip subtitle"),
.priv_data_size = sizeof(SRTContext),
.flags_internal = FF_FMT_INIT_CLEANUP,
.read_probe = srt_probe,
diff --git a/libavformat/stldec.c b/libavformat/stldec.c
index b5c8439dc2..3b3b113827 100644
--- a/libavformat/stldec.c
+++ b/libavformat/stldec.c
@@ -25,6 +25,7 @@
*/
#include "avformat.h"
+#include "demux.h"
#include "internal.h"
#include "subtitles.h"
#include "libavutil/intreadwrite.h"
@@ -108,14 +109,14 @@ static int stl_read_header(AVFormatContext *s)
return 0;
}
-const AVInputFormat ff_stl_demuxer = {
- .name = "stl",
- .long_name = NULL_IF_CONFIG_SMALL("Spruce subtitle format"),
+const FFInputFormat ff_stl_demuxer = {
+ .p.name = "stl",
+ .p.long_name = NULL_IF_CONFIG_SMALL("Spruce subtitle format"),
+ .p.extensions = "stl",
.priv_data_size = sizeof(STLContext),
.flags_internal = FF_FMT_INIT_CLEANUP,
.read_probe = stl_probe,
.read_header = stl_read_header,
- .extensions = "stl",
.read_packet = ff_subtitles_read_packet,
.read_seek2 = ff_subtitles_read_seek,
.read_close = ff_subtitles_read_close,
diff --git a/libavformat/subtitles.h b/libavformat/subtitles.h
index f4993fe20d..88665663c5 100644
--- a/libavformat/subtitles.h
+++ b/libavformat/subtitles.h
@@ -140,7 +140,7 @@ int ff_subtitles_queue_read_packet(FFDemuxSubtitlesQueue *q, AVPacket *pkt);
/**
* Update current_sub_idx to emulate a seek. Except the first parameter, it
- * matches AVInputFormat->read_seek2 prototypes.
+ * matches FFInputFormat->read_seek2 prototypes.
*/
int ff_subtitles_queue_seek(FFDemuxSubtitlesQueue *q, AVFormatContext *s, int stream_index,
int64_t min_ts, int64_t ts, int64_t max_ts, int flags);
diff --git a/libavformat/subviewer1dec.c b/libavformat/subviewer1dec.c
index bdcbef30ef..5e7ed729ac 100644
--- a/libavformat/subviewer1dec.c
+++ b/libavformat/subviewer1dec.c
@@ -24,6 +24,7 @@
*/
#include "avformat.h"
+#include "demux.h"
#include "internal.h"
#include "subtitles.h"
@@ -90,14 +91,14 @@ static int subviewer1_read_header(AVFormatContext *s)
return 0;
}
-const AVInputFormat ff_subviewer1_demuxer = {
- .name = "subviewer1",
- .long_name = NULL_IF_CONFIG_SMALL("SubViewer v1 subtitle format"),
+const FFInputFormat ff_subviewer1_demuxer = {
+ .p.name = "subviewer1",
+ .p.long_name = NULL_IF_CONFIG_SMALL("SubViewer v1 subtitle format"),
+ .p.extensions = "sub",
.priv_data_size = sizeof(SubViewer1Context),
.flags_internal = FF_FMT_INIT_CLEANUP,
.read_probe = subviewer1_probe,
.read_header = subviewer1_read_header,
- .extensions = "sub",
.read_packet = ff_subtitles_read_packet,
.read_seek2 = ff_subtitles_read_seek,
.read_close = ff_subtitles_read_close,
diff --git a/libavformat/subviewerdec.c b/libavformat/subviewerdec.c
index 6ffdc98c39..1d1d99afa9 100644
--- a/libavformat/subviewerdec.c
+++ b/libavformat/subviewerdec.c
@@ -25,6 +25,7 @@
*/
#include "avformat.h"
+#include "demux.h"
#include "internal.h"
#include "subtitles.h"
#include "avio_internal.h"
@@ -185,14 +186,14 @@ end:
return res;
}
-const AVInputFormat ff_subviewer_demuxer = {
- .name = "subviewer",
- .long_name = NULL_IF_CONFIG_SMALL("SubViewer subtitle format"),
+const FFInputFormat ff_subviewer_demuxer = {
+ .p.name = "subviewer",
+ .p.long_name = NULL_IF_CONFIG_SMALL("SubViewer subtitle format"),
+ .p.extensions = "sub",
.priv_data_size = sizeof(SubViewerContext),
.flags_internal = FF_FMT_INIT_CLEANUP,
.read_probe = subviewer_probe,
.read_header = subviewer_read_header,
- .extensions = "sub",
.read_packet = ff_subtitles_read_packet,
.read_seek2 = ff_subtitles_read_seek,
.read_close = ff_subtitles_read_close,
diff --git a/libavformat/supdec.c b/libavformat/supdec.c
index fbcc744bb4..f69ef913b7 100644
--- a/libavformat/supdec.c
+++ b/libavformat/supdec.c
@@ -17,6 +17,7 @@
*/
#include "avformat.h"
+#include "demux.h"
#include "internal.h"
#include "libavutil/intreadwrite.h"
@@ -97,13 +98,13 @@ static int sup_probe(const AVProbeData *p)
return AVPROBE_SCORE_MAX;
}
-const AVInputFormat ff_sup_demuxer = {
- .name = "sup",
- .long_name = NULL_IF_CONFIG_SMALL("raw HDMV Presentation Graphic Stream subtitles"),
- .extensions = "sup",
- .mime_type = "application/x-pgs",
+const FFInputFormat ff_sup_demuxer = {
+ .p.name = "sup",
+ .p.long_name = NULL_IF_CONFIG_SMALL("raw HDMV Presentation Graphic Stream subtitles"),
+ .p.extensions = "sup",
+ .p.mime_type = "application/x-pgs",
+ .p.flags = AVFMT_GENERIC_INDEX,
.read_probe = sup_probe,
.read_header = sup_read_header,
.read_packet = sup_read_packet,
- .flags = AVFMT_GENERIC_INDEX,
};
diff --git a/libavformat/svag.c b/libavformat/svag.c
index 45d04727fe..c92a5e12f2 100644
--- a/libavformat/svag.c
+++ b/libavformat/svag.c
@@ -20,6 +20,7 @@
*/
#include "avformat.h"
+#include "demux.h"
#include "internal.h"
static int svag_probe(const AVProbeData *p)
@@ -69,11 +70,11 @@ static int svag_read_packet(AVFormatContext *s, AVPacket *pkt)
return av_get_packet(s->pb, pkt, par->block_align);
}
-const AVInputFormat ff_svag_demuxer = {
- .name = "svag",
- .long_name = NULL_IF_CONFIG_SMALL("Konami PS2 SVAG"),
+const FFInputFormat ff_svag_demuxer = {
+ .p.name = "svag",
+ .p.long_name = NULL_IF_CONFIG_SMALL("Konami PS2 SVAG"),
+ .p.extensions = "svag",
.read_probe = svag_probe,
.read_header = svag_read_header,
.read_packet = svag_read_packet,
- .extensions = "svag",
};
diff --git a/libavformat/svs.c b/libavformat/svs.c
index b91d29f5a6..03e0bfd6e7 100644
--- a/libavformat/svs.c
+++ b/libavformat/svs.c
@@ -22,6 +22,7 @@
#include "libavutil/channel_layout.h"
#include "libavutil/intreadwrite.h"
#include "avformat.h"
+#include "demux.h"
#include "internal.h"
static int svs_probe(const AVProbeData *p)
@@ -84,11 +85,11 @@ static int svs_read_packet(AVFormatContext *s, AVPacket *pkt)
return ret;
}
-const AVInputFormat ff_svs_demuxer = {
- .name = "svs",
- .long_name = NULL_IF_CONFIG_SMALL("Square SVS"),
+const FFInputFormat ff_svs_demuxer = {
+ .p.name = "svs",
+ .p.long_name = NULL_IF_CONFIG_SMALL("Square SVS"),
+ .p.extensions = "svs",
.read_probe = svs_probe,
.read_header = svs_read_header,
.read_packet = svs_read_packet,
- .extensions = "svs",
};
diff --git a/libavformat/swfdec.c b/libavformat/swfdec.c
index 716c95a743..6bba5fb7eb 100644
--- a/libavformat/swfdec.c
+++ b/libavformat/swfdec.c
@@ -562,9 +562,9 @@ static av_cold int swf_read_close(AVFormatContext *avctx)
}
#endif
-const AVInputFormat ff_swf_demuxer = {
- .name = "swf",
- .long_name = NULL_IF_CONFIG_SMALL("SWF (ShockWave Flash)"),
+const FFInputFormat ff_swf_demuxer = {
+ .p.name = "swf",
+ .p.long_name = NULL_IF_CONFIG_SMALL("SWF (ShockWave Flash)"),
.priv_data_size = sizeof(SWFDecContext),
.read_probe = swf_probe,
.read_header = swf_read_header,
diff --git a/libavformat/takdec.c b/libavformat/takdec.c
index 08f6e6a257..5c405ebd24 100644
--- a/libavformat/takdec.c
+++ b/libavformat/takdec.c
@@ -27,6 +27,7 @@
#include "apetag.h"
#include "avformat.h"
#include "avio_internal.h"
+#include "demux.h"
#include "internal.h"
#include "rawdec.h"
@@ -213,15 +214,15 @@ static int raw_read_packet(AVFormatContext *s, AVPacket *pkt)
return ret;
}
-const AVInputFormat ff_tak_demuxer = {
- .name = "tak",
- .long_name = NULL_IF_CONFIG_SMALL("raw TAK"),
+const FFInputFormat ff_tak_demuxer = {
+ .p.name = "tak",
+ .p.long_name = NULL_IF_CONFIG_SMALL("raw TAK"),
+ .p.flags = AVFMT_GENERIC_INDEX,
+ .p.extensions = "tak",
+ .p.priv_class = &ff_raw_demuxer_class,
.priv_data_size = sizeof(TAKDemuxContext),
.read_probe = tak_probe,
.read_header = tak_read_header,
.read_packet = raw_read_packet,
- .flags = AVFMT_GENERIC_INDEX,
- .extensions = "tak",
.raw_codec_id = AV_CODEC_ID_TAK,
- .priv_class = &ff_raw_demuxer_class,
};
diff --git a/libavformat/tedcaptionsdec.c b/libavformat/tedcaptionsdec.c
index a8aa9d9cf9..4dbbe5a5b1 100644
--- a/libavformat/tedcaptionsdec.c
+++ b/libavformat/tedcaptionsdec.c
@@ -23,6 +23,7 @@
#include "libavutil/log.h"
#include "libavutil/opt.h"
#include "avformat.h"
+#include "demux.h"
#include "internal.h"
#include "subtitles.h"
@@ -355,12 +356,12 @@ static int tedcaptions_read_seek(AVFormatContext *avf, int stream_index,
min_ts, ts, max_ts, flags);
}
-const AVInputFormat ff_tedcaptions_demuxer = {
- .name = "tedcaptions",
- .long_name = NULL_IF_CONFIG_SMALL("TED Talks captions"),
+const FFInputFormat ff_tedcaptions_demuxer = {
+ .p.name = "tedcaptions",
+ .p.long_name = NULL_IF_CONFIG_SMALL("TED Talks captions"),
+ .p.priv_class = &tedcaptions_demuxer_class,
.priv_data_size = sizeof(TEDCaptionsDemuxer),
.flags_internal = FF_FMT_INIT_CLEANUP,
- .priv_class = &tedcaptions_demuxer_class,
.read_header = tedcaptions_read_header,
.read_packet = tedcaptions_read_packet,
.read_close = tedcaptions_read_close,
diff --git a/libavformat/thp.c b/libavformat/thp.c
index fdb499bf42..76db7fc581 100644
--- a/libavformat/thp.c
+++ b/libavformat/thp.c
@@ -23,6 +23,7 @@
#include "libavutil/intfloat.h"
#include "avformat.h"
#include "avio_internal.h"
+#include "demux.h"
#include "internal.h"
typedef struct ThpDemuxContext {
@@ -215,9 +216,9 @@ static int thp_read_packet(AVFormatContext *s,
return 0;
}
-const AVInputFormat ff_thp_demuxer = {
- .name = "thp",
- .long_name = NULL_IF_CONFIG_SMALL("THP"),
+const FFInputFormat ff_thp_demuxer = {
+ .p.name = "thp",
+ .p.long_name = NULL_IF_CONFIG_SMALL("THP"),
.priv_data_size = sizeof(ThpDemuxContext),
.read_probe = thp_probe,
.read_header = thp_read_header,
diff --git a/libavformat/tiertexseq.c b/libavformat/tiertexseq.c
index d06853d0d6..9de3689720 100644
--- a/libavformat/tiertexseq.c
+++ b/libavformat/tiertexseq.c
@@ -26,6 +26,7 @@
#include "libavutil/channel_layout.h"
#include "avformat.h"
+#include "demux.h"
#include "internal.h"
#define SEQ_FRAME_SIZE 6144
@@ -307,9 +308,9 @@ static int seq_read_packet(AVFormatContext *s, AVPacket *pkt)
return 0;
}
-const AVInputFormat ff_tiertexseq_demuxer = {
- .name = "tiertexseq",
- .long_name = NULL_IF_CONFIG_SMALL("Tiertex Limited SEQ"),
+const FFInputFormat ff_tiertexseq_demuxer = {
+ .p.name = "tiertexseq",
+ .p.long_name = NULL_IF_CONFIG_SMALL("Tiertex Limited SEQ"),
.priv_data_size = sizeof(SeqDemuxContext),
.flags_internal = FF_FMT_INIT_CLEANUP,
.read_probe = seq_probe,
diff --git a/libavformat/tmv.c b/libavformat/tmv.c
index 18105f764e..ae4973f0f3 100644
--- a/libavformat/tmv.c
+++ b/libavformat/tmv.c
@@ -29,6 +29,7 @@
#include "libavutil/channel_layout.h"
#include "libavutil/intreadwrite.h"
#include "avformat.h"
+#include "demux.h"
#include "internal.h"
enum {
@@ -185,13 +186,13 @@ static int tmv_read_seek(AVFormatContext *s, int stream_index,
return 0;
}
-const AVInputFormat ff_tmv_demuxer = {
- .name = "tmv",
- .long_name = NULL_IF_CONFIG_SMALL("8088flex TMV"),
+const FFInputFormat ff_tmv_demuxer = {
+ .p.name = "tmv",
+ .p.long_name = NULL_IF_CONFIG_SMALL("8088flex TMV"),
+ .p.flags = AVFMT_GENERIC_INDEX,
.priv_data_size = sizeof(TMVContext),
.read_probe = tmv_probe,
.read_header = tmv_read_header,
.read_packet = tmv_read_packet,
.read_seek = tmv_read_seek,
- .flags = AVFMT_GENERIC_INDEX,
};
diff --git a/libavformat/tta.c b/libavformat/tta.c
index 5477654014..fdc18216c8 100644
--- a/libavformat/tta.c
+++ b/libavformat/tta.c
@@ -26,6 +26,7 @@
#include "apetag.h"
#include "avformat.h"
#include "avio_internal.h"
+#include "demux.h"
#include "internal.h"
#include "id3v1.h"
@@ -187,13 +188,13 @@ static int tta_read_seek(AVFormatContext *s, int stream_index, int64_t timestamp
return 0;
}
-const AVInputFormat ff_tta_demuxer = {
- .name = "tta",
- .long_name = NULL_IF_CONFIG_SMALL("TTA (True Audio)"),
+const FFInputFormat ff_tta_demuxer = {
+ .p.name = "tta",
+ .p.long_name = NULL_IF_CONFIG_SMALL("TTA (True Audio)"),
+ .p.extensions = "tta",
.priv_data_size = sizeof(TTAContext),
.read_probe = tta_probe,
.read_header = tta_read_header,
.read_packet = tta_read_packet,
.read_seek = tta_read_seek,
- .extensions = "tta",
};
diff --git a/libavformat/tty.c b/libavformat/tty.c
index fbea3196fa..95b7200527 100644
--- a/libavformat/tty.c
+++ b/libavformat/tty.c
@@ -31,6 +31,7 @@
#include "libavutil/opt.h"
#include "libavutil/parseutils.h"
#include "avformat.h"
+#include "demux.h"
#include "internal.h"
#include "sauce.h"
@@ -178,14 +179,14 @@ static const AVClass tty_demuxer_class = {
.version = LIBAVUTIL_VERSION_INT,
};
-const AVInputFormat ff_tty_demuxer = {
- .name = "tty",
- .long_name = NULL_IF_CONFIG_SMALL("Tele-typewriter"),
+const FFInputFormat ff_tty_demuxer = {
+ .p.name = "tty",
+ .p.long_name = NULL_IF_CONFIG_SMALL("Tele-typewriter"),
+ .p.extensions = tty_extensions,
+ .p.priv_class = &tty_demuxer_class,
+ .p.flags = AVFMT_GENERIC_INDEX,
.priv_data_size = sizeof(TtyDemuxContext),
.read_probe = read_probe,
.read_header = read_header,
.read_packet = read_packet,
- .extensions = tty_extensions,
- .priv_class = &tty_demuxer_class,
- .flags = AVFMT_GENERIC_INDEX,
};
diff --git a/libavformat/txd.c b/libavformat/txd.c
index 93db883087..4486db5e44 100644
--- a/libavformat/txd.c
+++ b/libavformat/txd.c
@@ -21,6 +21,7 @@
#include "libavutil/intreadwrite.h"
#include "avformat.h"
+#include "demux.h"
#include "internal.h"
#define TXD_FILE 0x16
@@ -92,9 +93,9 @@ next_chunk:
return 0;
}
-const AVInputFormat ff_txd_demuxer = {
- .name = "txd",
- .long_name = NULL_IF_CONFIG_SMALL("Renderware TeXture Dictionary"),
+const FFInputFormat ff_txd_demuxer = {
+ .p.name = "txd",
+ .p.long_name = NULL_IF_CONFIG_SMALL("Renderware TeXture Dictionary"),
.read_probe = txd_probe,
.read_header = txd_read_header,
.read_packet = txd_read_packet,
diff --git a/libavformat/ty.c b/libavformat/ty.c
index 760dfda54c..71707f750f 100644
--- a/libavformat/ty.c
+++ b/libavformat/ty.c
@@ -25,6 +25,7 @@
#include "libavutil/intreadwrite.h"
#include "avformat.h"
+#include "demux.h"
#include "internal.h"
#include "mpeg.h"
@@ -710,14 +711,14 @@ static int ty_read_close(AVFormatContext *s)
return 0;
}
-const AVInputFormat ff_ty_demuxer = {
- .name = "ty",
- .long_name = NULL_IF_CONFIG_SMALL("TiVo TY Stream"),
+const FFInputFormat ff_ty_demuxer = {
+ .p.name = "ty",
+ .p.long_name = NULL_IF_CONFIG_SMALL("TiVo TY Stream"),
+ .p.extensions = "ty,ty+",
+ .p.flags = AVFMT_TS_DISCONT,
.priv_data_size = sizeof(TYDemuxContext),
.read_probe = ty_probe,
.read_header = ty_read_header,
.read_packet = ty_read_packet,
.read_close = ty_read_close,
- .extensions = "ty,ty+",
- .flags = AVFMT_TS_DISCONT,
};
diff --git a/libavformat/usmdec.c b/libavformat/usmdec.c
index ee403e7a84..0c4e8d41be 100644
--- a/libavformat/usmdec.c
+++ b/libavformat/usmdec.c
@@ -414,14 +414,14 @@ static int usm_read_close(AVFormatContext *s)
return 0;
}
-const AVInputFormat ff_usm_demuxer = {
- .name = "usm",
- .long_name = NULL_IF_CONFIG_SMALL("CRI USM"),
+const FFInputFormat ff_usm_demuxer = {
+ .p.name = "usm",
+ .p.long_name = NULL_IF_CONFIG_SMALL("CRI USM"),
+ .p.extensions = "usm",
+ .p.flags = AVFMT_GENERIC_INDEX | AVFMT_NO_BYTE_SEEK | AVFMT_NOBINSEARCH,
.priv_data_size = sizeof(USMDemuxContext),
.read_probe = usm_probe,
.read_header = usm_read_header,
.read_packet = usm_read_packet,
.read_close = usm_read_close,
- .extensions = "usm",
- .flags = AVFMT_GENERIC_INDEX | AVFMT_NO_BYTE_SEEK | AVFMT_NOBINSEARCH,
};
diff --git a/libavformat/vag.c b/libavformat/vag.c
index b3aa1c5b93..b5f2c7b5d9 100644
--- a/libavformat/vag.c
+++ b/libavformat/vag.c
@@ -21,6 +21,7 @@
#include "libavutil/channel_layout.h"
#include "avformat.h"
+#include "demux.h"
#include "internal.h"
static int vag_probe(const AVProbeData *p)
@@ -73,11 +74,11 @@ static int vag_read_packet(AVFormatContext *s, AVPacket *pkt)
return av_get_packet(s->pb, pkt, par->block_align);
}
-const AVInputFormat ff_vag_demuxer = {
- .name = "vag",
- .long_name = NULL_IF_CONFIG_SMALL("Sony PS2 VAG"),
+const FFInputFormat ff_vag_demuxer = {
+ .p.name = "vag",
+ .p.long_name = NULL_IF_CONFIG_SMALL("Sony PS2 VAG"),
+ .p.extensions = "vag",
.read_probe = vag_probe,
.read_header = vag_read_header,
.read_packet = vag_read_packet,
- .extensions = "vag",
};
diff --git a/libavformat/vapoursynth.c b/libavformat/vapoursynth.c
index b79ecfcf1b..e300392a8a 100644
--- a/libavformat/vapoursynth.c
+++ b/libavformat/vapoursynth.c
@@ -36,6 +36,7 @@
#include "libavutil/opt.h"
#include "libavutil/pixdesc.h"
#include "avformat.h"
+#include "demux.h"
#include "internal.h"
struct VSState {
@@ -480,9 +481,10 @@ static const AVClass class_vs = {
.version = LIBAVUTIL_VERSION_INT,
};
-const AVInputFormat ff_vapoursynth_demuxer = {
- .name = "vapoursynth",
- .long_name = NULL_IF_CONFIG_SMALL("VapourSynth demuxer"),
+const FFInputFormat ff_vapoursynth_demuxer = {
+ .p.name = "vapoursynth",
+ .p.long_name = NULL_IF_CONFIG_SMALL("VapourSynth demuxer"),
+ .p.priv_class = &class_vs,
.priv_data_size = sizeof(VSContext),
.flags_internal = FF_FMT_INIT_CLEANUP,
.read_probe = probe_vs,
@@ -490,5 +492,4 @@ const AVInputFormat ff_vapoursynth_demuxer = {
.read_packet = read_packet_vs,
.read_close = read_close_vs,
.read_seek = read_seek_vs,
- .priv_class = &class_vs,
};
diff --git a/libavformat/vc1test.c b/libavformat/vc1test.c
index f63ffee69b..394a70c1ac 100644
--- a/libavformat/vc1test.c
+++ b/libavformat/vc1test.c
@@ -117,12 +117,12 @@ static int vc1t_read_packet(AVFormatContext *s,
return pkt->size;
}
-const AVInputFormat ff_vc1t_demuxer = {
- .name = "vc1test",
- .long_name = NULL_IF_CONFIG_SMALL("VC-1 test bitstream"),
+const FFInputFormat ff_vc1t_demuxer = {
+ .p.name = "vc1test",
+ .p.long_name = NULL_IF_CONFIG_SMALL("VC-1 test bitstream"),
+ .p.extensions = "rcv",
+ .p.flags = AVFMT_GENERIC_INDEX,
.read_probe = vc1t_probe,
.read_header = vc1t_read_header,
.read_packet = vc1t_read_packet,
- .extensions = "rcv",
- .flags = AVFMT_GENERIC_INDEX,
};
diff --git a/libavformat/vividas.c b/libavformat/vividas.c
index 2f47d65c7c..98bf134f25 100644
--- a/libavformat/vividas.c
+++ b/libavformat/vividas.c
@@ -32,6 +32,7 @@
#include "libavutil/intreadwrite.h"
#include "avio_internal.h"
#include "avformat.h"
+#include "demux.h"
#include "internal.h"
#define MAX_AUDIO_SUBPACKETS 100
@@ -790,9 +791,9 @@ static int viv_read_seek(AVFormatContext *s, int stream_index, int64_t timestamp
return 0;
}
-const AVInputFormat ff_vividas_demuxer = {
- .name = "vividas",
- .long_name = NULL_IF_CONFIG_SMALL("Vividas VIV"),
+const FFInputFormat ff_vividas_demuxer = {
+ .p.name = "vividas",
+ .p.long_name = NULL_IF_CONFIG_SMALL("Vividas VIV"),
.priv_data_size = sizeof(VividasDemuxContext),
.flags_internal = FF_FMT_INIT_CLEANUP,
.read_probe = viv_probe,
diff --git a/libavformat/vivo.c b/libavformat/vivo.c
index 02df4f0013..76aa4a21c2 100644
--- a/libavformat/vivo.c
+++ b/libavformat/vivo.c
@@ -29,6 +29,7 @@
#include "libavutil/avstring.h"
#include "libavutil/parseutils.h"
#include "avformat.h"
+#include "demux.h"
#include "internal.h"
typedef struct VivoContext {
@@ -314,12 +315,12 @@ restart:
return ret;
}
-const AVInputFormat ff_vivo_demuxer = {
- .name = "vivo",
- .long_name = NULL_IF_CONFIG_SMALL("Vivo"),
+const FFInputFormat ff_vivo_demuxer = {
+ .p.name = "vivo",
+ .p.long_name = NULL_IF_CONFIG_SMALL("Vivo"),
+ .p.extensions = "viv",
.priv_data_size = sizeof(VivoContext),
.read_probe = vivo_probe,
.read_header = vivo_read_header,
.read_packet = vivo_read_packet,
- .extensions = "viv",
};
diff --git a/libavformat/vocdec.c b/libavformat/vocdec.c
index f235d7635b..195f06b746 100644
--- a/libavformat/vocdec.c
+++ b/libavformat/vocdec.c
@@ -20,6 +20,7 @@
*/
#include "libavutil/intreadwrite.h"
+#include "demux.h"
#include "voc.h"
#include "internal.h"
@@ -100,13 +101,13 @@ static int voc_read_seek(AVFormatContext *s, int stream_index,
return -1;
}
-const AVInputFormat ff_voc_demuxer = {
- .name = "voc",
- .long_name = NULL_IF_CONFIG_SMALL("Creative Voice"),
+const FFInputFormat ff_voc_demuxer = {
+ .p.name = "voc",
+ .p.long_name = NULL_IF_CONFIG_SMALL("Creative Voice"),
+ .p.codec_tag = ff_voc_codec_tags_list,
.priv_data_size = sizeof(VocDecContext),
.read_probe = voc_probe,
.read_header = voc_read_header,
.read_packet = voc_read_packet,
.read_seek = voc_read_seek,
- .codec_tag = ff_voc_codec_tags_list,
};
diff --git a/libavformat/vpk.c b/libavformat/vpk.c
index bfd49c6307..001ad33555 100644
--- a/libavformat/vpk.c
+++ b/libavformat/vpk.c
@@ -135,13 +135,13 @@ static int vpk_read_seek(AVFormatContext *s, int stream_index,
return 0;
}
-const AVInputFormat ff_vpk_demuxer = {
- .name = "vpk",
- .long_name = NULL_IF_CONFIG_SMALL("Sony PS2 VPK"),
+const FFInputFormat ff_vpk_demuxer = {
+ .p.name = "vpk",
+ .p.long_name = NULL_IF_CONFIG_SMALL("Sony PS2 VPK"),
+ .p.extensions = "vpk",
.priv_data_size = sizeof(VPKDemuxContext),
.read_probe = vpk_probe,
.read_header = vpk_read_header,
.read_packet = vpk_read_packet,
.read_seek = vpk_read_seek,
- .extensions = "vpk",
};
diff --git a/libavformat/vplayerdec.c b/libavformat/vplayerdec.c
index b37f6c8f64..cd6b3d6c3a 100644
--- a/libavformat/vplayerdec.c
+++ b/libavformat/vplayerdec.c
@@ -24,6 +24,7 @@
*/
#include "avformat.h"
+#include "demux.h"
#include "internal.h"
#include "subtitles.h"
@@ -95,14 +96,14 @@ static int vplayer_read_header(AVFormatContext *s)
return 0;
}
-const AVInputFormat ff_vplayer_demuxer = {
- .name = "vplayer",
- .long_name = NULL_IF_CONFIG_SMALL("VPlayer subtitles"),
+const FFInputFormat ff_vplayer_demuxer = {
+ .p.name = "vplayer",
+ .p.long_name = NULL_IF_CONFIG_SMALL("VPlayer subtitles"),
+ .p.extensions = "txt",
.priv_data_size = sizeof(VPlayerContext),
.flags_internal = FF_FMT_INIT_CLEANUP,
.read_probe = vplayer_probe,
.read_header = vplayer_read_header,
- .extensions = "txt",
.read_packet = ff_subtitles_read_packet,
.read_seek2 = ff_subtitles_read_seek,
.read_close = ff_subtitles_read_close,
diff --git a/libavformat/vqf.c b/libavformat/vqf.c
index 1671d03b2c..4c7f5aa22e 100644
--- a/libavformat/vqf.c
+++ b/libavformat/vqf.c
@@ -20,6 +20,7 @@
*/
#include "avformat.h"
+#include "demux.h"
#include "internal.h"
#include "libavutil/intreadwrite.h"
#include "libavutil/dict.h"
@@ -287,13 +288,13 @@ static int vqf_read_seek(AVFormatContext *s,
return 0;
}
-const AVInputFormat ff_vqf_demuxer = {
- .name = "vqf",
- .long_name = NULL_IF_CONFIG_SMALL("Nippon Telegraph and Telephone Corporation (NTT) TwinVQ"),
+const FFInputFormat ff_vqf_demuxer = {
+ .p.name = "vqf",
+ .p.long_name = NULL_IF_CONFIG_SMALL("Nippon Telegraph and Telephone Corporation (NTT) TwinVQ"),
+ .p.extensions = "vqf,vql,vqe",
.priv_data_size = sizeof(VqfContext),
.read_probe = vqf_probe,
.read_header = vqf_read_header,
.read_packet = vqf_read_packet,
.read_seek = vqf_read_seek,
- .extensions = "vqf,vql,vqe",
};
diff --git a/libavformat/wady.c b/libavformat/wady.c
index bd9b64f514..6dcc0018f3 100644
--- a/libavformat/wady.c
+++ b/libavformat/wady.c
@@ -75,13 +75,13 @@ static int wady_read_header(AVFormatContext *s)
return 0;
}
-const AVInputFormat ff_wady_demuxer = {
- .name = "wady",
- .long_name = NULL_IF_CONFIG_SMALL("Marble WADY"),
+const FFInputFormat ff_wady_demuxer = {
+ .p.name = "wady",
+ .p.long_name = NULL_IF_CONFIG_SMALL("Marble WADY"),
+ .p.flags = AVFMT_GENERIC_INDEX,
+ .p.extensions = "way",
.read_probe = wady_probe,
.read_header = wady_read_header,
.read_packet = ff_pcm_read_packet,
.read_seek = ff_pcm_read_seek,
- .flags = AVFMT_GENERIC_INDEX,
- .extensions = "way",
};
diff --git a/libavformat/wavarc.c b/libavformat/wavarc.c
index 542a2abbc1..9d7029f209 100644
--- a/libavformat/wavarc.c
+++ b/libavformat/wavarc.c
@@ -133,14 +133,14 @@ static int wavarc_read_packet(AVFormatContext *s, AVPacket *pkt)
return ret;
}
-const AVInputFormat ff_wavarc_demuxer = {
- .name = "wavarc",
- .long_name = NULL_IF_CONFIG_SMALL("Waveform Archiver"),
+const FFInputFormat ff_wavarc_demuxer = {
+ .p.name = "wavarc",
+ .p.long_name = NULL_IF_CONFIG_SMALL("Waveform Archiver"),
+ .p.flags = AVFMT_NOBINSEARCH | AVFMT_NOGENSEARCH | AVFMT_NO_BYTE_SEEK | AVFMT_NOTIMESTAMPS,
+ .p.extensions = "wa",
.priv_data_size = sizeof(WavArcContext),
.read_probe = wavarc_probe,
.read_packet = wavarc_read_packet,
- .flags = AVFMT_NOBINSEARCH | AVFMT_NOGENSEARCH | AVFMT_NO_BYTE_SEEK | AVFMT_NOTIMESTAMPS,
.read_header = wavarc_read_header,
- .extensions = "wa",
.raw_codec_id = AV_CODEC_ID_WAVARC,
};
diff --git a/libavformat/wavdec.c b/libavformat/wavdec.c
index 0c6629b157..8cd4beec26 100644
--- a/libavformat/wavdec.c
+++ b/libavformat/wavdec.c
@@ -828,17 +828,17 @@ static const AVClass wav_demuxer_class = {
.option = demux_options,
.version = LIBAVUTIL_VERSION_INT,
};
-const AVInputFormat ff_wav_demuxer = {
- .name = "wav",
- .long_name = NULL_IF_CONFIG_SMALL("WAV / WAVE (Waveform Audio)"),
+const FFInputFormat ff_wav_demuxer = {
+ .p.name = "wav",
+ .p.long_name = NULL_IF_CONFIG_SMALL("WAV / WAVE (Waveform Audio)"),
+ .p.flags = AVFMT_GENERIC_INDEX,
+ .p.codec_tag = ff_wav_codec_tags_list,
+ .p.priv_class = &wav_demuxer_class,
.priv_data_size = sizeof(WAVDemuxContext),
.read_probe = wav_probe,
.read_header = wav_read_header,
.read_packet = wav_read_packet,
.read_seek = wav_read_seek,
- .flags = AVFMT_GENERIC_INDEX,
- .codec_tag = ff_wav_codec_tags_list,
- .priv_class = &wav_demuxer_class,
};
#endif /* CONFIG_WAV_DEMUXER */
@@ -992,16 +992,16 @@ static const AVClass w64_demuxer_class = {
.version = LIBAVUTIL_VERSION_INT,
};
-const AVInputFormat ff_w64_demuxer = {
- .name = "w64",
- .long_name = NULL_IF_CONFIG_SMALL("Sony Wave64"),
+const FFInputFormat ff_w64_demuxer = {
+ .p.name = "w64",
+ .p.long_name = NULL_IF_CONFIG_SMALL("Sony Wave64"),
+ .p.flags = AVFMT_GENERIC_INDEX,
+ .p.codec_tag = ff_wav_codec_tags_list,
+ .p.priv_class = &w64_demuxer_class,
.priv_data_size = sizeof(WAVDemuxContext),
.read_probe = w64_probe,
.read_header = w64_read_header,
.read_packet = wav_read_packet,
.read_seek = wav_read_seek,
- .flags = AVFMT_GENERIC_INDEX,
- .codec_tag = ff_wav_codec_tags_list,
- .priv_class = &w64_demuxer_class,
};
#endif /* CONFIG_W64_DEMUXER */
diff --git a/libavformat/wc3movie.c b/libavformat/wc3movie.c
index 8f5c2f18cd..022b276fbd 100644
--- a/libavformat/wc3movie.c
+++ b/libavformat/wc3movie.c
@@ -32,6 +32,7 @@
#include "libavutil/intreadwrite.h"
#include "libavutil/dict.h"
#include "avformat.h"
+#include "demux.h"
#include "internal.h"
#define FORM_TAG MKTAG('F', 'O', 'R', 'M')
@@ -293,9 +294,9 @@ static int wc3_read_packet(AVFormatContext *s,
return ret;
}
-const AVInputFormat ff_wc3_demuxer = {
- .name = "wc3movie",
- .long_name = NULL_IF_CONFIG_SMALL("Wing Commander III movie"),
+const FFInputFormat ff_wc3_demuxer = {
+ .p.name = "wc3movie",
+ .p.long_name = NULL_IF_CONFIG_SMALL("Wing Commander III movie"),
.priv_data_size = sizeof(Wc3DemuxContext),
.flags_internal = FF_FMT_INIT_CLEANUP,
.read_probe = wc3_probe,
diff --git a/libavformat/webvttdec.c b/libavformat/webvttdec.c
index 0b2fc77168..661cbdb30f 100644
--- a/libavformat/webvttdec.c
+++ b/libavformat/webvttdec.c
@@ -25,6 +25,7 @@
*/
#include "avformat.h"
+#include "demux.h"
#include "internal.h"
#include "subtitles.h"
#include "libavutil/bprint.h"
@@ -210,9 +211,11 @@ static const AVClass webvtt_demuxer_class = {
.version = LIBAVUTIL_VERSION_INT,
};
-const AVInputFormat ff_webvtt_demuxer = {
- .name = "webvtt",
- .long_name = NULL_IF_CONFIG_SMALL("WebVTT subtitle"),
+const FFInputFormat ff_webvtt_demuxer = {
+ .p.name = "webvtt",
+ .p.long_name = NULL_IF_CONFIG_SMALL("WebVTT subtitle"),
+ .p.extensions = "vtt",
+ .p.priv_class = &webvtt_demuxer_class,
.priv_data_size = sizeof(WebVTTContext),
.flags_internal = FF_FMT_INIT_CLEANUP,
.read_probe = webvtt_probe,
@@ -220,6 +223,4 @@ const AVInputFormat ff_webvtt_demuxer = {
.read_packet = webvtt_read_packet,
.read_seek2 = webvtt_read_seek,
.read_close = webvtt_read_close,
- .extensions = "vtt",
- .priv_class = &webvtt_demuxer_class,
};
diff --git a/libavformat/westwood_aud.c b/libavformat/westwood_aud.c
index 9896bd46df..f83913a22f 100644
--- a/libavformat/westwood_aud.c
+++ b/libavformat/westwood_aud.c
@@ -36,6 +36,7 @@
#include "libavutil/channel_layout.h"
#include "libavutil/intreadwrite.h"
#include "avformat.h"
+#include "demux.h"
#include "internal.h"
#define AUD_HEADER_SIZE 12
@@ -176,9 +177,9 @@ static int wsaud_read_packet(AVFormatContext *s,
return ret;
}
-const AVInputFormat ff_wsaud_demuxer = {
- .name = "wsaud",
- .long_name = NULL_IF_CONFIG_SMALL("Westwood Studios audio"),
+const FFInputFormat ff_wsaud_demuxer = {
+ .p.name = "wsaud",
+ .p.long_name = NULL_IF_CONFIG_SMALL("Westwood Studios audio"),
.read_probe = wsaud_probe,
.read_header = wsaud_read_header,
.read_packet = wsaud_read_packet,
diff --git a/libavformat/westwood_vqa.c b/libavformat/westwood_vqa.c
index 03b2d9e03c..954710a6f0 100644
--- a/libavformat/westwood_vqa.c
+++ b/libavformat/westwood_vqa.c
@@ -317,9 +317,9 @@ static int wsvqa_read_packet(AVFormatContext *s,
return ret;
}
-const AVInputFormat ff_wsvqa_demuxer = {
- .name = "wsvqa",
- .long_name = NULL_IF_CONFIG_SMALL("Westwood Studios VQA"),
+const FFInputFormat ff_wsvqa_demuxer = {
+ .p.name = "wsvqa",
+ .p.long_name = NULL_IF_CONFIG_SMALL("Westwood Studios VQA"),
.priv_data_size = sizeof(WsVqaDemuxContext),
.read_probe = wsvqa_probe,
.read_header = wsvqa_read_header,
diff --git a/libavformat/wsddec.c b/libavformat/wsddec.c
index 8153d898dd..f9408be5ec 100644
--- a/libavformat/wsddec.c
+++ b/libavformat/wsddec.c
@@ -23,6 +23,7 @@
#include "libavutil/intreadwrite.h"
#include "libavutil/timecode.h"
#include "avformat.h"
+#include "demux.h"
#include "internal.h"
#include "rawdec.h"
@@ -165,15 +166,15 @@ static int wsd_read_header(AVFormatContext *s)
return avio_seek(pb, data_offset, SEEK_SET);
}
-const AVInputFormat ff_wsd_demuxer = {
- .name = "wsd",
- .long_name = NULL_IF_CONFIG_SMALL("Wideband Single-bit Data (WSD)"),
+const FFInputFormat ff_wsd_demuxer = {
+ .p.name = "wsd",
+ .p.long_name = NULL_IF_CONFIG_SMALL("Wideband Single-bit Data (WSD)"),
+ .p.extensions = "wsd",
+ .p.flags = AVFMT_GENERIC_INDEX | AVFMT_NO_BYTE_SEEK,
+ .p.priv_class = &ff_raw_demuxer_class,
.read_probe = wsd_probe,
.read_header = wsd_read_header,
.read_packet = ff_raw_read_partial_packet,
- .extensions = "wsd",
- .flags = AVFMT_GENERIC_INDEX | AVFMT_NO_BYTE_SEEK,
.raw_codec_id = AV_CODEC_ID_DSD_MSBF,
.priv_data_size = sizeof(FFRawDemuxerContext),
- .priv_class = &ff_raw_demuxer_class,
};
diff --git a/libavformat/wtvdec.c b/libavformat/wtvdec.c
index e70470f79b..f41b0f2c68 100644
--- a/libavformat/wtvdec.c
+++ b/libavformat/wtvdec.c
@@ -1117,14 +1117,14 @@ static int read_close(AVFormatContext *s)
return 0;
}
-const AVInputFormat ff_wtv_demuxer = {
- .name = "wtv",
- .long_name = NULL_IF_CONFIG_SMALL("Windows Television (WTV)"),
+const FFInputFormat ff_wtv_demuxer = {
+ .p.name = "wtv",
+ .p.long_name = NULL_IF_CONFIG_SMALL("Windows Television (WTV)"),
+ .p.flags = AVFMT_SHOW_IDS,
.priv_data_size = sizeof(WtvContext),
.read_probe = read_probe,
.read_header = read_header,
.read_packet = read_packet,
.read_seek = read_seek,
.read_close = read_close,
- .flags = AVFMT_SHOW_IDS,
};
diff --git a/libavformat/wvdec.c b/libavformat/wvdec.c
index 61a683a85e..b25c1eee83 100644
--- a/libavformat/wvdec.c
+++ b/libavformat/wvdec.c
@@ -23,6 +23,7 @@
#include "libavutil/intreadwrite.h"
#include "libavutil/dict.h"
#include "avformat.h"
+#include "demux.h"
#include "internal.h"
#include "apetag.h"
#include "id3v1.h"
@@ -328,12 +329,12 @@ static int wv_read_packet(AVFormatContext *s, AVPacket *pkt)
return 0;
}
-const AVInputFormat ff_wv_demuxer = {
- .name = "wv",
- .long_name = NULL_IF_CONFIG_SMALL("WavPack"),
+const FFInputFormat ff_wv_demuxer = {
+ .p.name = "wv",
+ .p.long_name = NULL_IF_CONFIG_SMALL("WavPack"),
+ .p.flags = AVFMT_GENERIC_INDEX,
.priv_data_size = sizeof(WVContext),
.read_probe = wv_probe,
.read_header = wv_read_header,
.read_packet = wv_read_packet,
- .flags = AVFMT_GENERIC_INDEX,
};
diff --git a/libavformat/wvedec.c b/libavformat/wvedec.c
index 52b3099f73..43e6359892 100644
--- a/libavformat/wvedec.c
+++ b/libavformat/wvedec.c
@@ -19,6 +19,7 @@
*/
#include "avformat.h"
+#include "demux.h"
#include "internal.h"
#include "pcm.h"
@@ -53,9 +54,9 @@ static int wve_read_header(AVFormatContext *s)
return 0;
}
-const AVInputFormat ff_wve_demuxer = {
- .name = "wve",
- .long_name = NULL_IF_CONFIG_SMALL("Psion 3 audio"),
+const FFInputFormat ff_wve_demuxer = {
+ .p.name = "wve",
+ .p.long_name = NULL_IF_CONFIG_SMALL("Psion 3 audio"),
.read_probe = wve_probe,
.read_header = wve_read_header,
.read_packet = ff_pcm_read_packet,
diff --git a/libavformat/xa.c b/libavformat/xa.c
index ec9fcbc94c..395af54afc 100644
--- a/libavformat/xa.c
+++ b/libavformat/xa.c
@@ -29,6 +29,7 @@
#include "libavutil/intreadwrite.h"
#include "avformat.h"
+#include "demux.h"
#include "internal.h"
#define XA00_TAG MKTAG('X', 'A', 0, 0)
@@ -121,9 +122,9 @@ static int xa_read_packet(AVFormatContext *s,
return ret;
}
-const AVInputFormat ff_xa_demuxer = {
- .name = "xa",
- .long_name = NULL_IF_CONFIG_SMALL("Maxis XA"),
+const FFInputFormat ff_xa_demuxer = {
+ .p.name = "xa",
+ .p.long_name = NULL_IF_CONFIG_SMALL("Maxis XA"),
.priv_data_size = sizeof(MaxisXADemuxContext),
.read_probe = xa_probe,
.read_header = xa_read_header,
diff --git a/libavformat/xmd.c b/libavformat/xmd.c
index f9c8138d72..d8368cd882 100644
--- a/libavformat/xmd.c
+++ b/libavformat/xmd.c
@@ -69,12 +69,12 @@ static int xmd_read_header(AVFormatContext *s)
return 0;
}
-const AVInputFormat ff_xmd_demuxer = {
- .name = "xmd",
- .long_name = NULL_IF_CONFIG_SMALL("Konami XMD"),
+const FFInputFormat ff_xmd_demuxer = {
+ .p.name = "xmd",
+ .p.long_name = NULL_IF_CONFIG_SMALL("Konami XMD"),
+ .p.flags = AVFMT_GENERIC_INDEX,
+ .p.extensions = "xmd",
.read_probe = xmd_probe,
.read_header = xmd_read_header,
.read_packet = ff_pcm_read_packet,
- .flags = AVFMT_GENERIC_INDEX,
- .extensions = "xmd",
};
diff --git a/libavformat/xmv.c b/libavformat/xmv.c
index 4bff63297a..e2c4c7f93e 100644
--- a/libavformat/xmv.c
+++ b/libavformat/xmv.c
@@ -30,6 +30,7 @@
#include "libavutil/intreadwrite.h"
#include "avformat.h"
+#include "demux.h"
#include "internal.h"
#include "riff.h"
#include "libavutil/avassert.h"
@@ -575,10 +576,10 @@ static int xmv_read_packet(AVFormatContext *s,
return 0;
}
-const AVInputFormat ff_xmv_demuxer = {
- .name = "xmv",
- .long_name = NULL_IF_CONFIG_SMALL("Microsoft XMV"),
- .extensions = "xmv",
+const FFInputFormat ff_xmv_demuxer = {
+ .p.name = "xmv",
+ .p.long_name = NULL_IF_CONFIG_SMALL("Microsoft XMV"),
+ .p.extensions = "xmv",
.priv_data_size = sizeof(XMVDemuxContext),
.flags_internal = FF_FMT_INIT_CLEANUP,
.read_probe = xmv_probe,
diff --git a/libavformat/xvag.c b/libavformat/xvag.c
index f8a83f258c..c3c39490e6 100644
--- a/libavformat/xvag.c
+++ b/libavformat/xvag.c
@@ -22,6 +22,7 @@
#include "libavutil/bswap.h"
#include "libavcodec/internal.h"
#include "avformat.h"
+#include "demux.h"
#include "internal.h"
static int xvag_probe(const AVProbeData *p)
@@ -104,11 +105,11 @@ static int xvag_read_packet(AVFormatContext *s, AVPacket *pkt)
return av_get_packet(s->pb, pkt, par->block_align);
}
-const AVInputFormat ff_xvag_demuxer = {
- .name = "xvag",
- .long_name = NULL_IF_CONFIG_SMALL("Sony PS3 XVAG"),
+const FFInputFormat ff_xvag_demuxer = {
+ .p.name = "xvag",
+ .p.long_name = NULL_IF_CONFIG_SMALL("Sony PS3 XVAG"),
+ .p.extensions = "xvag",
.read_probe = xvag_probe,
.read_header = xvag_read_header,
.read_packet = xvag_read_packet,
- .extensions = "xvag",
};
diff --git a/libavformat/xwma.c b/libavformat/xwma.c
index b830f9ed75..525baee6f5 100644
--- a/libavformat/xwma.c
+++ b/libavformat/xwma.c
@@ -23,6 +23,7 @@
#include <stdint.h>
#include "avformat.h"
+#include "demux.h"
#include "internal.h"
#include "riff.h"
@@ -313,9 +314,9 @@ static int xwma_read_packet(AVFormatContext *s, AVPacket *pkt)
return ret;
}
-const AVInputFormat ff_xwma_demuxer = {
- .name = "xwma",
- .long_name = NULL_IF_CONFIG_SMALL("Microsoft xWMA"),
+const FFInputFormat ff_xwma_demuxer = {
+ .p.name = "xwma",
+ .p.long_name = NULL_IF_CONFIG_SMALL("Microsoft xWMA"),
.priv_data_size = sizeof(XWMAContext),
.read_probe = xwma_probe,
.read_header = xwma_read_header,
diff --git a/libavformat/yop.c b/libavformat/yop.c
index 8fdad6899b..fd11acafc1 100644
--- a/libavformat/yop.c
+++ b/libavformat/yop.c
@@ -204,15 +204,15 @@ static int yop_read_seek(AVFormatContext *s, int stream_index,
return 0;
}
-const AVInputFormat ff_yop_demuxer = {
- .name = "yop",
- .long_name = NULL_IF_CONFIG_SMALL("Psygnosis YOP"),
+const FFInputFormat ff_yop_demuxer = {
+ .p.name = "yop",
+ .p.long_name = NULL_IF_CONFIG_SMALL("Psygnosis YOP"),
+ .p.extensions = "yop",
+ .p.flags = AVFMT_GENERIC_INDEX,
.priv_data_size = sizeof(YopDecContext),
.read_probe = yop_probe,
.read_header = yop_read_header,
.read_packet = yop_read_packet,
.read_close = yop_read_close,
.read_seek = yop_read_seek,
- .extensions = "yop",
- .flags = AVFMT_GENERIC_INDEX,
};
diff --git a/libavformat/yuv4mpegdec.c b/libavformat/yuv4mpegdec.c
index c0972af7de..2b66a1e596 100644
--- a/libavformat/yuv4mpegdec.c
+++ b/libavformat/yuv4mpegdec.c
@@ -23,6 +23,7 @@
#include "libavutil/imgutils.h"
#include "avformat.h"
+#include "demux.h"
#include "internal.h"
#include "yuv4mpeg.h"
@@ -323,12 +324,12 @@ static int yuv4_probe(const AVProbeData *pd)
return 0;
}
-const AVInputFormat ff_yuv4mpegpipe_demuxer = {
- .name = "yuv4mpegpipe",
- .long_name = NULL_IF_CONFIG_SMALL("YUV4MPEG pipe"),
+const FFInputFormat ff_yuv4mpegpipe_demuxer = {
+ .p.name = "yuv4mpegpipe",
+ .p.long_name = NULL_IF_CONFIG_SMALL("YUV4MPEG pipe"),
+ .p.extensions = "y4m",
.read_probe = yuv4_probe,
.read_header = yuv4_read_header,
.read_packet = yuv4_read_packet,
.read_seek = yuv4_read_seek,
- .extensions = "y4m",
};
diff --git a/tools/probetest.c b/tools/probetest.c
index 6f0e002b74..e742d598b1 100644
--- a/tools/probetest.c
+++ b/tools/probetest.c
@@ -21,6 +21,7 @@
#include <stdlib.h>
#include "libavformat/avformat.h"
+#include "libavformat/demux.h"
#include "libavcodec/put_bits.h"
#include "libavutil/lfg.h"
#include "libavutil/timer.h"
@@ -44,12 +45,12 @@ static void probe(AVProbeData *pd, int type, int p, int size)
while ((fmt = av_demuxer_iterate(&fmt_opaque))) {
if (fmt->flags & AVFMT_NOFILE)
continue;
- if (fmt->read_probe &&
+ if (ffifmt(fmt)->read_probe &&
(!single_format || !strcmp(single_format, fmt->name))
) {
int score;
int64_t start = AV_READ_TIME();
- score = fmt->read_probe(pd);
+ score = ffifmt(fmt)->read_probe(pd);
time_array[i] += AV_READ_TIME() - start;
if (score > score_array[i] && score > AVPROBE_SCORE_MAX / 4) {
score_array[i] = score;
diff --git a/tools/target_dem_fuzzer.c b/tools/target_dem_fuzzer.c
index 32767a0182..76eed9f6a2 100644
--- a/tools/target_dem_fuzzer.c
+++ b/tools/target_dem_fuzzer.c
@@ -113,12 +113,12 @@ int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) {
static int c;
int seekable = 0;
int ret;
- AVInputFormat *fmt = NULL;
+ const AVInputFormat *fmt = NULL;
#ifdef FFMPEG_DEMUXER
#define DEMUXER_SYMBOL0(DEMUXER) ff_##DEMUXER##_demuxer
#define DEMUXER_SYMBOL(DEMUXER) DEMUXER_SYMBOL0(DEMUXER)
- extern AVInputFormat DEMUXER_SYMBOL(FFMPEG_DEMUXER);
- fmt = &DEMUXER_SYMBOL(FFMPEG_DEMUXER);
+ extern const FFInputFormat DEMUXER_SYMBOL(FFMPEG_DEMUXER);
+ fmt = &DEMUXER_SYMBOL(FFMPEG_DEMUXER).p;
#endif
if (!c) {
--
2.34.1
_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
To unsubscribe, visit link above, or email
ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".
^ permalink raw reply [flat|nested] 60+ messages in thread
* [FFmpeg-devel] [PATCH 26/27] avutil/opt: Don't use AV_OPT_TYPE_FLAGS for sentinels
2024-01-25 13:43 [FFmpeg-devel] [PATCH 00/24] Major library version bump James Almer
` (26 preceding siblings ...)
2024-02-10 14:50 ` [FFmpeg-devel] [PATCH 25/27] avformat/avformat: Add FFInputFormat, hide internals of AVInputFormat Andreas Rheinhardt
@ 2024-02-10 14:50 ` Andreas Rheinhardt
2024-02-10 14:50 ` [FFmpeg-devel] [PATCH 27/27] avformat/demux: Use enum AVCodecID for raw_codec_id Andreas Rheinhardt
` (13 subsequent siblings)
41 siblings, 0 replies; 60+ messages in thread
From: Andreas Rheinhardt @ 2024-02-10 14:50 UTC (permalink / raw)
To: ffmpeg-devel; +Cc: Andreas Rheinhardt
Make AVOptionType start with 1 instead.
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
---
One could also add an AV_OPT_TYPE_NONE.
libavutil/opt.h | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/libavutil/opt.h b/libavutil/opt.h
index 3ceb4f86eb..0f84cc53e1 100644
--- a/libavutil/opt.h
+++ b/libavutil/opt.h
@@ -221,7 +221,7 @@
*/
enum AVOptionType{
- AV_OPT_TYPE_FLAGS,
+ AV_OPT_TYPE_FLAGS = 1,
AV_OPT_TYPE_INT,
AV_OPT_TYPE_INT64,
AV_OPT_TYPE_DOUBLE,
--
2.34.1
_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
To unsubscribe, visit link above, or email
ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".
^ permalink raw reply [flat|nested] 60+ messages in thread
* [FFmpeg-devel] [PATCH 27/27] avformat/demux: Use enum AVCodecID for raw_codec_id
2024-01-25 13:43 [FFmpeg-devel] [PATCH 00/24] Major library version bump James Almer
` (27 preceding siblings ...)
2024-02-10 14:50 ` [FFmpeg-devel] [PATCH 26/27] avutil/opt: Don't use AV_OPT_TYPE_FLAGS for sentinels Andreas Rheinhardt
@ 2024-02-10 14:50 ` Andreas Rheinhardt
2024-02-10 23:04 ` [FFmpeg-devel] [PATCH 28/35] avfilter/avfilter: Avoid allocation for AVFilterInternal Andreas Rheinhardt
` (12 subsequent siblings)
41 siblings, 0 replies; 60+ messages in thread
From: Andreas Rheinhardt @ 2024-02-10 14:50 UTC (permalink / raw)
To: ffmpeg-devel; +Cc: Andreas Rheinhardt
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
---
libavformat/demux.h | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/libavformat/demux.h b/libavformat/demux.h
index 41d1318f75..4e8d042e75 100644
--- a/libavformat/demux.h
+++ b/libavformat/demux.h
@@ -37,7 +37,7 @@ typedef struct FFInputFormat {
/**
* Raw demuxers store their codec ID here.
*/
- int raw_codec_id;
+ enum AVCodecID raw_codec_id;
/**
* Size of private data so that it can be allocated in the wrapper.
--
2.34.1
_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
To unsubscribe, visit link above, or email
ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".
^ permalink raw reply [flat|nested] 60+ messages in thread
* [FFmpeg-devel] [PATCH 28/35] avfilter/avfilter: Avoid allocation for AVFilterInternal
2024-01-25 13:43 [FFmpeg-devel] [PATCH 00/24] Major library version bump James Almer
` (28 preceding siblings ...)
2024-02-10 14:50 ` [FFmpeg-devel] [PATCH 27/27] avformat/demux: Use enum AVCodecID for raw_codec_id Andreas Rheinhardt
@ 2024-02-10 23:04 ` Andreas Rheinhardt
2024-02-10 23:04 ` [FFmpeg-devel] [PATCH 29/35] avfilter: Add a header for internal generic-layer APIs Andreas Rheinhardt
` (11 subsequent siblings)
41 siblings, 0 replies; 60+ messages in thread
From: Andreas Rheinhardt @ 2024-02-10 23:04 UTC (permalink / raw)
To: ffmpeg-devel; +Cc: Andreas Rheinhardt
To do this, allocate AVFilterInternal jointly with AVFilterContext
and rename it to FFFilterContext in the process (similarly to
AVStream/FFStream).
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
---
libavfilter/avfilter.c | 22 ++++++++++------------
libavfilter/avfilter.h | 7 -------
libavfilter/graphparser.c | 2 +-
libavfilter/internal.h | 16 +++++++++++++---
4 files changed, 24 insertions(+), 23 deletions(-)
diff --git a/libavfilter/avfilter.c b/libavfilter/avfilter.c
index befcda48cb..dbe6409274 100644
--- a/libavfilter/avfilter.c
+++ b/libavfilter/avfilter.c
@@ -159,7 +159,7 @@ int avfilter_link(AVFilterContext *src, unsigned srcpad,
src->outputs[srcpad] || dst->inputs[dstpad])
return AVERROR(EINVAL);
- if (!src->internal->initialized || !dst->internal->initialized) {
+ if (!fffilterctx(src)->initialized || !fffilterctx(dst)->initialized) {
av_log(src, AV_LOG_ERROR, "Filters must be initialized before linking.\n");
return AVERROR(EINVAL);
}
@@ -651,15 +651,17 @@ static int default_execute(AVFilterContext *ctx, avfilter_action_func *func, voi
AVFilterContext *ff_filter_alloc(const AVFilter *filter, const char *inst_name)
{
+ FFFilterContext *ctx;
AVFilterContext *ret;
int preinited = 0;
if (!filter)
return NULL;
- ret = av_mallocz(sizeof(AVFilterContext));
- if (!ret)
+ ctx = av_mallocz(sizeof(*ctx));
+ if (!ctx)
return NULL;
+ ret = &ctx->p;
ret->av_class = &avfilter_class;
ret->filter = filter;
@@ -681,10 +683,7 @@ AVFilterContext *ff_filter_alloc(const AVFilter *filter, const char *inst_name)
av_opt_set_defaults(ret->priv);
}
- ret->internal = av_mallocz(sizeof(*ret->internal));
- if (!ret->internal)
- goto err;
- ret->internal->execute = default_execute;
+ ctx->execute = default_execute;
ret->nb_inputs = filter->nb_inputs;
if (ret->nb_inputs ) {
@@ -718,7 +717,6 @@ err:
av_freep(&ret->output_pads);
ret->nb_outputs = 0;
av_freep(&ret->priv);
- av_freep(&ret->internal);
av_free(ret);
return NULL;
}
@@ -790,7 +788,6 @@ void avfilter_free(AVFilterContext *filter)
av_expr_free(filter->enable);
filter->enable = NULL;
av_freep(&filter->var_values);
- av_freep(&filter->internal);
av_free(filter);
}
@@ -874,9 +871,10 @@ int ff_filter_process_command(AVFilterContext *ctx, const char *cmd,
int avfilter_init_dict(AVFilterContext *ctx, AVDictionary **options)
{
+ FFFilterContext *ctxi = fffilterctx(ctx);
int ret = 0;
- if (ctx->internal->initialized) {
+ if (ctxi->initialized) {
av_log(ctx, AV_LOG_ERROR, "Filter already initialized\n");
return AVERROR(EINVAL);
}
@@ -891,7 +889,7 @@ int avfilter_init_dict(AVFilterContext *ctx, AVDictionary **options)
ctx->thread_type & ctx->graph->thread_type & AVFILTER_THREAD_SLICE &&
ctx->graph->internal->thread_execute) {
ctx->thread_type = AVFILTER_THREAD_SLICE;
- ctx->internal->execute = ctx->graph->internal->thread_execute;
+ ctxi->execute = ctx->graph->internal->thread_execute;
} else {
ctx->thread_type = 0;
}
@@ -907,7 +905,7 @@ int avfilter_init_dict(AVFilterContext *ctx, AVDictionary **options)
return ret;
}
- ctx->internal->initialized = 1;
+ ctxi->initialized = 1;
return 0;
}
diff --git a/libavfilter/avfilter.h b/libavfilter/avfilter.h
index a5d9398c9a..a3725b1516 100644
--- a/libavfilter/avfilter.h
+++ b/libavfilter/avfilter.h
@@ -403,8 +403,6 @@ unsigned avfilter_filter_pad_count(const AVFilter *filter, int is_output);
*/
#define AVFILTER_THREAD_SLICE (1 << 0)
-typedef struct AVFilterInternal AVFilterInternal;
-
/** An instance of a filter */
struct AVFilterContext {
const AVClass *av_class; ///< needed for av_log() and filters common options
@@ -443,11 +441,6 @@ struct AVFilterContext {
*/
int thread_type;
- /**
- * An opaque struct for libavfilter internal use.
- */
- AVFilterInternal *internal;
-
struct AVFilterCommand *command_queue;
char *enable_str; ///< enable expression string
diff --git a/libavfilter/graphparser.c b/libavfilter/graphparser.c
index 96ef6b15bf..229e647c0a 100644
--- a/libavfilter/graphparser.c
+++ b/libavfilter/graphparser.c
@@ -626,7 +626,7 @@ int avfilter_graph_segment_init(AVFilterGraphSegment *seg, int flags)
if (p->filter_name)
return fail_creation_pending(seg, p->filter_name, __func__);
- if (!p->filter || p->filter->internal->initialized)
+ if (!p->filter || fffilterctx(p->filter)->initialized)
continue;
ret = avfilter_init_dict(p->filter, NULL);
diff --git a/libavfilter/internal.h b/libavfilter/internal.h
index a6cdf9994c..3d46923cad 100644
--- a/libavfilter/internal.h
+++ b/libavfilter/internal.h
@@ -133,18 +133,28 @@ struct AVFilterGraphInternal {
FFFrameQueueGlobal frame_queues;
};
-struct AVFilterInternal {
+typedef struct FFFilterContext {
+ /**
+ * The public AVFilterContext. See avfilter.h for it.
+ */
+ AVFilterContext p;
+
avfilter_execute_func *execute;
// 1 when avfilter_init_*() was successfully called on this filter
// 0 otherwise
int initialized;
-};
+} FFFilterContext;
+
+static inline FFFilterContext *fffilterctx(AVFilterContext *ctx)
+{
+ return (FFFilterContext*)ctx;
+}
static av_always_inline int ff_filter_execute(AVFilterContext *ctx, avfilter_action_func *func,
void *arg, int *ret, int nb_jobs)
{
- return ctx->internal->execute(ctx, func, arg, ret, nb_jobs);
+ return fffilterctx(ctx)->execute(ctx, func, arg, ret, nb_jobs);
}
enum FilterFormatsState {
--
2.34.1
_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
To unsubscribe, visit link above, or email
ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".
^ permalink raw reply [flat|nested] 60+ messages in thread
* [FFmpeg-devel] [PATCH 29/35] avfilter: Add a header for internal generic-layer APIs
2024-01-25 13:43 [FFmpeg-devel] [PATCH 00/24] Major library version bump James Almer
` (29 preceding siblings ...)
2024-02-10 23:04 ` [FFmpeg-devel] [PATCH 28/35] avfilter/avfilter: Avoid allocation for AVFilterInternal Andreas Rheinhardt
@ 2024-02-10 23:04 ` Andreas Rheinhardt
2024-02-10 23:04 ` [FFmpeg-devel] [PATCH 30/35] avfilter/avfiltergraph: Avoid indirection when freeing filtergraph Andreas Rheinhardt
` (10 subsequent siblings)
41 siblings, 0 replies; 60+ messages in thread
From: Andreas Rheinhardt @ 2024-02-10 23:04 UTC (permalink / raw)
To: ffmpeg-devel; +Cc: Andreas Rheinhardt
This commit moves the generic-layer stuff (that is not used
by filters) to a new header of its own, similarly to
5e7b5b0090bdf68e0897fe55ee657fdccc0cbca2 for libavcodec.
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
---
If buffersrc/sink were to be treated as part of the generic layer,
the declarations of ff_avfilter_link_set_in_status and
ff_filter_graph_run_once would also be moved.
libavfilter/avfilter.c | 1 +
libavfilter/avfilter_internal.h | 84 +++++++++++++++++++++++++++++++++
libavfilter/avfiltergraph.c | 2 +-
libavfilter/graphparser.c | 1 +
libavfilter/internal.h | 50 --------------------
libavfilter/pthread.c | 3 +-
libavfilter/thread.h | 28 -----------
7 files changed, 88 insertions(+), 81 deletions(-)
create mode 100644 libavfilter/avfilter_internal.h
delete mode 100644 libavfilter/thread.h
diff --git a/libavfilter/avfilter.c b/libavfilter/avfilter.c
index dbe6409274..85e2936e6e 100644
--- a/libavfilter/avfilter.c
+++ b/libavfilter/avfilter.c
@@ -39,6 +39,7 @@
#include "audio.h"
#include "avfilter.h"
+#include "avfilter_internal.h"
#include "filters.h"
#include "formats.h"
#include "framepool.h"
diff --git a/libavfilter/avfilter_internal.h b/libavfilter/avfilter_internal.h
new file mode 100644
index 0000000000..3dd51fb993
--- /dev/null
+++ b/libavfilter/avfilter_internal.h
@@ -0,0 +1,84 @@
+/*
+ * This file is part of FFmpeg.
+ *
+ * FFmpeg is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * FFmpeg is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with FFmpeg; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+/*
+ * APIs internal to the generic filter(graph) layer.
+ *
+ * MUST NOT be included by individual filters.
+ */
+
+#ifndef AVFILTER_AVFILTER_INTERNAL_H
+#define AVFILTER_AVFILTER_INTERNAL_H
+
+#include "avfilter.h"
+#include "framequeue.h"
+
+typedef struct AVFilterCommand {
+ double time; ///< time expressed in seconds
+ char *command; ///< command
+ char *arg; ///< optional argument for the command
+ int flags;
+ struct AVFilterCommand *next;
+} AVFilterCommand;
+
+struct AVFilterGraphInternal {
+ void *thread;
+ avfilter_execute_func *thread_execute;
+ FFFrameQueueGlobal frame_queues;
+};
+
+/**
+ * Update the position of a link in the age heap.
+ */
+void ff_avfilter_graph_update_heap(AVFilterGraph *graph, AVFilterLink *link);
+
+/**
+ * Allocate a new filter context and return it.
+ *
+ * @param filter what filter to create an instance of
+ * @param inst_name name to give to the new filter context
+ *
+ * @return newly created filter context or NULL on failure
+ */
+AVFilterContext *ff_filter_alloc(const AVFilter *filter, const char *inst_name);
+
+/**
+ * Remove a filter from a graph;
+ */
+void ff_filter_graph_remove_filter(AVFilterGraph *graph, AVFilterContext *filter);
+
+int ff_filter_activate(AVFilterContext *filter);
+
+/**
+ * Parse filter options into a dictionary.
+ *
+ * @param logctx context for logging
+ * @param priv_class a filter's private class for shorthand options or NULL
+ * @param options dictionary to store parsed options in
+ * @param args options string to parse
+ *
+ * @return a non-negative number on success, a negative error code on failure
+ */
+int ff_filter_opt_parse(void *logctx, const AVClass *priv_class,
+ AVDictionary **options, const char *args);
+
+int ff_graph_thread_init(AVFilterGraph *graph);
+
+void ff_graph_thread_free(AVFilterGraph *graph);
+
+#endif /* AVFILTER_AVFILTER_INTERNAL_H */
diff --git a/libavfilter/avfiltergraph.c b/libavfilter/avfiltergraph.c
index a43c23065c..c6f94bf0a8 100644
--- a/libavfilter/avfiltergraph.c
+++ b/libavfilter/avfiltergraph.c
@@ -36,10 +36,10 @@
#include "framequeue.h"
#include "avfilter.h"
+#include "avfilter_internal.h"
#include "buffersink.h"
#include "formats.h"
#include "internal.h"
-#include "thread.h"
#define OFFSET(x) offsetof(AVFilterGraph, x)
#define F AV_OPT_FLAG_FILTERING_PARAM
diff --git a/libavfilter/graphparser.c b/libavfilter/graphparser.c
index 229e647c0a..5d6dcdb9d3 100644
--- a/libavfilter/graphparser.c
+++ b/libavfilter/graphparser.c
@@ -29,6 +29,7 @@
#include "libavutil/opt.h"
#include "avfilter.h"
+#include "avfilter_internal.h"
#include "internal.h"
#define WHITESPACES " \n\t\r"
diff --git a/libavfilter/internal.h b/libavfilter/internal.h
index 3d46923cad..0e3f68d1f4 100644
--- a/libavfilter/internal.h
+++ b/libavfilter/internal.h
@@ -26,20 +26,6 @@
#include "libavutil/internal.h"
#include "avfilter.h"
-#include "framequeue.h"
-
-typedef struct AVFilterCommand {
- double time; ///< time expressed in seconds
- char *command; ///< command
- char *arg; ///< optional argument for the command
- int flags;
- struct AVFilterCommand *next;
-} AVFilterCommand;
-
-/**
- * Update the position of a link in the age heap.
- */
-void ff_avfilter_graph_update_heap(AVFilterGraph *graph, AVFilterLink *link);
/**
* A filter pad used for either input or output.
@@ -127,12 +113,6 @@ struct AVFilterPad {
int (*config_props)(AVFilterLink *link);
};
-struct AVFilterGraphInternal {
- void *thread;
- avfilter_execute_func *thread_execute;
- FFFrameQueueGlobal frame_queues;
-};
-
typedef struct FFFilterContext {
/**
* The public AVFilterContext. See avfilter.h for it.
@@ -356,23 +336,6 @@ int ff_request_frame(AVFilterLink *link);
*/
int ff_filter_frame(AVFilterLink *link, AVFrame *frame);
-/**
- * Allocate a new filter context and return it.
- *
- * @param filter what filter to create an instance of
- * @param inst_name name to give to the new filter context
- *
- * @return newly created filter context or NULL on failure
- */
-AVFilterContext *ff_filter_alloc(const AVFilter *filter, const char *inst_name);
-
-int ff_filter_activate(AVFilterContext *filter);
-
-/**
- * Remove a filter from a graph;
- */
-void ff_filter_graph_remove_filter(AVFilterGraph *graph, AVFilterContext *filter);
-
/**
* The filter is aware of hardware frames, and any hardware frame context
* should not be automatically propagated through it.
@@ -415,17 +378,4 @@ int ff_filter_process_command(AVFilterContext *ctx, const char *cmd,
int ff_filter_init_hw_frames(AVFilterContext *avctx, AVFilterLink *link,
int default_pool_size);
-/**
- * Parse filter options into a dictionary.
- *
- * @param logctx context for logging
- * @param priv_class a filter's private class for shorthand options or NULL
- * @param options dictionary to store parsed options in
- * @param args options string to parse
- *
- * @return a non-negative number on success, a negative error code on failure
- */
-int ff_filter_opt_parse(void *logctx, const AVClass *priv_class,
- AVDictionary **options, const char *args);
-
#endif /* AVFILTER_INTERNAL_H */
diff --git a/libavfilter/pthread.c b/libavfilter/pthread.c
index 1a063d3cc0..a0336a8e04 100644
--- a/libavfilter/pthread.c
+++ b/libavfilter/pthread.c
@@ -29,8 +29,7 @@
#include "libavutil/slicethread.h"
#include "avfilter.h"
-#include "internal.h"
-#include "thread.h"
+#include "avfilter_internal.h"
typedef struct ThreadContext {
AVFilterGraph *graph;
diff --git a/libavfilter/thread.h b/libavfilter/thread.h
deleted file mode 100644
index c709f17a33..0000000000
--- a/libavfilter/thread.h
+++ /dev/null
@@ -1,28 +0,0 @@
-/*
- * This file is part of FFmpeg.
- *
- * FFmpeg is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * FFmpeg is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with FFmpeg; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-#ifndef AVFILTER_THREAD_H
-#define AVFILTER_THREAD_H
-
-#include "avfilter.h"
-
-int ff_graph_thread_init(AVFilterGraph *graph);
-
-void ff_graph_thread_free(AVFilterGraph *graph);
-
-#endif /* AVFILTER_THREAD_H */
--
2.34.1
_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
To unsubscribe, visit link above, or email
ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".
^ permalink raw reply [flat|nested] 60+ messages in thread
* [FFmpeg-devel] [PATCH 30/35] avfilter/avfiltergraph: Avoid indirection when freeing filtergraph
2024-01-25 13:43 [FFmpeg-devel] [PATCH 00/24] Major library version bump James Almer
` (30 preceding siblings ...)
2024-02-10 23:04 ` [FFmpeg-devel] [PATCH 29/35] avfilter: Add a header for internal generic-layer APIs Andreas Rheinhardt
@ 2024-02-10 23:04 ` Andreas Rheinhardt
2024-02-10 23:04 ` [FFmpeg-devel] [PATCH 31/35] avfilter/avfiltergraph: Avoid allocation for AVFilterGraphInternal Andreas Rheinhardt
` (9 subsequent siblings)
41 siblings, 0 replies; 60+ messages in thread
From: Andreas Rheinhardt @ 2024-02-10 23:04 UTC (permalink / raw)
To: ffmpeg-devel; +Cc: Andreas Rheinhardt
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
---
libavfilter/avfiltergraph.c | 22 ++++++++++++----------
1 file changed, 12 insertions(+), 10 deletions(-)
diff --git a/libavfilter/avfiltergraph.c b/libavfilter/avfiltergraph.c
index c6f94bf0a8..193fafe61c 100644
--- a/libavfilter/avfiltergraph.c
+++ b/libavfilter/avfiltergraph.c
@@ -117,23 +117,25 @@ void ff_filter_graph_remove_filter(AVFilterGraph *graph, AVFilterContext *filter
}
}
-void avfilter_graph_free(AVFilterGraph **graph)
+void avfilter_graph_free(AVFilterGraph **graphp)
{
- if (!*graph)
+ AVFilterGraph *graph = *graphp;
+
+ if (!graph)
return;
- while ((*graph)->nb_filters)
- avfilter_free((*graph)->filters[0]);
+ while (graph->nb_filters)
+ avfilter_free(graph->filters[0]);
- ff_graph_thread_free(*graph);
+ ff_graph_thread_free(graph);
- av_freep(&(*graph)->sink_links);
+ av_freep(&graph->sink_links);
- av_opt_free(*graph);
+ av_opt_free(graph);
- av_freep(&(*graph)->filters);
- av_freep(&(*graph)->internal);
- av_freep(graph);
+ av_freep(&graph->filters);
+ av_freep(&graph->internal);
+ av_freep(graphp);
}
int avfilter_graph_create_filter(AVFilterContext **filt_ctx, const AVFilter *filt,
--
2.34.1
_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
To unsubscribe, visit link above, or email
ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".
^ permalink raw reply [flat|nested] 60+ messages in thread
* [FFmpeg-devel] [PATCH 31/35] avfilter/avfiltergraph: Avoid allocation for AVFilterGraphInternal
2024-01-25 13:43 [FFmpeg-devel] [PATCH 00/24] Major library version bump James Almer
` (31 preceding siblings ...)
2024-02-10 23:04 ` [FFmpeg-devel] [PATCH 30/35] avfilter/avfiltergraph: Avoid indirection when freeing filtergraph Andreas Rheinhardt
@ 2024-02-10 23:04 ` Andreas Rheinhardt
2024-02-10 23:04 ` [FFmpeg-devel] [PATCH 32/35] avfilter/af_hdcd: Drop a redundant log Andreas Rheinhardt
` (8 subsequent siblings)
41 siblings, 0 replies; 60+ messages in thread
From: Andreas Rheinhardt @ 2024-02-10 23:04 UTC (permalink / raw)
To: ffmpeg-devel; +Cc: Andreas Rheinhardt
To do this, allocate AVFilterGraphInternal jointly with AVFilterGraph
and rename it to FFFilterGraph in the process (similarly to
AVStream/FFStream).
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
---
libavfilter/avfilter.c | 6 +++---
libavfilter/avfilter.h | 7 -------
libavfilter/avfilter_internal.h | 17 +++++++++++++----
libavfilter/avfiltergraph.c | 32 +++++++++++++++-----------------
libavfilter/pthread.c | 23 ++++++++++++-----------
5 files changed, 43 insertions(+), 42 deletions(-)
diff --git a/libavfilter/avfilter.c b/libavfilter/avfilter.c
index 85e2936e6e..af46011b27 100644
--- a/libavfilter/avfilter.c
+++ b/libavfilter/avfilter.c
@@ -187,7 +187,7 @@ int avfilter_link(AVFilterContext *src, unsigned srcpad,
av_assert0(AV_PIX_FMT_NONE == -1 && AV_SAMPLE_FMT_NONE == -1);
link->format = -1;
link->colorspace = AVCOL_SPC_UNSPECIFIED;
- ff_framequeue_init(&link->fifo, &src->graph->internal->frame_queues);
+ ff_framequeue_init(&link->fifo, &fffiltergraph(src->graph)->frame_queues);
return 0;
}
@@ -888,9 +888,9 @@ int avfilter_init_dict(AVFilterContext *ctx, AVDictionary **options)
if (ctx->filter->flags & AVFILTER_FLAG_SLICE_THREADS &&
ctx->thread_type & ctx->graph->thread_type & AVFILTER_THREAD_SLICE &&
- ctx->graph->internal->thread_execute) {
+ fffiltergraph(ctx->graph)->thread_execute) {
ctx->thread_type = AVFILTER_THREAD_SLICE;
- ctxi->execute = ctx->graph->internal->thread_execute;
+ ctxi->execute = fffiltergraph(ctx->graph)->thread_execute;
} else {
ctx->thread_type = 0;
}
diff --git a/libavfilter/avfilter.h b/libavfilter/avfilter.h
index a3725b1516..65034f831a 100644
--- a/libavfilter/avfilter.h
+++ b/libavfilter/avfilter.h
@@ -843,8 +843,6 @@ int avfilter_insert_filter(AVFilterLink *link, AVFilterContext *filt,
*/
const AVClass *avfilter_get_class(void);
-typedef struct AVFilterGraphInternal AVFilterGraphInternal;
-
/**
* A function pointer passed to the @ref AVFilterGraph.execute callback to be
* executed multiple times, possibly in parallel.
@@ -902,11 +900,6 @@ typedef struct AVFilterGraph {
*/
int nb_threads;
- /**
- * Opaque object for libavfilter internal use.
- */
- AVFilterGraphInternal *internal;
-
/**
* Opaque user data. May be set by the caller to an arbitrary value, e.g. to
* be used from callbacks like @ref AVFilterGraph.execute.
diff --git a/libavfilter/avfilter_internal.h b/libavfilter/avfilter_internal.h
index 3dd51fb993..9ddb82bf26 100644
--- a/libavfilter/avfilter_internal.h
+++ b/libavfilter/avfilter_internal.h
@@ -36,11 +36,20 @@ typedef struct AVFilterCommand {
struct AVFilterCommand *next;
} AVFilterCommand;
-struct AVFilterGraphInternal {
+typedef struct FFFilterGraph {
+ /**
+ * The public AVFilterGraph. See avfilter.h for it.
+ */
+ AVFilterGraph p;
void *thread;
avfilter_execute_func *thread_execute;
FFFrameQueueGlobal frame_queues;
-};
+} FFFilterGraph;
+
+static inline FFFilterGraph *fffiltergraph(AVFilterGraph *graph)
+{
+ return (FFFilterGraph*)graph;
+}
/**
* Update the position of a link in the age heap.
@@ -77,8 +86,8 @@ int ff_filter_activate(AVFilterContext *filter);
int ff_filter_opt_parse(void *logctx, const AVClass *priv_class,
AVDictionary **options, const char *args);
-int ff_graph_thread_init(AVFilterGraph *graph);
+int ff_graph_thread_init(FFFilterGraph *graph);
-void ff_graph_thread_free(AVFilterGraph *graph);
+void ff_graph_thread_free(FFFilterGraph *graph);
#endif /* AVFILTER_AVFILTER_INTERNAL_H */
diff --git a/libavfilter/avfiltergraph.c b/libavfilter/avfiltergraph.c
index 193fafe61c..0e2b5ee1f2 100644
--- a/libavfilter/avfiltergraph.c
+++ b/libavfilter/avfiltergraph.c
@@ -68,33 +68,30 @@ static const AVClass filtergraph_class = {
};
#if !HAVE_THREADS
-void ff_graph_thread_free(AVFilterGraph *graph)
+void ff_graph_thread_free(FFFilterGraph *graph)
{
}
-int ff_graph_thread_init(AVFilterGraph *graph)
+int ff_graph_thread_init(FFFilterGraph *graph)
{
- graph->thread_type = 0;
- graph->nb_threads = 1;
+ graph->p.thread_type = 0;
+ graph->p.nb_threads = 1;
return 0;
}
#endif
AVFilterGraph *avfilter_graph_alloc(void)
{
- AVFilterGraph *ret = av_mallocz(sizeof(*ret));
- if (!ret)
- return NULL;
+ FFFilterGraph *graph = av_mallocz(sizeof(*graph));
+ AVFilterGraph *ret;
- ret->internal = av_mallocz(sizeof(*ret->internal));
- if (!ret->internal) {
- av_freep(&ret);
+ if (!graph)
return NULL;
- }
+ ret = &graph->p;
ret->av_class = &filtergraph_class;
av_opt_set_defaults(ret);
- ff_framequeue_global_init(&ret->internal->frame_queues);
+ ff_framequeue_global_init(&graph->frame_queues);
return ret;
}
@@ -120,6 +117,7 @@ void ff_filter_graph_remove_filter(AVFilterGraph *graph, AVFilterContext *filter
void avfilter_graph_free(AVFilterGraph **graphp)
{
AVFilterGraph *graph = *graphp;
+ FFFilterGraph *graphi = fffiltergraph(graph);
if (!graph)
return;
@@ -127,14 +125,13 @@ void avfilter_graph_free(AVFilterGraph **graphp)
while (graph->nb_filters)
avfilter_free(graph->filters[0]);
- ff_graph_thread_free(graph);
+ ff_graph_thread_free(graphi);
av_freep(&graph->sink_links);
av_opt_free(graph);
av_freep(&graph->filters);
- av_freep(&graph->internal);
av_freep(graphp);
}
@@ -170,12 +167,13 @@ AVFilterContext *avfilter_graph_alloc_filter(AVFilterGraph *graph,
const char *name)
{
AVFilterContext **filters, *s;
+ FFFilterGraph *graphi = fffiltergraph(graph);
- if (graph->thread_type && !graph->internal->thread_execute) {
+ if (graph->thread_type && !graphi->thread_execute) {
if (graph->execute) {
- graph->internal->thread_execute = graph->execute;
+ graphi->thread_execute = graph->execute;
} else {
- int ret = ff_graph_thread_init(graph);
+ int ret = ff_graph_thread_init(graphi);
if (ret < 0) {
av_log(graph, AV_LOG_ERROR, "Error initializing threading: %s.\n", av_err2str(ret));
return NULL;
diff --git a/libavfilter/pthread.c b/libavfilter/pthread.c
index a0336a8e04..06590fe65a 100644
--- a/libavfilter/pthread.c
+++ b/libavfilter/pthread.c
@@ -58,7 +58,7 @@ static void slice_thread_uninit(ThreadContext *c)
static int thread_execute(AVFilterContext *ctx, avfilter_action_func *func,
void *arg, int *ret, int nb_jobs)
{
- ThreadContext *c = ctx->graph->internal->thread;
+ ThreadContext *c = fffiltergraph(ctx->graph)->thread;
if (nb_jobs <= 0)
return 0;
@@ -79,8 +79,9 @@ static int thread_init_internal(ThreadContext *c, int nb_threads)
return FFMAX(nb_threads, 1);
}
-int ff_graph_thread_init(AVFilterGraph *graph)
+int ff_graph_thread_init(FFFilterGraph *graphi)
{
+ AVFilterGraph *graph = &graphi->p;
int ret;
if (graph->nb_threads == 1) {
@@ -88,27 +89,27 @@ int ff_graph_thread_init(AVFilterGraph *graph)
return 0;
}
- graph->internal->thread = av_mallocz(sizeof(ThreadContext));
- if (!graph->internal->thread)
+ graphi->thread = av_mallocz(sizeof(ThreadContext));
+ if (!graphi->thread)
return AVERROR(ENOMEM);
- ret = thread_init_internal(graph->internal->thread, graph->nb_threads);
+ ret = thread_init_internal(graphi->thread, graph->nb_threads);
if (ret <= 1) {
- av_freep(&graph->internal->thread);
+ av_freep(&graphi->thread);
graph->thread_type = 0;
graph->nb_threads = 1;
return (ret < 0) ? ret : 0;
}
graph->nb_threads = ret;
- graph->internal->thread_execute = thread_execute;
+ graphi->thread_execute = thread_execute;
return 0;
}
-void ff_graph_thread_free(AVFilterGraph *graph)
+void ff_graph_thread_free(FFFilterGraph *graph)
{
- if (graph->internal->thread)
- slice_thread_uninit(graph->internal->thread);
- av_freep(&graph->internal->thread);
+ if (graph->thread)
+ slice_thread_uninit(graph->thread);
+ av_freep(&graph->thread);
}
--
2.34.1
_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
To unsubscribe, visit link above, or email
ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".
^ permalink raw reply [flat|nested] 60+ messages in thread
* [FFmpeg-devel] [PATCH 32/35] avfilter/af_hdcd: Drop a redundant log
2024-01-25 13:43 [FFmpeg-devel] [PATCH 00/24] Major library version bump James Almer
` (32 preceding siblings ...)
2024-02-10 23:04 ` [FFmpeg-devel] [PATCH 31/35] avfilter/avfiltergraph: Avoid allocation for AVFilterGraphInternal Andreas Rheinhardt
@ 2024-02-10 23:04 ` Andreas Rheinhardt
2024-02-13 17:31 ` Andreas Rheinhardt
2024-02-10 23:04 ` [FFmpeg-devel] [PATCH 33/35] avfilter/avfilter: Move AVFilterGraph private fields to FFFilterGraph Andreas Rheinhardt
` (7 subsequent siblings)
41 siblings, 1 reply; 60+ messages in thread
From: Andreas Rheinhardt @ 2024-02-10 23:04 UTC (permalink / raw)
To: ffmpeg-devel; +Cc: Andreas Rheinhardt
avfilter_insert_filter() already reports (also with AV_LOG_VERBOSE)
when a filter is auto-inserted.
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
---
Can be applied at any time.
libavfilter/af_hdcd.c | 3 ---
1 file changed, 3 deletions(-)
diff --git a/libavfilter/af_hdcd.c b/libavfilter/af_hdcd.c
index a03c9aadf7..9cd483cfc4 100644
--- a/libavfilter/af_hdcd.c
+++ b/libavfilter/af_hdcd.c
@@ -1714,9 +1714,6 @@ static int config_input(AVFilterLink *inlink) {
HDCDContext *s = ctx->priv;
int c;
- av_log(ctx, AV_LOG_VERBOSE, "Auto-convert: %s\n",
- (ctx->graph->disable_auto_convert) ? "disabled" : "enabled");
-
if ((inlink->format == AV_SAMPLE_FMT_S16 ||
inlink->format == AV_SAMPLE_FMT_S16P) &&
s->bits_per_sample != 16) {
--
2.34.1
_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
To unsubscribe, visit link above, or email
ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".
^ permalink raw reply [flat|nested] 60+ messages in thread
* [FFmpeg-devel] [PATCH 33/35] avfilter/avfilter: Move AVFilterGraph private fields to FFFilterGraph
2024-01-25 13:43 [FFmpeg-devel] [PATCH 00/24] Major library version bump James Almer
` (33 preceding siblings ...)
2024-02-10 23:04 ` [FFmpeg-devel] [PATCH 32/35] avfilter/af_hdcd: Drop a redundant log Andreas Rheinhardt
@ 2024-02-10 23:04 ` Andreas Rheinhardt
2024-02-10 23:04 ` [FFmpeg-devel] [PATCH 34/35] avcodec/avcodec: Reorder AVCodecContext and AVSubtitleRect fields Andreas Rheinhardt
` (6 subsequent siblings)
41 siblings, 0 replies; 60+ messages in thread
From: Andreas Rheinhardt @ 2024-02-10 23:04 UTC (permalink / raw)
To: ffmpeg-devel; +Cc: Andreas Rheinhardt
(These fields were in AVFilterGraph although AVFilterGraphInternal
existed for years.)
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
---
libavfilter/avfilter.h | 12 ------------
libavfilter/avfilter_internal.h | 6 ++++++
libavfilter/avfiltergraph.c | 32 +++++++++++++++++---------------
3 files changed, 23 insertions(+), 27 deletions(-)
diff --git a/libavfilter/avfilter.h b/libavfilter/avfilter.h
index 65034f831a..35840cfd54 100644
--- a/libavfilter/avfilter.h
+++ b/libavfilter/avfilter.h
@@ -922,18 +922,6 @@ typedef struct AVFilterGraph {
avfilter_execute_func *execute;
char *aresample_swr_opts; ///< swr options to use for the auto-inserted aresample filters, Access ONLY through AVOptions
-
- /**
- * Private fields
- *
- * The following fields are for internal use only.
- * Their type, offset, number and semantic can change without notice.
- */
-
- AVFilterLink **sink_links;
- int sink_links_count;
-
- unsigned disable_auto_convert;
} AVFilterGraph;
/**
diff --git a/libavfilter/avfilter_internal.h b/libavfilter/avfilter_internal.h
index 9ddb82bf26..72712608e7 100644
--- a/libavfilter/avfilter_internal.h
+++ b/libavfilter/avfilter_internal.h
@@ -41,6 +41,12 @@ typedef struct FFFilterGraph {
* The public AVFilterGraph. See avfilter.h for it.
*/
AVFilterGraph p;
+
+ AVFilterLink **sink_links;
+ int sink_links_count;
+
+ unsigned disable_auto_convert;
+
void *thread;
avfilter_execute_func *thread_execute;
FFFrameQueueGlobal frame_queues;
diff --git a/libavfilter/avfiltergraph.c b/libavfilter/avfiltergraph.c
index 0e2b5ee1f2..c25fc42430 100644
--- a/libavfilter/avfiltergraph.c
+++ b/libavfilter/avfiltergraph.c
@@ -127,7 +127,7 @@ void avfilter_graph_free(AVFilterGraph **graphp)
ff_graph_thread_free(graphi);
- av_freep(&graph->sink_links);
+ av_freep(&graphi->sink_links);
av_opt_free(graph);
@@ -159,7 +159,7 @@ fail:
void avfilter_graph_set_auto_convert(AVFilterGraph *graph, unsigned flags)
{
- graph->disable_auto_convert = flags;
+ fffiltergraph(graph)->disable_auto_convert = flags;
}
AVFilterContext *avfilter_graph_alloc_filter(AVFilterGraph *graph,
@@ -471,7 +471,7 @@ static int query_formats(AVFilterGraph *graph, void *log_ctx)
char inst_name[30];
const char *opts;
- if (graph->disable_auto_convert) {
+ if (fffiltergraph(graph)->disable_auto_convert) {
av_log(log_ctx, AV_LOG_ERROR,
"The filters '%s' and '%s' do not have a common format "
"and automatic conversion is disabled.\n",
@@ -1311,8 +1311,8 @@ static int graph_config_pointers(AVFilterGraph *graph, void *log_ctx)
}
}
av_assert0(n == sink_links_count);
- graph->sink_links = sinks;
- graph->sink_links_count = sink_links_count;
+ fffiltergraph(graph)->sink_links = sinks;
+ fffiltergraph(graph)->sink_links_count = sink_links_count;
return 0;
}
@@ -1395,7 +1395,7 @@ int avfilter_graph_queue_command(AVFilterGraph *graph, const char *target, const
return 0;
}
-static void heap_bubble_up(AVFilterGraph *graph,
+static void heap_bubble_up(FFFilterGraph *graph,
AVFilterLink *link, int index)
{
AVFilterLink **links = graph->sink_links;
@@ -1414,7 +1414,7 @@ static void heap_bubble_up(AVFilterGraph *graph,
link->age_index = index;
}
-static void heap_bubble_down(AVFilterGraph *graph,
+static void heap_bubble_down(FFFilterGraph *graph,
AVFilterLink *link, int index)
{
AVFilterLink **links = graph->sink_links;
@@ -1440,18 +1440,20 @@ static void heap_bubble_down(AVFilterGraph *graph,
void ff_avfilter_graph_update_heap(AVFilterGraph *graph, AVFilterLink *link)
{
- heap_bubble_up (graph, link, link->age_index);
- heap_bubble_down(graph, link, link->age_index);
+ FFFilterGraph *graphi = fffiltergraph(graph);
+ heap_bubble_up (graphi, link, link->age_index);
+ heap_bubble_down(graphi, link, link->age_index);
}
int avfilter_graph_request_oldest(AVFilterGraph *graph)
{
- AVFilterLink *oldest = graph->sink_links[0];
+ FFFilterGraph *graphi = fffiltergraph(graph);
+ AVFilterLink *oldest = graphi->sink_links[0];
int64_t frame_count;
int r;
- while (graph->sink_links_count) {
- oldest = graph->sink_links[0];
+ while (graphi->sink_links_count) {
+ oldest = graphi->sink_links[0];
if (oldest->dst->filter->activate) {
r = av_buffersink_get_frame_flags(oldest->dst, NULL,
AV_BUFFERSINK_FLAG_PEEK);
@@ -1466,12 +1468,12 @@ int avfilter_graph_request_oldest(AVFilterGraph *graph)
oldest->dst->name,
oldest->dstpad->name);
/* EOF: remove the link from the heap */
- if (oldest->age_index < --graph->sink_links_count)
- heap_bubble_down(graph, graph->sink_links[graph->sink_links_count],
+ if (oldest->age_index < --graphi->sink_links_count)
+ heap_bubble_down(graphi, graphi->sink_links[graphi->sink_links_count],
oldest->age_index);
oldest->age_index = -1;
}
- if (!graph->sink_links_count)
+ if (!graphi->sink_links_count)
return AVERROR_EOF;
av_assert1(!oldest->dst->filter->activate);
av_assert1(oldest->age_index >= 0);
--
2.34.1
_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
To unsubscribe, visit link above, or email
ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".
^ permalink raw reply [flat|nested] 60+ messages in thread
* [FFmpeg-devel] [PATCH 34/35] avcodec/avcodec: Reorder AVCodecContext and AVSubtitleRect fields
2024-01-25 13:43 [FFmpeg-devel] [PATCH 00/24] Major library version bump James Almer
` (34 preceding siblings ...)
2024-02-10 23:04 ` [FFmpeg-devel] [PATCH 33/35] avfilter/avfilter: Move AVFilterGraph private fields to FFFilterGraph Andreas Rheinhardt
@ 2024-02-10 23:04 ` Andreas Rheinhardt
2024-02-10 23:04 ` [FFmpeg-devel] [PATCH 35/35] avfilter/avfilter: Reorder structure fields Andreas Rheinhardt
` (5 subsequent siblings)
41 siblings, 0 replies; 60+ messages in thread
From: Andreas Rheinhardt @ 2024-02-10 23:04 UTC (permalink / raw)
To: ffmpeg-devel; +Cc: Andreas Rheinhardt
Move related fields closer together and try to plug holes.
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
---
libavcodec/avcodec.h | 585 +++++++++++++++++++++----------------------
1 file changed, 292 insertions(+), 293 deletions(-)
diff --git a/libavcodec/avcodec.h b/libavcodec/avcodec.h
index 431fc11de6..6706061ecc 100644
--- a/libavcodec/avcodec.h
+++ b/libavcodec/avcodec.h
@@ -490,29 +490,6 @@ typedef struct AVCodecContext {
*/
int64_t bit_rate;
- /**
- * number of bits the bitstream is allowed to diverge from the reference.
- * the reference can be CBR (for CBR pass1) or VBR (for pass2)
- * - encoding: Set by user; unused for constant quantizer encoding.
- * - decoding: unused
- */
- int bit_rate_tolerance;
-
- /**
- * Global quality for codecs which cannot change it per frame.
- * This should be proportional to MPEG-1/2/4 qscale.
- * - encoding: Set by user.
- * - decoding: unused
- */
- int global_quality;
-
- /**
- * - encoding: Set by user.
- * - decoding: unused
- */
- int compression_level;
-#define FF_COMPRESSION_DEFAULT -1
-
/**
* AV_CODEC_FLAG_*.
* - encoding: Set by user.
@@ -562,6 +539,22 @@ typedef struct AVCodecContext {
*/
AVRational time_base;
+ /**
+ * Timebase in which pkt_dts/pts and AVPacket.dts/pts are expressed.
+ * - encoding: unused.
+ * - decoding: set by user.
+ */
+ AVRational pkt_timebase;
+
+ /**
+ * - decoding: For codecs that store a framerate value in the compressed
+ * bitstream, the decoder may export it here. { 0, 1} when
+ * unknown.
+ * - encoding: May be used to signal the framerate of CFR content to an
+ * encoder.
+ */
+ AVRational framerate;
+
#if FF_API_TICKS_PER_FRAME
/**
* For some codecs, the time base is closer to the field rate than the frame rate.
@@ -636,11 +629,13 @@ typedef struct AVCodecContext {
int coded_width, coded_height;
/**
- * the number of pictures in a group of pictures, or 0 for intra_only
+ * sample aspect ratio (0 if unknown)
+ * That is the width of a pixel divided by the height of the pixel.
+ * Numerator and denominator must be relatively prime and smaller than 256 for some video standards.
* - encoding: Set by user.
- * - decoding: unused
+ * - decoding: Set by libavcodec.
*/
- int gop_size;
+ AVRational sample_aspect_ratio;
/**
* Pixel format, see AV_PIX_FMT_xxx.
@@ -657,6 +652,82 @@ typedef struct AVCodecContext {
*/
enum AVPixelFormat pix_fmt;
+ /**
+ * Nominal unaccelerated pixel format, see AV_PIX_FMT_xxx.
+ * - encoding: unused.
+ * - decoding: Set by libavcodec before calling get_format()
+ */
+ enum AVPixelFormat sw_pix_fmt;
+
+ /**
+ * Chromaticity coordinates of the source primaries.
+ * - encoding: Set by user
+ * - decoding: Set by libavcodec
+ */
+ enum AVColorPrimaries color_primaries;
+
+ /**
+ * Color Transfer Characteristic.
+ * - encoding: Set by user
+ * - decoding: Set by libavcodec
+ */
+ enum AVColorTransferCharacteristic color_trc;
+
+ /**
+ * YUV colorspace type.
+ * - encoding: Set by user
+ * - decoding: Set by libavcodec
+ */
+ enum AVColorSpace colorspace;
+
+ /**
+ * MPEG vs JPEG YUV range.
+ * - encoding: Set by user to override the default output color range value,
+ * If not specified, libavcodec sets the color range depending on the
+ * output format.
+ * - decoding: Set by libavcodec, can be set by the user to propagate the
+ * color range to components reading from the decoder context.
+ */
+ enum AVColorRange color_range;
+
+ /**
+ * This defines the location of chroma samples.
+ * - encoding: Set by user
+ * - decoding: Set by libavcodec
+ */
+ enum AVChromaLocation chroma_sample_location;
+
+ /** Field order
+ * - encoding: set by libavcodec
+ * - decoding: Set by user.
+ */
+ enum AVFieldOrder field_order;
+
+ /**
+ * number of reference frames
+ * - encoding: Set by user.
+ * - decoding: Set by lavc.
+ */
+ int refs;
+
+ /**
+ * Size of the frame reordering buffer in the decoder.
+ * For MPEG-2 it is 1 IPB or 0 low delay IP.
+ * - encoding: Set by libavcodec.
+ * - decoding: Set by libavcodec.
+ */
+ int has_b_frames;
+
+ /**
+ * slice flags
+ * - encoding: unused
+ * - decoding: Set by user.
+ */
+ int slice_flags;
+#define SLICE_FLAG_CODED_ORDER 0x0001 ///< draw_horiz_band() is called in coded order instead of display
+#define SLICE_FLAG_ALLOW_FIELD 0x0002 ///< allow draw_horiz_band() with field slices (MPEG-2 field pics)
+#define SLICE_FLAG_ALLOW_PLANE 0x0004 ///< allow draw_horiz_band() with 1 component at a time (SVQ1)
+
/**
* If non NULL, 'draw_horiz_band' is called by the libavcodec
* decoder to draw a horizontal band. It improves cache usage. Not
@@ -735,14 +806,6 @@ typedef struct AVCodecContext {
*/
float b_quant_offset;
- /**
- * Size of the frame reordering buffer in the decoder.
- * For MPEG-2 it is 1 IPB or 0 low delay IP.
- * - encoding: Set by libavcodec.
- * - decoding: Set by libavcodec.
- */
- int has_b_frames;
-
/**
* qscale factor between P- and I-frames
* If > 0 then the last P-frame quantizer will be used (q = lastp_q * factor + offset).
@@ -795,13 +858,11 @@ typedef struct AVCodecContext {
float dark_masking;
/**
- * sample aspect ratio (0 if unknown)
- * That is the width of a pixel divided by the height of the pixel.
- * Numerator and denominator must be relatively prime and smaller than 256 for some video standards.
+ * noise vs. sse weight for the nsse comparison function
* - encoding: Set by user.
- * - decoding: Set by libavcodec.
+ * - decoding: unused
*/
- AVRational sample_aspect_ratio;
+ int nsse_weight;
/**
* motion estimation comparison function
@@ -889,16 +950,6 @@ typedef struct AVCodecContext {
*/
int me_range;
- /**
- * slice flags
- * - encoding: unused
- * - decoding: Set by user.
- */
- int slice_flags;
-#define SLICE_FLAG_CODED_ORDER 0x0001 ///< draw_horiz_band() is called in coded order instead of display
-#define SLICE_FLAG_ALLOW_FIELD 0x0002 ///< allow draw_horiz_band() with field slices (MPEG-2 field pics)
-#define SLICE_FLAG_ALLOW_PLANE 0x0004 ///< allow draw_horiz_band() with 1 component at a time (SVQ1)
-
/**
* macroblock decision mode
* - encoding: Set by user.
@@ -927,6 +978,13 @@ typedef struct AVCodecContext {
*/
uint16_t *inter_matrix;
+ /**
+ * custom intra quantization matrix
+ * - encoding: Set by user, can be NULL.
+ * - decoding: unused.
+ */
+ uint16_t *chroma_intra_matrix;
+
/**
* precision of the intra DC coefficient - 8
* - encoding: Set by user.
@@ -934,20 +992,6 @@ typedef struct AVCodecContext {
*/
int intra_dc_precision;
- /**
- * Number of macroblock rows at the top which are skipped.
- * - encoding: unused
- * - decoding: Set by user.
- */
- int skip_top;
-
- /**
- * Number of macroblock rows at the bottom which are skipped.
- * - encoding: unused
- * - decoding: Set by user.
- */
- int skip_bottom;
-
/**
* minimum MB Lagrange multiplier
* - encoding: Set by user.
@@ -976,11 +1020,11 @@ typedef struct AVCodecContext {
int keyint_min;
/**
- * number of reference frames
+ * the number of pictures in a group of pictures, or 0 for intra_only
* - encoding: Set by user.
- * - decoding: Set by lavc.
+ * - decoding: unused
*/
- int refs;
+ int gop_size;
/**
* Note: Value depends upon the compare function used for fullpel ME.
@@ -989,44 +1033,6 @@ typedef struct AVCodecContext {
*/
int mv0_threshold;
- /**
- * Chromaticity coordinates of the source primaries.
- * - encoding: Set by user
- * - decoding: Set by libavcodec
- */
- enum AVColorPrimaries color_primaries;
-
- /**
- * Color Transfer Characteristic.
- * - encoding: Set by user
- * - decoding: Set by libavcodec
- */
- enum AVColorTransferCharacteristic color_trc;
-
- /**
- * YUV colorspace type.
- * - encoding: Set by user
- * - decoding: Set by libavcodec
- */
- enum AVColorSpace colorspace;
-
- /**
- * MPEG vs JPEG YUV range.
- * - encoding: Set by user to override the default output color range value,
- * If not specified, libavcodec sets the color range depending on the
- * output format.
- * - decoding: Set by libavcodec, can be set by the user to propagate the
- * color range to components reading from the decoder context.
- */
- enum AVColorRange color_range;
-
- /**
- * This defines the location of chroma samples.
- * - encoding: Set by user
- * - decoding: Set by libavcodec
- */
- enum AVChromaLocation chroma_sample_location;
-
/**
* Number of slices.
* Indicates number of picture subdivisions. Used for parallelized
@@ -1036,12 +1042,6 @@ typedef struct AVCodecContext {
*/
int slices;
- /** Field order
- * - encoding: set by libavcodec
- * - decoding: Set by user.
- */
- enum AVFieldOrder field_order;
-
/* audio only */
int sample_rate; ///< samples per second
@@ -1052,6 +1052,14 @@ typedef struct AVCodecContext {
*/
enum AVSampleFormat sample_fmt; ///< sample format
+ /**
+ * Audio channel layout.
+ * - encoding: must be set by the caller, to one of AVCodec.ch_layouts.
+ * - decoding: may be set by the caller if known e.g. from the container.
+ * The decoder can then override during decoding as needed.
+ */
+ AVChannelLayout ch_layout;
+
/* The following data should not be initialized. */
/**
* Number of samples per channel in an audio frame.
@@ -1092,6 +1100,41 @@ typedef struct AVCodecContext {
*/
enum AVSampleFormat request_sample_fmt;
+ /**
+ * Audio only. The number of "priming" samples (padding) inserted by the
+ * encoder at the beginning of the audio. I.e. this number of leading
+ * decoded samples must be discarded by the caller to get the original audio
+ * without leading padding.
+ *
+ * - decoding: unused
+ * - encoding: Set by libavcodec. The timestamps on the output packets are
+ * adjusted by the encoder so that they always refer to the
+ * first sample of the data actually contained in the packet,
+ * including any added padding. E.g. if the timebase is
+ * 1/samplerate and the timestamp of the first input sample is
+ * 0, the timestamp of the first output packet will be
+ * -initial_padding.
+ */
+ int initial_padding;
+
+ /**
+ * Audio only. The amount of padding (in samples) appended by the encoder to
+ * the end of the audio. I.e. this number of decoded samples must be
+ * discarded by the caller from the end of the stream to get the original
+ * audio without any trailing padding.
+ *
+ * - decoding: unused
+ * - encoding: unused
+ */
+ int trailing_padding;
+
+ /**
+ * Number of samples to skip after a discontinuity
+ * - decoding: unused
+ * - encoding: set by libavcodec
+ */
+ int seek_preroll;
+
/**
* This callback is called at the beginning of each frame to get data
* buffer(s) for it. There may be one contiguous buffer for all the data or
@@ -1175,6 +1218,29 @@ typedef struct AVCodecContext {
int (*get_buffer2)(struct AVCodecContext *s, AVFrame *frame, int flags);
/* - encoding parameters */
+ /**
+ * number of bits the bitstream is allowed to diverge from the reference.
+ * the reference can be CBR (for CBR pass1) or VBR (for pass2)
+ * - encoding: Set by user; unused for constant quantizer encoding.
+ * - decoding: unused
+ */
+ int bit_rate_tolerance;
+
+ /**
+ * Global quality for codecs which cannot change it per frame.
+ * This should be proportional to MPEG-1/2/4 qscale.
+ * - encoding: Set by user.
+ * - decoding: unused
+ */
+ int global_quality;
+
+ /**
+ * - encoding: Set by user.
+ * - decoding: unused
+ */
+ int compression_level;
+#define FF_COMPRESSION_DEFAULT -1
+
float qcompress; ///< amount of qscale change between easy & hard scenes (0.0-1.0)
float qblur; ///< amount of qscale smoothing over time (0.0-1.0)
@@ -1380,6 +1446,75 @@ typedef struct AVCodecContext {
*/
void *hwaccel_context;
+ /**
+ * A reference to the AVHWFramesContext describing the input (for encoding)
+ * or output (decoding) frames. The reference is set by the caller and
+ * afterwards owned (and freed) by libavcodec - it should never be read by
+ * the caller after being set.
+ *
+ * - decoding: This field should be set by the caller from the get_format()
+ * callback. The previous reference (if any) will always be
+ * unreffed by libavcodec before the get_format() call.
+ *
+ * If the default get_buffer2() is used with a hwaccel pixel
+ * format, then this AVHWFramesContext will be used for
+ * allocating the frame buffers.
+ *
+ * - encoding: For hardware encoders configured to use a hwaccel pixel
+ * format, this field should be set by the caller to a reference
+ * to the AVHWFramesContext describing input frames.
+ * AVHWFramesContext.format must be equal to
+ * AVCodecContext.pix_fmt.
+ *
+ * This field should be set before avcodec_open2() is called.
+ */
+ AVBufferRef *hw_frames_ctx;
+
+ /**
+ * A reference to the AVHWDeviceContext describing the device which will
+ * be used by a hardware encoder/decoder. The reference is set by the
+ * caller and afterwards owned (and freed) by libavcodec.
+ *
+ * This should be used if either the codec device does not require
+ * hardware frames or any that are used are to be allocated internally by
+ * libavcodec. If the user wishes to supply any of the frames used as
+ * encoder input or decoder output then hw_frames_ctx should be used
+ * instead. When hw_frames_ctx is set in get_format() for a decoder, this
+ * field will be ignored while decoding the associated stream segment, but
+ * may again be used on a following one after another get_format() call.
+ *
+ * For both encoders and decoders this field should be set before
+ * avcodec_open2() is called and must not be written to thereafter.
+ *
+ * Note that some decoders may require this field to be set initially in
+ * order to support hw_frames_ctx at all - in that case, all frames
+ * contexts used must be created on the same device.
+ */
+ AVBufferRef *hw_device_ctx;
+
+ /**
+ * Bit set of AV_HWACCEL_FLAG_* flags, which affect hardware accelerated
+ * decoding (if active).
+ * - encoding: unused
+ * - decoding: Set by user (either before avcodec_open2(), or in the
+ * AVCodecContext.get_format callback)
+ */
+ int hwaccel_flags;
+
+ /*
+ * Video decoding only. Sets the number of extra hardware frames which
+ * the decoder will allocate for use by the caller. This must be set
+ * before avcodec_open2() is called.
+ *
+ * Some hardware decoders require all frames that they will use for
+ * output to be defined in advance before decoding starts. For such
+ * decoders, the hardware frame pool must therefore be of a fixed size.
+ * The extra frames set here are on top of any number that the decoder
+ * needs internally in order to operate normally (for example, frames
+ * used as reference pictures).
+ */
+ int extra_hw_frames;
+
/**
* error
* - encoding: Set by libavcodec if flags & AV_CODEC_FLAG_PSNR.
@@ -1434,13 +1569,6 @@ typedef struct AVCodecContext {
*/
int bits_per_raw_sample;
- /**
- * low resolution decoding, 1-> 1/2 size, 2->1/4 size
- * - encoding: unused
- * - decoding: Set by user.
- */
- int lowres;
-
/**
* thread count
* is used to decide how many independent tasks should be passed to execute()
@@ -1498,13 +1626,6 @@ typedef struct AVCodecContext {
*/
int (*execute2)(struct AVCodecContext *c, int (*func)(struct AVCodecContext *c2, void *arg, int jobnr, int threadnr), void *arg2, int *ret, int count);
- /**
- * noise vs. sse weight for the nsse comparison function
- * - encoding: Set by user.
- * - decoding: unused
- */
- int nsse_weight;
-
/**
* profile
* - encoding: Set by user.
@@ -1662,6 +1783,16 @@ typedef struct AVCodecContext {
#define FF_LEVEL_UNKNOWN -99
#endif
+ /**
+ * Properties of the stream that gets decoded
+ * - encoding: unused
+ * - decoding: set by libavcodec
+ */
+ unsigned properties;
+#define FF_CODEC_PROPERTY_LOSSLESS 0x00000001
+#define FF_CODEC_PROPERTY_CLOSED_CAPTIONS 0x00000002
+#define FF_CODEC_PROPERTY_FILM_GRAIN 0x00000004
+
/**
* Skip loop filtering for selected frames.
* - encoding: unused
@@ -1684,55 +1815,39 @@ typedef struct AVCodecContext {
enum AVDiscard skip_frame;
/**
- * Header containing style information for text subtitles.
- * For SUBTITLE_ASS subtitle type, it should contain the whole ASS
- * [Script Info] and [V4+ Styles] section, plus the [Events] line and
- * the Format line following. It shouldn't include any Dialogue line.
- * - encoding: Set/allocated/freed by user (before avcodec_open2())
- * - decoding: Set/allocated/freed by libavcodec (by avcodec_open2())
- */
- uint8_t *subtitle_header;
- int subtitle_header_size;
-
- /**
- * Audio only. The number of "priming" samples (padding) inserted by the
- * encoder at the beginning of the audio. I.e. this number of leading
- * decoded samples must be discarded by the caller to get the original audio
- * without leading padding.
+ * Skip processing alpha if supported by codec.
+ * Note that if the format uses pre-multiplied alpha (common with VP6,
+ * and recommended due to better video quality/compression)
+ * the image will look as if alpha-blended onto a black background.
+ * However for formats that do not use pre-multiplied alpha
+ * there might be serious artefacts (though e.g. libswscale currently
+ * assumes pre-multiplied alpha anyway).
*
- * - decoding: unused
- * - encoding: Set by libavcodec. The timestamps on the output packets are
- * adjusted by the encoder so that they always refer to the
- * first sample of the data actually contained in the packet,
- * including any added padding. E.g. if the timebase is
- * 1/samplerate and the timestamp of the first input sample is
- * 0, the timestamp of the first output packet will be
- * -initial_padding.
+ * - decoding: set by user
+ * - encoding: unused
*/
- int initial_padding;
+ int skip_alpha;
/**
- * - decoding: For codecs that store a framerate value in the compressed
- * bitstream, the decoder may export it here. { 0, 1} when
- * unknown.
- * - encoding: May be used to signal the framerate of CFR content to an
- * encoder.
+ * Number of macroblock rows at the top which are skipped.
+ * - encoding: unused
+ * - decoding: Set by user.
*/
- AVRational framerate;
+ int skip_top;
/**
- * Nominal unaccelerated pixel format, see AV_PIX_FMT_xxx.
- * - encoding: unused.
- * - decoding: Set by libavcodec before calling get_format()
+ * Number of macroblock rows at the bottom which are skipped.
+ * - encoding: unused
+ * - decoding: Set by user.
*/
- enum AVPixelFormat sw_pix_fmt;
+ int skip_bottom;
/**
- * Timebase in which pkt_dts/pts and AVPacket.dts/pts are expressed.
- * - encoding: unused.
- * - decoding: set by user.
+ * low resolution decoding, 1-> 1/2 size, 2->1/4 size
+ * - encoding: unused
+ * - decoding: Set by user.
*/
- AVRational pkt_timebase;
+ int lowres;
/**
* AVCodecDescriptor
@@ -1771,32 +1886,15 @@ typedef struct AVCodecContext {
#define FF_SUB_CHARENC_MODE_IGNORE 2 ///< neither convert the subtitles, nor check them for valid UTF-8
/**
- * Skip processing alpha if supported by codec.
- * Note that if the format uses pre-multiplied alpha (common with VP6,
- * and recommended due to better video quality/compression)
- * the image will look as if alpha-blended onto a black background.
- * However for formats that do not use pre-multiplied alpha
- * there might be serious artefacts (though e.g. libswscale currently
- * assumes pre-multiplied alpha anyway).
- *
- * - decoding: set by user
- * - encoding: unused
- */
- int skip_alpha;
-
- /**
- * Number of samples to skip after a discontinuity
- * - decoding: unused
- * - encoding: set by libavcodec
- */
- int seek_preroll;
-
- /**
- * custom intra quantization matrix
- * - encoding: Set by user, can be NULL.
- * - decoding: unused.
+ * Header containing style information for text subtitles.
+ * For SUBTITLE_ASS subtitle type, it should contain the whole ASS
+ * [Script Info] and [V4+ Styles] section, plus the [Events] line and
+ * the Format line following. It shouldn't include any Dialogue line.
+ * - encoding: Set/allocated/freed by user (before avcodec_open2())
+ * - decoding: Set/allocated/freed by libavcodec (by avcodec_open2())
*/
- uint16_t *chroma_intra_matrix;
+ int subtitle_header_size;
+ uint8_t *subtitle_header;
/**
* dump format separator.
@@ -1814,16 +1912,6 @@ typedef struct AVCodecContext {
*/
char *codec_whitelist;
- /**
- * Properties of the stream that gets decoded
- * - encoding: unused
- * - decoding: set by libavcodec
- */
- unsigned properties;
-#define FF_CODEC_PROPERTY_LOSSLESS 0x00000001
-#define FF_CODEC_PROPERTY_CLOSED_CAPTIONS 0x00000002
-#define FF_CODEC_PROPERTY_FILM_GRAIN 0x00000004
-
/**
* Additional data associated with the entire coded stream.
*
@@ -1834,39 +1922,14 @@ typedef struct AVCodecContext {
int nb_coded_side_data;
/**
- * A reference to the AVHWFramesContext describing the input (for encoding)
- * or output (decoding) frames. The reference is set by the caller and
- * afterwards owned (and freed) by libavcodec - it should never be read by
- * the caller after being set.
- *
- * - decoding: This field should be set by the caller from the get_format()
- * callback. The previous reference (if any) will always be
- * unreffed by libavcodec before the get_format() call.
- *
- * If the default get_buffer2() is used with a hwaccel pixel
- * format, then this AVHWFramesContext will be used for
- * allocating the frame buffers.
- *
- * - encoding: For hardware encoders configured to use a hwaccel pixel
- * format, this field should be set by the caller to a reference
- * to the AVHWFramesContext describing input frames.
- * AVHWFramesContext.format must be equal to
- * AVCodecContext.pix_fmt.
- *
- * This field should be set before avcodec_open2() is called.
- */
- AVBufferRef *hw_frames_ctx;
-
- /**
- * Audio only. The amount of padding (in samples) appended by the encoder to
- * the end of the audio. I.e. this number of decoded samples must be
- * discarded by the caller from the end of the stream to get the original
- * audio without any trailing padding.
+ * Bit set of AV_CODEC_EXPORT_DATA_* flags, which affects the kind of
+ * metadata exported in frame, packet, or coded stream side data by
+ * decoders and encoders.
*
- * - decoding: unused
- * - encoding: unused
+ * - decoding: set by user
+ * - encoding: set by user
*/
- int trailing_padding;
+ int export_side_data;
/**
* The number of pixels per image to maximally accept.
@@ -1876,37 +1939,6 @@ typedef struct AVCodecContext {
*/
int64_t max_pixels;
- /**
- * A reference to the AVHWDeviceContext describing the device which will
- * be used by a hardware encoder/decoder. The reference is set by the
- * caller and afterwards owned (and freed) by libavcodec.
- *
- * This should be used if either the codec device does not require
- * hardware frames or any that are used are to be allocated internally by
- * libavcodec. If the user wishes to supply any of the frames used as
- * encoder input or decoder output then hw_frames_ctx should be used
- * instead. When hw_frames_ctx is set in get_format() for a decoder, this
- * field will be ignored while decoding the associated stream segment, but
- * may again be used on a following one after another get_format() call.
- *
- * For both encoders and decoders this field should be set before
- * avcodec_open2() is called and must not be written to thereafter.
- *
- * Note that some decoders may require this field to be set initially in
- * order to support hw_frames_ctx at all - in that case, all frames
- * contexts used must be created on the same device.
- */
- AVBufferRef *hw_device_ctx;
-
- /**
- * Bit set of AV_HWACCEL_FLAG_* flags, which affect hardware accelerated
- * decoding (if active).
- * - encoding: unused
- * - decoding: Set by user (either before avcodec_open2(), or in the
- * AVCodecContext.get_format callback)
- */
- int hwaccel_flags;
-
/**
* Video decoding only. Certain video codecs support cropping, meaning that
* only a sub-rectangle of the decoded frame is intended for display. This
@@ -1934,20 +1966,6 @@ typedef struct AVCodecContext {
*/
int apply_cropping;
- /*
- * Video decoding only. Sets the number of extra hardware frames which
- * the decoder will allocate for use by the caller. This must be set
- * before avcodec_open2() is called.
- *
- * Some hardware decoders require all frames that they will use for
- * output to be defined in advance before decoding starts. For such
- * decoders, the hardware frame pool must therefore be of a fixed size.
- * The extra frames set here are on top of any number that the decoder
- * needs internally in order to operate normally (for example, frames
- * used as reference pictures).
- */
- int extra_hw_frames;
-
/**
* The percentage of damaged samples to discard a frame.
*
@@ -1964,16 +1982,6 @@ typedef struct AVCodecContext {
*/
int64_t max_samples;
- /**
- * Bit set of AV_CODEC_EXPORT_DATA_* flags, which affects the kind of
- * metadata exported in frame, packet, or coded stream side data by
- * decoders and encoders.
- *
- * - decoding: set by user
- * - encoding: set by user
- */
- int export_side_data;
-
/**
* This callback is called at the beginning of each packet to get a data
* buffer for it.
@@ -2016,14 +2024,6 @@ typedef struct AVCodecContext {
*/
int (*get_encode_buffer)(struct AVCodecContext *s, AVPacket *pkt, int flags);
- /**
- * Audio channel layout.
- * - encoding: must be set by the caller, to one of AVCodec.ch_layouts.
- * - decoding: may be set by the caller if known e.g. from the container.
- * The decoder can then override during decoding as needed.
- */
- AVChannelLayout ch_layout;
-
/**
* Frame counter, set by libavcodec.
*
@@ -2170,6 +2170,7 @@ typedef struct AVSubtitleRect {
uint8_t *data[4];
int linesize[4];
+ int flags;
enum AVSubtitleType type;
char *text; ///< 0 terminated plain UTF-8 text
@@ -2180,8 +2181,6 @@ typedef struct AVSubtitleRect {
* struct.
*/
char *ass;
-
- int flags;
} AVSubtitleRect;
typedef struct AVSubtitle {
--
2.34.1
_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
To unsubscribe, visit link above, or email
ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".
^ permalink raw reply [flat|nested] 60+ messages in thread
* [FFmpeg-devel] [PATCH 35/35] avfilter/avfilter: Reorder structure fields
2024-01-25 13:43 [FFmpeg-devel] [PATCH 00/24] Major library version bump James Almer
` (35 preceding siblings ...)
2024-02-10 23:04 ` [FFmpeg-devel] [PATCH 34/35] avcodec/avcodec: Reorder AVCodecContext and AVSubtitleRect fields Andreas Rheinhardt
@ 2024-02-10 23:04 ` Andreas Rheinhardt
2024-03-04 15:11 ` [FFmpeg-devel] [PATCH] lavc: move AVCodecContext.pts_correction* to DecodeContext Anton Khirnov
` (4 subsequent siblings)
41 siblings, 0 replies; 60+ messages in thread
From: Andreas Rheinhardt @ 2024-02-10 23:04 UTC (permalink / raw)
To: ffmpeg-devel; +Cc: Andreas Rheinhardt
Move related fields closer together and try to plug holes.
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
---
libavfilter/avfilter.h | 41 ++++++++++++++++++++---------------------
1 file changed, 20 insertions(+), 21 deletions(-)
diff --git a/libavfilter/avfilter.h b/libavfilter/avfilter.h
index 35840cfd54..f376d25efc 100644
--- a/libavfilter/avfilter.h
+++ b/libavfilter/avfilter.h
@@ -441,6 +441,13 @@ struct AVFilterContext {
*/
int thread_type;
+ /**
+ * Max number of threads allowed in this filter instance.
+ * If <= 0, its value is ignored.
+ * Overrides global number of threads set per filter graph.
+ */
+ int nb_threads;
+
struct AVFilterCommand *command_queue;
char *enable_str; ///< enable expression string
@@ -461,13 +468,6 @@ struct AVFilterContext {
*/
AVBufferRef *hw_device_ctx;
- /**
- * Max number of threads allowed in this filter instance.
- * If <= 0, its value is ignored.
- * Overrides global number of threads set per filter graph.
- */
- int nb_threads;
-
/**
* Ready status of the filter.
* A non-0 value means that the filter needs activating;
@@ -548,14 +548,25 @@ struct AVFilterLink {
enum AVMediaType type; ///< filter media type
+ int format; ///< agreed upon media format
+
/* These parameters apply only to video */
int w; ///< agreed upon image width
int h; ///< agreed upon image height
AVRational sample_aspect_ratio; ///< agreed upon sample aspect ratio
+ /**
+ * For non-YUV links, these are respectively set to fallback values (as
+ * appropriate for that colorspace).
+ *
+ * Note: This includes grayscale formats, as these are currently treated
+ * as forced full range always.
+ */
+ enum AVColorSpace colorspace; ///< agreed upon YUV color space
+ enum AVColorRange color_range; ///< agreed upon YUV color range
+
/* These parameters apply only to audio */
int sample_rate; ///< samples per second
-
- int format; ///< agreed upon media format
+ AVChannelLayout ch_layout; ///< channel layout of current buffer (see libavutil/channel_layout.h)
/**
* Define the time base used by the PTS of the frames/samples
@@ -566,18 +577,6 @@ struct AVFilterLink {
*/
AVRational time_base;
- AVChannelLayout ch_layout; ///< channel layout of current buffer (see libavutil/channel_layout.h)
-
- /**
- * For non-YUV links, these are respectively set to fallback values (as
- * appropriate for that colorspace).
- *
- * Note: This includes grayscale formats, as these are currently treated
- * as forced full range always.
- */
- enum AVColorSpace colorspace; ///< agreed upon YUV color space
- enum AVColorRange color_range; ///< agreed upon YUV color range
-
/*****************************************************************
* All fields below this line are not part of the public API. They
* may not be used outside of libavfilter and can be changed and
--
2.34.1
_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
To unsubscribe, visit link above, or email
ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".
^ permalink raw reply [flat|nested] 60+ messages in thread
* Re: [FFmpeg-devel] [PATCH 32/35] avfilter/af_hdcd: Drop a redundant log
2024-02-10 23:04 ` [FFmpeg-devel] [PATCH 32/35] avfilter/af_hdcd: Drop a redundant log Andreas Rheinhardt
@ 2024-02-13 17:31 ` Andreas Rheinhardt
0 siblings, 0 replies; 60+ messages in thread
From: Andreas Rheinhardt @ 2024-02-13 17:31 UTC (permalink / raw)
To: ffmpeg-devel
Andreas Rheinhardt:
> avfilter_insert_filter() already reports (also with AV_LOG_VERBOSE)
> when a filter is auto-inserted.
>
> Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
> ---
> Can be applied at any time.
>
> libavfilter/af_hdcd.c | 3 ---
> 1 file changed, 3 deletions(-)
>
> diff --git a/libavfilter/af_hdcd.c b/libavfilter/af_hdcd.c
> index a03c9aadf7..9cd483cfc4 100644
> --- a/libavfilter/af_hdcd.c
> +++ b/libavfilter/af_hdcd.c
> @@ -1714,9 +1714,6 @@ static int config_input(AVFilterLink *inlink) {
> HDCDContext *s = ctx->priv;
> int c;
>
> - av_log(ctx, AV_LOG_VERBOSE, "Auto-convert: %s\n",
> - (ctx->graph->disable_auto_convert) ? "disabled" : "enabled");
> -
> if ((inlink->format == AV_SAMPLE_FMT_S16 ||
> inlink->format == AV_SAMPLE_FMT_S16P) &&
> s->bits_per_sample != 16) {
Will apply tomorrow unless there are objections.
- Andreas
_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
To unsubscribe, visit link above, or email
ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".
^ permalink raw reply [flat|nested] 60+ messages in thread
* [FFmpeg-devel] [PATCH] lavc: move AVCodecContext.pts_correction* to DecodeContext
2024-01-25 13:43 [FFmpeg-devel] [PATCH 00/24] Major library version bump James Almer
` (36 preceding siblings ...)
2024-02-10 23:04 ` [FFmpeg-devel] [PATCH 35/35] avfilter/avfilter: Reorder structure fields Andreas Rheinhardt
@ 2024-03-04 15:11 ` Anton Khirnov
2024-03-04 18:06 ` [FFmpeg-devel] [PATCH5] avcodec/codec_par: Reorder AVCodecParameters fields James Almer
` (3 subsequent siblings)
41 siblings, 0 replies; 60+ messages in thread
From: Anton Khirnov @ 2024-03-04 15:11 UTC (permalink / raw)
To: ffmpeg-devel
These fields are documented to be non-public and are only used in
decode.c
---
libavcodec/avcodec.h | 10 ----------
libavcodec/decode.c | 37 ++++++++++++++++++++++---------------
2 files changed, 22 insertions(+), 25 deletions(-)
diff --git a/libavcodec/avcodec.h b/libavcodec/avcodec.h
index 43859251cc..0578c5d525 100644
--- a/libavcodec/avcodec.h
+++ b/libavcodec/avcodec.h
@@ -1827,16 +1827,6 @@ typedef struct AVCodecContext {
*/
const struct AVCodecDescriptor *codec_descriptor;
- /**
- * Current statistics for PTS correction.
- * - decoding: maintained and used by libavcodec, not intended to be used by user apps
- * - encoding: unused
- */
- int64_t pts_correction_num_faulty_pts; /// Number of incorrect PTS values so far
- int64_t pts_correction_num_faulty_dts; /// Number of incorrect DTS values so far
- int64_t pts_correction_last_pts; /// PTS of the last frame
- int64_t pts_correction_last_dts; /// DTS of the last frame
-
/**
* Character encoding of the input subtitles file.
* - decoding: set by user
diff --git a/libavcodec/decode.c b/libavcodec/decode.c
index 7c67b18bc4..c2b4266b78 100644
--- a/libavcodec/decode.c
+++ b/libavcodec/decode.c
@@ -60,6 +60,11 @@ typedef struct DecodeContext {
* The caller has submitted a NULL packet on input.
*/
int draining_started;
+
+ int64_t pts_correction_num_faulty_pts; /// Number of incorrect PTS values so far
+ int64_t pts_correction_num_faulty_dts; /// Number of incorrect DTS values so far
+ int64_t pts_correction_last_pts; /// PTS of the last frame
+ int64_t pts_correction_last_dts; /// DTS of the last frame
} DecodeContext;
static DecodeContext *decode_ctx(AVCodecInternal *avci)
@@ -273,24 +278,24 @@ int ff_decode_get_packet(AVCodecContext *avctx, AVPacket *pkt)
* @param dts the dts field of the decoded AVPacket
* @return one of the input values, may be AV_NOPTS_VALUE
*/
-static int64_t guess_correct_pts(AVCodecContext *ctx,
+static int64_t guess_correct_pts(DecodeContext *dc,
int64_t reordered_pts, int64_t dts)
{
int64_t pts = AV_NOPTS_VALUE;
if (dts != AV_NOPTS_VALUE) {
- ctx->pts_correction_num_faulty_dts += dts <= ctx->pts_correction_last_dts;
- ctx->pts_correction_last_dts = dts;
+ dc->pts_correction_num_faulty_dts += dts <= dc->pts_correction_last_dts;
+ dc->pts_correction_last_dts = dts;
} else if (reordered_pts != AV_NOPTS_VALUE)
- ctx->pts_correction_last_dts = reordered_pts;
+ dc->pts_correction_last_dts = reordered_pts;
if (reordered_pts != AV_NOPTS_VALUE) {
- ctx->pts_correction_num_faulty_pts += reordered_pts <= ctx->pts_correction_last_pts;
- ctx->pts_correction_last_pts = reordered_pts;
+ dc->pts_correction_num_faulty_pts += reordered_pts <= dc->pts_correction_last_pts;
+ dc->pts_correction_last_pts = reordered_pts;
} else if(dts != AV_NOPTS_VALUE)
- ctx->pts_correction_last_pts = dts;
+ dc->pts_correction_last_pts = dts;
- if ((ctx->pts_correction_num_faulty_pts<=ctx->pts_correction_num_faulty_dts || dts == AV_NOPTS_VALUE)
+ if ((dc->pts_correction_num_faulty_pts<=dc->pts_correction_num_faulty_dts || dts == AV_NOPTS_VALUE)
&& reordered_pts != AV_NOPTS_VALUE)
pts = reordered_pts;
else
@@ -617,6 +622,7 @@ static int decode_simple_receive_frame(AVCodecContext *avctx, AVFrame *frame)
static int decode_receive_frame_internal(AVCodecContext *avctx, AVFrame *frame)
{
AVCodecInternal *avci = avctx->internal;
+ DecodeContext *dc = decode_ctx(avci);
const FFCodec *const codec = ffcodec(avctx->codec);
int ret, ok;
@@ -672,7 +678,7 @@ FF_DISABLE_DEPRECATION_WARNINGS
frame->top_field_first = !!(frame->flags & AV_FRAME_FLAG_TOP_FIELD_FIRST);
FF_ENABLE_DEPRECATION_WARNINGS
#endif
- frame->best_effort_timestamp = guess_correct_pts(avctx,
+ frame->best_effort_timestamp = guess_correct_pts(dc,
frame->pts,
frame->pkt_dts);
@@ -1744,6 +1750,7 @@ int ff_reget_buffer(AVCodecContext *avctx, AVFrame *frame, int flags)
int ff_decode_preinit(AVCodecContext *avctx)
{
AVCodecInternal *avci = avctx->internal;
+ DecodeContext *dc = decode_ctx(avci);
int ret = 0;
/* if the decoder init function was already called previously,
@@ -1791,10 +1798,10 @@ int ff_decode_preinit(AVCodecContext *avctx)
}
}
- avctx->pts_correction_num_faulty_pts =
- avctx->pts_correction_num_faulty_dts = 0;
- avctx->pts_correction_last_pts =
- avctx->pts_correction_last_dts = INT64_MIN;
+ dc->pts_correction_num_faulty_pts =
+ dc->pts_correction_num_faulty_dts = 0;
+ dc->pts_correction_last_pts =
+ dc->pts_correction_last_dts = INT64_MIN;
if ( !CONFIG_GRAY && avctx->flags & AV_CODEC_FLAG_GRAY
&& avctx->codec_descriptor->type == AVMEDIA_TYPE_VIDEO)
@@ -1873,8 +1880,8 @@ void ff_decode_flush_buffers(AVCodecContext *avctx)
av_packet_unref(avci->last_pkt_props);
av_packet_unref(avci->in_pkt);
- avctx->pts_correction_last_pts =
- avctx->pts_correction_last_dts = INT64_MIN;
+ dc->pts_correction_last_pts =
+ dc->pts_correction_last_dts = INT64_MIN;
av_bsf_flush(avci->bsf);
--
2.43.0
_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
To unsubscribe, visit link above, or email
ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".
^ permalink raw reply [flat|nested] 60+ messages in thread
* [FFmpeg-devel] [PATCH5] avcodec/codec_par: Reorder AVCodecParameters fields
2024-01-25 13:43 [FFmpeg-devel] [PATCH 00/24] Major library version bump James Almer
` (37 preceding siblings ...)
2024-03-04 15:11 ` [FFmpeg-devel] [PATCH] lavc: move AVCodecContext.pts_correction* to DecodeContext Anton Khirnov
@ 2024-03-04 18:06 ` James Almer
2024-03-04 18:06 ` [FFmpeg-devel] [PATCH 1/2] avformat/avformat: remove AVFormatContext.ts_id James Almer
` (2 subsequent siblings)
41 siblings, 0 replies; 60+ messages in thread
From: James Almer @ 2024-03-04 18:06 UTC (permalink / raw)
To: ffmpeg-devel
Move related fields closer together.
Signed-off-by: James Almer <jamrial@gmail.com>
---
libavcodec/codec_par.h | 59 +++++++++++++++++++++---------------------
1 file changed, 29 insertions(+), 30 deletions(-)
diff --git a/libavcodec/codec_par.h b/libavcodec/codec_par.h
index fa6851294f..f4b9bb5c06 100644
--- a/libavcodec/codec_par.h
+++ b/libavcodec/codec_par.h
@@ -72,6 +72,19 @@ typedef struct AVCodecParameters {
*/
int extradata_size;
+ /**
+ * Additional data associated with the entire stream.
+ *
+ * Should be allocated with av_packet_side_data_new() or
+ * av_packet_side_data_add(), and will be freed by avcodec_parameters_free().
+ */
+ AVPacketSideData *coded_side_data;
+
+ /**
+ * Amount of entries in @ref coded_side_data.
+ */
+ int nb_coded_side_data;
+
/**
* - video: the pixel format, the value corresponds to enum AVPixelFormat.
* - audio: the sample format, the value corresponds to enum AVSampleFormat.
@@ -130,6 +143,18 @@ typedef struct AVCodecParameters {
*/
AVRational sample_aspect_ratio;
+ /**
+ * Video only. Number of frames per second, for streams with constant frame
+ * durations. Should be set to { 0, 1 } when some frames have differing
+ * durations or if the value is not known.
+ *
+ * @note This field correponds to values that are stored in codec-level
+ * headers and is typically overridden by container/transport-layer
+ * timestamps, when available. It should thus be used only as a last resort,
+ * when no higher-level timing information is available.
+ */
+ AVRational framerate;
+
/**
* Video only. The order of the fields in interlaced video.
*/
@@ -149,6 +174,10 @@ typedef struct AVCodecParameters {
*/
int video_delay;
+ /**
+ * Audio only. The channel layout and number of channels.
+ */
+ AVChannelLayout ch_layout;
/**
* Audio only. The number of audio samples per second.
*/
@@ -183,36 +212,6 @@ typedef struct AVCodecParameters {
* Audio only. Number of samples to skip after a discontinuity.
*/
int seek_preroll;
-
- /**
- * Audio only. The channel layout and number of channels.
- */
- AVChannelLayout ch_layout;
-
- /**
- * Video only. Number of frames per second, for streams with constant frame
- * durations. Should be set to { 0, 1 } when some frames have differing
- * durations or if the value is not known.
- *
- * @note This field correponds to values that are stored in codec-level
- * headers and is typically overridden by container/transport-layer
- * timestamps, when available. It should thus be used only as a last resort,
- * when no higher-level timing information is available.
- */
- AVRational framerate;
-
- /**
- * Additional data associated with the entire stream.
- *
- * Should be allocated with av_packet_side_data_new() or
- * av_packet_side_data_add(), and will be freed by avcodec_parameters_free().
- */
- AVPacketSideData *coded_side_data;
-
- /**
- * Amount of entries in @ref coded_side_data.
- */
- int nb_coded_side_data;
} AVCodecParameters;
/**
--
2.44.0
_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
To unsubscribe, visit link above, or email
ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".
^ permalink raw reply [flat|nested] 60+ messages in thread
* [FFmpeg-devel] [PATCH 1/2] avformat/avformat: remove AVFormatContext.ts_id
2024-01-25 13:43 [FFmpeg-devel] [PATCH 00/24] Major library version bump James Almer
` (38 preceding siblings ...)
2024-03-04 18:06 ` [FFmpeg-devel] [PATCH5] avcodec/codec_par: Reorder AVCodecParameters fields James Almer
@ 2024-03-04 18:06 ` James Almer
2024-03-04 18:06 ` [FFmpeg-devel] [PATCH 2/2] avformat/avformat: Reorder AVFormatContext fields James Almer
2024-03-04 18:06 ` [FFmpeg-devel] [PATCH] lavc: move AVCodecContext.pts_correction* to DecodeContext James Almer
41 siblings, 0 replies; 60+ messages in thread
From: James Almer @ 2024-03-04 18:06 UTC (permalink / raw)
To: ffmpeg-devel
It's been replaced by a demuxer exported private option.
Signed-off-by: James Almer <jamrial@gmail.com>
---
libavformat/avformat.h | 6 ------
libavformat/mpegts.c | 2 +-
2 files changed, 1 insertion(+), 7 deletions(-)
diff --git a/libavformat/avformat.h b/libavformat/avformat.h
index 1ae4c37d45..d74db17df1 100644
--- a/libavformat/avformat.h
+++ b/libavformat/avformat.h
@@ -1591,12 +1591,6 @@ typedef struct AVFormatContext {
#define AVFMT_AVOID_NEG_TS_MAKE_NON_NEGATIVE 1 ///< Shift timestamps so they are non negative
#define AVFMT_AVOID_NEG_TS_MAKE_ZERO 2 ///< Shift timestamps so that they start at 0
- /**
- * Transport stream id.
- * This will be moved into demuxer private options. Thus no API/ABI compatibility
- */
- int ts_id;
-
/**
* Audio preload in microseconds.
* Note, not all formats support this and unpredictable things may happen if it is used when not supported.
diff --git a/libavformat/mpegts.c b/libavformat/mpegts.c
index d4fe03bb67..de7a3c8b45 100644
--- a/libavformat/mpegts.c
+++ b/libavformat/mpegts.c
@@ -2561,7 +2561,7 @@ static void pat_cb(MpegTSFilter *filter, const uint8_t *section, int section_len
if (skip_identical(h, tssf))
return;
- ts->stream->ts_id = ts->id = h->id;
+ ts->id = h->id;
for (;;) {
sid = get16(&p, p_end);
--
2.44.0
_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
To unsubscribe, visit link above, or email
ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".
^ permalink raw reply [flat|nested] 60+ messages in thread
* [FFmpeg-devel] [PATCH 2/2] avformat/avformat: Reorder AVFormatContext fields
2024-01-25 13:43 [FFmpeg-devel] [PATCH 00/24] Major library version bump James Almer
` (39 preceding siblings ...)
2024-03-04 18:06 ` [FFmpeg-devel] [PATCH 1/2] avformat/avformat: remove AVFormatContext.ts_id James Almer
@ 2024-03-04 18:06 ` James Almer
2024-03-04 18:06 ` [FFmpeg-devel] [PATCH] lavc: move AVCodecContext.pts_correction* to DecodeContext James Almer
41 siblings, 0 replies; 60+ messages in thread
From: James Almer @ 2024-03-04 18:06 UTC (permalink / raw)
To: ffmpeg-devel
Move related fields closer together.
Signed-off-by: James Almer <jamrial@gmail.com>
---
libavformat/avformat.h | 222 ++++++++++++++++++++---------------------
1 file changed, 111 insertions(+), 111 deletions(-)
diff --git a/libavformat/avformat.h b/libavformat/avformat.h
index d74db17df1..f28db099d4 100644
--- a/libavformat/avformat.h
+++ b/libavformat/avformat.h
@@ -1324,6 +1324,39 @@ typedef struct AVFormatContext {
*/
AVStream **streams;
+ /**
+ * Number of elements in AVFormatContext.stream_groups.
+ *
+ * Set by avformat_stream_group_create(), must not be modified by any other code.
+ */
+ unsigned int nb_stream_groups;
+ /**
+ * A list of all stream groups in the file. New groups are created with
+ * avformat_stream_group_create(), and filled with avformat_stream_group_add_stream().
+ *
+ * - demuxing: groups may be created by libavformat in avformat_open_input().
+ * If AVFMTCTX_NOHEADER is set in ctx_flags, then new groups may also
+ * appear in av_read_frame().
+ * - muxing: groups may be created by the user before avformat_write_header().
+ *
+ * Freed by libavformat in avformat_free_context().
+ */
+ AVStreamGroup **stream_groups;
+
+ /**
+ * Number of chapters in AVChapter array.
+ * When muxing, chapters are normally written in the file header,
+ * so nb_chapters should normally be initialized before write_header
+ * is called. Some muxers (e.g. mov and mkv) can also write chapters
+ * in the trailer. To write chapters in the trailer, nb_chapters
+ * must be zero when write_header is called and non-zero when
+ * write_trailer is called.
+ * - muxing: set by user
+ * - demuxing: set by libavformat
+ */
+ unsigned int nb_chapters;
+ AVChapter **chapters;
+
/**
* input or output URL. Unlike the old filename field, this field has no
* length restriction.
@@ -1443,36 +1476,10 @@ typedef struct AVFormatContext {
enum AVCodecID subtitle_codec_id;
/**
- * Maximum amount of memory in bytes to use for the index of each stream.
- * If the index exceeds this size, entries will be discarded as
- * needed to maintain a smaller size. This can lead to slower or less
- * accurate seeking (depends on demuxer).
- * Demuxers for which a full in-memory index is mandatory will ignore
- * this.
- * - muxing: unused
- * - demuxing: set by user
- */
- unsigned int max_index_size;
-
- /**
- * Maximum amount of memory in bytes to use for buffering frames
- * obtained from realtime capture devices.
- */
- unsigned int max_picture_buffer;
-
- /**
- * Number of chapters in AVChapter array.
- * When muxing, chapters are normally written in the file header,
- * so nb_chapters should normally be initialized before write_header
- * is called. Some muxers (e.g. mov and mkv) can also write chapters
- * in the trailer. To write chapters in the trailer, nb_chapters
- * must be zero when write_header is called and non-zero when
- * write_trailer is called.
- * - muxing: set by user
- * - demuxing: set by libavformat
+ * Forced Data codec_id.
+ * Demuxing: Set by user.
*/
- unsigned int nb_chapters;
- AVChapter **chapters;
+ enum AVCodecID data_codec_id;
/**
* Metadata that applies to the whole file.
@@ -1528,6 +1535,31 @@ typedef struct AVFormatContext {
int debug;
#define FF_FDEBUG_TS 0x0001
+ /**
+ * The maximum number of streams.
+ * - encoding: unused
+ * - decoding: set by user
+ */
+ int max_streams;
+
+ /**
+ * Maximum amount of memory in bytes to use for the index of each stream.
+ * If the index exceeds this size, entries will be discarded as
+ * needed to maintain a smaller size. This can lead to slower or less
+ * accurate seeking (depends on demuxer).
+ * Demuxers for which a full in-memory index is mandatory will ignore
+ * this.
+ * - muxing: unused
+ * - demuxing: set by user
+ */
+ unsigned int max_index_size;
+
+ /**
+ * Maximum amount of memory in bytes to use for buffering frames
+ * obtained from realtime capture devices.
+ */
+ unsigned int max_picture_buffer;
+
/**
* Maximum buffering duration for interleaving.
*
@@ -1546,6 +1578,35 @@ typedef struct AVFormatContext {
*/
int64_t max_interleave_delta;
+ /**
+ * Maximum number of packets to read while waiting for the first timestamp.
+ * Decoding only.
+ */
+ int max_ts_probe;
+
+ /**
+ * Max chunk time in microseconds.
+ * Note, not all formats support this and unpredictable things may happen if it is used when not supported.
+ * - encoding: Set by user
+ * - decoding: unused
+ */
+ int max_chunk_duration;
+
+ /**
+ * Max chunk size in bytes
+ * Note, not all formats support this and unpredictable things may happen if it is used when not supported.
+ * - encoding: Set by user
+ * - decoding: unused
+ */
+ int max_chunk_size;
+
+ /**
+ * Maximum number of packets that can be probed
+ * - encoding: unused
+ * - decoding: set by user
+ */
+ int max_probe_packets;
+
/**
* Allow non-standard and experimental extension
* @see AVCodecContext.strict_std_compliance
@@ -1572,11 +1633,6 @@ typedef struct AVFormatContext {
*/
#define AVFMT_EVENT_FLAG_METADATA_UPDATED 0x0001
- /**
- * Maximum number of packets to read while waiting for the first timestamp.
- * Decoding only.
- */
- int max_ts_probe;
/**
* Avoid negative timestamps during muxing.
@@ -1599,22 +1655,6 @@ typedef struct AVFormatContext {
*/
int audio_preload;
- /**
- * Max chunk time in microseconds.
- * Note, not all formats support this and unpredictable things may happen if it is used when not supported.
- * - encoding: Set by user
- * - decoding: unused
- */
- int max_chunk_duration;
-
- /**
- * Max chunk size in bytes
- * Note, not all formats support this and unpredictable things may happen if it is used when not supported.
- * - encoding: Set by user
- * - decoding: unused
- */
- int max_chunk_size;
-
/**
* forces the use of wallclock timestamps as pts/dts of packets
* This has undefined results in the presence of B frames.
@@ -1623,6 +1663,13 @@ typedef struct AVFormatContext {
*/
int use_wallclock_as_timestamps;
+ /**
+ * Skip duration calcuation in estimate_timings_from_pts.
+ * - encoding: unused
+ * - decoding: set by user
+ */
+ int skip_estimate_duration_from_pts;
+
/**
* avio flags, used to force AVIO_FLAG_DIRECT.
* - encoding: unused
@@ -1702,6 +1749,20 @@ typedef struct AVFormatContext {
*/
char *format_whitelist;
+ /**
+ * ',' separated list of allowed protocols.
+ * - encoding: unused
+ * - decoding: set by user
+ */
+ char *protocol_whitelist;
+
+ /**
+ * ',' separated list of disallowed protocols.
+ * - encoding: unused
+ * - decoding: set by user
+ */
+ char *protocol_blacklist;
+
/**
* IO repositioned flag.
* This is set by avformat when the underlaying IO context read pointer
@@ -1774,19 +1835,6 @@ typedef struct AVFormatContext {
*/
uint8_t *dump_separator;
- /**
- * Forced Data codec_id.
- * Demuxing: Set by user.
- */
- enum AVCodecID data_codec_id;
-
- /**
- * ',' separated list of allowed protocols.
- * - encoding: unused
- * - decoding: set by user
- */
- char *protocol_whitelist;
-
/**
* A callback for opening new IO streams.
*
@@ -1810,34 +1858,6 @@ typedef struct AVFormatContext {
int (*io_open)(struct AVFormatContext *s, AVIOContext **pb, const char *url,
int flags, AVDictionary **options);
- /**
- * ',' separated list of disallowed protocols.
- * - encoding: unused
- * - decoding: set by user
- */
- char *protocol_blacklist;
-
- /**
- * The maximum number of streams.
- * - encoding: unused
- * - decoding: set by user
- */
- int max_streams;
-
- /**
- * Skip duration calcuation in estimate_timings_from_pts.
- * - encoding: unused
- * - decoding: set by user
- */
- int skip_estimate_duration_from_pts;
-
- /**
- * Maximum number of packets that can be probed
- * - encoding: unused
- * - decoding: set by user
- */
- int max_probe_packets;
-
/**
* A callback for closing the streams opened with AVFormatContext.io_open().
*
@@ -1850,26 +1870,6 @@ typedef struct AVFormatContext {
* @return 0 on success, a negative AVERROR code on failure
*/
int (*io_close2)(struct AVFormatContext *s, AVIOContext *pb);
-
- /**
- * Number of elements in AVFormatContext.stream_groups.
- *
- * Set by avformat_stream_group_create(), must not be modified by any other code.
- */
- unsigned int nb_stream_groups;
-
- /**
- * A list of all stream groups in the file. New groups are created with
- * avformat_stream_group_create(), and filled with avformat_stream_group_add_stream().
- *
- * - demuxing: groups may be created by libavformat in avformat_open_input().
- * If AVFMTCTX_NOHEADER is set in ctx_flags, then new groups may also
- * appear in av_read_frame().
- * - muxing: groups may be created by the user before avformat_write_header().
- *
- * Freed by libavformat in avformat_free_context().
- */
- AVStreamGroup **stream_groups;
} AVFormatContext;
/**
--
2.44.0
_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
To unsubscribe, visit link above, or email
ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".
^ permalink raw reply [flat|nested] 60+ messages in thread
* [FFmpeg-devel] [PATCH] lavc: move AVCodecContext.pts_correction* to DecodeContext
2024-01-25 13:43 [FFmpeg-devel] [PATCH 00/24] Major library version bump James Almer
` (40 preceding siblings ...)
2024-03-04 18:06 ` [FFmpeg-devel] [PATCH 2/2] avformat/avformat: Reorder AVFormatContext fields James Almer
@ 2024-03-04 18:06 ` James Almer
41 siblings, 0 replies; 60+ messages in thread
From: James Almer @ 2024-03-04 18:06 UTC (permalink / raw)
To: ffmpeg-devel
From: Anton Khirnov <anton@khirnov.net>
These fields are documented to be non-public and are only used in
decode.c
Signed-off-by: James Almer <jamrial@gmail.com>
---
libavcodec/avcodec.h | 10 ----------
libavcodec/decode.c | 37 ++++++++++++++++++++++---------------
2 files changed, 22 insertions(+), 25 deletions(-)
diff --git a/libavcodec/avcodec.h b/libavcodec/avcodec.h
index 035f08a8e0..fb0612ed26 100644
--- a/libavcodec/avcodec.h
+++ b/libavcodec/avcodec.h
@@ -1860,16 +1860,6 @@ typedef struct AVCodecContext {
*/
const struct AVCodecDescriptor *codec_descriptor;
- /**
- * Current statistics for PTS correction.
- * - decoding: maintained and used by libavcodec, not intended to be used by user apps
- * - encoding: unused
- */
- int64_t pts_correction_num_faulty_pts; /// Number of incorrect PTS values so far
- int64_t pts_correction_num_faulty_dts; /// Number of incorrect DTS values so far
- int64_t pts_correction_last_pts; /// PTS of the last frame
- int64_t pts_correction_last_dts; /// DTS of the last frame
-
/**
* Character encoding of the input subtitles file.
* - decoding: set by user
diff --git a/libavcodec/decode.c b/libavcodec/decode.c
index 6579c9cbbf..c20b2ebdb3 100644
--- a/libavcodec/decode.c
+++ b/libavcodec/decode.c
@@ -60,6 +60,11 @@ typedef struct DecodeContext {
* The caller has submitted a NULL packet on input.
*/
int draining_started;
+
+ int64_t pts_correction_num_faulty_pts; /// Number of incorrect PTS values so far
+ int64_t pts_correction_num_faulty_dts; /// Number of incorrect DTS values so far
+ int64_t pts_correction_last_pts; /// PTS of the last frame
+ int64_t pts_correction_last_dts; /// DTS of the last frame
} DecodeContext;
static DecodeContext *decode_ctx(AVCodecInternal *avci)
@@ -240,24 +245,24 @@ int ff_decode_get_packet(AVCodecContext *avctx, AVPacket *pkt)
* @param dts the dts field of the decoded AVPacket
* @return one of the input values, may be AV_NOPTS_VALUE
*/
-static int64_t guess_correct_pts(AVCodecContext *ctx,
+static int64_t guess_correct_pts(DecodeContext *dc,
int64_t reordered_pts, int64_t dts)
{
int64_t pts = AV_NOPTS_VALUE;
if (dts != AV_NOPTS_VALUE) {
- ctx->pts_correction_num_faulty_dts += dts <= ctx->pts_correction_last_dts;
- ctx->pts_correction_last_dts = dts;
+ dc->pts_correction_num_faulty_dts += dts <= dc->pts_correction_last_dts;
+ dc->pts_correction_last_dts = dts;
} else if (reordered_pts != AV_NOPTS_VALUE)
- ctx->pts_correction_last_dts = reordered_pts;
+ dc->pts_correction_last_dts = reordered_pts;
if (reordered_pts != AV_NOPTS_VALUE) {
- ctx->pts_correction_num_faulty_pts += reordered_pts <= ctx->pts_correction_last_pts;
- ctx->pts_correction_last_pts = reordered_pts;
+ dc->pts_correction_num_faulty_pts += reordered_pts <= dc->pts_correction_last_pts;
+ dc->pts_correction_last_pts = reordered_pts;
} else if(dts != AV_NOPTS_VALUE)
- ctx->pts_correction_last_pts = dts;
+ dc->pts_correction_last_pts = dts;
- if ((ctx->pts_correction_num_faulty_pts<=ctx->pts_correction_num_faulty_dts || dts == AV_NOPTS_VALUE)
+ if ((dc->pts_correction_num_faulty_pts<=dc->pts_correction_num_faulty_dts || dts == AV_NOPTS_VALUE)
&& reordered_pts != AV_NOPTS_VALUE)
pts = reordered_pts;
else
@@ -575,6 +580,7 @@ static int decode_simple_receive_frame(AVCodecContext *avctx, AVFrame *frame)
static int decode_receive_frame_internal(AVCodecContext *avctx, AVFrame *frame)
{
AVCodecInternal *avci = avctx->internal;
+ DecodeContext *dc = decode_ctx(avci);
const FFCodec *const codec = ffcodec(avctx->codec);
int ret, ok;
@@ -630,7 +636,7 @@ FF_DISABLE_DEPRECATION_WARNINGS
frame->top_field_first = !!(frame->flags & AV_FRAME_FLAG_TOP_FIELD_FIRST);
FF_ENABLE_DEPRECATION_WARNINGS
#endif
- frame->best_effort_timestamp = guess_correct_pts(avctx,
+ frame->best_effort_timestamp = guess_correct_pts(dc,
frame->pts,
frame->pkt_dts);
@@ -1672,6 +1678,7 @@ int ff_reget_buffer(AVCodecContext *avctx, AVFrame *frame, int flags)
int ff_decode_preinit(AVCodecContext *avctx)
{
AVCodecInternal *avci = avctx->internal;
+ DecodeContext *dc = decode_ctx(avci);
int ret = 0;
/* if the decoder init function was already called previously,
@@ -1719,10 +1726,10 @@ int ff_decode_preinit(AVCodecContext *avctx)
}
}
- avctx->pts_correction_num_faulty_pts =
- avctx->pts_correction_num_faulty_dts = 0;
- avctx->pts_correction_last_pts =
- avctx->pts_correction_last_dts = INT64_MIN;
+ dc->pts_correction_num_faulty_pts =
+ dc->pts_correction_num_faulty_dts = 0;
+ dc->pts_correction_last_pts =
+ dc->pts_correction_last_dts = INT64_MIN;
if ( !CONFIG_GRAY && avctx->flags & AV_CODEC_FLAG_GRAY
&& avctx->codec_descriptor->type == AVMEDIA_TYPE_VIDEO)
@@ -1801,8 +1808,8 @@ void ff_decode_flush_buffers(AVCodecContext *avctx)
av_packet_unref(avci->last_pkt_props);
av_packet_unref(avci->in_pkt);
- avctx->pts_correction_last_pts =
- avctx->pts_correction_last_dts = INT64_MIN;
+ dc->pts_correction_last_pts =
+ dc->pts_correction_last_dts = INT64_MIN;
av_bsf_flush(avci->bsf);
--
2.44.0
_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
To unsubscribe, visit link above, or email
ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".
^ permalink raw reply [flat|nested] 60+ messages in thread
end of thread, other threads:[~2024-03-04 18:07 UTC | newest]
Thread overview: 60+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2024-01-25 13:43 [FFmpeg-devel] [PATCH 00/24] Major library version bump James Almer
2024-01-25 13:43 ` [FFmpeg-devel] [PATCH 01/24] avcodec: remove deprecated FF_API_IDCT_NONE James Almer
2024-01-25 13:43 ` [FFmpeg-devel] [PATCH 02/24] avcodec: remove deprecated FF_API_SVTAV1_OPTS James Almer
2024-01-25 13:43 ` [FFmpeg-devel] [PATCH 03/24] avcodec: remove deprecated FF_API_AYUV_CODECID James Almer
2024-01-25 13:43 ` [FFmpeg-devel] [PATCH 04/24] avcodec: remove deprecated FF_API_VT_OUTPUT_CALLBACK James Almer
2024-01-25 13:43 ` [FFmpeg-devel] [PATCH 05/24] avcodec: remove deprecated FF_API_AVCODEC_CHROMA_POS James Almer
2024-01-25 13:43 ` [FFmpeg-devel] [PATCH 06/24] avcodec: remove deprecated FF_API_VT_HWACCEL_CONTEXT James Almer
2024-01-25 13:43 ` [FFmpeg-devel] [PATCH 07/24] avcodec: remove deprecated FF_API_AVCTX_FRAME_NUMBER James Almer
2024-01-25 13:43 ` [FFmpeg-devel] [PATCH 08/24] avcodec: remove deprecated FF_CODEC_CRYSTAL_HD James Almer
2024-01-25 14:12 ` Andreas Rheinhardt
2024-01-25 14:23 ` James Almer
2024-01-25 13:43 ` [FFmpeg-devel] [PATCH 09/24] avformat: remove deprecated FF_API_GET_END_PTS James Almer
2024-01-25 13:43 ` [FFmpeg-devel] [PATCH 10/24] avformat: remove deprecated FF_API_AVIODIRCONTEXT James Almer
2024-01-25 13:43 ` [FFmpeg-devel] [PATCH 11/24] avformat: remove deprecated FF_API_AVFORMAT_IO_CLOSE James Almer
2024-01-25 13:43 ` [FFmpeg-devel] [PATCH 12/24] avfilter: remove deprecated FF_API_LIBPLACEBO_OPTS James Almer
2024-01-25 13:43 ` [FFmpeg-devel] [PATCH 13/24] avutil: remove deprecated FF_API_FIFO_PEEK2 James Almer
2024-01-25 13:43 ` [FFmpeg-devel] [PATCH 14/24] avutil: remove deprecated FF_API_FIFO_OLD_API James Almer
2024-01-25 13:43 ` [FFmpeg-devel] [PATCH 15/24] avutil: remove deprecated FF_API_XVMC James Almer
2024-01-25 13:43 ` [FFmpeg-devel] [PATCH 16/24] avutil: remove deprecated FF_API_OLD_CHANNEL_LAYOUT James Almer
2024-02-04 20:02 ` Andreas Rheinhardt
2024-01-25 13:43 ` [FFmpeg-devel] [PATCH 17/24] avutil: remove deprecated FF_API_AV_FOPEN_UTF8 James Almer
2024-01-25 13:43 ` [FFmpeg-devel] [PATCH 18/24] avutil: remove deprecated FF_API_PKT_DURATION James Almer
2024-02-04 20:04 ` Andreas Rheinhardt
2024-01-25 13:43 ` [FFmpeg-devel] [PATCH 19/24] avutil: remove deprecated FF_API_REORDERED_OPAQUE James Almer
2024-01-25 13:43 ` [FFmpeg-devel] [PATCH 20/24] avutil: remove deprecated FF_API_FRAME_PICTURE_NUMBER James Almer
2024-01-25 13:43 ` [FFmpeg-devel] [PATCH 21/24] avcodec/version_major: postpone some deprecations until the next bump James Almer
2024-01-25 13:43 ` [FFmpeg-devel] [PATCH 22/24] avformat/version_major: " James Almer
2024-01-25 14:34 ` Andreas Rheinhardt
2024-01-25 14:35 ` James Almer
2024-01-25 13:43 ` [FFmpeg-devel] [PATCH 23/24] avutil/version_major: " James Almer
2024-01-25 13:43 ` [FFmpeg-devel] [PATCH 24/24] libs: bump major version for all libraries James Almer
2024-01-26 16:44 ` Vittorio Giovara
2024-01-26 16:48 ` James Almer
2024-01-26 16:52 ` Martin Storsjö
2024-01-26 17:02 ` James Almer
2024-01-26 17:09 ` Martin Storsjö
2024-01-26 18:18 ` Michael Niedermayer
2024-01-26 18:21 ` James Almer
2024-01-26 18:22 ` Michael Niedermayer
2024-01-25 16:23 ` [FFmpeg-devel] [PATCH 00/24] Major library version bump James Almer
2024-02-07 13:11 ` James Almer
2024-01-28 12:31 ` Anton Khirnov
2024-02-04 13:02 ` James Almer
2024-02-10 14:50 ` [FFmpeg-devel] [PATCH 25/27] avformat/avformat: Add FFInputFormat, hide internals of AVInputFormat Andreas Rheinhardt
2024-02-10 14:50 ` [FFmpeg-devel] [PATCH 26/27] avutil/opt: Don't use AV_OPT_TYPE_FLAGS for sentinels Andreas Rheinhardt
2024-02-10 14:50 ` [FFmpeg-devel] [PATCH 27/27] avformat/demux: Use enum AVCodecID for raw_codec_id Andreas Rheinhardt
2024-02-10 23:04 ` [FFmpeg-devel] [PATCH 28/35] avfilter/avfilter: Avoid allocation for AVFilterInternal Andreas Rheinhardt
2024-02-10 23:04 ` [FFmpeg-devel] [PATCH 29/35] avfilter: Add a header for internal generic-layer APIs Andreas Rheinhardt
2024-02-10 23:04 ` [FFmpeg-devel] [PATCH 30/35] avfilter/avfiltergraph: Avoid indirection when freeing filtergraph Andreas Rheinhardt
2024-02-10 23:04 ` [FFmpeg-devel] [PATCH 31/35] avfilter/avfiltergraph: Avoid allocation for AVFilterGraphInternal Andreas Rheinhardt
2024-02-10 23:04 ` [FFmpeg-devel] [PATCH 32/35] avfilter/af_hdcd: Drop a redundant log Andreas Rheinhardt
2024-02-13 17:31 ` Andreas Rheinhardt
2024-02-10 23:04 ` [FFmpeg-devel] [PATCH 33/35] avfilter/avfilter: Move AVFilterGraph private fields to FFFilterGraph Andreas Rheinhardt
2024-02-10 23:04 ` [FFmpeg-devel] [PATCH 34/35] avcodec/avcodec: Reorder AVCodecContext and AVSubtitleRect fields Andreas Rheinhardt
2024-02-10 23:04 ` [FFmpeg-devel] [PATCH 35/35] avfilter/avfilter: Reorder structure fields Andreas Rheinhardt
2024-03-04 15:11 ` [FFmpeg-devel] [PATCH] lavc: move AVCodecContext.pts_correction* to DecodeContext Anton Khirnov
2024-03-04 18:06 ` [FFmpeg-devel] [PATCH5] avcodec/codec_par: Reorder AVCodecParameters fields James Almer
2024-03-04 18:06 ` [FFmpeg-devel] [PATCH 1/2] avformat/avformat: remove AVFormatContext.ts_id James Almer
2024-03-04 18:06 ` [FFmpeg-devel] [PATCH 2/2] avformat/avformat: Reorder AVFormatContext fields James Almer
2024-03-04 18:06 ` [FFmpeg-devel] [PATCH] lavc: move AVCodecContext.pts_correction* to DecodeContext James Almer
Git Inbox Mirror of the ffmpeg-devel mailing list - see https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
This inbox may be cloned and mirrored by anyone:
git clone --mirror https://master.gitmailbox.com/ffmpegdev/0 ffmpegdev/git/0.git
# If you have public-inbox 1.1+ installed, you may
# initialize and index your mirror using the following commands:
public-inbox-init -V2 ffmpegdev ffmpegdev/ https://master.gitmailbox.com/ffmpegdev \
ffmpegdev@gitmailbox.com
public-inbox-index ffmpegdev
Example config snippet for mirrors.
AGPL code for this site: git clone https://public-inbox.org/public-inbox.git