This is an automated email from the git hooks/post-receive script. Git pushed a commit to branch master in repository ffmpeg.
commit 7e045dfbfcb20111296897583bda74eefbf55595 Author: Marvin Scholz <[email protected]> AuthorDate: Tue Apr 21 20:43:32 2026 +0200 Commit: Marvin Scholz <[email protected]> CommitDate: Wed May 13 15:19:11 2026 +0200 ffprobe: implement printing IAMF frame side data --- fftools/ffprobe.c | 29 ++++++++++++++++++++++++----- 1 file changed, 24 insertions(+), 5 deletions(-) diff --git a/fftools/ffprobe.c b/fftools/ffprobe.c index e7c0b0d4e6..b231d6ba71 100644 --- a/fftools/ffprobe.c +++ b/fftools/ffprobe.c @@ -1402,6 +1402,9 @@ static void show_subtitle(AVTextFormatContext *tfc, AVSubtitle *sub, AVStream *s fflush(stdout); } +static void print_iamf_param_definition(AVTextFormatContext *tfc, const char *name, + const AVIAMFParamDefinition *param, SectionID section_id); + static void print_frame_side_data(AVTextFormatContext *tfc, const AVFrame *frame, const AVStream *stream) @@ -1464,6 +1467,11 @@ static void print_frame_side_data(AVTextFormatContext *tfc, print_int("view_id", *(int*)sd->data); } else if (sd->type == AV_FRAME_DATA_EXIF) { print_int("size", sd->size); + } else if (sd->type == AV_FRAME_DATA_IAMF_MIX_GAIN_PARAM || + sd->type == AV_FRAME_DATA_IAMF_DEMIXING_INFO_PARAM || + sd->type == AV_FRAME_DATA_IAMF_RECON_GAIN_INFO_PARAM) { + const AVIAMFParamDefinition *param = (AVIAMFParamDefinition *)sd->data; + print_iamf_param_definition(tfc, NULL, param, SECTION_ID_FRAME_SIDE_DATA); } avtext_print_section_footer(tfc); } @@ -2155,12 +2163,21 @@ static void print_iamf_param_definition(AVTextFormatContext *tfc, const char *na const AVIAMFParamDefinition *param, SectionID section_id) { SectionID subsection_id, parameter_section_id; - av_assert0(sections[section_id].children_ids[0] != -1); - subsection_id = sections[section_id].children_ids[0]; + if (section_id == SECTION_ID_FRAME_SIDE_DATA) + subsection_id = SECTION_ID_FRAME_SIDE_DATA_COMPONENT_LIST; + else { + av_assert0(sections[section_id].children_ids[0] != -1); + subsection_id = sections[section_id].children_ids[0]; + } av_assert0(sections[subsection_id].children_ids[0] != -1); parameter_section_id = sections[subsection_id].children_ids[0]; - avtext_print_section_header(tfc, "IAMF Param Definition", section_id); - print_str("name", name); + + // When printing as part of side-data, skip opening a section + if (section_id != SECTION_ID_FRAME_SIDE_DATA) + avtext_print_section_header(tfc, "IAMF Param Definition", section_id); + + if (name) + print_str("name", name); print_int("nb_subblocks", param->nb_subblocks); print_int("type", param->type); print_int("parameter_id", param->parameter_id); @@ -2203,7 +2220,9 @@ static void print_iamf_param_definition(AVTextFormatContext *tfc, const char *na } if (param->nb_subblocks > 0) avtext_print_section_footer(tfc); // subsection_id - avtext_print_section_footer(tfc); // section_id + + if (section_id != SECTION_ID_FRAME_SIDE_DATA) + avtext_print_section_footer(tfc); // section_id } static void print_iamf_audio_element_params(AVTextFormatContext *tfc, const AVStreamGroup *stg, _______________________________________________ ffmpeg-cvslog mailing list -- [email protected] To unsubscribe send an email to [email protected]
