PR #24746 opened by James Almer (jamrial) URL: https://code.ffmpeg.org/FFmpeg/FFmpeg/pulls/24746 Patch URL: https://code.ffmpeg.org/FFmpeg/FFmpeg/pulls/24746.patch
Same as profile, if it's unknown, don't print it. It makes even more sense here given it's not a string, and ffprobe is printing a "-99" which means nothing to a casual reader. From b0c9c5cd1199ae4ba8da5e64ded35ebdd4f62d9a Mon Sep 17 00:00:00 2001 From: James Almer <[email protected]> Date: Sun, 27 Sep 2026 21:04:15 -0300 Subject: [PATCH] fftools/ffprobe: make level an optionally print value Same as profile, if it's unknown, don't print it. It makes even more sense here given it's not a string, and ffprobe is printing a "-99" which means nothing to a casual reader. Signed-off-by: James Almer <[email protected]> --- fftools/ffprobe.c | 6 +++++- tests/ref/fate/ffprobe_json | 3 --- tests/ref/fate/ffprobe_xml | 6 +++--- tests/ref/fate/ffprobe_xsd | 6 +++--- 4 files changed, 11 insertions(+), 10 deletions(-) diff --git a/fftools/ffprobe.c b/fftools/ffprobe.c index f998bd05fb..55a7ebf84b 100644 --- a/fftools/ffprobe.c +++ b/fftools/ffprobe.c @@ -448,6 +448,7 @@ static void log_callback(void *ptr, int level, const char *fmt, va_list vl) } while (0) #define print_int(k, v) avtext_print_integer(tfc, k, v, 0) +#define print_int_opt(k, v) avtext_print_integer(tfc, k, v, AV_TEXTFORMAT_PRINT_STRING_OPTIONAL) #define print_q(k, v, s) avtext_print_rational(tfc, k, v, s) #define print_str(k, v) avtext_print_string(tfc, k, v, 0) #define print_str_opt(k, v) avtext_print_string(tfc, k, v, AV_TEXTFORMAT_PRINT_STRING_OPTIONAL) @@ -1923,7 +1924,10 @@ static int show_stream(AVTextFormatContext *tfc, AVFormatContext *fmt_ctx, int s } else print_str_opt("profile", "unknown"); } - print_int("level", par->level); + if (par->level != AV_LEVEL_UNKNOWN) + print_int("level", par->level); + else + print_int_opt("level", par->level); s = av_get_media_type_string(par->codec_type); if (s) print_str ("codec_type", s); diff --git a/tests/ref/fate/ffprobe_json b/tests/ref/fate/ffprobe_json index 34f6f71274..83699510b8 100644 --- a/tests/ref/fate/ffprobe_json +++ b/tests/ref/fate/ffprobe_json @@ -547,7 +547,6 @@ { "index": 0, "codec_name": "pcm_s16le", - "level": -99, "codec_type": "audio", "codec_tag_string": "PSD[16]", "codec_tag": "0x10445350", @@ -593,7 +592,6 @@ { "index": 1, "codec_name": "rawvideo", - "level": -99, "codec_type": "video", "codec_tag_string": "RGB[24]", "codec_tag": "0x18424752", @@ -643,7 +641,6 @@ { "index": 2, "codec_name": "rawvideo", - "level": -99, "codec_type": "video", "codec_tag_string": "RGB[24]", "codec_tag": "0x18424752", diff --git a/tests/ref/fate/ffprobe_xml b/tests/ref/fate/ffprobe_xml index 3ee2895eaa..ba922711f4 100644 --- a/tests/ref/fate/ffprobe_xml +++ b/tests/ref/fate/ffprobe_xml @@ -32,14 +32,14 @@ </packets_and_frames> <streams> - <stream index="0" codec_name="pcm_s16le" level="-99" codec_type="audio" codec_tag_string="PSD[16]" codec_tag="0x10445350" sample_fmt="s16" sample_rate="44100" channels="1" bits_per_sample="16" initial_padding="0" r_frame_rate="0/0" avg_frame_rate="0/0" time_base="1/44100" start_pts="0" start_time="0.000000" bit_rate="705600" nb_read_frames="6" nb_read_packets="6"> + <stream index="0" codec_name="pcm_s16le" codec_type="audio" codec_tag_string="PSD[16]" codec_tag="0x10445350" sample_fmt="s16" sample_rate="44100" channels="1" bits_per_sample="16" initial_padding="0" r_frame_rate="0/0" avg_frame_rate="0/0" time_base="1/44100" start_pts="0" start_time="0.000000" bit_rate="705600" nb_read_frames="6" nb_read_packets="6"> <disposition default="0" dub="0" original="0" comment="0" lyrics="0" karaoke="0" forced="0" hearing_impaired="0" visual_impaired="0" clean_effects="0" attached_pic="0" timed_thumbnails="0" non_diegetic="0" captions="0" descriptions="0" metadata="0" dependent="0" still_image="0" multilayer="0"/> <tags> <tag key="encoder" value="Lavc pcm_s16le"/> <tag key="E" value="mc²"/> </tags> </stream> - <stream index="1" codec_name="rawvideo" level="-99" codec_type="video" codec_tag_string="RGB[24]" codec_tag="0x18424752" width="320" height="240" coded_width="320" coded_height="240" has_b_frames="0" sample_aspect_ratio="1:1" display_aspect_ratio="4:3" pix_fmt="rgb24" refs="1" r_frame_rate="25/1" avg_frame_rate="25/1" time_base="1/51200" start_pts="0" start_time="0.000000" nb_read_frames="4" nb_read_packets="4"> + <stream index="1" codec_name="rawvideo" codec_type="video" codec_tag_string="RGB[24]" codec_tag="0x18424752" width="320" height="240" coded_width="320" coded_height="240" has_b_frames="0" sample_aspect_ratio="1:1" display_aspect_ratio="4:3" pix_fmt="rgb24" refs="1" r_frame_rate="25/1" avg_frame_rate="25/1" time_base="1/51200" start_pts="0" start_time="0.000000" nb_read_frames="4" nb_read_packets="4"> <disposition default="1" dub="0" original="0" comment="0" lyrics="0" karaoke="0" forced="0" hearing_impaired="0" visual_impaired="0" clean_effects="0" attached_pic="0" timed_thumbnails="0" non_diegetic="0" captions="0" descriptions="0" metadata="0" dependent="0" still_image="0" multilayer="0"/> <tags> <tag key="encoder" value="Lavc rawvideo"/> @@ -47,7 +47,7 @@ <tag key="duration_ts" value="field-and-tags-conflict-attempt"/> </tags> </stream> - <stream index="2" codec_name="rawvideo" level="-99" codec_type="video" codec_tag_string="RGB[24]" codec_tag="0x18424752" width="100" height="100" coded_width="100" coded_height="100" has_b_frames="0" sample_aspect_ratio="1:1" display_aspect_ratio="1:1" pix_fmt="rgb24" refs="1" r_frame_rate="25/1" avg_frame_rate="25/1" time_base="1/51200" start_pts="0" start_time="0.000000" nb_read_frames="4" nb_read_packets="4"> + <stream index="2" codec_name="rawvideo" codec_type="video" codec_tag_string="RGB[24]" codec_tag="0x18424752" width="100" height="100" coded_width="100" coded_height="100" has_b_frames="0" sample_aspect_ratio="1:1" display_aspect_ratio="1:1" pix_fmt="rgb24" refs="1" r_frame_rate="25/1" avg_frame_rate="25/1" time_base="1/51200" start_pts="0" start_time="0.000000" nb_read_frames="4" nb_read_packets="4"> <disposition default="0" dub="0" original="0" comment="0" lyrics="0" karaoke="0" forced="0" hearing_impaired="0" visual_impaired="0" clean_effects="0" attached_pic="0" timed_thumbnails="0" non_diegetic="0" captions="0" descriptions="0" metadata="0" dependent="0" still_image="0" multilayer="0"/> <tags> <tag key="encoder" value="Lavc rawvideo"/> diff --git a/tests/ref/fate/ffprobe_xsd b/tests/ref/fate/ffprobe_xsd index 980f8fd93b..faeeaccadc 100644 --- a/tests/ref/fate/ffprobe_xsd +++ b/tests/ref/fate/ffprobe_xsd @@ -32,14 +32,14 @@ </packets_and_frames> <streams> - <stream index="0" codec_name="pcm_s16le" level="-99" codec_type="audio" codec_tag_string="PSD[16]" codec_tag="0x10445350" sample_fmt="s16" sample_rate="44100" channels="1" bits_per_sample="16" initial_padding="0" r_frame_rate="0/0" avg_frame_rate="0/0" time_base="1/44100" start_pts="0" start_time="0.000000" bit_rate="705600" nb_read_frames="6" nb_read_packets="6"> + <stream index="0" codec_name="pcm_s16le" codec_type="audio" codec_tag_string="PSD[16]" codec_tag="0x10445350" sample_fmt="s16" sample_rate="44100" channels="1" bits_per_sample="16" initial_padding="0" r_frame_rate="0/0" avg_frame_rate="0/0" time_base="1/44100" start_pts="0" start_time="0.000000" bit_rate="705600" nb_read_frames="6" nb_read_packets="6"> <disposition default="0" dub="0" original="0" comment="0" lyrics="0" karaoke="0" forced="0" hearing_impaired="0" visual_impaired="0" clean_effects="0" attached_pic="0" timed_thumbnails="0" non_diegetic="0" captions="0" descriptions="0" metadata="0" dependent="0" still_image="0" multilayer="0"/> <tags> <tag key="encoder" value="Lavc pcm_s16le"/> <tag key="E" value="mc²"/> </tags> </stream> - <stream index="1" codec_name="rawvideo" level="-99" codec_type="video" codec_tag_string="RGB[24]" codec_tag="0x18424752" width="320" height="240" coded_width="320" coded_height="240" has_b_frames="0" sample_aspect_ratio="1:1" display_aspect_ratio="4:3" pix_fmt="rgb24" refs="1" r_frame_rate="25/1" avg_frame_rate="25/1" time_base="1/51200" start_pts="0" start_time="0.000000" nb_read_frames="4" nb_read_packets="4"> + <stream index="1" codec_name="rawvideo" codec_type="video" codec_tag_string="RGB[24]" codec_tag="0x18424752" width="320" height="240" coded_width="320" coded_height="240" has_b_frames="0" sample_aspect_ratio="1:1" display_aspect_ratio="4:3" pix_fmt="rgb24" refs="1" r_frame_rate="25/1" avg_frame_rate="25/1" time_base="1/51200" start_pts="0" start_time="0.000000" nb_read_frames="4" nb_read_packets="4"> <disposition default="1" dub="0" original="0" comment="0" lyrics="0" karaoke="0" forced="0" hearing_impaired="0" visual_impaired="0" clean_effects="0" attached_pic="0" timed_thumbnails="0" non_diegetic="0" captions="0" descriptions="0" metadata="0" dependent="0" still_image="0" multilayer="0"/> <tags> <tag key="encoder" value="Lavc rawvideo"/> @@ -47,7 +47,7 @@ <tag key="duration_ts" value="field-and-tags-conflict-attempt"/> </tags> </stream> - <stream index="2" codec_name="rawvideo" level="-99" codec_type="video" codec_tag_string="RGB[24]" codec_tag="0x18424752" width="100" height="100" coded_width="100" coded_height="100" has_b_frames="0" sample_aspect_ratio="1:1" display_aspect_ratio="1:1" pix_fmt="rgb24" refs="1" r_frame_rate="25/1" avg_frame_rate="25/1" time_base="1/51200" start_pts="0" start_time="0.000000" nb_read_frames="4" nb_read_packets="4"> + <stream index="2" codec_name="rawvideo" codec_type="video" codec_tag_string="RGB[24]" codec_tag="0x18424752" width="100" height="100" coded_width="100" coded_height="100" has_b_frames="0" sample_aspect_ratio="1:1" display_aspect_ratio="1:1" pix_fmt="rgb24" refs="1" r_frame_rate="25/1" avg_frame_rate="25/1" time_base="1/51200" start_pts="0" start_time="0.000000" nb_read_frames="4" nb_read_packets="4"> <disposition default="0" dub="0" original="0" comment="0" lyrics="0" karaoke="0" forced="0" hearing_impaired="0" visual_impaired="0" clean_effects="0" attached_pic="0" timed_thumbnails="0" non_diegetic="0" captions="0" descriptions="0" metadata="0" dependent="0" still_image="0" multilayer="0"/> <tags> <tag key="encoder" value="Lavc rawvideo"/> -- 2.52.0 _______________________________________________ ffmpeg-devel mailing list -- [email protected] To unsubscribe send an email to [email protected]
