[PR] fftools/textformat/avtextformat: increase supported max section level amount (PR #23912)
James Almer via ffmpeg-devel <[email protected]> Sat, 25 Jul 2026 15:11:07 -0000
| Newsgroups | gmane.comp.video.ffmpeg.devel |
|---|---|
| Message-ID | <178499226840.59.844735278278764549@29965ddac10e> |
PR #23912 opened by James Almer (jamrial) URL: https://code.ffmpeg.org/FFmpeg/FFmpeg/pulls/23912 Patch URL: https://code.ffmpeg.org/FFmpeg/FFmpeg/pulls/23912.patch pieces/subpieces are not the smallest element, blocks/subblocks are. >From 35388254e26e6f4d1dfc4a9907df68f112413468 Mon Sep 17 00:00:00 2001 From: James Almer <[email protected]> Date: Sat, 25 Jul 2026 11:31:43 -0300 Subject: [PATCH 1/2] fftools/textformat/avtextformat: increase supported max section level amount pieces/subpieces are not the smallest element, blocks/subblocks are. Signed-off-by: James Almer <[email protected]> --- fftools/textformat/avtextformat.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/fftools/textformat/avtextformat.h b/fftools/textformat/avtextformat.h index 401544b146..875af6acdd 100644 --- a/fftools/textformat/avtextformat.h +++ b/fftools/textformat/avtextformat.h @@ -109,7 +109,7 @@ typedef struct AVTextFormatter { int flags; ///< a combination or AV_TEXTFORMAT__FLAG_* } AVTextFormatter; -#define SECTION_MAX_NB_LEVELS 12 +#define SECTION_MAX_NB_LEVELS 14 #define SECTION_MAX_NB_SECTIONS 100 typedef struct AVTextFormatOptions { -- 2.52.0 >From d9c0462c5ec569f36f9293f80227581a508774de Mon Sep 17 00:00:00 2001 From: James Almer <[email protected]> Date: Sat, 25 Jul 2026 11:32:31 -0300 Subject: [PATCH 2/2] fftools/ffprobe: don't print IAMF param definitions meant for blocks when parsing descriptors Signed-off-by: James Almer <[email protected]> --- fftools/ffprobe.c | 27 +++++++++++++++------------ 1 file changed, 15 insertions(+), 12 deletions(-) diff --git a/fftools/ffprobe.c b/fftools/ffprobe.c index 31f74106f9..6fe34f48da 100644 --- a/fftools/ffprobe.c +++ b/fftools/ffprobe.c @@ -1429,7 +1429,7 @@ static void show_subtitle(AVTextFormatContext *tfc, AVSubtitle *sub, AVStream *s } static void print_iamf_param_definition(AVTextFormatContext *tfc, const char *name, - const AVIAMFParamDefinition *param, SectionID section_id); + const AVIAMFParamDefinition *param, int descriptor, SectionID section_id); static void print_frame_side_data(AVTextFormatContext *tfc, const AVFrame *frame, @@ -1499,7 +1499,7 @@ static void print_frame_side_data(AVTextFormatContext *tfc, 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); + print_iamf_param_definition(tfc, NULL, param, 0, SECTION_ID_FRAME_SIDE_DATA); } avtext_print_section_footer(tfc); } @@ -2188,7 +2188,8 @@ static void print_tile_grid_params(AVTextFormatContext *tfc, const AVStreamGroup } static void print_iamf_param_definition(AVTextFormatContext *tfc, const char *name, - const AVIAMFParamDefinition *param, SectionID section_id) + const AVIAMFParamDefinition *param, int descriptor, + SectionID section_id) { SectionID subsection_id, parameter_section_id; if (section_id == SECTION_ID_FRAME_SIDE_DATA) @@ -2221,11 +2222,13 @@ static void print_iamf_param_definition(AVTextFormatContext *tfc, const char *na const AVIAMFMixGain *mix = subblock; avtext_print_section_header(tfc, "IAMF Mix Gain Parameters", parameter_section_id); print_int("subblock_duration", mix->subblock_duration); - print_int("animation_type", mix->animation_type); - print_q("start_point_value", mix->start_point_value, '/'); - print_q("end_point_value", mix->end_point_value, '/'); - print_q("control_point_value", mix->control_point_value, '/'); - print_q("control_point_relative_time", mix->control_point_relative_time, '/'); + if (!descriptor) { + print_int("animation_type", mix->animation_type); + print_q("start_point_value", mix->start_point_value, '/'); + print_q("end_point_value", mix->end_point_value, '/'); + print_q("control_point_value", mix->control_point_value, '/'); + print_q("control_point_relative_time", mix->control_point_relative_time, '/'); + } avtext_print_section_footer(tfc); // parameter_section_id break; } @@ -2283,10 +2286,10 @@ static void print_iamf_audio_element_params(AVTextFormatContext *tfc, const AVSt avtext_print_section_footer(tfc); // SECTION_ID_STREAM_GROUP_SUBCOMPONENT } if (audio_element->demixing_info) - print_iamf_param_definition(tfc, "demixing_info", audio_element->demixing_info, + print_iamf_param_definition(tfc, "demixing_info", audio_element->demixing_info, 1, SECTION_ID_STREAM_GROUP_SUBCOMPONENT); if (audio_element->recon_gain_info) - print_iamf_param_definition(tfc, "recon_gain_info", audio_element->recon_gain_info, + print_iamf_param_definition(tfc, "recon_gain_info", audio_element->recon_gain_info, 1, SECTION_ID_STREAM_GROUP_SUBCOMPONENT); avtext_print_section_footer(tfc); // SECTION_ID_STREAM_GROUP_SUBCOMPONENTS avtext_print_section_footer(tfc); // SECTION_ID_STREAM_GROUP_COMPONENT @@ -2316,13 +2319,13 @@ static void print_iamf_submix_params(AVTextFormatContext *tfc, const AVIAMFSubmi avtext_print_section_footer(tfc); // SECTION_ID_STREAM_GROUP_SUBPIECE } if (element->element_mix_config) - print_iamf_param_definition(tfc, "element_mix_config", element->element_mix_config, + print_iamf_param_definition(tfc, "element_mix_config", element->element_mix_config, 1, SECTION_ID_STREAM_GROUP_SUBPIECE); avtext_print_section_footer(tfc); // SECTION_ID_STREAM_GROUP_SUBPIECES avtext_print_section_footer(tfc); // SECTION_ID_STREAM_GROUP_PIECE } if (submix->output_mix_config) - print_iamf_param_definition(tfc, "output_mix_config", submix->output_mix_config, + print_iamf_param_definition(tfc, "output_mix_config", submix->output_mix_config, 1, SECTION_ID_STREAM_GROUP_PIECE); for (unsigned i = 0; i < submix->nb_layouts; i++) { const AVIAMFSubmixLayout *layout = submix->layouts[i]; -- 2.52.0 _______________________________________________ ffmpeg-devel mailing list -- [email protected] To unsubscribe send an email to [email protected]