Signed-off-by: James Almer <jamr...@gmail.com>
---
fftools/ffprobe.c | 53 ++++++++++++++++---
tests/fate/mov.mak | 6 +--
.../ref/fate/mov-heic-demux-still-image-grid | 29 ++++++++++
.../ref/fate/mov-heic-demux-still-image-iovl | 19 +++++++
.../fate/mov-heic-demux-still-image-iovl-2 | 19 +++++++
5 files changed, 115 insertions(+), 11 deletions(-)
diff --git a/fftools/ffprobe.c b/fftools/ffprobe.c
index 4d4a85b5b0..c2ed8336f9 100644
--- a/fftools/ffprobe.c
+++ b/fftools/ffprobe.c
@@ -113,6 +113,7 @@ 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_stream_group_components = 0;
static int do_show_streams = 0;
static int do_show_stream_disposition = 0;
static int do_show_stream_group_disposition = 0;
@@ -209,6 +210,10 @@ typedef enum {
SECTION_ID_STREAM_GROUP_STREAM_DISPOSITION,
SECTION_ID_STREAM_GROUP_STREAM_TAGS,
SECTION_ID_STREAM_GROUP,
+ SECTION_ID_STREAM_GROUP_COMPONENTS,
+ SECTION_ID_STREAM_GROUP_COMPONENT,
+ SECTION_ID_STREAM_GROUP_SUB_COMPONENTS,
+ SECTION_ID_STREAM_GROUP_SUB_COMPONENT,
SECTION_ID_STREAM_GROUP_STREAMS,
SECTION_ID_STREAM_GROUP_STREAM,
SECTION_ID_STREAM_GROUP_DISPOSITION,
@@ -309,7 +314,11 @@ static struct section sections[] = {
[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", SECTION_FLAG_HAS_TYPE, { SECTION_ID_STREAM_GROUP_TAGS,
SECTION_ID_STREAM_GROUP_DISPOSITION, SECTION_ID_STREAM_GROUP_STREAMS, -1 }, .get_type =
get_stream_group_type },
+ [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_COMPONENTS,
SECTION_ID_STREAM_GROUP_STREAMS, -1 } },
+ [SECTION_ID_STREAM_GROUP_COMPONENTS] = { SECTION_ID_STREAM_GROUP_COMPONENTS,
"components", SECTION_FLAG_IS_ARRAY, { SECTION_ID_STREAM_GROUP_COMPONENT, -1 }, .element_name =
"component", .unique_name = "stream_group_components" },
+ [SECTION_ID_STREAM_GROUP_COMPONENT] = { SECTION_ID_STREAM_GROUP_COMPONENT,
"component", SECTION_FLAG_HAS_VARIABLE_FIELDS|SECTION_FLAG_HAS_TYPE, {
SECTION_ID_STREAM_GROUP_SUB_COMPONENTS, -1 }, .unique_name = "stream_group_component",
.element_name = "component_entry", .get_type = get_stream_group_type },
+ [SECTION_ID_STREAM_GROUP_SUB_COMPONENTS] = { SECTION_ID_STREAM_GROUP_SUB_COMPONENTS,
"subcomponents", SECTION_FLAG_IS_ARRAY, { SECTION_ID_STREAM_GROUP_SUB_COMPONENT, -1 },
.element_name = "component" },
+ [SECTION_ID_STREAM_GROUP_SUB_COMPONENT] = { SECTION_ID_STREAM_GROUP_SUB_COMPONENT,
"subcomponent", SECTION_FLAG_HAS_VARIABLE_FIELDS|SECTION_FLAG_HAS_TYPE, { -1 },
.element_name = "sub_component_entry", .get_type = get_raw_string_type },