Commit 2c9fe23cbf for ffmpeg

commit 2c9fe23cbf898f2a7edccaf9f2f5ceeda3e122a2
Author: Kacper Michajłow <kasper93@gmail.com>
Date:   Thu Oct 8 05:18:37 2026 +0200

    fate: add compact output tests for program streams, timecode rows and printed graphs

    Signed-off-by: Kacper Michajłow <kasper93@gmail.com>

diff --git a/tests/fate/ffmpeg.mak b/tests/fate/ffmpeg.mak
index b749af4a7e..9da5ed9d61 100644
--- a/tests/fate/ffmpeg.mak
+++ b/tests/fate/ffmpeg.mak
@@ -19,6 +19,9 @@ fate-ffmpeg-lavfi: CMD = framecrc -lavfi color=d=1:r=5 -fflags +bitexact
 FATE_FFMPEG-$(call FILTERFRAMECRC, TESTSRC2 FORMAT SETPARAMS SCALE, LAVFI_INDEV WRAPPED_AVFRAME_DECODER MPEG2VIDEO_ENCODER) += fate-ffmpeg-chroma-location
 fate-ffmpeg-chroma-location: CMD = framecrc -auto_conversion_filters -f lavfi -i testsrc2=s=64x64:r=25:d=1,format=yuv420p,setparams=chroma_location=topleft -sws_flags +accurate_rnd+bitexact -flags +bitexact -idct simple -dct fastint -threads 1 -c:v mpeg2video -qscale:v 2 -frames:v 1

+FATE_FFMPEG-$(if $(CONFIG_SMALL),no,$(call ALLYES, TESTSRC2_FILTER SCALE_FILTER FORMAT_FILTER LAVFI_INDEV WRAPPED_AVFRAME_DECODER RAWVIDEO_ENCODER NULL_MUXER)) += fate-ffmpeg-print-graphs-compact
+fate-ffmpeg-print-graphs-compact: CMD = ffmpeg -f lavfi -i testsrc2=s=64x64:r=25:d=0.08 -filter_complex "[0:v]scale=32:32,format=yuv420p[v]" -map "[v]" -c:v rawvideo -print_graphs_file - -print_graphs_format compact -f null -
+
 FATE_FFMPEG-$(call ENCDEC2, MPEG4, RAWVIDEO, AVI, RAWVIDEO_DEMUXER FRAMECRC_MUXER) += fate-force_key_frames
 fate-force_key_frames: tests/data/vsynth1.yuv
 fate-force_key_frames: CMD = enc_dec \
diff --git a/tests/fate/h264.mak b/tests/fate/h264.mak
index 0fec104bfc..1ee70f216d 100644
--- a/tests/fate/h264.mak
+++ b/tests/fate/h264.mak
@@ -254,6 +254,7 @@ FATE_H264_FFPROBE-$(call DEMDEC, MATROSKA, H264) += fate-h264-dts_5frames
 FATE_H264_FFPROBE-$(call DEMDEC, MATROSKA, H264) += fate-h264-skip-pred-pts
 FATE_H264_FFPROBE-$(call DEMDEC, MOV, H264) += fate-h264-late-sei
 FATE_H264_FFPROBE-$(call PARSERDEMDEC, H264, H264, H264) += fate-h264-afd
+FATE_H264_FFPROBE-$(call PARSERDEMDEC, H264, H264, H264) += fate-h264-timecode-probe
 FATE_H264_FFPROBE-$(call PARSERDEMDEC, H264, H264, H264) += fate-h264-skip-pred \
                                                             fate-h264-skip-pred-fields

@@ -502,6 +503,8 @@ fate-h264-skip-pred-fields:                       CMD = probeframes -show_entrie
 fate-h264-skip-pred-pts:                          CMD = probeframes -show_entries frame=key_frame,pts,pict_type \
                                                         -skip_pred all -skip_idct all $(TARGET_SAMPLES)/h264/dts_5frames.mkv
 fate-h264-late-sei:                               CMD = probeframes -of compact -show_entries frame=color_transfer $(TARGET_SAMPLES)/h264/late-sei.mp4
+fate-h264-timecode-probe:                         CMD = probe -of compact -show_entries frame=key_frame,pict_type:frame_side_data_list \
+                                                        -read_intervals "%+\#2" $(TARGET_SAMPLES)/h264/crew_cif_timecode-2.h264
 fate-h264-afd:                                    CMD = run ffprobe$(PROGSSUF)$(EXESUF) -bitexact -apply_cropping 0 \
                                                         -show_entries frame=width,height,crop_top,crop_bottom,crop_left,crop_right:frame_side_data_list:stream=width,height,coded_width,coded_height \
                                                         $(TARGET_SAMPLES)/h264/bbc2.sample.h264
diff --git a/tests/fate/mpegts.mak b/tests/fate/mpegts.mak
index 5943571de9..39600294df 100644
--- a/tests/fate/mpegts.mak
+++ b/tests/fate/mpegts.mak
@@ -29,6 +29,12 @@ FATE_MPEGTS_PROBE-$(call DEMDEC, MPEGTS) += fate-mpegts-probe-pmt-merge
 fate-mpegts-probe-pmt-merge: SRC = $(TARGET_SAMPLES)/mpegts/pmtchange.ts
 fate-mpegts-probe-pmt-merge: CMD = run $(PROBE_CODEC_NAME_COMMAND) -merge_pmt_versions 1 -i "$(SRC)"

+FATE_MPEGTS_PROBE-$(call DEMDEC, MPEGTS, HEVC, LOAS_DEMUXER) += fate-mpegts-probe-program-compact
+fate-mpegts-probe-program-compact: SRC = $(TARGET_SAMPLES)/mpegts/loewe.ts
+fate-mpegts-probe-program-compact: CMD = run ffprobe$(PROGSSUF)$(EXESUF) -v 0 -bitexact -of compact \
+    -show_entries packet=stream_index,pts:packet_side_data_list:program=program_id,nb_streams:program_stream=index,codec_name \
+    -read_intervals "%+\#2" -i "$(SRC)"
+
 FATE_MPEGTS_FFMPEG_FFPROBE-$(call FRAMECRC, MOV, H264, H264_PARSER LCEVC_PARSER) += fate-mpegts-lcevc-h264-single-track
 fate-mpegts-lcevc-h264-single-track: CMD = stream_demux mpegts $(TARGET_SAMPLES)/lcevc/L_H264_640x360p_8bit8bit_2D_dd.ts \
   "" "-c:v copy" \
diff --git a/tests/ref/fate/ffmpeg-print-graphs-compact b/tests/ref/fate/ffmpeg-print-graphs-compact
new file mode 100644
index 0000000000..a5b136efeb
--- /dev/null
+++ b/tests/ref/fate/ffmpeg-print-graphs-compact
@@ -0,0 +1,20 @@
+graph|graph_index=0|name=Graph 0.0|id=Graph_0_0|description=[0:v]scale=32:32,format=yuv420p[v]
+graph_input|input_index=0|link_label=0:v|filter_id=G0_graph_0_input_from_stream_0_0|filter_name=buffer|media_type=video
+graph_output|output_index=0|name=#0:0|filter_id=G0_out__0_0|filter_name=buffersink|media_type=video
+filter|filter_name=scale|description=Scale the input video size and/or convert the image format.|nb_inputs=1|nb_outputs=1
+filter_input|input_index=0|pad_name=default|source_filter_id=in_0_v|source_pad_name=default|filter_id=G0_Parsed_scale_0|media_type=video|format=yuv420p|width=64|height=64|sar=1:1|sample_rate=1/25
+filter_output|dest_filter_id=G0_Parsed_format_1|output_index=0|pad_name=default|dest_pad_name=default|filter_id=G0_Parsed_scale_0|media_type=video|format=yuv420p|width=32|height=32|sar=1:1|sample_rate=1/25
+filter|filter_name=format|description=Convert the input video to one of the specified pixel formats.|nb_inputs=1|nb_outputs=1
+filter_input|input_index=0|pad_name=default|source_filter_id=G0_Parsed_scale_0|source_pad_name=default|filter_id=G0_Parsed_format_1|media_type=video|format=yuv420p|width=32|height=32|sar=1:1|sample_rate=1/25
+filter_output|dest_filter_id=out__0_0|output_index=0|pad_name=default|dest_pad_name=default|filter_id=G0_Parsed_format_1|media_type=video|format=yuv420p|width=32|height=32|sar=1:1|sample_rate=1/25
+filter|filter_name=buffer|description=Buffer video frames, and make them accessible to the filterchain.|nb_inputs=0|nb_outputs=1
+filter_output|dest_filter_id=G0_Parsed_scale_0|output_index=0|pad_name=default|dest_pad_name=default|filter_id=G0_graph_0_input_from_stream_0_0|media_type=video|format=yuv420p|width=64|height=64|sar=1:1|sample_rate=1/25
+filter|filter_name=buffersink|description=Buffer video frames, and make them available to the end of the filter graph.|nb_inputs=1|nb_outputs=0
+filter_input|input_index=0|pad_name=default|source_filter_id=G0_Parsed_format_1|source_pad_name=default|filter_id=G0_out__0_0|media_type=video|format=yuv420p|width=32|height=32|sar=1:1|sample_rate=1/25
+
+inputfile|index=0|demuxer_name=lavfi|file_extension=08|url=testsrc2=s=64x64:r=25:d=0.08
+inputstream|id=r_in_0_0|name=AVFrame to AVPacket passthrough|index=0|media_type=video
+decoder|source_id=r_in_0_0|id=in_0_0|name=wrapped_avframe|media_type=video
+encoder|id=out__0_0|dest_id=r_out__0_0|name=rawvideo|media_type=video
+outputfile|index=0|muxer_name=null|url=pipe:
+outputstream|id=r_out__0_0|name=raw video|index=0|media_type=video
diff --git a/tests/ref/fate/h264-timecode-probe b/tests/ref/fate/h264-timecode-probe
new file mode 100644
index 0000000000..dffe7ae762
--- /dev/null
+++ b/tests/ref/fate/h264-timecode-probe
@@ -0,0 +1,8 @@
+frame|key_frame=1|pict_type=I|side_datum/h_26_45__user_data_unregistered_sei_message:side_data_type=H.26[45] User Data Unregistered SEI message|side_datum/smpte_12_1_timecode:side_data_type=SMPTE 12-1 timecode
+timecode|value=00:00:00:00
+timecode|value=00:00:00:00
+
+frame|key_frame=0|pict_type=P|side_datum/smpte_12_1_timecode:side_data_type=SMPTE 12-1 timecode
+timecode|value=00:00:00:02
+timecode|value=00:00:00:02
+
diff --git a/tests/ref/fate/mpegts-probe-program-compact b/tests/ref/fate/mpegts-probe-program-compact
new file mode 100644
index 0000000000..bd884a0289
--- /dev/null
+++ b/tests/ref/fate/mpegts-probe-program-compact
@@ -0,0 +1,4 @@
+packet|stream_index=0|pts=2863340144|side_datum/mpegts_stream_id:side_data_type=MPEGTS Stream ID|side_datum/mpegts_stream_id:id=224
+packet|stream_index=0|pts=2863338344|side_datum/mpegts_stream_id:side_data_type=MPEGTS Stream ID|side_datum/mpegts_stream_id:id=224
+program|program_id=769|nb_streams=2
+stream|index=0|codec_name=hevcstream|index=1|codec_name=aac_latm
\ No newline at end of file