* [FFmpeg-devel] [PATCH 1/8 v2] fftools/ffprobe: add support for Stream Groups
@ 2024-03-03 18:09 James Almer
2024-03-03 18:09 ` [FFmpeg-devel] [PATCH 2/8] fftools/ffprobe: print some basic Tile Grid Stream Group parameters James Almer
` (7 more replies)
0 siblings, 8 replies; 10+ messages in thread
From: James Almer @ 2024-03-03 18:09 UTC (permalink / raw)
To: ffmpeg-devel
Signed-off-by: James Almer <jamrial@gmail.com>
---
doc/ffprobe.xsd | 1 +
fftools/ffprobe.c | 145 ++++++++++++++++--
tests/ref/fate/cavs-demux | 2 +-
tests/ref/fate/ffprobe_compact | 2 +-
tests/ref/fate/ffprobe_csv | 2 +-
tests/ref/fate/ffprobe_default | 1 +
tests/ref/fate/ffprobe_flat | 1 +
tests/ref/fate/ffprobe_ini | 1 +
tests/ref/fate/ffprobe_json | 1 +
tests/ref/fate/ffprobe_xml | 2 +-
tests/ref/fate/ffprobe_xsd | 2 +-
tests/ref/fate/flv-demux | 2 +-
tests/ref/fate/gapless-mp3-side-data | 2 +-
.../ref/fate/mov-mp4-disposition-mpegts-remux | 3 +
tests/ref/fate/mov-mp4-ttml-dfxp | 3 +
tests/ref/fate/mov-mp4-ttml-stpp | 3 +
tests/ref/fate/oggopus-demux | 2 +-
tests/ref/fate/ts-demux | 2 +-
tests/ref/fate/ts-opus-demux | 2 +-
tests/ref/fate/ts-small-demux | 2 +-
tests/ref/fate/ts-timed-id3-demux | 2 +-
21 files changed, 160 insertions(+), 23 deletions(-)
diff --git a/doc/ffprobe.xsd b/doc/ffprobe.xsd
index 23d97ed11a..08f2909c02 100644
--- a/doc/ffprobe.xsd
+++ b/doc/ffprobe.xsd
@@ -305,6 +305,7 @@
<xsd:attribute name="filename" type="xsd:string" use="required"/>
<xsd:attribute name="nb_streams" type="xsd:int" use="required"/>
<xsd:attribute name="nb_programs" type="xsd:int" use="required"/>
+ <xsd:attribute name="nb_stream_groups" type="xsd:int" use="required"/>
<xsd:attribute name="format_name" type="xsd:string" use="required"/>
<xsd:attribute name="format_long_name" type="xsd:string"/>
<xsd:attribute name="start_time" type="xsd:float"/>
diff --git a/fftools/ffprobe.c b/fftools/ffprobe.c
index ac6b92f5d6..548c5e0948 100644
--- a/fftools/ffprobe.c
+++ b/fftools/ffprobe.c
@@ -112,8 +112,10 @@ static int do_show_format = 0;
static int do_show_frames = 0;
static int do_show_packets = 0;
static int do_show_programs = 0;
+static int do_show_stream_groups = 0;
static int do_show_streams = 0;
static int do_show_stream_disposition = 0;
+static int do_show_stream_group_disposition = 0;
static int do_show_data = 0;
static int do_show_program_version = 0;
static int do_show_library_versions = 0;
@@ -126,6 +128,7 @@ static int do_show_chapter_tags = 0;
static int do_show_format_tags = 0;
static int do_show_frame_tags = 0;
static int do_show_program_tags = 0;
+static int do_show_stream_group_tags = 0;
static int do_show_stream_tags = 0;
static int do_show_packet_tags = 0;
@@ -159,7 +162,7 @@ static int find_stream_info = 1;
/* section structure definition */
-#define SECTION_MAX_NB_CHILDREN 10
+#define SECTION_MAX_NB_CHILDREN 11
typedef enum {
SECTION_ID_NONE = -1,
@@ -203,6 +206,14 @@ typedef enum {
SECTION_ID_PROGRAM_TAGS,
SECTION_ID_PROGRAM_VERSION,
SECTION_ID_PROGRAMS,
+ SECTION_ID_STREAM_GROUP_STREAM_DISPOSITION,
+ SECTION_ID_STREAM_GROUP_STREAM_TAGS,
+ SECTION_ID_STREAM_GROUP,
+ SECTION_ID_STREAM_GROUP_STREAMS,
+ SECTION_ID_STREAM_GROUP_STREAM,
+ SECTION_ID_STREAM_GROUP_DISPOSITION,
+ SECTION_ID_STREAM_GROUP_TAGS,
+ SECTION_ID_STREAM_GROUPS,
SECTION_ID_ROOT,
SECTION_ID_STREAM,
SECTION_ID_STREAM_DISPOSITION,
@@ -285,8 +296,16 @@ static struct section sections[] = {
[SECTION_ID_PROGRAM_TAGS] = { SECTION_ID_PROGRAM_TAGS, "tags", SECTION_FLAG_HAS_VARIABLE_FIELDS, { -1 }, .element_name = "tag", .unique_name = "program_tags" },
[SECTION_ID_PROGRAM_VERSION] = { SECTION_ID_PROGRAM_VERSION, "program_version", 0, { -1 } },
[SECTION_ID_PROGRAMS] = { SECTION_ID_PROGRAMS, "programs", SECTION_FLAG_IS_ARRAY, { SECTION_ID_PROGRAM, -1 } },
+ [SECTION_ID_STREAM_GROUP_STREAM_DISPOSITION] = { SECTION_ID_STREAM_GROUP_STREAM_DISPOSITION, "disposition", 0, { -1 }, .unique_name = "stream_group_stream_disposition" },
+ [SECTION_ID_STREAM_GROUP_STREAM_TAGS] = { SECTION_ID_STREAM_GROUP_STREAM_TAGS, "tags", SECTION_FLAG_HAS_VARIABLE_FIELDS, { -1 }, .element_name = "tag", .unique_name = "stream_group_stream_tags" },
+ [SECTION_ID_STREAM_GROUP] = { SECTION_ID_STREAM_GROUP, "stream_group", 0, { SECTION_ID_STREAM_GROUP_TAGS, SECTION_ID_STREAM_GROUP_DISPOSITION, SECTION_ID_STREAM_GROUP_STREAMS, -1 } },
+ [SECTION_ID_STREAM_GROUP_STREAMS] = { SECTION_ID_STREAM_GROUP_STREAMS, "streams", SECTION_FLAG_IS_ARRAY, { SECTION_ID_STREAM_GROUP_STREAM, -1 }, .unique_name = "stream_group_streams" },
+ [SECTION_ID_STREAM_GROUP_STREAM] = { SECTION_ID_STREAM_GROUP_STREAM, "stream", 0, { SECTION_ID_STREAM_GROUP_STREAM_DISPOSITION, SECTION_ID_STREAM_GROUP_STREAM_TAGS, -1 }, .unique_name = "stream_group_stream" },
+ [SECTION_ID_STREAM_GROUP_DISPOSITION] = { SECTION_ID_STREAM_GROUP_DISPOSITION, "disposition", 0, { -1 }, .unique_name = "stream_group_disposition" },
+ [SECTION_ID_STREAM_GROUP_TAGS] = { SECTION_ID_STREAM_GROUP_TAGS, "tags", SECTION_FLAG_HAS_VARIABLE_FIELDS, { -1 }, .element_name = "tag", .unique_name = "stream_group_tags" },
+ [SECTION_ID_STREAM_GROUPS] = { SECTION_ID_STREAM_GROUPS, "stream_groups", SECTION_FLAG_IS_ARRAY, { SECTION_ID_STREAM_GROUP, -1 } },
[SECTION_ID_ROOT] = { SECTION_ID_ROOT, "root", SECTION_FLAG_IS_WRAPPER,
- { SECTION_ID_CHAPTERS, SECTION_ID_FORMAT, SECTION_ID_FRAMES, SECTION_ID_PROGRAMS, SECTION_ID_STREAMS,
+ { SECTION_ID_CHAPTERS, SECTION_ID_FORMAT, SECTION_ID_FRAMES, SECTION_ID_PROGRAMS, SECTION_ID_STREAM_GROUPS, SECTION_ID_STREAMS,
SECTION_ID_PACKETS, SECTION_ID_ERROR, SECTION_ID_PROGRAM_VERSION, SECTION_ID_LIBRARY_VERSIONS,
SECTION_ID_PIXEL_FORMATS, -1} },
[SECTION_ID_STREAMS] = { SECTION_ID_STREAMS, "streams", SECTION_FLAG_IS_ARRAY, { SECTION_ID_STREAM, -1 } },
@@ -3051,7 +3070,10 @@ static void print_dispositions(WriterContext *w, uint32_t disposition, SectionID
writer_print_section_footer(w);
}
-static int show_stream(WriterContext *w, AVFormatContext *fmt_ctx, int stream_idx, InputStream *ist, int in_program)
+#define IN_PROGRAM 1
+#define IN_STREAM_GROUP 2
+
+static int show_stream(WriterContext *w, AVFormatContext *fmt_ctx, int stream_idx, InputStream *ist, int container)
{
AVStream *stream = ist->st;
AVCodecParameters *par;
@@ -3061,12 +3083,29 @@ static int show_stream(WriterContext *w, AVFormatContext *fmt_ctx, int stream_id
AVRational sar, dar;
AVBPrint pbuf;
const AVCodecDescriptor *cd;
+ const SectionID section_header[] = {
+ SECTION_ID_STREAM,
+ SECTION_ID_PROGRAM_STREAM,
+ SECTION_ID_STREAM_GROUP_STREAM,
+ };
+ const SectionID section_disposition[] = {
+ SECTION_ID_STREAM_DISPOSITION,
+ SECTION_ID_PROGRAM_STREAM_DISPOSITION,
+ SECTION_ID_STREAM_GROUP_STREAM_DISPOSITION,
+ };
+ const SectionID section_tags[] = {
+ SECTION_ID_STREAM_TAGS,
+ SECTION_ID_PROGRAM_STREAM_TAGS,
+ SECTION_ID_STREAM_GROUP_STREAM_TAGS,
+ };
int ret = 0;
const char *profile = NULL;
+ av_assert0(container < FF_ARRAY_ELEMS(section_header));
+
av_bprint_init(&pbuf, 1, AV_BPRINT_SIZE_UNLIMITED);
- writer_print_section_header(w, NULL, in_program ? SECTION_ID_PROGRAM_STREAM : SECTION_ID_STREAM);
+ writer_print_section_header(w, NULL, section_header[container]);
print_int("index", stream->index);
@@ -3228,13 +3267,14 @@ static int show_stream(WriterContext *w, AVFormatContext *fmt_ctx, int stream_id
/* Print disposition information */
if (do_show_stream_disposition) {
- print_dispositions(w, stream->disposition,
- in_program ? SECTION_ID_PROGRAM_STREAM_DISPOSITION
- : SECTION_ID_STREAM_DISPOSITION);
+ av_assert0(container < FF_ARRAY_ELEMS(section_disposition));
+ print_dispositions(w, stream->disposition, section_disposition[container]);
}
- if (do_show_stream_tags)
- ret = show_tags(w, stream->metadata, in_program ? SECTION_ID_PROGRAM_STREAM_TAGS : SECTION_ID_STREAM_TAGS);
+ if (do_show_stream_tags) {
+ av_assert0(container < FF_ARRAY_ELEMS(section_tags));
+ ret = show_tags(w, stream->metadata, section_tags[container]);
+ }
if (stream->codecpar->nb_coded_side_data) {
writer_print_section_header(w, NULL, SECTION_ID_STREAM_SIDE_DATA_LIST);
@@ -3289,7 +3329,7 @@ static int show_program(WriterContext *w, InputFile *ifile, AVProgram *program)
writer_print_section_header(w, NULL, SECTION_ID_PROGRAM_STREAMS);
for (i = 0; i < program->nb_stream_indexes; i++) {
if (selected_streams[program->stream_index[i]]) {
- ret = show_stream(w, fmt_ctx, program->stream_index[i], &ifile->streams[program->stream_index[i]], 1);
+ ret = show_stream(w, fmt_ctx, program->stream_index[i], &ifile->streams[program->stream_index[i]], IN_PROGRAM);
if (ret < 0)
break;
}
@@ -3319,6 +3359,76 @@ static int show_programs(WriterContext *w, InputFile *ifile)
return ret;
}
+
+static void print_stream_group_params(WriterContext *w, AVStreamGroup *stg)
+{
+ if (stg->type == AV_STREAM_GROUP_PARAMS_IAMF_AUDIO_ELEMENT)
+ print_str("type", "IAMF Audio Element");
+ else if (stg->type == AV_STREAM_GROUP_PARAMS_IAMF_MIX_PRESENTATION)
+ print_str("type", "IAMF Mix Presentation");
+ else if (stg->type == AV_STREAM_GROUP_PARAMS_TILE_GRID) {
+ print_str("type", "Tile Grid");
+ } else
+ print_str_opt("type", "unknown");
+}
+
+static int show_stream_group(WriterContext *w, InputFile *ifile, AVStreamGroup *stg)
+{
+ AVFormatContext *fmt_ctx = ifile->fmt_ctx;
+ AVBPrint pbuf;
+ int i, ret = 0;
+
+ av_bprint_init(&pbuf, 1, AV_BPRINT_SIZE_UNLIMITED);
+ writer_print_section_header(w, NULL, SECTION_ID_STREAM_GROUP);
+ print_int("index", stg->index);
+ if (fmt_ctx->iformat->flags & AVFMT_SHOW_IDS) print_fmt ("id", "0x%"PRIx64, stg->id);
+ else print_str_opt("id", "N/A");
+ print_int("nb_streams", stg->nb_streams);
+ print_stream_group_params(w, stg);
+
+ /* Print disposition information */
+ if (do_show_stream_group_disposition)
+ print_dispositions(w, stg->disposition, SECTION_ID_STREAM_GROUP_DISPOSITION);
+
+ if (do_show_stream_group_tags)
+ ret = show_tags(w, stg->metadata, SECTION_ID_STREAM_GROUP_TAGS);
+ if (ret < 0)
+ goto end;
+
+ writer_print_section_header(w, NULL, SECTION_ID_STREAM_GROUP_STREAMS);
+ for (i = 0; i < stg->nb_streams; i++) {
+ if (selected_streams[stg->streams[i]->index]) {
+ ret = show_stream(w, fmt_ctx, stg->streams[i]->index, &ifile->streams[stg->streams[i]->index], IN_STREAM_GROUP);
+ if (ret < 0)
+ break;
+ }
+ }
+ writer_print_section_footer(w);
+
+end:
+ av_bprint_finalize(&pbuf, NULL);
+ writer_print_section_footer(w);
+ return ret;
+}
+
+static int show_stream_groups(WriterContext *w, InputFile *ifile)
+{
+ AVFormatContext *fmt_ctx = ifile->fmt_ctx;
+ int i, ret = 0;
+
+ writer_print_section_header(w, NULL, SECTION_ID_STREAM_GROUPS);
+ for (i = 0; i < fmt_ctx->nb_stream_groups; i++) {
+ AVStreamGroup *stg = fmt_ctx->stream_groups[i];
+ if (!stg)
+ continue;
+ ret = show_stream_group(w, ifile, stg);
+ if (ret < 0)
+ break;
+ }
+ writer_print_section_footer(w);
+ return ret;
+}
+
static int show_chapters(WriterContext *w, InputFile *ifile)
{
AVFormatContext *fmt_ctx = ifile->fmt_ctx;
@@ -3355,6 +3465,7 @@ static int show_format(WriterContext *w, InputFile *ifile)
print_str_validate("filename", fmt_ctx->url);
print_int("nb_streams", fmt_ctx->nb_streams);
print_int("nb_programs", fmt_ctx->nb_programs);
+ print_int("nb_stream_groups", fmt_ctx->nb_stream_groups);
print_str("format_name", fmt_ctx->iformat->name);
if (!do_bitexact) {
if (fmt_ctx->iformat->long_name) print_str ("format_long_name", fmt_ctx->iformat->long_name);
@@ -3580,6 +3691,11 @@ static int probe_file(WriterContext *wctx, const char *filename,
CHECK_END;
}
+ if (do_show_stream_groups) {
+ ret = show_stream_groups(wctx, &ifile);
+ CHECK_END;
+ }
+
if (do_show_streams) {
ret = show_streams(wctx, &ifile);
CHECK_END;
@@ -4078,6 +4194,7 @@ DEFINE_OPT_SHOW_SECTION(pixel_formats, PIXEL_FORMATS)
DEFINE_OPT_SHOW_SECTION(program_version, PROGRAM_VERSION)
DEFINE_OPT_SHOW_SECTION(streams, STREAMS)
DEFINE_OPT_SHOW_SECTION(programs, PROGRAMS)
+DEFINE_OPT_SHOW_SECTION(stream_groups, STREAM_GROUPS)
static const OptionDef real_options[] = {
CMDUTILS_COMMON_OPTIONS
@@ -4108,6 +4225,7 @@ static const OptionDef real_options[] = {
#endif
{ "show_packets", OPT_TYPE_FUNC, 0, { .func_arg = &opt_show_packets }, "show packets info" },
{ "show_programs", OPT_TYPE_FUNC, 0, { .func_arg = &opt_show_programs }, "show programs info" },
+ { "show_stream_groups", OPT_TYPE_FUNC, 0, { .func_arg = &opt_show_stream_groups }, "show stream groups info" },
{ "show_streams", OPT_TYPE_FUNC, 0, { .func_arg = &opt_show_streams }, "show streams info" },
{ "show_chapters", OPT_TYPE_FUNC, 0, { .func_arg = &opt_show_chapters }, "show chapters info" },
{ "count_frames", OPT_TYPE_BOOL, 0, { &do_count_frames }, "count the number of frames per stream" },
@@ -4192,16 +4310,21 @@ int main(int argc, char **argv)
SET_DO_SHOW(PIXEL_FORMAT_COMPONENTS, pixel_format_components);
SET_DO_SHOW(PROGRAM_VERSION, program_version);
SET_DO_SHOW(PROGRAMS, programs);
+ SET_DO_SHOW(STREAM_GROUP_DISPOSITION, stream_group_disposition);
+ SET_DO_SHOW(STREAM_GROUPS, stream_groups);
SET_DO_SHOW(STREAMS, streams);
SET_DO_SHOW(STREAM_DISPOSITION, stream_disposition);
SET_DO_SHOW(PROGRAM_STREAM_DISPOSITION, stream_disposition);
+ SET_DO_SHOW(STREAM_GROUP_STREAM_DISPOSITION, stream_disposition);
SET_DO_SHOW(CHAPTER_TAGS, chapter_tags);
SET_DO_SHOW(FORMAT_TAGS, format_tags);
SET_DO_SHOW(FRAME_TAGS, frame_tags);
SET_DO_SHOW(PROGRAM_TAGS, program_tags);
+ SET_DO_SHOW(STREAM_GROUP_TAGS, stream_group_tags);
SET_DO_SHOW(STREAM_TAGS, stream_tags);
SET_DO_SHOW(PROGRAM_STREAM_TAGS, stream_tags);
+ SET_DO_SHOW(STREAM_GROUP_STREAM_TAGS, stream_tags);
SET_DO_SHOW(PACKET_TAGS, packet_tags);
if (do_bitexact && (do_show_program_version || do_show_library_versions)) {
@@ -4266,7 +4389,7 @@ int main(int argc, char **argv)
ffprobe_show_pixel_formats(wctx);
if (!input_filename &&
- ((do_show_format || do_show_programs || do_show_streams || do_show_chapters || do_show_packets || do_show_error) ||
+ ((do_show_format || do_show_programs || do_show_stream_groups || do_show_streams || do_show_chapters || do_show_packets || do_show_error) ||
(!do_show_program_version && !do_show_library_versions && !do_show_pixel_formats))) {
show_usage();
av_log(NULL, AV_LOG_ERROR, "You have to specify one input file.\n");
diff --git a/tests/ref/fate/cavs-demux b/tests/ref/fate/cavs-demux
index 000b32ab05..016e40e782 100644
--- a/tests/ref/fate/cavs-demux
+++ b/tests/ref/fate/cavs-demux
@@ -59,4 +59,4 @@ packet|codec_type=video|stream_index=0|pts=2320000|pts_time=1.933333|dts=2320000
packet|codec_type=video|stream_index=0|pts=2360000|pts_time=1.966667|dts=2360000|dts_time=1.966667|duration=40000|duration_time=0.033333|size=83|pos=172252|flags=K__|data_hash=CRC32:a941bdf0
packet|codec_type=video|stream_index=0|pts=2400000|pts_time=2.000000|dts=2400000|dts_time=2.000000|duration=40000|duration_time=0.033333|size=5417|pos=172335|flags=K__|data_hash=CRC32:9d0d503b
stream|index=0|codec_name=cavs|profile=unknown|codec_type=video|codec_tag_string=[0][0][0][0]|codec_tag=0x0000|width=1280|height=720|coded_width=1280|coded_height=720|closed_captions=0|film_grain=0|has_b_frames=0|sample_aspect_ratio=N/A|display_aspect_ratio=N/A|pix_fmt=yuv420p|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=30/1|avg_frame_rate=25/1|time_base=1/1200000|start_pts=N/A|start_time=N/A|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=N/A|nb_read_packets=60|extradata_size=18|extradata_hash=CRC32:1255d52e|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
-format|filename=bunny.mp4|nb_streams=1|nb_programs=0|format_name=cavsvideo|start_time=N/A|duration=N/A|size=177752|bit_rate=N/A|probe_score=51
+format|filename=bunny.mp4|nb_streams=1|nb_programs=0|nb_stream_groups=0|format_name=cavsvideo|start_time=N/A|duration=N/A|size=177752|bit_rate=N/A|probe_score=51
diff --git a/tests/ref/fate/ffprobe_compact b/tests/ref/fate/ffprobe_compact
index dfcd7d3f3c..5f807818d9 100644
--- a/tests/ref/fate/ffprobe_compact
+++ b/tests/ref/fate/ffprobe_compact
@@ -29,4 +29,4 @@ frame|media_type=video|stream_index=2|key_frame=1|pts=6144|pts_time=0.120000|pkt
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
-format|filename=tests/data/ffprobe-test.nut|nb_streams=3|nb_programs=0|format_name=nut|start_time=0.000000|duration=0.120000|size=1053646|bit_rate=70243066|probe_score=100|tag:title=ffprobe test file|tag:comment='A comment with CSV, XML & JSON special chars': <tag value="x">|tag:comment2=I ♥ Üñîçød€
+format|filename=tests/data/ffprobe-test.nut|nb_streams=3|nb_programs=0|nb_stream_groups=0|format_name=nut|start_time=0.000000|duration=0.120000|size=1053646|bit_rate=70243066|probe_score=100|tag:title=ffprobe test file|tag:comment='A comment with CSV, XML & JSON special chars': <tag value="x">|tag:comment2=I ♥ Üñîçød€
diff --git a/tests/ref/fate/ffprobe_csv b/tests/ref/fate/ffprobe_csv
index 677b352dfd..3a7a4240d8 100644
--- a/tests/ref/fate/ffprobe_csv
+++ b/tests/ref/fate/ffprobe_csv
@@ -29,4 +29,4 @@ frame,video,2,1,6144,0.120000,6144,0.120000,6144,0.120000,2048,0.040000,2048,0.0
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
-format,tests/data/ffprobe-test.nut,3,0,nut,0.000000,0.120000,1053646,70243066,100,ffprobe test file,"'A comment with CSV, XML & JSON special chars': <tag value=""x"">",I ♥ Üñîçød€
+format,tests/data/ffprobe-test.nut,3,0,0,nut,0.000000,0.120000,1053646,70243066,100,ffprobe test file,"'A comment with CSV, XML & JSON special chars': <tag value=""x"">",I ♥ Üñîçød€
diff --git a/tests/ref/fate/ffprobe_default b/tests/ref/fate/ffprobe_default
index 954725b91b..12bb069ba3 100644
--- a/tests/ref/fate/ffprobe_default
+++ b/tests/ref/fate/ffprobe_default
@@ -766,6 +766,7 @@ TAG:encoder=Lavc rawvideo
filename=tests/data/ffprobe-test.nut
nb_streams=3
nb_programs=0
+nb_stream_groups=0
format_name=nut
start_time=0.000000
duration=0.120000
diff --git a/tests/ref/fate/ffprobe_flat b/tests/ref/fate/ffprobe_flat
index cea6039307..a577dc6678 100644
--- a/tests/ref/fate/ffprobe_flat
+++ b/tests/ref/fate/ffprobe_flat
@@ -703,6 +703,7 @@ streams.stream.2.tags.encoder="Lavc rawvideo"
format.filename="tests/data/ffprobe-test.nut"
format.nb_streams=3
format.nb_programs=0
+format.nb_stream_groups=0
format.format_name="nut"
format.start_time="0.000000"
format.duration="0.120000"
diff --git a/tests/ref/fate/ffprobe_ini b/tests/ref/fate/ffprobe_ini
index 497154ee7e..80885903c3 100644
--- a/tests/ref/fate/ffprobe_ini
+++ b/tests/ref/fate/ffprobe_ini
@@ -780,6 +780,7 @@ encoder=Lavc rawvideo
filename=tests/data/ffprobe-test.nut
nb_streams=3
nb_programs=0
+nb_stream_groups=0
format_name=nut
start_time=0.000000
duration=0.120000
diff --git a/tests/ref/fate/ffprobe_json b/tests/ref/fate/ffprobe_json
index fe392fb47a..974b8dc900 100644
--- a/tests/ref/fate/ffprobe_json
+++ b/tests/ref/fate/ffprobe_json
@@ -729,6 +729,7 @@
"filename": "tests/data/ffprobe-test.nut",
"nb_streams": 3,
"nb_programs": 0,
+ "nb_stream_groups": 0,
"format_name": "nut",
"start_time": "0.000000",
"duration": "0.120000",
diff --git a/tests/ref/fate/ffprobe_xml b/tests/ref/fate/ffprobe_xml
index 038dd36372..f4e07ba8d5 100644
--- a/tests/ref/fate/ffprobe_xml
+++ b/tests/ref/fate/ffprobe_xml
@@ -55,7 +55,7 @@
</stream>
</streams>
- <format filename="tests/data/ffprobe-test.nut" nb_streams="3" nb_programs="0" format_name="nut" start_time="0.000000" duration="0.120000" size="1053646" bit_rate="70243066" probe_score="100">
+ <format filename="tests/data/ffprobe-test.nut" nb_streams="3" nb_programs="0" nb_stream_groups="0" format_name="nut" start_time="0.000000" duration="0.120000" size="1053646" bit_rate="70243066" probe_score="100">
<tags>
<tag key="title" value="ffprobe test file"/>
<tag key="comment" value="'A comment with CSV, XML & JSON special chars': <tag value="x">"/>
diff --git a/tests/ref/fate/ffprobe_xsd b/tests/ref/fate/ffprobe_xsd
index 7ecaaa4ec0..5dd45ff956 100644
--- a/tests/ref/fate/ffprobe_xsd
+++ b/tests/ref/fate/ffprobe_xsd
@@ -55,7 +55,7 @@
</stream>
</streams>
- <format filename="tests/data/ffprobe-test.nut" nb_streams="3" nb_programs="0" format_name="nut" start_time="0.000000" duration="0.120000" size="1053646" bit_rate="70243066" probe_score="100">
+ <format filename="tests/data/ffprobe-test.nut" nb_streams="3" nb_programs="0" nb_stream_groups="0" format_name="nut" start_time="0.000000" duration="0.120000" size="1053646" bit_rate="70243066" probe_score="100">
<tags>
<tag key="title" value="ffprobe test file"/>
<tag key="comment" value="'A comment with CSV, XML & JSON special chars': <tag value="x">"/>
diff --git a/tests/ref/fate/flv-demux b/tests/ref/fate/flv-demux
index fd85b7a0f5..a9cbcc46e0 100644
--- a/tests/ref/fate/flv-demux
+++ b/tests/ref/fate/flv-demux
@@ -603,4 +603,4 @@ packet|codec_type=audio|stream_index=1|pts=11656|pts_time=11.656000|dts=11656|dt
packet|codec_type=video|stream_index=0|pts=11678|pts_time=11.678000|dts=11678|dts_time=11.678000|duration=33|duration_time=0.033000|size=1190|pos=510794|flags=__C|data_hash=CRC32:a0206c90
stream|index=0|codec_name=h264|profile=77|codec_type=video|codec_tag_string=[0][0][0][0]|codec_tag=0x0000|width=426|height=240|coded_width=426|coded_height=240|closed_captions=0|film_grain=0|has_b_frames=1|sample_aspect_ratio=1:1|display_aspect_ratio=71:40|pix_fmt=yuv420p|level=21|color_range=unknown|color_space=unknown|color_transfer=unknown|color_primaries=unknown|chroma_location=left|field_order=progressive|refs=1|is_avc=true|nal_length_size=4|missing_streams=0|id=N/A|r_frame_rate=30000/1001|avg_frame_rate=30/1|time_base=1/1000|start_pts=0|start_time=0.000000|duration_ts=N/A|duration=N/A|bit_rate=393929|max_bit_rate=N/A|bits_per_raw_sample=8|nb_frames=N/A|nb_read_frames=N/A|nb_read_packets=351|extradata_size=39|extradata_hash=CRC32:07b85ca9|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
stream|index=1|codec_name=aac|profile=1|codec_type=audio|codec_tag_string=[0][0][0][0]|codec_tag=0x0000|sample_fmt=fltp|sample_rate=22050|channels=2|channel_layout=stereo|bits_per_sample=0|initial_padding=0|missing_streams=0|id=N/A|r_frame_rate=0/0|avg_frame_rate=0/0|time_base=1/1000|start_pts=0|start_time=0.000000|duration_ts=N/A|duration=N/A|bit_rate=67874|max_bit_rate=N/A|bits_per_raw_sample=N/A|nb_frames=N/A|nb_read_frames=N/A|nb_read_packets=252|extradata_size=2|extradata_hash=CRC32:d039c029|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
-format|filename=Enigma_Principles_of_Lust-part.flv|nb_streams=2|nb_programs=0|format_name=flv|start_time=0.000000|duration=210.209999|size=512000|bit_rate=19485|probe_score=100|tag:hasKeyframes=true|tag:hasMetadata=true|tag:datasize=11970544|tag:hasVideo=true|tag:canSeekToEnd=false|tag:lasttimestamp=210|tag:lastkeyframetimestamp=210|tag:audiosize=1791332|tag:hasAudio=true|tag:audiodelay=0|tag:videosize=10176110|tag:metadatadate=2011-02-27T11:00:33.125000Z|tag:metadatacreator=inlet media FLVTool2 v1.0.6 - http://www.inlet-media.de/flvtool2|tag:hasCuePoints=false
+format|filename=Enigma_Principles_of_Lust-part.flv|nb_streams=2|nb_programs=0|nb_stream_groups=0|format_name=flv|start_time=0.000000|duration=210.209999|size=512000|bit_rate=19485|probe_score=100|tag:hasKeyframes=true|tag:hasMetadata=true|tag:datasize=11970544|tag:hasVideo=true|tag:canSeekToEnd=false|tag:lasttimestamp=210|tag:lastkeyframetimestamp=210|tag:audiosize=1791332|tag:hasAudio=true|tag:audiodelay=0|tag:videosize=10176110|tag:metadatadate=2011-02-27T11:00:33.125000Z|tag:metadatacreator=inlet media FLVTool2 v1.0.6 - http://www.inlet-media.de/flvtool2|tag:hasCuePoints=false
diff --git a/tests/ref/fate/gapless-mp3-side-data b/tests/ref/fate/gapless-mp3-side-data
index f013650ec1..87a99661f9 100644
--- a/tests/ref/fate/gapless-mp3-side-data
+++ b/tests/ref/fate/gapless-mp3-side-data
@@ -594,4 +594,4 @@ packet|codec_type=audio|stream_index=0|pts=218234880|pts_time=15.464490|dts=2182
packet|codec_type=audio|stream_index=0|pts=218603520|pts_time=15.490612|dts=218603520|dts_time=15.490612|duration=368640|duration_time=0.026122|size=418|pos=249300|flags=K__|data_hash=CRC32:d5fb5f9c|side_datum/skip_samples:side_data_type=Skip Samples|side_datum/skip_samples:skip_samples=0|side_datum/skip_samples:discard_padding=303|side_datum/skip_samples:skip_reason=0|side_datum/skip_samples:discard_reason=0
packet|codec_type=audio|stream_index=0|pts=218972160|pts_time=15.516735|dts=218972160|dts_time=15.516735|duration=368640|duration_time=0.026122|size=418|pos=249718|flags=K__|data_hash=CRC32:3789f3cf|side_datum/skip_samples:side_data_type=Skip Samples|side_datum/skip_samples:skip_samples=0|side_datum/skip_samples:discard_padding=1152|side_datum/skip_samples:skip_reason=0|side_datum/skip_samples:discard_reason=0
stream|index=0|codec_name=mp3|profile=unknown|codec_type=audio|codec_tag_string=[0][0][0][0]|codec_tag=0x0000|sample_fmt=fltp|sample_rate=44100|channels=2|channel_layout=stereo|bits_per_sample=0|initial_padding=0|id=N/A|r_frame_rate=0/0|avg_frame_rate=0/0|time_base=1/14112000|start_pts=353600|start_time=0.025057|duration_ts=219340800|duration=15.542857|bit_rate=128000|max_bit_rate=N/A|bits_per_raw_sample=N/A|nb_frames=N/A|nb_read_frames=N/A|nb_read_packets=595|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=LAME3.93
-format|filename=gapless.mp3|nb_streams=1|nb_programs=0|format_name=mp3|start_time=0.025057|duration=15.542857|size=250264|bit_rate=128812|probe_score=51|tag:title=test
+format|filename=gapless.mp3|nb_streams=1|nb_programs=0|nb_stream_groups=0|format_name=mp3|start_time=0.025057|duration=15.542857|size=250264|bit_rate=128812|probe_score=51|tag:title=test
diff --git a/tests/ref/fate/mov-mp4-disposition-mpegts-remux b/tests/ref/fate/mov-mp4-disposition-mpegts-remux
index ea5a11d73c..3d103c98cf 100644
--- a/tests/ref/fate/mov-mp4-disposition-mpegts-remux
+++ b/tests/ref/fate/mov-mp4-disposition-mpegts-remux
@@ -19,6 +19,9 @@ adb3b95c07a5f3e0c86641dd62f01dae *tests/data/fate/mov-mp4-disposition-mpegts-rem
{
"programs": [
+ ],
+ "stream_groups": [
+
],
"streams": [
{
diff --git a/tests/ref/fate/mov-mp4-ttml-dfxp b/tests/ref/fate/mov-mp4-ttml-dfxp
index 2d60f3d964..b019b3f6cc 100644
--- a/tests/ref/fate/mov-mp4-ttml-dfxp
+++ b/tests/ref/fate/mov-mp4-ttml-dfxp
@@ -22,6 +22,9 @@
],
"programs": [
+ ],
+ "stream_groups": [
+
],
"streams": [
{
diff --git a/tests/ref/fate/mov-mp4-ttml-stpp b/tests/ref/fate/mov-mp4-ttml-stpp
index 0a8e423449..827296253e 100644
--- a/tests/ref/fate/mov-mp4-ttml-stpp
+++ b/tests/ref/fate/mov-mp4-ttml-stpp
@@ -23,6 +23,9 @@ cbd2c7ff864a663b0d893deac5a0caec *tests/data/fate/mov-mp4-ttml-stpp.mp4
],
"programs": [
+ ],
+ "stream_groups": [
+
],
"streams": [
{
diff --git a/tests/ref/fate/oggopus-demux b/tests/ref/fate/oggopus-demux
index baf81a7f50..05cdd94f43 100644
--- a/tests/ref/fate/oggopus-demux
+++ b/tests/ref/fate/oggopus-demux
@@ -40,4 +40,4 @@ packet|codec_type=audio|stream_index=0|pts=36124|pts_time=0.752583|dts=36124|dts
packet|codec_type=audio|stream_index=0|pts=37084|pts_time=0.772583|dts=37084|dts_time=0.772583|duration=960|duration_time=0.020000|size=217|pos=841|flags=K__|data_hash=CRC32:06797ece
packet|codec_type=audio|stream_index=0|pts=38044|pts_time=0.792583|dts=38044|dts_time=0.792583|duration=356|duration_time=0.007417|size=359|pos=841|flags=K__|data_hash=CRC32:01ca3f8f|side_datum/skip_samples:side_data_type=Skip Samples|side_datum/skip_samples:skip_samples=0|side_datum/skip_samples:discard_padding=604|side_datum/skip_samples:skip_reason=0|side_datum/skip_samples:discard_reason=0
stream|index=0|codec_name=opus|profile=unknown|codec_type=audio|codec_tag_string=[0][0][0][0]|codec_tag=0x0000|sample_fmt=fltp|sample_rate=48000|channels=2|channel_layout=stereo|bits_per_sample=0|initial_padding=356|id=N/A|r_frame_rate=0/0|avg_frame_rate=0/0|time_base=1/48000|start_pts=0|start_time=0.000000|duration_ts=38756|duration=0.807417|bit_rate=N/A|max_bit_rate=N/A|bits_per_raw_sample=N/A|nb_frames=N/A|nb_read_frames=N/A|nb_read_packets=41|extradata_size=19|extradata_hash=CRC32:58ba5ff3|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=opusenc from opus-tools 0.1.9|tag:ENCODER_OPTIONS=--discard-comments
-format|filename=intro-partial.opus|nb_streams=1|nb_programs=0|format_name=ogg|start_time=0.000000|duration=0.807417|size=10250|bit_rate=101558|probe_score=100
+format|filename=intro-partial.opus|nb_streams=1|nb_programs=0|nb_stream_groups=0|format_name=ogg|start_time=0.000000|duration=0.807417|size=10250|bit_rate=101558|probe_score=100
diff --git a/tests/ref/fate/ts-demux b/tests/ref/fate/ts-demux
index b01f525c38..ec4aeb2034 100644
--- a/tests/ref/fate/ts-demux
+++ b/tests/ref/fate/ts-demux
@@ -26,4 +26,4 @@ packet|codec_type=audio|stream_index=2|pts=3912645580|pts_time=43473.839778|dts=
stream|index=0|codec_name=mpeg2video|profile=4|codec_type=video|codec_tag_string=[2][0][0][0]|codec_tag=0x0002|width=1280|height=720|coded_width=0|coded_height=0|closed_captions=0|film_grain=0|has_b_frames=1|sample_aspect_ratio=1:1|display_aspect_ratio=16:9|pix_fmt=yuv420p|level=4|color_range=tv|color_space=unknown|color_transfer=unknown|color_primaries=unknown|chroma_location=left|field_order=progressive|refs=1|ts_id=32776|ts_packetsize=188|id=0x31|r_frame_rate=60000/1001|avg_frame_rate=60000/1001|time_base=1/90000|start_pts=3912669846|start_time=43474.109400|duration_ts=19519|duration=0.216878|bit_rate=15000000|max_bit_rate=N/A|bits_per_raw_sample=N/A|nb_frames=N/A|nb_read_frames=N/A|nb_read_packets=15|extradata_size=150|extradata_hash=CRC32:53134fa8|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|side_datum/cpb_properties:side_data_type=CPB properties|side_datum/cpb_properties:max_bitrate=15000000|side_datum/cpb_properties:min_bitrate=0|side_datum/cpb_properties:avg_bitrate=0|side_datum/cpb_properties:buffer_size=9781248|side_datum/cpb_properties:vbv_delay=-1
stream|index=1|codec_name=ac3|profile=unknown|codec_type=audio|codec_tag_string=[4][0][0][0]|codec_tag=0x0004|sample_fmt=fltp|sample_rate=48000|channels=6|channel_layout=5.1(side)|bits_per_sample=0|initial_padding=0|ts_id=32776|ts_packetsize=188|id=0x34|r_frame_rate=0/0|avg_frame_rate=0/0|time_base=1/90000|start_pts=3912633305|start_time=43473.703389|duration_ts=14400|duration=0.160000|bit_rate=384000|max_bit_rate=N/A|bits_per_raw_sample=N/A|nb_frames=N/A|nb_read_frames=N/A|nb_read_packets=5|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:language=eng
stream|index=2|codec_name=ac3|profile=unknown|codec_type=audio|codec_tag_string=[4][0][0][0]|codec_tag=0x0004|sample_fmt=fltp|sample_rate=48000|channels=2|channel_layout=stereo|bits_per_sample=0|initial_padding=0|ts_id=32776|ts_packetsize=188|id=0x35|r_frame_rate=0/0|avg_frame_rate=0/0|time_base=1/90000|start_pts=3912634060|start_time=43473.711778|duration_ts=14400|duration=0.160000|bit_rate=192000|max_bit_rate=N/A|bits_per_raw_sample=N/A|nb_frames=N/A|nb_read_frames=N/A|nb_read_packets=5|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:language=es
-format|filename=mp3ac325-4864-small.ts|nb_streams=3|nb_programs=1|format_name=mpegts|start_time=43473.703389|duration=0.622889|size=512000|bit_rate=6575810|probe_score=50
+format|filename=mp3ac325-4864-small.ts|nb_streams=3|nb_programs=1|nb_stream_groups=0|format_name=mpegts|start_time=43473.703389|duration=0.622889|size=512000|bit_rate=6575810|probe_score=50
diff --git a/tests/ref/fate/ts-opus-demux b/tests/ref/fate/ts-opus-demux
index 3d14082ce5..961b7f2a92 100644
--- a/tests/ref/fate/ts-opus-demux
+++ b/tests/ref/fate/ts-opus-demux
@@ -511,4 +511,4 @@ packet|codec_type=audio|stream_index=0|pts=916200|pts_time=10.180000|dts=916200|
packet|codec_type=audio|stream_index=0|pts=918000|pts_time=10.200000|dts=918000|dts_time=10.200000|duration=1800|duration_time=0.020000|size=761|pos=510044|flags=K__|data_hash=CRC32:75113c11|side_datum/mpegts_stream_id:side_data_type=MPEGTS Stream ID|side_datum/mpegts_stream_id:id=189
packet|codec_type=audio|stream_index=0|pts=919800|pts_time=10.220000|dts=919800|dts_time=10.220000|duration=1800|duration_time=0.020000|size=759|pos=510984|flags=K__|data_hash=CRC32:59fc266f|side_datum/mpegts_stream_id:side_data_type=MPEGTS Stream ID|side_datum/mpegts_stream_id:id=189
stream|index=0|codec_name=opus|profile=unknown|codec_type=audio|codec_tag_string=Opus|codec_tag=0x7375704f|sample_fmt=fltp|sample_rate=48000|channels=8|channel_layout=7.1|bits_per_sample=0|initial_padding=0|ts_id=51338|ts_packetsize=188|id=0x44|r_frame_rate=0/0|avg_frame_rate=0/0|time_base=1/90000|start_pts=0|start_time=0.000000|duration_ts=919800|duration=10.220000|bit_rate=N/A|max_bit_rate=N/A|bits_per_raw_sample=N/A|nb_frames=N/A|nb_read_frames=N/A|nb_read_packets=512|extradata_size=29|extradata_hash=CRC32:6d6089a7|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
-format|filename=test-8-7.1.opus-small.ts|nb_streams=1|nb_programs=1|format_name=mpegts|start_time=0.000000|duration=10.220000|size=512000|bit_rate=400782|probe_score=50
+format|filename=test-8-7.1.opus-small.ts|nb_streams=1|nb_programs=1|nb_stream_groups=0|format_name=mpegts|start_time=0.000000|duration=10.220000|size=512000|bit_rate=400782|probe_score=50
diff --git a/tests/ref/fate/ts-small-demux b/tests/ref/fate/ts-small-demux
index eb37440c0f..233f73393e 100644
--- a/tests/ref/fate/ts-small-demux
+++ b/tests/ref/fate/ts-small-demux
@@ -73,4 +73,4 @@ packet|codec_type=video|stream_index=0|pts=552000|pts_time=6.133333|dts=552000|d
packet|codec_type=video|stream_index=0|pts=558000|pts_time=6.200000|dts=558000|dts_time=6.200000|duration=6000|duration_time=0.066667|size=16|pos=15792|flags=___|data_hash=CRC32:27b943ef|side_datum/mpegts_stream_id:side_data_type=MPEGTS Stream ID|side_datum/mpegts_stream_id:id=224
packet|codec_type=video|stream_index=0|pts=564000|pts_time=6.266667|dts=564000|dts_time=6.266667|duration=6000|duration_time=0.066667|size=16|pos=16356|flags=___|data_hash=CRC32:f7116111
stream|index=0|codec_name=h264|profile=578|codec_type=video|codec_tag_string=[27][0][0][0]|codec_tag=0x001b|width=82|height=144|coded_width=82|coded_height=144|closed_captions=0|film_grain=0|has_b_frames=0|sample_aspect_ratio=1:1|display_aspect_ratio=41:72|pix_fmt=yuv420p|level=10|color_range=unknown|color_space=unknown|color_transfer=unknown|color_primaries=unknown|chroma_location=left|field_order=progressive|refs=1|is_avc=false|nal_length_size=0|ts_id=1|ts_packetsize=188|id=0x100|r_frame_rate=15/1|avg_frame_rate=15/1|time_base=1/90000|start_pts=126000|start_time=1.400000|duration_ts=444000|duration=4.933333|bit_rate=N/A|max_bit_rate=N/A|bits_per_raw_sample=8|nb_frames=N/A|nb_read_frames=N/A|nb_read_packets=74|extradata_size=35|extradata_hash=CRC32:e62cae27|disposition:default=0|disposition:dub=0|disposition:original=0|disposition:comment=0|disposition:lyrics=0|disposition:karaoke=0|disposition:forced=0|disposition:hearing_impaired=0|disposition:visual_impaired=0|disposition:clean_effects=0|disposition:attached_pic=0|disposition:timed_thumbnails=0|disposition:non_diegetic=0|disposition:captions=0|disposition:descriptions=0|disposition:metadata=0|disposition:dependent=0|disposition:still_image=0
-format|filename=h264small.ts|nb_streams=1|nb_programs=1|format_name=mpegts|start_time=1.400000|duration=4.933333|size=16544|bit_rate=26828|probe_score=50
+format|filename=h264small.ts|nb_streams=1|nb_programs=1|nb_stream_groups=0|format_name=mpegts|start_time=1.400000|duration=4.933333|size=16544|bit_rate=26828|probe_score=50
diff --git a/tests/ref/fate/ts-timed-id3-demux b/tests/ref/fate/ts-timed-id3-demux
index 3c3372da26..938b5326e4 100644
--- a/tests/ref/fate/ts-timed-id3-demux
+++ b/tests/ref/fate/ts-timed-id3-demux
@@ -1,4 +1,4 @@
packet|codec_type=data|stream_index=0|pts=126000|pts_time=1.400000|dts=126000|dts_time=1.400000|duration=N/A|duration_time=N/A|size=26|pos=564|flags=K__|data_hash=CRC32:469f474b|side_datum/mpegts_stream_id:side_data_type=MPEGTS Stream ID|side_datum/mpegts_stream_id:id=189
packet|codec_type=data|stream_index=0|pts=577350|pts_time=6.415000|dts=577350|dts_time=6.415000|duration=N/A|duration_time=N/A|size=26|pos=1316|flags=K__|data_hash=CRC32:469f474b|side_datum/mpegts_stream_id:side_data_type=MPEGTS Stream ID|side_datum/mpegts_stream_id:id=189
stream|index=0|codec_name=timed_id3|profile=unknown|codec_type=data|codec_tag_string=ID3 |codec_tag=0x20334449|ts_id=1|ts_packetsize=188|id=0x100|r_frame_rate=0/0|avg_frame_rate=0/0|time_base=1/90000|start_pts=126000|start_time=1.400000|duration_ts=451350|duration=5.015000|bit_rate=N/A|max_bit_rate=N/A|bits_per_raw_sample=N/A|nb_frames=N/A|nb_read_frames=N/A|nb_read_packets=2|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
-format|filename=id3.ts|nb_streams=1|nb_programs=1|format_name=mpegts|start_time=1.400000|duration=5.015000|size=1504|bit_rate=2399|probe_score=2
+format|filename=id3.ts|nb_streams=1|nb_programs=1|nb_stream_groups=0|format_name=mpegts|start_time=1.400000|duration=5.015000|size=1504|bit_rate=2399|probe_score=2
--
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] 10+ messages in thread
* [FFmpeg-devel] [PATCH 2/8] fftools/ffprobe: print some basic Tile Grid Stream Group parameters
2024-03-03 18:09 [FFmpeg-devel] [PATCH 1/8 v2] fftools/ffprobe: add support for Stream Groups James Almer
@ 2024-03-03 18:09 ` James Almer
2024-03-03 18:09 ` [FFmpeg-devel] [PATCH 3/8] fate/iamf: print stream group information James Almer
` (6 subsequent siblings)
7 siblings, 0 replies; 10+ messages in thread
From: James Almer @ 2024-03-03 18:09 UTC (permalink / raw)
To: ffmpeg-devel
Signed-off-by: James Almer <jamrial@gmail.com>
---
fftools/ffprobe.c | 8 ++++++++
1 file changed, 8 insertions(+)
diff --git a/fftools/ffprobe.c b/fftools/ffprobe.c
index 548c5e0948..fef2a37d4c 100644
--- a/fftools/ffprobe.c
+++ b/fftools/ffprobe.c
@@ -3367,7 +3367,15 @@ static void print_stream_group_params(WriterContext *w, AVStreamGroup *stg)
else if (stg->type == AV_STREAM_GROUP_PARAMS_IAMF_MIX_PRESENTATION)
print_str("type", "IAMF Mix Presentation");
else if (stg->type == AV_STREAM_GROUP_PARAMS_TILE_GRID) {
+ AVStreamGroupTileGrid *tile_grid = stg->params.tile_grid;
print_str("type", "Tile Grid");
+ print_int("nb_tiles", tile_grid->nb_tiles);
+ print_int("coded_width", tile_grid->coded_width);
+ print_int("coded_height", tile_grid->coded_height);
+ print_int("horizontal_offset", tile_grid->horizontal_offset);
+ print_int("vertical_offset", tile_grid->vertical_offset);
+ print_int("width", tile_grid->width);
+ print_int("height", tile_grid->height);
} else
print_str_opt("type", "unknown");
}
--
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] 10+ messages in thread
* [FFmpeg-devel] [PATCH 3/8] fate/iamf: print stream group information
2024-03-03 18:09 [FFmpeg-devel] [PATCH 1/8 v2] fftools/ffprobe: add support for Stream Groups James Almer
2024-03-03 18:09 ` [FFmpeg-devel] [PATCH 2/8] fftools/ffprobe: print some basic Tile Grid Stream Group parameters James Almer
@ 2024-03-03 18:09 ` James Almer
2024-03-03 18:09 ` [FFmpeg-devel] [PATCH 4/8] avformat/mov: fix setting disposition for the first iamf stream James Almer
` (5 subsequent siblings)
7 siblings, 0 replies; 10+ messages in thread
From: James Almer @ 2024-03-03 18:09 UTC (permalink / raw)
To: ffmpeg-devel
Signed-off-by: James Almer <jamrial@gmail.com>
---
tests/fate/iamf.mak | 8 ++--
tests/ref/fate/iamf-5_1_4 | 60 +++++++++++++++++++++++++++++
tests/ref/fate/iamf-7_1_4 | 68 +++++++++++++++++++++++++++++++++
tests/ref/fate/iamf-ambisonic_1 | 44 +++++++++++++++++++++
tests/ref/fate/iamf-stereo | 20 ++++++++++
5 files changed, 196 insertions(+), 4 deletions(-)
diff --git a/tests/fate/iamf.mak b/tests/fate/iamf.mak
index 8b0de7f4b2..2257580871 100644
--- a/tests/fate/iamf.mak
+++ b/tests/fate/iamf.mak
@@ -4,7 +4,7 @@ fate-iamf-stereo: SRC = $(TARGET_PATH)/tests/data/asynth-44100-2.wav
fate-iamf-stereo: CMD = transcode wav $(SRC) iamf " \
-/stream_group $(TARGET_PATH)/tests/data/streamgroups/audio_element-stereo \
-/stream_group $(TARGET_PATH)/tests/data/streamgroups/mix_presentation-stereo \
- -streamid 0:0 -c:a flac -t 1" "-c:a copy -map 0"
+ -streamid 0:0 -c:a flac -t 1" "-c:a copy -map 0" "-show_entries stream_group=index,id,nb_streams,type:stream_group_stream=index,id"
FATE_IAMF += fate-iamf-5_1_4
fate-iamf-5_1_4: tests/data/asynth-44100-10.wav tests/data/filtergraphs/iamf_5_1_4 tests/data/streamgroups/audio_element-5_1_4 tests/data/streamgroups/mix_presentation-5_1_4
@@ -13,7 +13,7 @@ fate-iamf-5_1_4: CMD = transcode wav $(SRC) iamf "-auto_conversion_filters \
-/filter_complex $(TARGET_PATH)/tests/data/filtergraphs/iamf_5_1_4 \
-/stream_group $(TARGET_PATH)/tests/data/streamgroups/audio_element-5_1_4 \
-/stream_group $(TARGET_PATH)/tests/data/streamgroups/mix_presentation-5_1_4 \
- -streamid 0:0 -streamid 1:1 -streamid 2:2 -streamid 3:3 -streamid 4:4 -streamid 5:5 -map [FRONT] -map [BACK] -map [CENTER] -map [LFE] -map [TOP_FRONT] -map [TOP_BACK] -c:a flac -t 1" "-c:a copy -map 0"
+ -streamid 0:0 -streamid 1:1 -streamid 2:2 -streamid 3:3 -streamid 4:4 -streamid 5:5 -map [FRONT] -map [BACK] -map [CENTER] -map [LFE] -map [TOP_FRONT] -map [TOP_BACK] -c:a flac -t 1" "-c:a copy -map 0" "-show_entries stream_group=index,id,nb_streams,type:stream_group_stream=index,id"
FATE_IAMF += fate-iamf-7_1_4
fate-iamf-7_1_4: tests/data/asynth-44100-12.wav tests/data/filtergraphs/iamf_7_1_4 tests/data/streamgroups/audio_element-7_1_4 tests/data/streamgroups/mix_presentation-7_1_4
@@ -22,7 +22,7 @@ fate-iamf-7_1_4: CMD = transcode wav $(SRC) iamf "-auto_conversion_filters \
-/filter_complex $(TARGET_PATH)/tests/data/filtergraphs/iamf_7_1_4 \
-/stream_group $(TARGET_PATH)/tests/data/streamgroups/audio_element-7_1_4 \
-/stream_group $(TARGET_PATH)/tests/data/streamgroups/mix_presentation-7_1_4 \
- -streamid 0:0 -streamid 1:1 -streamid 2:2 -streamid 3:3 -streamid 4:4 -streamid 5:5 -streamid 6:6 -map [FRONT] -map [BACK] -map [CENTER] -map [LFE] -map [SIDE] -map [TOP_FRONT] -map [TOP_BACK] -c:a flac -t 1" "-c:a copy -map 0"
+ -streamid 0:0 -streamid 1:1 -streamid 2:2 -streamid 3:3 -streamid 4:4 -streamid 5:5 -streamid 6:6 -map [FRONT] -map [BACK] -map [CENTER] -map [LFE] -map [SIDE] -map [TOP_FRONT] -map [TOP_BACK] -c:a flac -t 1" "-c:a copy -map 0" "-show_entries stream_group=index,id,nb_streams,type:stream_group_stream=index,id"
FATE_IAMF += fate-iamf-ambisonic_1
fate-iamf-ambisonic_1: tests/data/asynth-44100-4.wav tests/data/filtergraphs/iamf_ambisonic_1 tests/data/streamgroups/audio_element-ambisonic_1 tests/data/streamgroups/mix_presentation-ambisonic_1
@@ -31,7 +31,7 @@ fate-iamf-ambisonic_1: CMD = transcode wav $(SRC) iamf "-auto_conversion_filters
-/filter_complex $(TARGET_PATH)/tests/data/filtergraphs/iamf_ambisonic_1 \
-/stream_group $(TARGET_PATH)/tests/data/streamgroups/audio_element-ambisonic_1 \
-/stream_group $(TARGET_PATH)/tests/data/streamgroups/mix_presentation-ambisonic_1 \
- -streamid 0:0 -streamid 1:1 -streamid 2:2 -streamid 3:3 -map [MONO0] -map [MONO1] -map [MONO2] -map [MONO3] -c:a flac -t 1" "-c:a copy -map 0"
+ -streamid 0:0 -streamid 1:1 -streamid 2:2 -streamid 3:3 -map [MONO0] -map [MONO1] -map [MONO2] -map [MONO3] -c:a flac -t 1" "-c:a copy -map 0" "-show_entries stream_group=index,id,nb_streams,type:stream_group_stream=index,id"
FATE_IAMF-$(call TRANSCODE, FLAC, IAMF, WAV_DEMUXER PCM_S16LE_DECODER) += $(FATE_IAMF)
diff --git a/tests/ref/fate/iamf-5_1_4 b/tests/ref/fate/iamf-5_1_4
index e6eb356ff0..daa9653006 100644
--- a/tests/ref/fate/iamf-5_1_4
+++ b/tests/ref/fate/iamf-5_1_4
@@ -96,3 +96,63 @@ c447cbbc8943cfb751fdf1145a094250 *tests/data/fate/iamf-5_1_4.iamf
3, 41472, 41472, 4608, 923, 0xa7225edf
4, 41472, 41472, 4608, 926, 0xc26a5eae
5, 41472, 41472, 4608, 926, 0xc26a5eae
+[STREAM_GROUP]
+index=0
+id=0x1
+nb_streams=6
+type=IAMF Audio Element
+[STREAM]
+index=0
+id=0x0
+[/STREAM]
+[STREAM]
+index=1
+id=0x1
+[/STREAM]
+[STREAM]
+index=2
+id=0x2
+[/STREAM]
+[STREAM]
+index=3
+id=0x3
+[/STREAM]
+[STREAM]
+index=4
+id=0x4
+[/STREAM]
+[STREAM]
+index=5
+id=0x5
+[/STREAM]
+[/STREAM_GROUP]
+[STREAM_GROUP]
+index=1
+id=0x2
+nb_streams=6
+type=IAMF Mix Presentation
+[STREAM]
+index=0
+id=0x0
+[/STREAM]
+[STREAM]
+index=1
+id=0x1
+[/STREAM]
+[STREAM]
+index=2
+id=0x2
+[/STREAM]
+[STREAM]
+index=3
+id=0x3
+[/STREAM]
+[STREAM]
+index=4
+id=0x4
+[/STREAM]
+[STREAM]
+index=5
+id=0x5
+[/STREAM]
+[/STREAM_GROUP]
diff --git a/tests/ref/fate/iamf-7_1_4 b/tests/ref/fate/iamf-7_1_4
index c176f4a1cd..6b677c697a 100644
--- a/tests/ref/fate/iamf-7_1_4
+++ b/tests/ref/fate/iamf-7_1_4
@@ -112,3 +112,71 @@
4, 41472, 41472, 4608, 926, 0xc26a5eae
5, 41472, 41472, 4608, 926, 0xc26a5eae
6, 41472, 41472, 4608, 926, 0xc26a5eae
+[STREAM_GROUP]
+index=0
+id=0x1
+nb_streams=7
+type=IAMF Audio Element
+[STREAM]
+index=0
+id=0x0
+[/STREAM]
+[STREAM]
+index=1
+id=0x1
+[/STREAM]
+[STREAM]
+index=2
+id=0x2
+[/STREAM]
+[STREAM]
+index=3
+id=0x3
+[/STREAM]
+[STREAM]
+index=4
+id=0x4
+[/STREAM]
+[STREAM]
+index=5
+id=0x5
+[/STREAM]
+[STREAM]
+index=6
+id=0x6
+[/STREAM]
+[/STREAM_GROUP]
+[STREAM_GROUP]
+index=1
+id=0x2
+nb_streams=7
+type=IAMF Mix Presentation
+[STREAM]
+index=0
+id=0x0
+[/STREAM]
+[STREAM]
+index=1
+id=0x1
+[/STREAM]
+[STREAM]
+index=2
+id=0x2
+[/STREAM]
+[STREAM]
+index=3
+id=0x3
+[/STREAM]
+[STREAM]
+index=4
+id=0x4
+[/STREAM]
+[STREAM]
+index=5
+id=0x5
+[/STREAM]
+[STREAM]
+index=6
+id=0x6
+[/STREAM]
+[/STREAM_GROUP]
diff --git a/tests/ref/fate/iamf-ambisonic_1 b/tests/ref/fate/iamf-ambisonic_1
index 928a9c6cf2..dfb3d723ca 100644
--- a/tests/ref/fate/iamf-ambisonic_1
+++ b/tests/ref/fate/iamf-ambisonic_1
@@ -64,3 +64,47 @@
1, 41472, 41472, 4608, 923, 0xa7225edf
2, 41472, 41472, 4608, 923, 0xa7225edf
3, 41472, 41472, 4608, 923, 0xa7225edf
+[STREAM_GROUP]
+index=0
+id=0x1
+nb_streams=4
+type=IAMF Audio Element
+[STREAM]
+index=0
+id=0x0
+[/STREAM]
+[STREAM]
+index=1
+id=0x1
+[/STREAM]
+[STREAM]
+index=2
+id=0x2
+[/STREAM]
+[STREAM]
+index=3
+id=0x3
+[/STREAM]
+[/STREAM_GROUP]
+[STREAM_GROUP]
+index=1
+id=0x2
+nb_streams=4
+type=IAMF Mix Presentation
+[STREAM]
+index=0
+id=0x0
+[/STREAM]
+[STREAM]
+index=1
+id=0x1
+[/STREAM]
+[STREAM]
+index=2
+id=0x2
+[/STREAM]
+[STREAM]
+index=3
+id=0x3
+[/STREAM]
+[/STREAM_GROUP]
diff --git a/tests/ref/fate/iamf-stereo b/tests/ref/fate/iamf-stereo
index 65d6b506d4..32d1e4022f 100644
--- a/tests/ref/fate/iamf-stereo
+++ b/tests/ref/fate/iamf-stereo
@@ -16,3 +16,23 @@ ace731a4fbc302e24498d6b64daa16e7 *tests/data/fate/iamf-stereo.iamf
0, 32256, 32256, 4608, 1768, 0x2a044b99
0, 36864, 36864, 4608, 1534, 0xb0b35a3f
0, 41472, 41472, 4608, 926, 0xc26a5eae
+[STREAM_GROUP]
+index=0
+id=0x1
+nb_streams=1
+type=IAMF Audio Element
+[STREAM]
+index=0
+id=0x0
+[/STREAM]
+[/STREAM_GROUP]
+[STREAM_GROUP]
+index=1
+id=0x2
+nb_streams=1
+type=IAMF Mix Presentation
+[STREAM]
+index=0
+id=0x0
+[/STREAM]
+[/STREAM_GROUP]
--
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] 10+ messages in thread
* [FFmpeg-devel] [PATCH 4/8] avformat/mov: fix setting disposition for the first iamf stream
2024-03-03 18:09 [FFmpeg-devel] [PATCH 1/8 v2] fftools/ffprobe: add support for Stream Groups James Almer
2024-03-03 18:09 ` [FFmpeg-devel] [PATCH 2/8] fftools/ffprobe: print some basic Tile Grid Stream Group parameters James Almer
2024-03-03 18:09 ` [FFmpeg-devel] [PATCH 3/8] fate/iamf: print stream group information James Almer
@ 2024-03-03 18:09 ` James Almer
2024-03-03 18:09 ` [FFmpeg-devel] [PATCH 5/8] fate/mov: print stream group information for iamf tests James Almer
` (4 subsequent siblings)
7 siblings, 0 replies; 10+ messages in thread
From: James Almer @ 2024-03-03 18:09 UTC (permalink / raw)
To: ffmpeg-devel
st->disposition will be overwritten with disposition later in the function.
Signed-off-by: James Almer <jamrial@gmail.com>
---
libavformat/mov.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/libavformat/mov.c b/libavformat/mov.c
index e07f2a1ada..7a09017020 100644
--- a/libavformat/mov.c
+++ b/libavformat/mov.c
@@ -946,7 +946,7 @@ static int mov_read_iacb(MOVContext *c, AVIOContext *pb, MOVAtom atom)
if (!i && !j) {
if (audio_element->layers[0].substream_count != 1)
- st->disposition &= ~AV_DISPOSITION_DEFAULT;
+ disposition &= ~AV_DISPOSITION_DEFAULT;
stream = st;
} else
stream = avformat_new_stream(c->fc, NULL);
--
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] 10+ messages in thread
* [FFmpeg-devel] [PATCH 5/8] fate/mov: print stream group information for iamf tests
2024-03-03 18:09 [FFmpeg-devel] [PATCH 1/8 v2] fftools/ffprobe: add support for Stream Groups James Almer
` (2 preceding siblings ...)
2024-03-03 18:09 ` [FFmpeg-devel] [PATCH 4/8] avformat/mov: fix setting disposition for the first iamf stream James Almer
@ 2024-03-03 18:09 ` James Almer
2024-03-03 18:09 ` [FFmpeg-devel] [PATCH 6/8] avformat/mov: don't mark an item referenced by a grid as dependent if it's the primary item James Almer
` (3 subsequent siblings)
7 siblings, 0 replies; 10+ messages in thread
From: James Almer @ 2024-03-03 18:09 UTC (permalink / raw)
To: ffmpeg-devel
Signed-off-by: James Almer <jamrial@gmail.com>
---
tests/fate/mov.mak | 12 +-
tests/ref/fate/mov-mp4-iamf-5_1_4 | 318 +++++++++++++++++++++
tests/ref/fate/mov-mp4-iamf-7_1_4 | 362 ++++++++++++++++++++++++
tests/ref/fate/mov-mp4-iamf-ambisonic_1 | 230 +++++++++++++++
tests/ref/fate/mov-mp4-iamf-stereo | 98 +++++++
5 files changed, 1016 insertions(+), 4 deletions(-)
diff --git a/tests/fate/mov.mak b/tests/fate/mov.mak
index 535647c474..de0e654532 100644
--- a/tests/fate/mov.mak
+++ b/tests/fate/mov.mak
@@ -211,7 +211,8 @@ fate-mov-mp4-iamf-stereo: SRC = $(TARGET_PATH)/tests/data/asynth-44100-2.wav
fate-mov-mp4-iamf-stereo: CMD = transcode wav $(SRC) mp4 " \
-/stream_group $(TARGET_PATH)/tests/data/streamgroups/audio_element-stereo \
-/stream_group $(TARGET_PATH)/tests/data/streamgroups/mix_presentation-stereo \
- -streamid 0:0 -c:a flac -t 1" "-c:a copy -map 0"
+ -streamid 0:0 -c:a flac -t 1" "-c:a copy -map 0" \
+ "-show_entries stream_group=index,id,nb_streams,type:stream_group_disposition:stream_group_tags:stream_group_stream=index,id:stream_group_stream_disposition"
FATE_MOV_FFMPEG-$(call TRANSCODE, FLAC, MOV, WAV_DEMUXER PCM_S16LE_DECODER) += fate-mov-mp4-iamf-5_1_4
fate-mov-mp4-iamf-5_1_4: tests/data/asynth-44100-10.wav tests/data/filtergraphs/iamf_5_1_4 tests/data/streamgroups/audio_element-5_1_4 tests/data/streamgroups/mix_presentation-5_1_4
@@ -220,7 +221,8 @@ fate-mov-mp4-iamf-5_1_4: CMD = transcode wav $(SRC) mp4 "-auto_conversion_filter
-/filter_complex $(TARGET_PATH)/tests/data/filtergraphs/iamf_5_1_4 \
-/stream_group $(TARGET_PATH)/tests/data/streamgroups/audio_element-5_1_4 \
-/stream_group $(TARGET_PATH)/tests/data/streamgroups/mix_presentation-5_1_4 \
- -streamid 0:0 -streamid 1:1 -streamid 2:2 -streamid 3:3 -streamid 4:4 -streamid 5:5 -map [FRONT] -map [BACK] -map [CENTER] -map [LFE] -map [TOP_FRONT] -map [TOP_BACK] -c:a flac -t 1" "-c:a copy -map 0"
+ -streamid 0:0 -streamid 1:1 -streamid 2:2 -streamid 3:3 -streamid 4:4 -streamid 5:5 -map [FRONT] -map [BACK] -map [CENTER] -map [LFE] -map [TOP_FRONT] -map [TOP_BACK] -c:a flac -t 1" "-c:a copy -map 0" \
+ "-show_entries stream_group=index,id,nb_streams,type:stream_group_disposition:stream_group_tags:stream_group_stream=index,id:stream_group_stream_disposition"
FATE_MOV_FFMPEG-$(call TRANSCODE, FLAC, MOV, WAV_DEMUXER PCM_S16LE_DECODER) += fate-mov-mp4-iamf-7_1_4
fate-mov-mp4-iamf-7_1_4: tests/data/asynth-44100-12.wav tests/data/filtergraphs/iamf_7_1_4 tests/data/streamgroups/audio_element-7_1_4 tests/data/streamgroups/mix_presentation-7_1_4
@@ -229,7 +231,8 @@ fate-mov-mp4-iamf-7_1_4: CMD = transcode wav $(SRC) mp4 "-auto_conversion_filter
-/filter_complex $(TARGET_PATH)/tests/data/filtergraphs/iamf_7_1_4 \
-/stream_group $(TARGET_PATH)/tests/data/streamgroups/audio_element-7_1_4 \
-/stream_group $(TARGET_PATH)/tests/data/streamgroups/mix_presentation-7_1_4 \
- -streamid 0:0 -streamid 1:1 -streamid 2:2 -streamid 3:3 -streamid 4:4 -streamid 5:5 -streamid 6:6 -map [FRONT] -map [BACK] -map [CENTER] -map [LFE] -map [SIDE] -map [TOP_FRONT] -map [TOP_BACK] -c:a flac -t 1" "-c:a copy -map 0"
+ -streamid 0:0 -streamid 1:1 -streamid 2:2 -streamid 3:3 -streamid 4:4 -streamid 5:5 -streamid 6:6 -map [FRONT] -map [BACK] -map [CENTER] -map [LFE] -map [SIDE] -map [TOP_FRONT] -map [TOP_BACK] -c:a flac -t 1" "-c:a copy -map 0" \
+ "-show_entries stream_group=index,id,nb_streams,type:stream_group_disposition:stream_group_tags:stream_group_stream=index,id:stream_group_stream_disposition"
FATE_MOV_FFMPEG-$(call TRANSCODE, FLAC, MOV, WAV_DEMUXER PCM_S16LE_DECODER) += fate-mov-mp4-iamf-ambisonic_1
fate-mov-mp4-iamf-ambisonic_1: tests/data/asynth-44100-4.wav tests/data/filtergraphs/iamf_ambisonic_1 tests/data/streamgroups/audio_element-ambisonic_1 tests/data/streamgroups/mix_presentation-ambisonic_1
@@ -238,7 +241,8 @@ fate-mov-mp4-iamf-ambisonic_1: CMD = transcode wav $(SRC) mp4 "-auto_conversion_
-/filter_complex $(TARGET_PATH)/tests/data/filtergraphs/iamf_ambisonic_1 \
-/stream_group $(TARGET_PATH)/tests/data/streamgroups/audio_element-ambisonic_1 \
-/stream_group $(TARGET_PATH)/tests/data/streamgroups/mix_presentation-ambisonic_1 \
- -streamid 0:0 -streamid 1:1 -streamid 2:2 -streamid 3:3 -map [MONO0] -map [MONO1] -map [MONO2] -map [MONO3] -c:a flac -t 1" "-c:a copy -map 0"
+ -streamid 0:0 -streamid 1:1 -streamid 2:2 -streamid 3:3 -map [MONO0] -map [MONO1] -map [MONO2] -map [MONO3] -c:a flac -t 1" "-c:a copy -map 0" \
+ "-show_entries stream_group=index,id,nb_streams,type:stream_group_disposition:stream_group_tags:stream_group_stream=index,id:stream_group_stream_disposition"
FATE_FFMPEG += $(FATE_MOV_FFMPEG-yes)
diff --git a/tests/ref/fate/mov-mp4-iamf-5_1_4 b/tests/ref/fate/mov-mp4-iamf-5_1_4
index 2f29a83cf4..fde95296eb 100644
--- a/tests/ref/fate/mov-mp4-iamf-5_1_4
+++ b/tests/ref/fate/mov-mp4-iamf-5_1_4
@@ -96,3 +96,321 @@
3, 41472, 41472, 2628, 923, 0xa7225edf
4, 41472, 41472, 2628, 926, 0xc26a5eae
5, 41472, 41472, 2628, 926, 0xc26a5eae
+[STREAM_GROUP]
+index=0
+id=0x1
+nb_streams=6
+type=IAMF Audio Element
+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:language=und
+TAG:handler_name=SoundHandler
+TAG:vendor_id=[0][0][0][0]
+[STREAM]
+index=0
+id=0x0
+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
+[/STREAM]
+[STREAM]
+index=1
+id=0x1
+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=1
+DISPOSITION:still_image=0
+[/STREAM]
+[STREAM]
+index=2
+id=0x2
+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=1
+DISPOSITION:still_image=0
+[/STREAM]
+[STREAM]
+index=3
+id=0x3
+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=1
+DISPOSITION:still_image=0
+[/STREAM]
+[STREAM]
+index=4
+id=0x4
+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=1
+DISPOSITION:still_image=0
+[/STREAM]
+[STREAM]
+index=5
+id=0x5
+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=1
+DISPOSITION:still_image=0
+[/STREAM]
+[/STREAM_GROUP]
+[STREAM_GROUP]
+index=1
+id=0x2
+nb_streams=6
+type=IAMF Mix Presentation
+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:language=und
+TAG:handler_name=SoundHandler
+TAG:vendor_id=[0][0][0][0]
+[STREAM]
+index=0
+id=0x0
+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
+[/STREAM]
+[STREAM]
+index=1
+id=0x1
+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=1
+DISPOSITION:still_image=0
+[/STREAM]
+[STREAM]
+index=2
+id=0x2
+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=1
+DISPOSITION:still_image=0
+[/STREAM]
+[STREAM]
+index=3
+id=0x3
+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=1
+DISPOSITION:still_image=0
+[/STREAM]
+[STREAM]
+index=4
+id=0x4
+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=1
+DISPOSITION:still_image=0
+[/STREAM]
+[STREAM]
+index=5
+id=0x5
+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=1
+DISPOSITION:still_image=0
+[/STREAM]
+[/STREAM_GROUP]
diff --git a/tests/ref/fate/mov-mp4-iamf-7_1_4 b/tests/ref/fate/mov-mp4-iamf-7_1_4
index 891803470a..a660aaa143 100644
--- a/tests/ref/fate/mov-mp4-iamf-7_1_4
+++ b/tests/ref/fate/mov-mp4-iamf-7_1_4
@@ -112,3 +112,365 @@
4, 41472, 41472, 2628, 926, 0xc26a5eae
5, 41472, 41472, 2628, 926, 0xc26a5eae
6, 41472, 41472, 2628, 926, 0xc26a5eae
+[STREAM_GROUP]
+index=0
+id=0x1
+nb_streams=7
+type=IAMF Audio Element
+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:language=und
+TAG:handler_name=SoundHandler
+TAG:vendor_id=[0][0][0][0]
+[STREAM]
+index=0
+id=0x0
+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
+[/STREAM]
+[STREAM]
+index=1
+id=0x1
+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=1
+DISPOSITION:still_image=0
+[/STREAM]
+[STREAM]
+index=2
+id=0x2
+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=1
+DISPOSITION:still_image=0
+[/STREAM]
+[STREAM]
+index=3
+id=0x3
+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=1
+DISPOSITION:still_image=0
+[/STREAM]
+[STREAM]
+index=4
+id=0x4
+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=1
+DISPOSITION:still_image=0
+[/STREAM]
+[STREAM]
+index=5
+id=0x5
+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=1
+DISPOSITION:still_image=0
+[/STREAM]
+[STREAM]
+index=6
+id=0x6
+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=1
+DISPOSITION:still_image=0
+[/STREAM]
+[/STREAM_GROUP]
+[STREAM_GROUP]
+index=1
+id=0x2
+nb_streams=7
+type=IAMF Mix Presentation
+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:language=und
+TAG:handler_name=SoundHandler
+TAG:vendor_id=[0][0][0][0]
+[STREAM]
+index=0
+id=0x0
+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
+[/STREAM]
+[STREAM]
+index=1
+id=0x1
+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=1
+DISPOSITION:still_image=0
+[/STREAM]
+[STREAM]
+index=2
+id=0x2
+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=1
+DISPOSITION:still_image=0
+[/STREAM]
+[STREAM]
+index=3
+id=0x3
+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=1
+DISPOSITION:still_image=0
+[/STREAM]
+[STREAM]
+index=4
+id=0x4
+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=1
+DISPOSITION:still_image=0
+[/STREAM]
+[STREAM]
+index=5
+id=0x5
+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=1
+DISPOSITION:still_image=0
+[/STREAM]
+[STREAM]
+index=6
+id=0x6
+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=1
+DISPOSITION:still_image=0
+[/STREAM]
+[/STREAM_GROUP]
diff --git a/tests/ref/fate/mov-mp4-iamf-ambisonic_1 b/tests/ref/fate/mov-mp4-iamf-ambisonic_1
index c4af88ce10..20f7ef97a4 100644
--- a/tests/ref/fate/mov-mp4-iamf-ambisonic_1
+++ b/tests/ref/fate/mov-mp4-iamf-ambisonic_1
@@ -64,3 +64,233 @@ fa740a4e2b84453c4e84908190094e28 *tests/data/fate/mov-mp4-iamf-ambisonic_1.mp4
1, 41472, 41472, 2628, 923, 0xa7225edf
2, 41472, 41472, 2628, 923, 0xa7225edf
3, 41472, 41472, 2628, 923, 0xa7225edf
+[STREAM_GROUP]
+index=0
+id=0x1
+nb_streams=4
+type=IAMF Audio Element
+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:language=und
+TAG:handler_name=SoundHandler
+TAG:vendor_id=[0][0][0][0]
+[STREAM]
+index=0
+id=0x0
+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
+[/STREAM]
+[STREAM]
+index=1
+id=0x1
+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=1
+DISPOSITION:still_image=0
+[/STREAM]
+[STREAM]
+index=2
+id=0x2
+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=1
+DISPOSITION:still_image=0
+[/STREAM]
+[STREAM]
+index=3
+id=0x3
+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=1
+DISPOSITION:still_image=0
+[/STREAM]
+[/STREAM_GROUP]
+[STREAM_GROUP]
+index=1
+id=0x2
+nb_streams=4
+type=IAMF Mix Presentation
+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:language=und
+TAG:handler_name=SoundHandler
+TAG:vendor_id=[0][0][0][0]
+[STREAM]
+index=0
+id=0x0
+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
+[/STREAM]
+[STREAM]
+index=1
+id=0x1
+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=1
+DISPOSITION:still_image=0
+[/STREAM]
+[STREAM]
+index=2
+id=0x2
+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=1
+DISPOSITION:still_image=0
+[/STREAM]
+[STREAM]
+index=3
+id=0x3
+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=1
+DISPOSITION:still_image=0
+[/STREAM]
+[/STREAM_GROUP]
diff --git a/tests/ref/fate/mov-mp4-iamf-stereo b/tests/ref/fate/mov-mp4-iamf-stereo
index 5c66c3e188..06af474018 100644
--- a/tests/ref/fate/mov-mp4-iamf-stereo
+++ b/tests/ref/fate/mov-mp4-iamf-stereo
@@ -16,3 +16,101 @@
0, 32256, 32256, 4608, 1768, 0x2a044b99
0, 36864, 36864, 4608, 1534, 0xb0b35a3f
0, 41472, 41472, 2628, 926, 0xc26a5eae
+[STREAM_GROUP]
+index=0
+id=0x1
+nb_streams=1
+type=IAMF Audio Element
+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:language=und
+TAG:handler_name=SoundHandler
+TAG:vendor_id=[0][0][0][0]
+[STREAM]
+index=0
+id=0x0
+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
+[/STREAM]
+[/STREAM_GROUP]
+[STREAM_GROUP]
+index=1
+id=0x2
+nb_streams=1
+type=IAMF Mix Presentation
+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:language=und
+TAG:handler_name=SoundHandler
+TAG:vendor_id=[0][0][0][0]
+[STREAM]
+index=0
+id=0x0
+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
+[/STREAM]
+[/STREAM_GROUP]
--
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] 10+ messages in thread
* [FFmpeg-devel] [PATCH 6/8] avformat/mov: don't mark an item referenced by a grid as dependent if it's the primary item
2024-03-03 18:09 [FFmpeg-devel] [PATCH 1/8 v2] fftools/ffprobe: add support for Stream Groups James Almer
` (3 preceding siblings ...)
2024-03-03 18:09 ` [FFmpeg-devel] [PATCH 5/8] fate/mov: print stream group information for iamf tests James Almer
@ 2024-03-03 18:09 ` James Almer
2024-03-03 18:09 ` [FFmpeg-devel] [PATCH 7/8] fate/mov: print stream group information for avif/heic tests James Almer
` (2 subsequent siblings)
7 siblings, 0 replies; 10+ messages in thread
From: James Almer @ 2024-03-03 18:09 UTC (permalink / raw)
To: ffmpeg-devel
If it's the primary item, then it's expected to be ready for presentation even
outside of the grid it belongs to.
Signed-off-by: James Almer <jamrial@gmail.com>
---
libavformat/mov.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/libavformat/mov.c b/libavformat/mov.c
index 7a09017020..f0e98f38b5 100644
--- a/libavformat/mov.c
+++ b/libavformat/mov.c
@@ -9443,7 +9443,8 @@ static int mov_parse_tiles(AVFormatContext *s)
if (err < 0 && err != AVERROR(EEXIST))
return err;
- st->disposition |= AV_DISPOSITION_DEPENDENT;
+ if (item->item_id != mov->primary_item_id)
+ st->disposition |= AV_DISPOSITION_DEPENDENT;
break;
}
--
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] 10+ messages in thread
* [FFmpeg-devel] [PATCH 7/8] fate/mov: print stream group information for avif/heic tests
2024-03-03 18:09 [FFmpeg-devel] [PATCH 1/8 v2] fftools/ffprobe: add support for Stream Groups James Almer
` (4 preceding siblings ...)
2024-03-03 18:09 ` [FFmpeg-devel] [PATCH 6/8] avformat/mov: don't mark an item referenced by a grid as dependent if it's the primary item James Almer
@ 2024-03-03 18:09 ` James Almer
2024-03-03 20:13 ` [FFmpeg-devel] [PATCH 7/8 v2] " James Almer
2024-03-03 18:09 ` [FFmpeg-devel] [PATCH 8/8] fate/mov: use framecrc for the remaining " James Almer
2024-03-04 10:34 ` [FFmpeg-devel] [PATCH 1/8 v2] fftools/ffprobe: add support for Stream Groups Stefano Sabatini
7 siblings, 1 reply; 10+ messages in thread
From: James Almer @ 2024-03-03 18:09 UTC (permalink / raw)
To: ffmpeg-devel
Signed-off-by: James Almer <jamrial@gmail.com>
---
tests/fate-run.sh | 13 ++
tests/fate/mov.mak | 12 +-
.../ref/fate/mov-heic-demux-still-image-grid | 133 ++++++++++++++++--
.../ref/fate/mov-heic-demux-still-image-iovl | 81 +++++++++--
4 files changed, 215 insertions(+), 24 deletions(-)
diff --git a/tests/fate-run.sh b/tests/fate-run.sh
index 7a7344e645..2de560354f 100755
--- a/tests/fate-run.sh
+++ b/tests/fate-run.sh
@@ -272,6 +272,19 @@ transcode(){
run ffprobe${PROGSUF}${EXECSUF} -bitexact $ffprobe_opts $tencfile || return
}
+stream_demux(){
+ src_fmt=$1
+ srcfile=$2
+ src_opts=$3
+ enc_opts=$4
+ ffprobe_opts=$5
+ tsrcfile=$(target_path $srcfile)
+ ffmpeg $DEC_OPTS -f $src_fmt $src_opts -i $tsrcfile $ENC_OPTS $FLAGS $enc_opts \
+ -f framecrc - || return
+ test -z "$ffprobe_opts" || \
+ run ffprobe${PROGSUF}${EXECSUF} -bitexact $ffprobe_opts $tsrcfile || return
+}
+
stream_remux(){
src_fmt=$1
srcfile=$2
diff --git a/tests/fate/mov.mak b/tests/fate/mov.mak
index de0e654532..9d0bdd0078 100644
--- a/tests/fate/mov.mak
+++ b/tests/fate/mov.mak
@@ -161,13 +161,17 @@ FATE_MOV_FFMPEG_SAMPLES-$(call FRAMEMD5, MOV, HEVC, HEVC_PARSER) \
+= fate-mov-heic-demux-still-image-multiple-items
fate-mov-heic-demux-still-image-multiple-items: CMD = framemd5 -i $(TARGET_SAMPLES)/heif-conformance/C003.heic -c:v copy -map 0
-FATE_MOV_FFMPEG_SAMPLES-$(call FRAMEMD5, MOV, HEVC, HEVC_PARSER) \
+# heic demuxing - still image with multiple items in a grid.
+FATE_MOV_FFMPEG_FFPROBE_SAMPLES-$(call DEMMUX, MOV, FRAMECRC, HEVC_DECODER HEVC_PARSER) \
+= fate-mov-heic-demux-still-image-grid
-fate-mov-heic-demux-still-image-grid: CMD = framemd5 -i $(TARGET_SAMPLES)/heif-conformance/C007.heic -c:v copy -map 0:g:0
+fate-mov-heic-demux-still-image-grid: CMD = stream_demux mov $(TARGET_SAMPLES)/heif-conformance/C007.heic "" "-c:v copy -map 0:g:0" \
+ "-show_entries stream_group=index,id,nb_streams,type:stream_group_disposition:stream_group_tags:stream_group_stream=index,id:stream_group_stream_disposition"
-FATE_MOV_FFMPEG_SAMPLES-$(call FRAMEMD5, MOV, HEVC, HEVC_PARSER) \
+# heic demuxing - still image with multiple items in an overlay canvas.
+FATE_MOV_FFMPEG_FFPROBE_SAMPLES-$(call DEMMUX, MOV, FRAMECRC, HEVC_DECODER HEVC_PARSER) \
+= fate-mov-heic-demux-still-image-iovl
-fate-mov-heic-demux-still-image-iovl: CMD = framemd5 -i $(TARGET_SAMPLES)/heif-conformance/C015.heic -c:v copy -map 0:g:0
+fate-mov-heic-demux-still-image-iovl: CMD = stream_demux mov $(TARGET_SAMPLES)/heif-conformance/C015.heic "" "-c:v copy -map 0:g:0" \
+ "-show_entries stream_group=index,id,nb_streams,type:stream_group_disposition:stream_group_tags:stream_group_stream=index,id:stream_group_stream_disposition"
# Resulting remux should have:
# 1. first audio stream with AV_DISPOSITION_HEARING_IMPAIRED
diff --git a/tests/ref/fate/mov-heic-demux-still-image-grid b/tests/ref/fate/mov-heic-demux-still-image-grid
index 6fde8fff28..b15ce91e1a 100644
--- a/tests/ref/fate/mov-heic-demux-still-image-grid
+++ b/tests/ref/fate/mov-heic-demux-still-image-grid
@@ -1,10 +1,7 @@
-#format: frame checksums
-#version: 2
-#hash: MD5
-#extradata 0, 100, 5444bf01e03182c73ae957179d560f4d
-#extradata 1, 100, 5444bf01e03182c73ae957179d560f4d
-#extradata 2, 100, 5444bf01e03182c73ae957179d560f4d
-#extradata 3, 100, 5444bf01e03182c73ae957179d560f4d
+#extradata 0: 100, 0xee3e15e9
+#extradata 1: 100, 0xee3e15e9
+#extradata 2: 100, 0xee3e15e9
+#extradata 3: 100, 0xee3e15e9
#tb 0: 1/1
#media_type 0: video
#codec_id 0: hevc
@@ -25,8 +22,120 @@
#codec_id 3: hevc
#dimensions 3: 1280x720
#sar 3: 0/1
-#stream#, dts, pts, duration, size, hash
-0, 0, 0, 1, 111554, 03ceabfab39afd2e2e796b9362111f32
-1, 0, 0, 1, 111481, e5db978adbe4de7ee50fe73abc39fcfa
-2, 0, 0, 1, 111451, 08700213113cadbb6628ecb8253c1c2a
-3, 0, 0, 1, 111353, 5de942e14c848e5e22fad5d88fb13776
+0, 0, 0, 1, 111554, 0xa0679859
+1, 0, 0, 1, 111481, 0xc5386eaf
+2, 0, 0, 1, 111451, 0xdbde88de
+3, 0, 0, 1, 111353, 0x26435c8c
+[STREAM_GROUP]
+index=0
+id=0x3f1
+nb_streams=4
+type=Tile Grid
+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=Derived image
+[STREAM]
+index=0
+id=0x3ea
+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=1
+DISPOSITION:still_image=0
+[/STREAM]
+[STREAM]
+index=1
+id=0x3ec
+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=1
+DISPOSITION:still_image=0
+[/STREAM]
+[STREAM]
+index=2
+id=0x3ee
+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=1
+DISPOSITION:still_image=0
+[/STREAM]
+[STREAM]
+index=3
+id=0x3f0
+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=1
+DISPOSITION:still_image=0
+[/STREAM]
+[/STREAM_GROUP]
diff --git a/tests/ref/fate/mov-heic-demux-still-image-iovl b/tests/ref/fate/mov-heic-demux-still-image-iovl
index 753cef267a..113b251c00 100644
--- a/tests/ref/fate/mov-heic-demux-still-image-iovl
+++ b/tests/ref/fate/mov-heic-demux-still-image-iovl
@@ -1,8 +1,5 @@
-#format: frame checksums
-#version: 2
-#hash: MD5
-#extradata 0, 100, 5444bf01e03182c73ae957179d560f4d
-#extradata 1, 100, 5444bf01e03182c73ae957179d560f4d
+#extradata 0: 100, 0xee3e15e9
+#extradata 1: 100, 0xee3e15e9
#tb 0: 1/1
#media_type 0: video
#codec_id 0: hevc
@@ -13,6 +10,74 @@
#codec_id 1: hevc
#dimensions 1: 1280x720
#sar 1: 0/1
-#stream#, dts, pts, duration, size, hash
-0, 0, 0, 1, 111554, 03ceabfab39afd2e2e796b9362111f32
-1, 0, 0, 1, 112393, daa001d351c088a5bc328459e2501c95
+0, 0, 0, 1, 111554, 0xa0679859
+1, 0, 0, 1, 112393, 0xdf2b9da0
+[STREAM_GROUP]
+index=0
+id=0x3ee
+nb_streams=2
+type=Tile Grid
+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:title=Derived image
+[STREAM]
+index=0
+id=0x3ea
+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
+[/STREAM]
+[STREAM]
+index=1
+id=0x3ed
+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=1
+DISPOSITION:still_image=0
+[/STREAM]
+[/STREAM_GROUP]
--
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] 10+ messages in thread
* [FFmpeg-devel] [PATCH 7/8 v2] fate/mov: print stream group information for avif/heic tests
2024-03-03 18:09 ` [FFmpeg-devel] [PATCH 7/8] fate/mov: print stream group information for avif/heic tests James Almer
@ 2024-03-03 20:13 ` James Almer
0 siblings, 0 replies; 10+ messages in thread
From: James Almer @ 2024-03-03 20:13 UTC (permalink / raw)
To: ffmpeg-devel
Signed-off-by: James Almer <jamrial@gmail.com>
---
tests/fate-run.sh | 13 ++
tests/fate/mov.mak | 12 +-
.../ref/fate/mov-heic-demux-still-image-grid | 140 ++++++++++++++++--
.../ref/fate/mov-heic-demux-still-image-iovl | 88 ++++++++++-
4 files changed, 229 insertions(+), 24 deletions(-)
diff --git a/tests/fate-run.sh b/tests/fate-run.sh
index 7a7344e645..2de560354f 100755
--- a/tests/fate-run.sh
+++ b/tests/fate-run.sh
@@ -272,6 +272,19 @@ transcode(){
run ffprobe${PROGSUF}${EXECSUF} -bitexact $ffprobe_opts $tencfile || return
}
+stream_demux(){
+ src_fmt=$1
+ srcfile=$2
+ src_opts=$3
+ enc_opts=$4
+ ffprobe_opts=$5
+ tsrcfile=$(target_path $srcfile)
+ ffmpeg $DEC_OPTS -f $src_fmt $src_opts -i $tsrcfile $ENC_OPTS $FLAGS $enc_opts \
+ -f framecrc - || return
+ test -z "$ffprobe_opts" || \
+ run ffprobe${PROGSUF}${EXECSUF} -bitexact $ffprobe_opts $tsrcfile || return
+}
+
stream_remux(){
src_fmt=$1
srcfile=$2
diff --git a/tests/fate/mov.mak b/tests/fate/mov.mak
index de0e654532..e1d45e495f 100644
--- a/tests/fate/mov.mak
+++ b/tests/fate/mov.mak
@@ -161,13 +161,17 @@ FATE_MOV_FFMPEG_SAMPLES-$(call FRAMEMD5, MOV, HEVC, HEVC_PARSER) \
+= fate-mov-heic-demux-still-image-multiple-items
fate-mov-heic-demux-still-image-multiple-items: CMD = framemd5 -i $(TARGET_SAMPLES)/heif-conformance/C003.heic -c:v copy -map 0
-FATE_MOV_FFMPEG_SAMPLES-$(call FRAMEMD5, MOV, HEVC, HEVC_PARSER) \
+# heic demuxing - still image with multiple items in a grid.
+FATE_MOV_FFMPEG_FFPROBE_SAMPLES-$(call DEMMUX, MOV, FRAMECRC, HEVC_DECODER HEVC_PARSER) \
+= fate-mov-heic-demux-still-image-grid
-fate-mov-heic-demux-still-image-grid: CMD = framemd5 -i $(TARGET_SAMPLES)/heif-conformance/C007.heic -c:v copy -map 0:g:0
+fate-mov-heic-demux-still-image-grid: CMD = stream_demux mov $(TARGET_SAMPLES)/heif-conformance/C007.heic "" "-c:v copy -map 0:g:0" \
+ "-show_entries stream_group=index,id,nb_streams,type,nb_tiles,coded_width,coded_height,horizontal_offset,vertical_offset,width,height:stream_group_disposition:stream_group_tags:stream_group_stream=index,id:stream_group_stream_disposition"
-FATE_MOV_FFMPEG_SAMPLES-$(call FRAMEMD5, MOV, HEVC, HEVC_PARSER) \
+# heic demuxing - still image with multiple items in an overlay canvas.
+FATE_MOV_FFMPEG_FFPROBE_SAMPLES-$(call DEMMUX, MOV, FRAMECRC, HEVC_DECODER HEVC_PARSER) \
+= fate-mov-heic-demux-still-image-iovl
-fate-mov-heic-demux-still-image-iovl: CMD = framemd5 -i $(TARGET_SAMPLES)/heif-conformance/C015.heic -c:v copy -map 0:g:0
+fate-mov-heic-demux-still-image-iovl: CMD = stream_demux mov $(TARGET_SAMPLES)/heif-conformance/C015.heic "" "-c:v copy -map 0:g:0" \
+ "-show_entries stream_group=index,id,nb_streams,type,nb_tiles,coded_width,coded_height,horizontal_offset,vertical_offset,width,height:stream_group_disposition:stream_group_tags:stream_group_stream=index,id:stream_group_stream_disposition"
# Resulting remux should have:
# 1. first audio stream with AV_DISPOSITION_HEARING_IMPAIRED
diff --git a/tests/ref/fate/mov-heic-demux-still-image-grid b/tests/ref/fate/mov-heic-demux-still-image-grid
index 6fde8fff28..df82c3254a 100644
--- a/tests/ref/fate/mov-heic-demux-still-image-grid
+++ b/tests/ref/fate/mov-heic-demux-still-image-grid
@@ -1,10 +1,7 @@
-#format: frame checksums
-#version: 2
-#hash: MD5
-#extradata 0, 100, 5444bf01e03182c73ae957179d560f4d
-#extradata 1, 100, 5444bf01e03182c73ae957179d560f4d
-#extradata 2, 100, 5444bf01e03182c73ae957179d560f4d
-#extradata 3, 100, 5444bf01e03182c73ae957179d560f4d
+#extradata 0: 100, 0xee3e15e9
+#extradata 1: 100, 0xee3e15e9
+#extradata 2: 100, 0xee3e15e9
+#extradata 3: 100, 0xee3e15e9
#tb 0: 1/1
#media_type 0: video
#codec_id 0: hevc
@@ -25,8 +22,127 @@
#codec_id 3: hevc
#dimensions 3: 1280x720
#sar 3: 0/1
-#stream#, dts, pts, duration, size, hash
-0, 0, 0, 1, 111554, 03ceabfab39afd2e2e796b9362111f32
-1, 0, 0, 1, 111481, e5db978adbe4de7ee50fe73abc39fcfa
-2, 0, 0, 1, 111451, 08700213113cadbb6628ecb8253c1c2a
-3, 0, 0, 1, 111353, 5de942e14c848e5e22fad5d88fb13776
+0, 0, 0, 1, 111554, 0xa0679859
+1, 0, 0, 1, 111481, 0xc5386eaf
+2, 0, 0, 1, 111451, 0xdbde88de
+3, 0, 0, 1, 111353, 0x26435c8c
+[STREAM_GROUP]
+index=0
+id=0x3f1
+nb_streams=4
+type=Tile Grid
+nb_tiles=4
+coded_width=2560
+coded_height=1440
+horizontal_offset=0
+vertical_offset=0
+width=2560
+height=1440
+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=Derived image
+[STREAM]
+index=0
+id=0x3ea
+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=1
+DISPOSITION:still_image=0
+[/STREAM]
+[STREAM]
+index=1
+id=0x3ec
+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=1
+DISPOSITION:still_image=0
+[/STREAM]
+[STREAM]
+index=2
+id=0x3ee
+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=1
+DISPOSITION:still_image=0
+[/STREAM]
+[STREAM]
+index=3
+id=0x3f0
+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=1
+DISPOSITION:still_image=0
+[/STREAM]
+[/STREAM_GROUP]
diff --git a/tests/ref/fate/mov-heic-demux-still-image-iovl b/tests/ref/fate/mov-heic-demux-still-image-iovl
index 753cef267a..74da39e799 100644
--- a/tests/ref/fate/mov-heic-demux-still-image-iovl
+++ b/tests/ref/fate/mov-heic-demux-still-image-iovl
@@ -1,8 +1,5 @@
-#format: frame checksums
-#version: 2
-#hash: MD5
-#extradata 0, 100, 5444bf01e03182c73ae957179d560f4d
-#extradata 1, 100, 5444bf01e03182c73ae957179d560f4d
+#extradata 0: 100, 0xee3e15e9
+#extradata 1: 100, 0xee3e15e9
#tb 0: 1/1
#media_type 0: video
#codec_id 0: hevc
@@ -13,6 +10,81 @@
#codec_id 1: hevc
#dimensions 1: 1280x720
#sar 1: 0/1
-#stream#, dts, pts, duration, size, hash
-0, 0, 0, 1, 111554, 03ceabfab39afd2e2e796b9362111f32
-1, 0, 0, 1, 112393, daa001d351c088a5bc328459e2501c95
+0, 0, 0, 1, 111554, 0xa0679859
+1, 0, 0, 1, 112393, 0xdf2b9da0
+[STREAM_GROUP]
+index=0
+id=0x3ee
+nb_streams=2
+type=Tile Grid
+nb_tiles=2
+coded_width=1440
+coded_height=960
+horizontal_offset=0
+vertical_offset=0
+width=1440
+height=960
+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:title=Derived image
+[STREAM]
+index=0
+id=0x3ea
+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
+[/STREAM]
+[STREAM]
+index=1
+id=0x3ed
+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=1
+DISPOSITION:still_image=0
+[/STREAM]
+[/STREAM_GROUP]
--
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] 10+ messages in thread
* [FFmpeg-devel] [PATCH 8/8] fate/mov: use framecrc for the remaining avif/heic tests
2024-03-03 18:09 [FFmpeg-devel] [PATCH 1/8 v2] fftools/ffprobe: add support for Stream Groups James Almer
` (5 preceding siblings ...)
2024-03-03 18:09 ` [FFmpeg-devel] [PATCH 7/8] fate/mov: print stream group information for avif/heic tests James Almer
@ 2024-03-03 18:09 ` James Almer
2024-03-04 10:34 ` [FFmpeg-devel] [PATCH 1/8 v2] fftools/ffprobe: add support for Stream Groups Stefano Sabatini
7 siblings, 0 replies; 10+ messages in thread
From: James Almer @ 2024-03-03 18:09 UTC (permalink / raw)
To: ffmpeg-devel
Put them in sync with the other tests.
Signed-off-by: James Almer <jamrial@gmail.com>
---
tests/fate/mov.mak | 21 ++++++++++---------
.../fate/mov-avif-demux-still-image-1-item | 8 ++-----
.../mov-avif-demux-still-image-multiple-items | 8 ++-----
.../fate/mov-heic-demux-still-image-1-item | 8 ++-----
.../mov-heic-demux-still-image-multiple-items | 12 ++++-------
5 files changed, 21 insertions(+), 36 deletions(-)
diff --git a/tests/fate/mov.mak b/tests/fate/mov.mak
index 9d0bdd0078..e5e372d062 100644
--- a/tests/fate/mov.mak
+++ b/tests/fate/mov.mak
@@ -143,23 +143,24 @@ fate-mov-mp4-ttml-stpp: CMD = transcode srt $(TARGET_SAMPLES)/sub/SubRip_capabil
fate-mov-mp4-ttml-dfxp: CMD = transcode srt $(TARGET_SAMPLES)/sub/SubRip_capability_tester.srt mp4 "-map 0:s -c:s ttml -time_base:s 1:1000 -tag:s dfxp -strict unofficial" "-map 0 -c copy" "-of json -show_entries packet:stream=index,codec_type,codec_tag_string,codec_tag,codec_name,time_base,start_time,duration_ts,duration,nb_frames,nb_read_packets:stream_tags"
# avif demuxing - still image with 1 item.
-FATE_MOV_FFMPEG_SAMPLES-$(call FRAMEMD5, MOV, AV1, AV1_PARSER) \
+FATE_MOV_FFMPEG_SAMPLES-$(call FRAMECRC, MOV, AV1, AV1_PARSER) \
+= fate-mov-avif-demux-still-image-1-item
-fate-mov-avif-demux-still-image-1-item: CMD = framemd5 -c:v av1 -i $(TARGET_SAMPLES)/avif/still_image.avif -c:v copy
+fate-mov-avif-demux-still-image-1-item: CMD = framecrc -c:v av1 -i $(TARGET_SAMPLES)/avif/still_image.avif -c:v copy
-# avif demuxing - still image with multiple items. only the primary item will be
-# parsed.
-FATE_MOV_FFMPEG_SAMPLES-$(call FRAMEMD5, MOV, AV1, AV1_PARSER) \
+# avif demuxing - still image with multiple items.
+FATE_MOV_FFMPEG_SAMPLES-$(call FRAMECRC, MOV, AV1, AV1_PARSER) \
+= fate-mov-avif-demux-still-image-multiple-items
-fate-mov-avif-demux-still-image-multiple-items: CMD = framemd5 -c:v av1 -i $(TARGET_SAMPLES)/avif/still_image_exif.avif -c:v copy
+fate-mov-avif-demux-still-image-multiple-items: CMD = framecrc -c:v av1 -i $(TARGET_SAMPLES)/avif/still_image_exif.avif -c:v copy
-FATE_MOV_FFMPEG_SAMPLES-$(call FRAMEMD5, MOV, HEVC, HEVC_PARSER) \
+# heic demuxing - still image with 1 item.
+FATE_MOV_FFMPEG_SAMPLES-$(call FRAMECRC, MOV, HEVC, HEVC_PARSER) \
+= fate-mov-heic-demux-still-image-1-item
-fate-mov-heic-demux-still-image-1-item: CMD = framemd5 -i $(TARGET_SAMPLES)/heif-conformance/C002.heic -c:v copy
+fate-mov-heic-demux-still-image-1-item: CMD = framecrc -i $(TARGET_SAMPLES)/heif-conformance/C002.heic -c:v copy
-FATE_MOV_FFMPEG_SAMPLES-$(call FRAMEMD5, MOV, HEVC, HEVC_PARSER) \
+# heic demuxing - still image with multiple items.
+FATE_MOV_FFMPEG_SAMPLES-$(call FRAMECRC, MOV, HEVC, HEVC_PARSER) \
+= fate-mov-heic-demux-still-image-multiple-items
-fate-mov-heic-demux-still-image-multiple-items: CMD = framemd5 -i $(TARGET_SAMPLES)/heif-conformance/C003.heic -c:v copy -map 0
+fate-mov-heic-demux-still-image-multiple-items: CMD = framecrc -i $(TARGET_SAMPLES)/heif-conformance/C003.heic -c:v copy -map 0
# heic demuxing - still image with multiple items in a grid.
FATE_MOV_FFMPEG_FFPROBE_SAMPLES-$(call DEMMUX, MOV, FRAMECRC, HEVC_DECODER HEVC_PARSER) \
diff --git a/tests/ref/fate/mov-avif-demux-still-image-1-item b/tests/ref/fate/mov-avif-demux-still-image-1-item
index 1ead593caa..0108877d10 100644
--- a/tests/ref/fate/mov-avif-demux-still-image-1-item
+++ b/tests/ref/fate/mov-avif-demux-still-image-1-item
@@ -1,11 +1,7 @@
-#format: frame checksums
-#version: 2
-#hash: MD5
-#extradata 0, 4, b24b71499a8480fa4469bcbcba2140aa
+#extradata 0: 4, 0x021c008d
#tb 0: 1/1
#media_type 0: video
#codec_id 0: av1
#dimensions 0: 352x288
#sar 0: 0/1
-#stream#, dts, pts, duration, size, hash
-0, 0, 0, 1, 36265, 235b0c6e389c4084845981e08d60db04
+0, 0, 0, 1, 36265, 0x6c8c9941
diff --git a/tests/ref/fate/mov-avif-demux-still-image-multiple-items b/tests/ref/fate/mov-avif-demux-still-image-multiple-items
index 1ead593caa..0108877d10 100644
--- a/tests/ref/fate/mov-avif-demux-still-image-multiple-items
+++ b/tests/ref/fate/mov-avif-demux-still-image-multiple-items
@@ -1,11 +1,7 @@
-#format: frame checksums
-#version: 2
-#hash: MD5
-#extradata 0, 4, b24b71499a8480fa4469bcbcba2140aa
+#extradata 0: 4, 0x021c008d
#tb 0: 1/1
#media_type 0: video
#codec_id 0: av1
#dimensions 0: 352x288
#sar 0: 0/1
-#stream#, dts, pts, duration, size, hash
-0, 0, 0, 1, 36265, 235b0c6e389c4084845981e08d60db04
+0, 0, 0, 1, 36265, 0x6c8c9941
diff --git a/tests/ref/fate/mov-heic-demux-still-image-1-item b/tests/ref/fate/mov-heic-demux-still-image-1-item
index c850c1ff9c..63ee5e492e 100644
--- a/tests/ref/fate/mov-heic-demux-still-image-1-item
+++ b/tests/ref/fate/mov-heic-demux-still-image-1-item
@@ -1,11 +1,7 @@
-#format: frame checksums
-#version: 2
-#hash: MD5
-#extradata 0, 100, 5444bf01e03182c73ae957179d560f4d
+#extradata 0: 100, 0xee3e15e9
#tb 0: 1/1
#media_type 0: video
#codec_id 0: hevc
#dimensions 0: 1280x720
#sar 0: 0/1
-#stream#, dts, pts, duration, size, hash
-0, 0, 0, 1, 111554, 03ceabfab39afd2e2e796b9362111f32
+0, 0, 0, 1, 111554, 0xa0679859
diff --git a/tests/ref/fate/mov-heic-demux-still-image-multiple-items b/tests/ref/fate/mov-heic-demux-still-image-multiple-items
index 753cef267a..3469e7ad75 100644
--- a/tests/ref/fate/mov-heic-demux-still-image-multiple-items
+++ b/tests/ref/fate/mov-heic-demux-still-image-multiple-items
@@ -1,8 +1,5 @@
-#format: frame checksums
-#version: 2
-#hash: MD5
-#extradata 0, 100, 5444bf01e03182c73ae957179d560f4d
-#extradata 1, 100, 5444bf01e03182c73ae957179d560f4d
+#extradata 0: 100, 0xee3e15e9
+#extradata 1: 100, 0xee3e15e9
#tb 0: 1/1
#media_type 0: video
#codec_id 0: hevc
@@ -13,6 +10,5 @@
#codec_id 1: hevc
#dimensions 1: 1280x720
#sar 1: 0/1
-#stream#, dts, pts, duration, size, hash
-0, 0, 0, 1, 111554, 03ceabfab39afd2e2e796b9362111f32
-1, 0, 0, 1, 112393, daa001d351c088a5bc328459e2501c95
+0, 0, 0, 1, 111554, 0xa0679859
+1, 0, 0, 1, 112393, 0xdf2b9da0
--
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] 10+ messages in thread
* Re: [FFmpeg-devel] [PATCH 1/8 v2] fftools/ffprobe: add support for Stream Groups
2024-03-03 18:09 [FFmpeg-devel] [PATCH 1/8 v2] fftools/ffprobe: add support for Stream Groups James Almer
` (6 preceding siblings ...)
2024-03-03 18:09 ` [FFmpeg-devel] [PATCH 8/8] fate/mov: use framecrc for the remaining " James Almer
@ 2024-03-04 10:34 ` Stefano Sabatini
7 siblings, 0 replies; 10+ messages in thread
From: Stefano Sabatini @ 2024-03-04 10:34 UTC (permalink / raw)
To: FFmpeg development discussions and patches
On date Sunday 2024-03-03 15:09:19 -0300, James Almer wrote:
> Signed-off-by: James Almer <jamrial@gmail.com>
> ---
> doc/ffprobe.xsd | 1 +
> fftools/ffprobe.c | 145 ++++++++++++++++--
> tests/ref/fate/cavs-demux | 2 +-
> tests/ref/fate/ffprobe_compact | 2 +-
> tests/ref/fate/ffprobe_csv | 2 +-
> tests/ref/fate/ffprobe_default | 1 +
> tests/ref/fate/ffprobe_flat | 1 +
> tests/ref/fate/ffprobe_ini | 1 +
> tests/ref/fate/ffprobe_json | 1 +
> tests/ref/fate/ffprobe_xml | 2 +-
> tests/ref/fate/ffprobe_xsd | 2 +-
> tests/ref/fate/flv-demux | 2 +-
> tests/ref/fate/gapless-mp3-side-data | 2 +-
> .../ref/fate/mov-mp4-disposition-mpegts-remux | 3 +
> tests/ref/fate/mov-mp4-ttml-dfxp | 3 +
> tests/ref/fate/mov-mp4-ttml-stpp | 3 +
> tests/ref/fate/oggopus-demux | 2 +-
> tests/ref/fate/ts-demux | 2 +-
> tests/ref/fate/ts-opus-demux | 2 +-
> tests/ref/fate/ts-small-demux | 2 +-
> tests/ref/fate/ts-timed-id3-demux | 2 +-
> 21 files changed, 160 insertions(+), 23 deletions(-)
>
> diff --git a/doc/ffprobe.xsd b/doc/ffprobe.xsd
> index 23d97ed11a..08f2909c02 100644
> --- a/doc/ffprobe.xsd
> +++ b/doc/ffprobe.xsd
> @@ -305,6 +305,7 @@
> <xsd:attribute name="filename" type="xsd:string" use="required"/>
> <xsd:attribute name="nb_streams" type="xsd:int" use="required"/>
> <xsd:attribute name="nb_programs" type="xsd:int" use="required"/>
> + <xsd:attribute name="nb_stream_groups" type="xsd:int" use="required"/>
> <xsd:attribute name="format_name" type="xsd:string" use="required"/>
> <xsd:attribute name="format_long_name" type="xsd:string"/>
> <xsd:attribute name="start_time" type="xsd:float"/>
do we also need to add a new type for the stream group?
> diff --git a/fftools/ffprobe.c b/fftools/ffprobe.c
> index ac6b92f5d6..548c5e0948 100644
> --- a/fftools/ffprobe.c
> +++ b/fftools/ffprobe.c
> @@ -112,8 +112,10 @@ static int do_show_format = 0;
> static int do_show_frames = 0;
> static int do_show_packets = 0;
> static int do_show_programs = 0;
> +static int do_show_stream_groups = 0;
> static int do_show_streams = 0;
> static int do_show_stream_disposition = 0;
> +static int do_show_stream_group_disposition = 0;
> static int do_show_data = 0;
> static int do_show_program_version = 0;
> static int do_show_library_versions = 0;
> @@ -126,6 +128,7 @@ static int do_show_chapter_tags = 0;
> static int do_show_format_tags = 0;
> static int do_show_frame_tags = 0;
> static int do_show_program_tags = 0;
> +static int do_show_stream_group_tags = 0;
> static int do_show_stream_tags = 0;
> static int do_show_packet_tags = 0;
>
> @@ -159,7 +162,7 @@ static int find_stream_info = 1;
>
> /* section structure definition */
>
> -#define SECTION_MAX_NB_CHILDREN 10
> +#define SECTION_MAX_NB_CHILDREN 11
>
> typedef enum {
> SECTION_ID_NONE = -1,
> @@ -203,6 +206,14 @@ typedef enum {
> SECTION_ID_PROGRAM_TAGS,
> SECTION_ID_PROGRAM_VERSION,
> SECTION_ID_PROGRAMS,
> + SECTION_ID_STREAM_GROUP_STREAM_DISPOSITION,
> + SECTION_ID_STREAM_GROUP_STREAM_TAGS,
> + SECTION_ID_STREAM_GROUP,
> + SECTION_ID_STREAM_GROUP_STREAMS,
> + SECTION_ID_STREAM_GROUP_STREAM,
> + SECTION_ID_STREAM_GROUP_DISPOSITION,
> + SECTION_ID_STREAM_GROUP_TAGS,
> + SECTION_ID_STREAM_GROUPS,
> SECTION_ID_ROOT,
> SECTION_ID_STREAM,
> SECTION_ID_STREAM_DISPOSITION,
> @@ -285,8 +296,16 @@ static struct section sections[] = {
> [SECTION_ID_PROGRAM_TAGS] = { SECTION_ID_PROGRAM_TAGS, "tags", SECTION_FLAG_HAS_VARIABLE_FIELDS, { -1 }, .element_name = "tag", .unique_name = "program_tags" },
> [SECTION_ID_PROGRAM_VERSION] = { SECTION_ID_PROGRAM_VERSION, "program_version", 0, { -1 } },
> [SECTION_ID_PROGRAMS] = { SECTION_ID_PROGRAMS, "programs", SECTION_FLAG_IS_ARRAY, { SECTION_ID_PROGRAM, -1 } },
> + [SECTION_ID_STREAM_GROUP_STREAM_DISPOSITION] = { SECTION_ID_STREAM_GROUP_STREAM_DISPOSITION, "disposition", 0, { -1 }, .unique_name = "stream_group_stream_disposition" },
> + [SECTION_ID_STREAM_GROUP_STREAM_TAGS] = { SECTION_ID_STREAM_GROUP_STREAM_TAGS, "tags", SECTION_FLAG_HAS_VARIABLE_FIELDS, { -1 }, .element_name = "tag", .unique_name = "stream_group_stream_tags" },
> + [SECTION_ID_STREAM_GROUP] = { SECTION_ID_STREAM_GROUP, "stream_group", 0, { SECTION_ID_STREAM_GROUP_TAGS, SECTION_ID_STREAM_GROUP_DISPOSITION, SECTION_ID_STREAM_GROUP_STREAMS, -1 } },
> + [SECTION_ID_STREAM_GROUP_STREAMS] = { SECTION_ID_STREAM_GROUP_STREAMS, "streams", SECTION_FLAG_IS_ARRAY, { SECTION_ID_STREAM_GROUP_STREAM, -1 }, .unique_name = "stream_group_streams" },
> + [SECTION_ID_STREAM_GROUP_STREAM] = { SECTION_ID_STREAM_GROUP_STREAM, "stream", 0, { SECTION_ID_STREAM_GROUP_STREAM_DISPOSITION, SECTION_ID_STREAM_GROUP_STREAM_TAGS, -1 }, .unique_name = "stream_group_stream" },
> + [SECTION_ID_STREAM_GROUP_DISPOSITION] = { SECTION_ID_STREAM_GROUP_DISPOSITION, "disposition", 0, { -1 }, .unique_name = "stream_group_disposition" },
> + [SECTION_ID_STREAM_GROUP_TAGS] = { SECTION_ID_STREAM_GROUP_TAGS, "tags", SECTION_FLAG_HAS_VARIABLE_FIELDS, { -1 }, .element_name = "tag", .unique_name = "stream_group_tags" },
> + [SECTION_ID_STREAM_GROUPS] = { SECTION_ID_STREAM_GROUPS, "stream_groups", SECTION_FLAG_IS_ARRAY, { SECTION_ID_STREAM_GROUP, -1 } },
> [SECTION_ID_ROOT] = { SECTION_ID_ROOT, "root", SECTION_FLAG_IS_WRAPPER,
> - { SECTION_ID_CHAPTERS, SECTION_ID_FORMAT, SECTION_ID_FRAMES, SECTION_ID_PROGRAMS, SECTION_ID_STREAMS,
> + { SECTION_ID_CHAPTERS, SECTION_ID_FORMAT, SECTION_ID_FRAMES, SECTION_ID_PROGRAMS, SECTION_ID_STREAM_GROUPS, SECTION_ID_STREAMS,
> SECTION_ID_PACKETS, SECTION_ID_ERROR, SECTION_ID_PROGRAM_VERSION, SECTION_ID_LIBRARY_VERSIONS,
> SECTION_ID_PIXEL_FORMATS, -1} },
> [SECTION_ID_STREAMS] = { SECTION_ID_STREAMS, "streams", SECTION_FLAG_IS_ARRAY, { SECTION_ID_STREAM, -1 } },
> @@ -3051,7 +3070,10 @@ static void print_dispositions(WriterContext *w, uint32_t disposition, SectionID
> writer_print_section_footer(w);
> }
>
> -static int show_stream(WriterContext *w, AVFormatContext *fmt_ctx, int stream_idx, InputStream *ist, int in_program)
> +#define IN_PROGRAM 1
> +#define IN_STREAM_GROUP 2
> +
> +static int show_stream(WriterContext *w, AVFormatContext *fmt_ctx, int stream_idx, InputStream *ist, int container)
> {
> AVStream *stream = ist->st;
> AVCodecParameters *par;
> @@ -3061,12 +3083,29 @@ static int show_stream(WriterContext *w, AVFormatContext *fmt_ctx, int stream_id
> AVRational sar, dar;
> AVBPrint pbuf;
> const AVCodecDescriptor *cd;
> + const SectionID section_header[] = {
> + SECTION_ID_STREAM,
> + SECTION_ID_PROGRAM_STREAM,
> + SECTION_ID_STREAM_GROUP_STREAM,
> + };
> + const SectionID section_disposition[] = {
> + SECTION_ID_STREAM_DISPOSITION,
> + SECTION_ID_PROGRAM_STREAM_DISPOSITION,
> + SECTION_ID_STREAM_GROUP_STREAM_DISPOSITION,
> + };
> + const SectionID section_tags[] = {
> + SECTION_ID_STREAM_TAGS,
> + SECTION_ID_PROGRAM_STREAM_TAGS,
> + SECTION_ID_STREAM_GROUP_STREAM_TAGS,
> + };
what about something as:
typedef struct {
SectionID stream;
SectionID disposition;
SectionID tags;
} StreamContainerSectionsIds;
static const StreamContainerSectionsIds stream_container_sections_ids = {
SECTION_ID_STREAM,
SECTION_ID_STREAM_DISPOSITION,
SECTION_ID_STREAM_TAGS
};
static const StreamContainerSectionsIds program_stream_container_sections_ids = {
SECTION_ID_PROGRAM_STREAM,
SECTION_ID_PROGRAM_STREAM_DISPOSITION,
SECTION_ID_PROGRAM_STREAM_TAGS
};
static const StreamContainerSectionsIds stream_group_container_sections_ids = {
SECTION_ID_STREAM_GROUP_STREAM,
SECTION_ID_STREAM_GROUP_STREAM_DISPOSITION,
SECTION_ID_STREAM_GROUP_STREAM_TAGS
};
static int show_stream(WriterContext *w, AVFormatContext *fmt_ctx, stream_idx, InputStream *ist, StreamContainerSectionsIds *sections_ids)
...
this is probably a bit longer but should be more robust
> int ret = 0;
> const char *profile = NULL;
>
> + av_assert0(container < FF_ARRAY_ELEMS(section_header));
> +
> av_bprint_init(&pbuf, 1, AV_BPRINT_SIZE_UNLIMITED);
>
> - writer_print_section_header(w, NULL, in_program ? SECTION_ID_PROGRAM_STREAM : SECTION_ID_STREAM);
> + writer_print_section_header(w, NULL, section_header[container]);
>
> print_int("index", stream->index);
>
> @@ -3228,13 +3267,14 @@ static int show_stream(WriterContext *w, AVFormatContext *fmt_ctx, int stream_id
>
> /* Print disposition information */
> if (do_show_stream_disposition) {
> - print_dispositions(w, stream->disposition,
> - in_program ? SECTION_ID_PROGRAM_STREAM_DISPOSITION
> - : SECTION_ID_STREAM_DISPOSITION);
> + av_assert0(container < FF_ARRAY_ELEMS(section_disposition));
> + print_dispositions(w, stream->disposition, section_disposition[container]);
> }
>
> - if (do_show_stream_tags)
> - ret = show_tags(w, stream->metadata, in_program ? SECTION_ID_PROGRAM_STREAM_TAGS : SECTION_ID_STREAM_TAGS);
> + if (do_show_stream_tags) {
> + av_assert0(container < FF_ARRAY_ELEMS(section_tags));
> + ret = show_tags(w, stream->metadata, section_tags[container]);
> + }
>
> if (stream->codecpar->nb_coded_side_data) {
> writer_print_section_header(w, NULL, SECTION_ID_STREAM_SIDE_DATA_LIST);
> @@ -3289,7 +3329,7 @@ static int show_program(WriterContext *w, InputFile *ifile, AVProgram *program)
> writer_print_section_header(w, NULL, SECTION_ID_PROGRAM_STREAMS);
> for (i = 0; i < program->nb_stream_indexes; i++) {
> if (selected_streams[program->stream_index[i]]) {
> - ret = show_stream(w, fmt_ctx, program->stream_index[i], &ifile->streams[program->stream_index[i]], 1);
> + ret = show_stream(w, fmt_ctx, program->stream_index[i], &ifile->streams[program->stream_index[i]], IN_PROGRAM);
> if (ret < 0)
> break;
> }
> @@ -3319,6 +3359,76 @@ static int show_programs(WriterContext *w, InputFile *ifile)
> return ret;
> }
>
> +
nit++: drop double empty line
> +static void print_stream_group_params(WriterContext *w, AVStreamGroup *stg)
> +{
> + if (stg->type == AV_STREAM_GROUP_PARAMS_IAMF_AUDIO_ELEMENT)
> + print_str("type", "IAMF Audio Element");
> + else if (stg->type == AV_STREAM_GROUP_PARAMS_IAMF_MIX_PRESENTATION)
> + print_str("type", "IAMF Mix Presentation");
> + else if (stg->type == AV_STREAM_GROUP_PARAMS_TILE_GRID) {
> + print_str("type", "Tile Grid");
> + } else
> + print_str_opt("type", "unknown");
nit: you can factorize type to avoid multiple print_str()
> +}
> +
> +static int show_stream_group(WriterContext *w, InputFile *ifile, AVStreamGroup *stg)
> +{
> + AVFormatContext *fmt_ctx = ifile->fmt_ctx;
> + AVBPrint pbuf;
> + int i, ret = 0;
> +
> + av_bprint_init(&pbuf, 1, AV_BPRINT_SIZE_UNLIMITED);
> + writer_print_section_header(w, NULL, SECTION_ID_STREAM_GROUP);
> + print_int("index", stg->index);
> + if (fmt_ctx->iformat->flags & AVFMT_SHOW_IDS) print_fmt ("id", "0x%"PRIx64, stg->id);
> + else print_str_opt("id", "N/A");
> + print_int("nb_streams", stg->nb_streams);
> + print_stream_group_params(w, stg);
> +
> + /* Print disposition information */
> + if (do_show_stream_group_disposition)
> + print_dispositions(w, stg->disposition, SECTION_ID_STREAM_GROUP_DISPOSITION);
> +
> + if (do_show_stream_group_tags)
> + ret = show_tags(w, stg->metadata, SECTION_ID_STREAM_GROUP_TAGS);
> + if (ret < 0)
> + goto end;
> +
> + writer_print_section_header(w, NULL, SECTION_ID_STREAM_GROUP_STREAMS);
> + for (i = 0; i < stg->nb_streams; i++) {
> + if (selected_streams[stg->streams[i]->index]) {
> + ret = show_stream(w, fmt_ctx, stg->streams[i]->index, &ifile->streams[stg->streams[i]->index], IN_STREAM_GROUP);
> + if (ret < 0)
> + break;
> + }
> + }
> + writer_print_section_footer(w);
> +
> +end:
> + av_bprint_finalize(&pbuf, NULL);
> + writer_print_section_footer(w);
> + return ret;
> +}
> +
> +static int show_stream_groups(WriterContext *w, InputFile *ifile)
> +{
> + AVFormatContext *fmt_ctx = ifile->fmt_ctx;
> + int i, ret = 0;
> +
> + writer_print_section_header(w, NULL, SECTION_ID_STREAM_GROUPS);
> + for (i = 0; i < fmt_ctx->nb_stream_groups; i++) {
> + AVStreamGroup *stg = fmt_ctx->stream_groups[i];
> + if (!stg)
> + continue;
> + ret = show_stream_group(w, ifile, stg);
> + if (ret < 0)
> + break;
> + }
> + writer_print_section_footer(w);
> + return ret;
> +}
> +
> static int show_chapters(WriterContext *w, InputFile *ifile)
> {
> AVFormatContext *fmt_ctx = ifile->fmt_ctx;
> @@ -3355,6 +3465,7 @@ static int show_format(WriterContext *w, InputFile *ifile)
> print_str_validate("filename", fmt_ctx->url);
> print_int("nb_streams", fmt_ctx->nb_streams);
> print_int("nb_programs", fmt_ctx->nb_programs);
> + print_int("nb_stream_groups", fmt_ctx->nb_stream_groups);
> print_str("format_name", fmt_ctx->iformat->name);
> if (!do_bitexact) {
> if (fmt_ctx->iformat->long_name) print_str ("format_long_name", fmt_ctx->iformat->long_name);
> @@ -3580,6 +3691,11 @@ static int probe_file(WriterContext *wctx, const char *filename,
> CHECK_END;
> }
>
> + if (do_show_stream_groups) {
> + ret = show_stream_groups(wctx, &ifile);
> + CHECK_END;
> + }
> +
> if (do_show_streams) {
> ret = show_streams(wctx, &ifile);
> CHECK_END;
> @@ -4078,6 +4194,7 @@ DEFINE_OPT_SHOW_SECTION(pixel_formats, PIXEL_FORMATS)
> DEFINE_OPT_SHOW_SECTION(program_version, PROGRAM_VERSION)
> DEFINE_OPT_SHOW_SECTION(streams, STREAMS)
> DEFINE_OPT_SHOW_SECTION(programs, PROGRAMS)
> +DEFINE_OPT_SHOW_SECTION(stream_groups, STREAM_GROUPS)
>
> static const OptionDef real_options[] = {
> CMDUTILS_COMMON_OPTIONS
> @@ -4108,6 +4225,7 @@ static const OptionDef real_options[] = {
> #endif
> { "show_packets", OPT_TYPE_FUNC, 0, { .func_arg = &opt_show_packets }, "show packets info" },
> { "show_programs", OPT_TYPE_FUNC, 0, { .func_arg = &opt_show_programs }, "show programs info" },
> + { "show_stream_groups", OPT_TYPE_FUNC, 0, { .func_arg = &opt_show_stream_groups }, "show stream groups info" },
Missing documentation update, also probably we want to advertise the
new option in the Changelog.
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] 10+ messages in thread
end of thread, other threads:[~2024-03-04 10:34 UTC | newest]
Thread overview: 10+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2024-03-03 18:09 [FFmpeg-devel] [PATCH 1/8 v2] fftools/ffprobe: add support for Stream Groups James Almer
2024-03-03 18:09 ` [FFmpeg-devel] [PATCH 2/8] fftools/ffprobe: print some basic Tile Grid Stream Group parameters James Almer
2024-03-03 18:09 ` [FFmpeg-devel] [PATCH 3/8] fate/iamf: print stream group information James Almer
2024-03-03 18:09 ` [FFmpeg-devel] [PATCH 4/8] avformat/mov: fix setting disposition for the first iamf stream James Almer
2024-03-03 18:09 ` [FFmpeg-devel] [PATCH 5/8] fate/mov: print stream group information for iamf tests James Almer
2024-03-03 18:09 ` [FFmpeg-devel] [PATCH 6/8] avformat/mov: don't mark an item referenced by a grid as dependent if it's the primary item James Almer
2024-03-03 18:09 ` [FFmpeg-devel] [PATCH 7/8] fate/mov: print stream group information for avif/heic tests James Almer
2024-03-03 20:13 ` [FFmpeg-devel] [PATCH 7/8 v2] " James Almer
2024-03-03 18:09 ` [FFmpeg-devel] [PATCH 8/8] fate/mov: use framecrc for the remaining " James Almer
2024-03-04 10:34 ` [FFmpeg-devel] [PATCH 1/8 v2] fftools/ffprobe: add support for Stream Groups Stefano Sabatini
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