tests: add fate-ffprobe test
authorStefano Sabatini <stefasab@gmail.com>
Mon, 17 Sep 2012 19:08:46 +0000 (21:08 +0200)
committerStefano Sabatini <stefasab@gmail.com>
Thu, 20 Sep 2012 10:13:18 +0000 (12:13 +0200)
tests/Makefile
tests/fate/ffprobe.mak [new file with mode: 0644]
tests/ref/fate/ffprobe_compact [new file with mode: 0644]
tests/ref/fate/ffprobe_csv [new file with mode: 0644]
tests/ref/fate/ffprobe_default [new file with mode: 0644]
tests/ref/fate/ffprobe_flat [new file with mode: 0644]
tests/ref/fate/ffprobe_ini [new file with mode: 0644]
tests/ref/fate/ffprobe_json [new file with mode: 0644]
tests/ref/fate/ffprobe_xml [new file with mode: 0644]

index 81ce3e1..5f9be8a 100644 (file)
@@ -30,7 +30,17 @@ tests/data/vsynth1.yuv: tests/videogen$(HOSTEXESUF) | tests/data
 tests/data/vsynth2.yuv: tests/rotozoom$(HOSTEXESUF) | tests/data
        $(M)$< $(SRC_PATH)/tests/lena.pnm $@
 
-tests/data/%.sw tests/data/asynth% tests/data/vsynth%.yuv tests/vsynth%/00.pgm: TAG = GEN
+tests/data/ffprobe-test.nut: ffmpeg$(HOSTEXESUF) | tests/data
+       $(M)./$< \
+        -f lavfi -i "aevalsrc=sin(400*PI*2*t)::d=0.125[out0]; testsrc=d=0.125[out1]; testsrc=s=100x100:d=0.125[out2]" \
+        -flags +bitexact -map 0:0 -map 0:1 -map 0:2 \
+        -metadata "title=ffprobe test file" \
+        -metadata "comment='A comment wih CSV, XML & JSON special chars': <tag value=\"x\">" \
+        -metadata "comment2=I ♥ Üñîçød€" \
+        -vcodec rawvideo -acodec pcm_s16le \
+        -y $@ 2>/dev/null
+
+tests/data/%.sw tests/data/asynth% tests/data/vsynth%.yuv tests/vsynth%/00.pgm tests/data/%.nut: TAG = GEN
 
 include $(SRC_PATH)/tests/fate/acodec.mak
 include $(SRC_PATH)/tests/fate/vcodec.mak
@@ -52,6 +62,7 @@ include $(SRC_PATH)/tests/fate/demux.mak
 include $(SRC_PATH)/tests/fate/dfa.mak
 include $(SRC_PATH)/tests/fate/dpcm.mak
 include $(SRC_PATH)/tests/fate/ea.mak
+include $(SRC_PATH)/tests/fate/ffprobe.mak
 include $(SRC_PATH)/tests/fate/filter.mak
 include $(SRC_PATH)/tests/fate/flac.mak
 include $(SRC_PATH)/tests/fate/fft.mak
@@ -103,9 +114,12 @@ FATE_EXTERN += $(FATE_EXTERN-yes)
 
 FATE += $(FATE-yes)
 FATE += $(FATE_LIBAVUTIL)
+FATE += $(FATE_FFPROBE)
 
 $(FATE_FFMPEG) $(FATE_LAVF_FATE) $(FATE_SAMPLES_AVCONV) $(FATE_SAMPLES_FFMPEG): ffmpeg$(EXESUF)
 
+$(FATE_FFPROBE): ffprobe$(EXESUF)
+
 $(FATE_LAVF):  $(AREF) $(VREF)
 $(FATE_LAVFI): $(VREF) libavfilter/filtfmts-test$(EXESUF)
 $(FATE_SEEK):  fate-acodec fate-vsynth2 fate-lavf libavformat/seek-test$(EXESUF)
diff --git a/tests/fate/ffprobe.mak b/tests/fate/ffprobe.mak
new file mode 100644 (file)
index 0000000..734c24b
--- /dev/null
@@ -0,0 +1,33 @@
+FFPROBE_TEST_FILE=tests/data/ffprobe-test.nut
+FFPROBE_COMMAND=ffprobe$(EXESUF) -show_streams -show_packets -show_format -show_frames $(FFPROBE_TEST_FILE)
+
+FATE_FFPROBE += fate-ffprobe_compact
+fate-ffprobe_compact: $(FFPROBE_TEST_FILE)
+fate-ffprobe_compact: CMD = run $(FFPROBE_COMMAND) -of compact
+
+FATE_FFPROBE += fate-ffprobe_csv
+fate-ffprobe_csv: $(FFPROBE_TEST_FILE)
+fate-ffprobe_csv: CMD = run $(FFPROBE_COMMAND) -of csv
+
+FATE_FFPROBE += fate-ffprobe_default
+fate-ffprobe_default: $(FFPROBE_TEST_FILE)
+fate-ffprobe_default: CMD = run $(FFPROBE_COMMAND) -of default
+
+FATE_FFPROBE += fate-ffprobe_flat
+fate-ffprobe_flat: $(FFPROBE_TEST_FILE)
+fate-ffprobe_flat: CMD = run $(FFPROBE_COMMAND) -of flat
+
+FATE_FFPROBE += fate-ffprobe_ini
+fate-ffprobe_ini: $(FFPROBE_TEST_FILE)
+fate-ffprobe_ini: CMD = run $(FFPROBE_COMMAND) -of ini
+
+FATE_FFPROBE += fate-ffprobe_json
+fate-ffprobe_json: $(FFPROBE_TEST_FILE)
+fate-ffprobe_json: CMD = run $(FFPROBE_COMMAND) -of json
+
+FATE_FFPROBE += fate-ffprobe_xml
+fate-ffprobe_xml: $(FFPROBE_TEST_FILE)
+fate-ffprobe_xml: CMD = run $(FFPROBE_COMMAND) -of xml
+
+fate-ffprobe: $(FATE_FFPROBE)
+
diff --git a/tests/ref/fate/ffprobe_compact b/tests/ref/fate/ffprobe_compact
new file mode 100644 (file)
index 0000000..6c5b94f
--- /dev/null
@@ -0,0 +1,32 @@
+packet|codec_type=audio|stream_index=0|pts=0|pts_time=0.000000|dts=0|dts_time=0.000000|duration=1024|duration_time=0.023220|convergence_duration=N/A|convergence_duration_time=N/A|size=2048|pos=402|flags=K
+frame|media_type=audio|key_frame=1|pkt_pts=0|pkt_pts_time=0.000000|pkt_dts=0|pkt_dts_time=0.000000|pkt_duration=1024|pkt_duration_time=0.023220|pkt_pos=402|sample_fmt=s16|nb_samples=1024|channels=1|channel_layout=unknown
+packet|codec_type=video|stream_index=1|pts=0|pts_time=0.000000|dts=0|dts_time=0.000000|duration=1|duration_time=0.040000|convergence_duration=N/A|convergence_duration_time=N/A|size=230400|pos=2477|flags=K
+frame|media_type=video|key_frame=1|pkt_pts=0|pkt_pts_time=0.000000|pkt_dts=0|pkt_dts_time=0.000000|pkt_duration=1|pkt_duration_time=0.040000|pkt_pos=2477|width=320|height=240|pix_fmt=rgb24|sample_aspect_ratio=1:1|pict_type=I|coded_picture_number=0|display_picture_number=0|interlaced_frame=0|top_field_first=0|repeat_pict=0|reference=0
+packet|codec_type=video|stream_index=2|pts=0|pts_time=0.000000|dts=0|dts_time=0.000000|duration=1|duration_time=0.040000|convergence_duration=N/A|convergence_duration_time=N/A|size=30000|pos=232898|flags=K
+frame|media_type=video|key_frame=1|pkt_pts=0|pkt_pts_time=0.000000|pkt_dts=0|pkt_dts_time=0.000000|pkt_duration=1|pkt_duration_time=0.040000|pkt_pos=232898|width=100|height=100|pix_fmt=rgb24|sample_aspect_ratio=1:1|pict_type=I|coded_picture_number=0|display_picture_number=0|interlaced_frame=0|top_field_first=0|repeat_pict=0|reference=0
+packet|codec_type=audio|stream_index=0|pts=1024|pts_time=0.023220|dts=1024|dts_time=0.023220|duration=1024|duration_time=0.023220|convergence_duration=N/A|convergence_duration_time=N/A|size=2048|pos=262903|flags=K
+frame|media_type=audio|key_frame=1|pkt_pts=1024|pkt_pts_time=0.023220|pkt_dts=1024|pkt_dts_time=0.023220|pkt_duration=1024|pkt_duration_time=0.023220|pkt_pos=262903|sample_fmt=s16|nb_samples=1024|channels=1|channel_layout=unknown
+packet|codec_type=video|stream_index=1|pts=1|pts_time=0.040000|dts=1|dts_time=0.040000|duration=1|duration_time=0.040000|convergence_duration=N/A|convergence_duration_time=N/A|size=230400|pos=264979|flags=K
+frame|media_type=video|key_frame=1|pkt_pts=1|pkt_pts_time=0.040000|pkt_dts=1|pkt_dts_time=0.040000|pkt_duration=1|pkt_duration_time=0.040000|pkt_pos=264979|width=320|height=240|pix_fmt=rgb24|sample_aspect_ratio=1:1|pict_type=I|coded_picture_number=0|display_picture_number=0|interlaced_frame=0|top_field_first=0|repeat_pict=0|reference=0
+packet|codec_type=video|stream_index=2|pts=1|pts_time=0.040000|dts=1|dts_time=0.040000|duration=1|duration_time=0.040000|convergence_duration=N/A|convergence_duration_time=N/A|size=30000|pos=495401|flags=K
+frame|media_type=video|key_frame=1|pkt_pts=1|pkt_pts_time=0.040000|pkt_dts=1|pkt_dts_time=0.040000|pkt_duration=1|pkt_duration_time=0.040000|pkt_pos=495401|width=100|height=100|pix_fmt=rgb24|sample_aspect_ratio=1:1|pict_type=I|coded_picture_number=0|display_picture_number=0|interlaced_frame=0|top_field_first=0|repeat_pict=0|reference=0
+packet|codec_type=audio|stream_index=0|pts=2048|pts_time=0.046440|dts=2048|dts_time=0.046440|duration=1024|duration_time=0.023220|convergence_duration=N/A|convergence_duration_time=N/A|size=2048|pos=525406|flags=K
+frame|media_type=audio|key_frame=1|pkt_pts=2048|pkt_pts_time=0.046440|pkt_dts=2048|pkt_dts_time=0.046440|pkt_duration=1024|pkt_duration_time=0.023220|pkt_pos=525406|sample_fmt=s16|nb_samples=1024|channels=1|channel_layout=unknown
+packet|codec_type=audio|stream_index=0|pts=3072|pts_time=0.069660|dts=3072|dts_time=0.069660|duration=1024|duration_time=0.023220|convergence_duration=N/A|convergence_duration_time=N/A|size=2048|pos=527477|flags=K
+frame|media_type=audio|key_frame=1|pkt_pts=3072|pkt_pts_time=0.069660|pkt_dts=3072|pkt_dts_time=0.069660|pkt_duration=1024|pkt_duration_time=0.023220|pkt_pos=527477|sample_fmt=s16|nb_samples=1024|channels=1|channel_layout=unknown
+packet|codec_type=video|stream_index=1|pts=2|pts_time=0.080000|dts=2|dts_time=0.080000|duration=1|duration_time=0.040000|convergence_duration=N/A|convergence_duration_time=N/A|size=230400|pos=529553|flags=K
+frame|media_type=video|key_frame=1|pkt_pts=2|pkt_pts_time=0.080000|pkt_dts=2|pkt_dts_time=0.080000|pkt_duration=1|pkt_duration_time=0.040000|pkt_pos=529553|width=320|height=240|pix_fmt=rgb24|sample_aspect_ratio=1:1|pict_type=I|coded_picture_number=0|display_picture_number=0|interlaced_frame=0|top_field_first=0|repeat_pict=0|reference=0
+packet|codec_type=video|stream_index=2|pts=2|pts_time=0.080000|dts=2|dts_time=0.080000|duration=1|duration_time=0.040000|convergence_duration=N/A|convergence_duration_time=N/A|size=30000|pos=759975|flags=K
+frame|media_type=video|key_frame=1|pkt_pts=2|pkt_pts_time=0.080000|pkt_dts=2|pkt_dts_time=0.080000|pkt_duration=1|pkt_duration_time=0.040000|pkt_pos=759975|width=100|height=100|pix_fmt=rgb24|sample_aspect_ratio=1:1|pict_type=I|coded_picture_number=0|display_picture_number=0|interlaced_frame=0|top_field_first=0|repeat_pict=0|reference=0
+packet|codec_type=audio|stream_index=0|pts=4096|pts_time=0.092880|dts=4096|dts_time=0.092880|duration=1024|duration_time=0.023220|convergence_duration=N/A|convergence_duration_time=N/A|size=2048|pos=789980|flags=K
+frame|media_type=audio|key_frame=1|pkt_pts=4096|pkt_pts_time=0.092880|pkt_dts=4096|pkt_dts_time=0.092880|pkt_duration=1024|pkt_duration_time=0.023220|pkt_pos=789980|sample_fmt=s16|nb_samples=1024|channels=1|channel_layout=unknown
+packet|codec_type=audio|stream_index=0|pts=5120|pts_time=0.116100|dts=5120|dts_time=0.116100|duration=1024|duration_time=0.023220|convergence_duration=N/A|convergence_duration_time=N/A|size=2048|pos=792051|flags=K
+frame|media_type=audio|key_frame=1|pkt_pts=5120|pkt_pts_time=0.116100|pkt_dts=5120|pkt_dts_time=0.116100|pkt_duration=1024|pkt_duration_time=0.023220|pkt_pos=792051|sample_fmt=s16|nb_samples=1024|channels=1|channel_layout=unknown
+packet|codec_type=video|stream_index=1|pts=3|pts_time=0.120000|dts=3|dts_time=0.120000|duration=1|duration_time=0.040000|convergence_duration=N/A|convergence_duration_time=N/A|size=230400|pos=794127|flags=K
+frame|media_type=video|key_frame=1|pkt_pts=3|pkt_pts_time=0.120000|pkt_dts=3|pkt_dts_time=0.120000|pkt_duration=1|pkt_duration_time=0.040000|pkt_pos=794127|width=320|height=240|pix_fmt=rgb24|sample_aspect_ratio=1:1|pict_type=I|coded_picture_number=0|display_picture_number=0|interlaced_frame=0|top_field_first=0|repeat_pict=0|reference=0
+packet|codec_type=video|stream_index=2|pts=3|pts_time=0.120000|dts=3|dts_time=0.120000|duration=1|duration_time=0.040000|convergence_duration=N/A|convergence_duration_time=N/A|size=30000|pos=1024549|flags=K
+frame|media_type=video|key_frame=1|pkt_pts=3|pkt_pts_time=0.120000|pkt_dts=3|pkt_dts_time=0.120000|pkt_duration=1|pkt_duration_time=0.040000|pkt_pos=1024549|width=100|height=100|pix_fmt=rgb24|sample_aspect_ratio=1:1|pict_type=I|coded_picture_number=0|display_picture_number=0|interlaced_frame=0|top_field_first=0|repeat_pict=0|reference=0
+stream|index=0|codec_name=pcm_s16le|codec_long_name=PCM signed 16-bit little-endian|profile=unknown|codec_type=audio|codec_time_base=1/44100|codec_tag_string=[1][0][0][0]|codec_tag=0x0001|default=0|forced=0|sample_fmt=s16|sample_rate=44100|channels=1|bits_per_sample=16|id=N/A|r_frame_rate=0/0|avg_frame_rate=0/0|time_base=1/44100|start_pts=0|start_time=0.000000|duration_ts=527312|duration=11.957188|bit_rate=705600|nb_frames=N/A|nb_read_frames=6|nb_read_packets=6
+stream|index=1|codec_name=rawvideo|codec_long_name=raw video|profile=unknown|codec_type=video|codec_time_base=1/25|codec_tag_string=RGB[24]|codec_tag=0x18424752|default=0|forced=0|width=320|height=240|has_b_frames=0|sample_aspect_ratio=1:1|display_aspect_ratio=4:3|pix_fmt=rgb24|level=-99|timecode=N/A|attached_pic=0|id=N/A|r_frame_rate=25/1|avg_frame_rate=0/0|time_base=1/25|start_pts=0|start_time=0.000000|duration_ts=299|duration=11.960000|bit_rate=N/A|nb_frames=N/A|nb_read_frames=4|nb_read_packets=4
+stream|index=2|codec_name=rawvideo|codec_long_name=raw video|profile=unknown|codec_type=video|codec_time_base=1/25|codec_tag_string=RGB[24]|codec_tag=0x18424752|default=0|forced=0|width=100|height=100|has_b_frames=0|sample_aspect_ratio=1:1|display_aspect_ratio=1:1|pix_fmt=rgb24|level=-99|timecode=N/A|attached_pic=0|id=N/A|r_frame_rate=25/1|avg_frame_rate=0/0|time_base=1/25|start_pts=0|start_time=0.000000|duration_ts=299|duration=11.960000|bit_rate=N/A|nb_frames=N/A|nb_read_frames=4|nb_read_packets=4
+format|filename=tests/data/ffprobe-test.nut|nb_streams=3|format_name=nut|format_long_name=NUT|start_time=0.000000|duration=11.960000|size=1054624|bit_rate=705434|tag:title=ffprobe test file|tag:comment='A comment wih CSV, XML & JSON special chars': <tag value="x">|tag:comment2=I ♥ Üñîçød€
diff --git a/tests/ref/fate/ffprobe_csv b/tests/ref/fate/ffprobe_csv
new file mode 100644 (file)
index 0000000..413fd91
--- /dev/null
@@ -0,0 +1,32 @@
+packet,audio,0,0,0.000000,0,0.000000,1024,0.023220,N/A,N/A,2048,402,K
+frame,audio,1,0,0.000000,0,0.000000,1024,0.023220,402,s16,1024,1,unknown
+packet,video,1,0,0.000000,0,0.000000,1,0.040000,N/A,N/A,230400,2477,K
+frame,video,1,0,0.000000,0,0.000000,1,0.040000,2477,320,240,rgb24,1:1,I,0,0,0,0,0,0
+packet,video,2,0,0.000000,0,0.000000,1,0.040000,N/A,N/A,30000,232898,K
+frame,video,1,0,0.000000,0,0.000000,1,0.040000,232898,100,100,rgb24,1:1,I,0,0,0,0,0,0
+packet,audio,0,1024,0.023220,1024,0.023220,1024,0.023220,N/A,N/A,2048,262903,K
+frame,audio,1,1024,0.023220,1024,0.023220,1024,0.023220,262903,s16,1024,1,unknown
+packet,video,1,1,0.040000,1,0.040000,1,0.040000,N/A,N/A,230400,264979,K
+frame,video,1,1,0.040000,1,0.040000,1,0.040000,264979,320,240,rgb24,1:1,I,0,0,0,0,0,0
+packet,video,2,1,0.040000,1,0.040000,1,0.040000,N/A,N/A,30000,495401,K
+frame,video,1,1,0.040000,1,0.040000,1,0.040000,495401,100,100,rgb24,1:1,I,0,0,0,0,0,0
+packet,audio,0,2048,0.046440,2048,0.046440,1024,0.023220,N/A,N/A,2048,525406,K
+frame,audio,1,2048,0.046440,2048,0.046440,1024,0.023220,525406,s16,1024,1,unknown
+packet,audio,0,3072,0.069660,3072,0.069660,1024,0.023220,N/A,N/A,2048,527477,K
+frame,audio,1,3072,0.069660,3072,0.069660,1024,0.023220,527477,s16,1024,1,unknown
+packet,video,1,2,0.080000,2,0.080000,1,0.040000,N/A,N/A,230400,529553,K
+frame,video,1,2,0.080000,2,0.080000,1,0.040000,529553,320,240,rgb24,1:1,I,0,0,0,0,0,0
+packet,video,2,2,0.080000,2,0.080000,1,0.040000,N/A,N/A,30000,759975,K
+frame,video,1,2,0.080000,2,0.080000,1,0.040000,759975,100,100,rgb24,1:1,I,0,0,0,0,0,0
+packet,audio,0,4096,0.092880,4096,0.092880,1024,0.023220,N/A,N/A,2048,789980,K
+frame,audio,1,4096,0.092880,4096,0.092880,1024,0.023220,789980,s16,1024,1,unknown
+packet,audio,0,5120,0.116100,5120,0.116100,1024,0.023220,N/A,N/A,2048,792051,K
+frame,audio,1,5120,0.116100,5120,0.116100,1024,0.023220,792051,s16,1024,1,unknown
+packet,video,1,3,0.120000,3,0.120000,1,0.040000,N/A,N/A,230400,794127,K
+frame,video,1,3,0.120000,3,0.120000,1,0.040000,794127,320,240,rgb24,1:1,I,0,0,0,0,0,0
+packet,video,2,3,0.120000,3,0.120000,1,0.040000,N/A,N/A,30000,1024549,K
+frame,video,1,3,0.120000,3,0.120000,1,0.040000,1024549,100,100,rgb24,1:1,I,0,0,0,0,0,0
+stream,0,pcm_s16le,PCM signed 16-bit little-endian,unknown,audio,1/44100,[1][0][0][0],0x0001,0,0,s16,44100,1,16,N/A,0/0,0/0,1/44100,0,0.000000,527312,11.957188,705600,N/A,6,6
+stream,1,rawvideo,raw video,unknown,video,1/25,RGB[24],0x18424752,0,0,320,240,0,1:1,4:3,rgb24,-99,N/A,0,N/A,25/1,0/0,1/25,0,0.000000,299,11.960000,N/A,N/A,4,4
+stream,2,rawvideo,raw video,unknown,video,1/25,RGB[24],0x18424752,0,0,100,100,0,1:1,1:1,rgb24,-99,N/A,0,N/A,25/1,0/0,1/25,0,0.000000,299,11.960000,N/A,N/A,4,4
+format,tests/data/ffprobe-test.nut,3,nut,NUT,0.000000,11.960000,1054624,705434,ffprobe test file,"'A comment wih CSV, XML & JSON special chars': <tag value=""x"">",I ♥ Üñîçød€
diff --git a/tests/ref/fate/ffprobe_default b/tests/ref/fate/ffprobe_default
new file mode 100644 (file)
index 0000000..4c967a7
--- /dev/null
@@ -0,0 +1,583 @@
+[PACKET]
+codec_type=audio
+stream_index=0
+pts=0
+pts_time=0.000000
+dts=0
+dts_time=0.000000
+duration=1024
+duration_time=0.023220
+convergence_duration=N/A
+convergence_duration_time=N/A
+size=2048
+pos=402
+flags=K
+[/PACKET]
+[FRAME]
+media_type=audio
+key_frame=1
+pkt_pts=0
+pkt_pts_time=0.000000
+pkt_dts=0
+pkt_dts_time=0.000000
+pkt_duration=1024
+pkt_duration_time=0.023220
+pkt_pos=402
+sample_fmt=s16
+nb_samples=1024
+channels=1
+channel_layout=unknown
+[/FRAME]
+[PACKET]
+codec_type=video
+stream_index=1
+pts=0
+pts_time=0.000000
+dts=0
+dts_time=0.000000
+duration=1
+duration_time=0.040000
+convergence_duration=N/A
+convergence_duration_time=N/A
+size=230400
+pos=2477
+flags=K
+[/PACKET]
+[FRAME]
+media_type=video
+key_frame=1
+pkt_pts=0
+pkt_pts_time=0.000000
+pkt_dts=0
+pkt_dts_time=0.000000
+pkt_duration=1
+pkt_duration_time=0.040000
+pkt_pos=2477
+width=320
+height=240
+pix_fmt=rgb24
+sample_aspect_ratio=1:1
+pict_type=I
+coded_picture_number=0
+display_picture_number=0
+interlaced_frame=0
+top_field_first=0
+repeat_pict=0
+reference=0
+[/FRAME]
+[PACKET]
+codec_type=video
+stream_index=2
+pts=0
+pts_time=0.000000
+dts=0
+dts_time=0.000000
+duration=1
+duration_time=0.040000
+convergence_duration=N/A
+convergence_duration_time=N/A
+size=30000
+pos=232898
+flags=K
+[/PACKET]
+[FRAME]
+media_type=video
+key_frame=1
+pkt_pts=0
+pkt_pts_time=0.000000
+pkt_dts=0
+pkt_dts_time=0.000000
+pkt_duration=1
+pkt_duration_time=0.040000
+pkt_pos=232898
+width=100
+height=100
+pix_fmt=rgb24
+sample_aspect_ratio=1:1
+pict_type=I
+coded_picture_number=0
+display_picture_number=0
+interlaced_frame=0
+top_field_first=0
+repeat_pict=0
+reference=0
+[/FRAME]
+[PACKET]
+codec_type=audio
+stream_index=0
+pts=1024
+pts_time=0.023220
+dts=1024
+dts_time=0.023220
+duration=1024
+duration_time=0.023220
+convergence_duration=N/A
+convergence_duration_time=N/A
+size=2048
+pos=262903
+flags=K
+[/PACKET]
+[FRAME]
+media_type=audio
+key_frame=1
+pkt_pts=1024
+pkt_pts_time=0.023220
+pkt_dts=1024
+pkt_dts_time=0.023220
+pkt_duration=1024
+pkt_duration_time=0.023220
+pkt_pos=262903
+sample_fmt=s16
+nb_samples=1024
+channels=1
+channel_layout=unknown
+[/FRAME]
+[PACKET]
+codec_type=video
+stream_index=1
+pts=1
+pts_time=0.040000
+dts=1
+dts_time=0.040000
+duration=1
+duration_time=0.040000
+convergence_duration=N/A
+convergence_duration_time=N/A
+size=230400
+pos=264979
+flags=K
+[/PACKET]
+[FRAME]
+media_type=video
+key_frame=1
+pkt_pts=1
+pkt_pts_time=0.040000
+pkt_dts=1
+pkt_dts_time=0.040000
+pkt_duration=1
+pkt_duration_time=0.040000
+pkt_pos=264979
+width=320
+height=240
+pix_fmt=rgb24
+sample_aspect_ratio=1:1
+pict_type=I
+coded_picture_number=0
+display_picture_number=0
+interlaced_frame=0
+top_field_first=0
+repeat_pict=0
+reference=0
+[/FRAME]
+[PACKET]
+codec_type=video
+stream_index=2
+pts=1
+pts_time=0.040000
+dts=1
+dts_time=0.040000
+duration=1
+duration_time=0.040000
+convergence_duration=N/A
+convergence_duration_time=N/A
+size=30000
+pos=495401
+flags=K
+[/PACKET]
+[FRAME]
+media_type=video
+key_frame=1
+pkt_pts=1
+pkt_pts_time=0.040000
+pkt_dts=1
+pkt_dts_time=0.040000
+pkt_duration=1
+pkt_duration_time=0.040000
+pkt_pos=495401
+width=100
+height=100
+pix_fmt=rgb24
+sample_aspect_ratio=1:1
+pict_type=I
+coded_picture_number=0
+display_picture_number=0
+interlaced_frame=0
+top_field_first=0
+repeat_pict=0
+reference=0
+[/FRAME]
+[PACKET]
+codec_type=audio
+stream_index=0
+pts=2048
+pts_time=0.046440
+dts=2048
+dts_time=0.046440
+duration=1024
+duration_time=0.023220
+convergence_duration=N/A
+convergence_duration_time=N/A
+size=2048
+pos=525406
+flags=K
+[/PACKET]
+[FRAME]
+media_type=audio
+key_frame=1
+pkt_pts=2048
+pkt_pts_time=0.046440
+pkt_dts=2048
+pkt_dts_time=0.046440
+pkt_duration=1024
+pkt_duration_time=0.023220
+pkt_pos=525406
+sample_fmt=s16
+nb_samples=1024
+channels=1
+channel_layout=unknown
+[/FRAME]
+[PACKET]
+codec_type=audio
+stream_index=0
+pts=3072
+pts_time=0.069660
+dts=3072
+dts_time=0.069660
+duration=1024
+duration_time=0.023220
+convergence_duration=N/A
+convergence_duration_time=N/A
+size=2048
+pos=527477
+flags=K
+[/PACKET]
+[FRAME]
+media_type=audio
+key_frame=1
+pkt_pts=3072
+pkt_pts_time=0.069660
+pkt_dts=3072
+pkt_dts_time=0.069660
+pkt_duration=1024
+pkt_duration_time=0.023220
+pkt_pos=527477
+sample_fmt=s16
+nb_samples=1024
+channels=1
+channel_layout=unknown
+[/FRAME]
+[PACKET]
+codec_type=video
+stream_index=1
+pts=2
+pts_time=0.080000
+dts=2
+dts_time=0.080000
+duration=1
+duration_time=0.040000
+convergence_duration=N/A
+convergence_duration_time=N/A
+size=230400
+pos=529553
+flags=K
+[/PACKET]
+[FRAME]
+media_type=video
+key_frame=1
+pkt_pts=2
+pkt_pts_time=0.080000
+pkt_dts=2
+pkt_dts_time=0.080000
+pkt_duration=1
+pkt_duration_time=0.040000
+pkt_pos=529553
+width=320
+height=240
+pix_fmt=rgb24
+sample_aspect_ratio=1:1
+pict_type=I
+coded_picture_number=0
+display_picture_number=0
+interlaced_frame=0
+top_field_first=0
+repeat_pict=0
+reference=0
+[/FRAME]
+[PACKET]
+codec_type=video
+stream_index=2
+pts=2
+pts_time=0.080000
+dts=2
+dts_time=0.080000
+duration=1
+duration_time=0.040000
+convergence_duration=N/A
+convergence_duration_time=N/A
+size=30000
+pos=759975
+flags=K
+[/PACKET]
+[FRAME]
+media_type=video
+key_frame=1
+pkt_pts=2
+pkt_pts_time=0.080000
+pkt_dts=2
+pkt_dts_time=0.080000
+pkt_duration=1
+pkt_duration_time=0.040000
+pkt_pos=759975
+width=100
+height=100
+pix_fmt=rgb24
+sample_aspect_ratio=1:1
+pict_type=I
+coded_picture_number=0
+display_picture_number=0
+interlaced_frame=0
+top_field_first=0
+repeat_pict=0
+reference=0
+[/FRAME]
+[PACKET]
+codec_type=audio
+stream_index=0
+pts=4096
+pts_time=0.092880
+dts=4096
+dts_time=0.092880
+duration=1024
+duration_time=0.023220
+convergence_duration=N/A
+convergence_duration_time=N/A
+size=2048
+pos=789980
+flags=K
+[/PACKET]
+[FRAME]
+media_type=audio
+key_frame=1
+pkt_pts=4096
+pkt_pts_time=0.092880
+pkt_dts=4096
+pkt_dts_time=0.092880
+pkt_duration=1024
+pkt_duration_time=0.023220
+pkt_pos=789980
+sample_fmt=s16
+nb_samples=1024
+channels=1
+channel_layout=unknown
+[/FRAME]
+[PACKET]
+codec_type=audio
+stream_index=0
+pts=5120
+pts_time=0.116100
+dts=5120
+dts_time=0.116100
+duration=1024
+duration_time=0.023220
+convergence_duration=N/A
+convergence_duration_time=N/A
+size=2048
+pos=792051
+flags=K
+[/PACKET]
+[FRAME]
+media_type=audio
+key_frame=1
+pkt_pts=5120
+pkt_pts_time=0.116100
+pkt_dts=5120
+pkt_dts_time=0.116100
+pkt_duration=1024
+pkt_duration_time=0.023220
+pkt_pos=792051
+sample_fmt=s16
+nb_samples=1024
+channels=1
+channel_layout=unknown
+[/FRAME]
+[PACKET]
+codec_type=video
+stream_index=1
+pts=3
+pts_time=0.120000
+dts=3
+dts_time=0.120000
+duration=1
+duration_time=0.040000
+convergence_duration=N/A
+convergence_duration_time=N/A
+size=230400
+pos=794127
+flags=K
+[/PACKET]
+[FRAME]
+media_type=video
+key_frame=1
+pkt_pts=3
+pkt_pts_time=0.120000
+pkt_dts=3
+pkt_dts_time=0.120000
+pkt_duration=1
+pkt_duration_time=0.040000
+pkt_pos=794127
+width=320
+height=240
+pix_fmt=rgb24
+sample_aspect_ratio=1:1
+pict_type=I
+coded_picture_number=0
+display_picture_number=0
+interlaced_frame=0
+top_field_first=0
+repeat_pict=0
+reference=0
+[/FRAME]
+[PACKET]
+codec_type=video
+stream_index=2
+pts=3
+pts_time=0.120000
+dts=3
+dts_time=0.120000
+duration=1
+duration_time=0.040000
+convergence_duration=N/A
+convergence_duration_time=N/A
+size=30000
+pos=1024549
+flags=K
+[/PACKET]
+[FRAME]
+media_type=video
+key_frame=1
+pkt_pts=3
+pkt_pts_time=0.120000
+pkt_dts=3
+pkt_dts_time=0.120000
+pkt_duration=1
+pkt_duration_time=0.040000
+pkt_pos=1024549
+width=100
+height=100
+pix_fmt=rgb24
+sample_aspect_ratio=1:1
+pict_type=I
+coded_picture_number=0
+display_picture_number=0
+interlaced_frame=0
+top_field_first=0
+repeat_pict=0
+reference=0
+[/FRAME]
+[STREAM]
+index=0
+codec_name=pcm_s16le
+codec_long_name=PCM signed 16-bit little-endian
+profile=unknown
+codec_type=audio
+codec_time_base=1/44100
+codec_tag_string=[1][0][0][0]
+codec_tag=0x0001
+default=0
+forced=0
+sample_fmt=s16
+sample_rate=44100
+channels=1
+bits_per_sample=16
+id=N/A
+r_frame_rate=0/0
+avg_frame_rate=0/0
+time_base=1/44100
+start_pts=0
+start_time=0.000000
+duration_ts=527312
+duration=11.957188
+bit_rate=705600
+nb_frames=N/A
+nb_read_frames=6
+nb_read_packets=6
+[/STREAM]
+[STREAM]
+index=1
+codec_name=rawvideo
+codec_long_name=raw video
+profile=unknown
+codec_type=video
+codec_time_base=1/25
+codec_tag_string=RGB[24]
+codec_tag=0x18424752
+default=0
+forced=0
+width=320
+height=240
+has_b_frames=0
+sample_aspect_ratio=1:1
+display_aspect_ratio=4:3
+pix_fmt=rgb24
+level=-99
+timecode=N/A
+attached_pic=0
+id=N/A
+r_frame_rate=25/1
+avg_frame_rate=0/0
+time_base=1/25
+start_pts=0
+start_time=0.000000
+duration_ts=299
+duration=11.960000
+bit_rate=N/A
+nb_frames=N/A
+nb_read_frames=4
+nb_read_packets=4
+[/STREAM]
+[STREAM]
+index=2
+codec_name=rawvideo
+codec_long_name=raw video
+profile=unknown
+codec_type=video
+codec_time_base=1/25
+codec_tag_string=RGB[24]
+codec_tag=0x18424752
+default=0
+forced=0
+width=100
+height=100
+has_b_frames=0
+sample_aspect_ratio=1:1
+display_aspect_ratio=1:1
+pix_fmt=rgb24
+level=-99
+timecode=N/A
+attached_pic=0
+id=N/A
+r_frame_rate=25/1
+avg_frame_rate=0/0
+time_base=1/25
+start_pts=0
+start_time=0.000000
+duration_ts=299
+duration=11.960000
+bit_rate=N/A
+nb_frames=N/A
+nb_read_frames=4
+nb_read_packets=4
+[/STREAM]
+[FORMAT]
+filename=tests/data/ffprobe-test.nut
+nb_streams=3
+format_name=nut
+format_long_name=NUT
+start_time=0.000000
+duration=11.960000
+size=1054624
+bit_rate=705434
+TAG:title=ffprobe test file
+TAG:comment='A comment wih CSV, XML & JSON special chars': <tag value="x">
+TAG:comment2=I ♥ Üñîçød€
+[/FORMAT]
diff --git a/tests/ref/fate/ffprobe_flat b/tests/ref/fate/ffprobe_flat
new file mode 100644 (file)
index 0000000..5282246
--- /dev/null
@@ -0,0 +1,519 @@
+packets_and_frames.packet.0.codec_type="audio"
+packets_and_frames.packet.0.stream_index=0
+packets_and_frames.packet.0.pts=0
+packets_and_frames.packet.0.pts_time="0.000000"
+packets_and_frames.packet.0.dts=0
+packets_and_frames.packet.0.dts_time="0.000000"
+packets_and_frames.packet.0.duration=1024
+packets_and_frames.packet.0.duration_time="0.023220"
+packets_and_frames.packet.0.convergence_duration="N/A"
+packets_and_frames.packet.0.convergence_duration_time="N/A"
+packets_and_frames.packet.0.size="2048"
+packets_and_frames.packet.0.pos="402"
+packets_and_frames.packet.0.flags="K"
+packets_and_frames.frame.0.media_type="audio"
+packets_and_frames.frame.0.key_frame=1
+packets_and_frames.frame.0.pkt_pts=0
+packets_and_frames.frame.0.pkt_pts_time="0.000000"
+packets_and_frames.frame.0.pkt_dts=0
+packets_and_frames.frame.0.pkt_dts_time="0.000000"
+packets_and_frames.frame.0.pkt_duration=1024
+packets_and_frames.frame.0.pkt_duration_time="0.023220"
+packets_and_frames.frame.0.pkt_pos="402"
+packets_and_frames.frame.0.sample_fmt="s16"
+packets_and_frames.frame.0.nb_samples=1024
+packets_and_frames.frame.0.channels=1
+packets_and_frames.frame.0.channel_layout="unknown"
+packets_and_frames.packet.1.codec_type="video"
+packets_and_frames.packet.1.stream_index=1
+packets_and_frames.packet.1.pts=0
+packets_and_frames.packet.1.pts_time="0.000000"
+packets_and_frames.packet.1.dts=0
+packets_and_frames.packet.1.dts_time="0.000000"
+packets_and_frames.packet.1.duration=1
+packets_and_frames.packet.1.duration_time="0.040000"
+packets_and_frames.packet.1.convergence_duration="N/A"
+packets_and_frames.packet.1.convergence_duration_time="N/A"
+packets_and_frames.packet.1.size="230400"
+packets_and_frames.packet.1.pos="2477"
+packets_and_frames.packet.1.flags="K"
+packets_and_frames.frame.1.media_type="video"
+packets_and_frames.frame.1.key_frame=1
+packets_and_frames.frame.1.pkt_pts=0
+packets_and_frames.frame.1.pkt_pts_time="0.000000"
+packets_and_frames.frame.1.pkt_dts=0
+packets_and_frames.frame.1.pkt_dts_time="0.000000"
+packets_and_frames.frame.1.pkt_duration=1
+packets_and_frames.frame.1.pkt_duration_time="0.040000"
+packets_and_frames.frame.1.pkt_pos="2477"
+packets_and_frames.frame.1.width=320
+packets_and_frames.frame.1.height=240
+packets_and_frames.frame.1.pix_fmt="rgb24"
+packets_and_frames.frame.1.sample_aspect_ratio="1:1"
+packets_and_frames.frame.1.pict_type="I"
+packets_and_frames.frame.1.coded_picture_number=0
+packets_and_frames.frame.1.display_picture_number=0
+packets_and_frames.frame.1.interlaced_frame=0
+packets_and_frames.frame.1.top_field_first=0
+packets_and_frames.frame.1.repeat_pict=0
+packets_and_frames.frame.1.reference=0
+packets_and_frames.packet.2.codec_type="video"
+packets_and_frames.packet.2.stream_index=2
+packets_and_frames.packet.2.pts=0
+packets_and_frames.packet.2.pts_time="0.000000"
+packets_and_frames.packet.2.dts=0
+packets_and_frames.packet.2.dts_time="0.000000"
+packets_and_frames.packet.2.duration=1
+packets_and_frames.packet.2.duration_time="0.040000"
+packets_and_frames.packet.2.convergence_duration="N/A"
+packets_and_frames.packet.2.convergence_duration_time="N/A"
+packets_and_frames.packet.2.size="30000"
+packets_and_frames.packet.2.pos="232898"
+packets_and_frames.packet.2.flags="K"
+packets_and_frames.frame.2.media_type="video"
+packets_and_frames.frame.2.key_frame=1
+packets_and_frames.frame.2.pkt_pts=0
+packets_and_frames.frame.2.pkt_pts_time="0.000000"
+packets_and_frames.frame.2.pkt_dts=0
+packets_and_frames.frame.2.pkt_dts_time="0.000000"
+packets_and_frames.frame.2.pkt_duration=1
+packets_and_frames.frame.2.pkt_duration_time="0.040000"
+packets_and_frames.frame.2.pkt_pos="232898"
+packets_and_frames.frame.2.width=100
+packets_and_frames.frame.2.height=100
+packets_and_frames.frame.2.pix_fmt="rgb24"
+packets_and_frames.frame.2.sample_aspect_ratio="1:1"
+packets_and_frames.frame.2.pict_type="I"
+packets_and_frames.frame.2.coded_picture_number=0
+packets_and_frames.frame.2.display_picture_number=0
+packets_and_frames.frame.2.interlaced_frame=0
+packets_and_frames.frame.2.top_field_first=0
+packets_and_frames.frame.2.repeat_pict=0
+packets_and_frames.frame.2.reference=0
+packets_and_frames.packet.3.codec_type="audio"
+packets_and_frames.packet.3.stream_index=0
+packets_and_frames.packet.3.pts=1024
+packets_and_frames.packet.3.pts_time="0.023220"
+packets_and_frames.packet.3.dts=1024
+packets_and_frames.packet.3.dts_time="0.023220"
+packets_and_frames.packet.3.duration=1024
+packets_and_frames.packet.3.duration_time="0.023220"
+packets_and_frames.packet.3.convergence_duration="N/A"
+packets_and_frames.packet.3.convergence_duration_time="N/A"
+packets_and_frames.packet.3.size="2048"
+packets_and_frames.packet.3.pos="262903"
+packets_and_frames.packet.3.flags="K"
+packets_and_frames.frame.3.media_type="audio"
+packets_and_frames.frame.3.key_frame=1
+packets_and_frames.frame.3.pkt_pts=1024
+packets_and_frames.frame.3.pkt_pts_time="0.023220"
+packets_and_frames.frame.3.pkt_dts=1024
+packets_and_frames.frame.3.pkt_dts_time="0.023220"
+packets_and_frames.frame.3.pkt_duration=1024
+packets_and_frames.frame.3.pkt_duration_time="0.023220"
+packets_and_frames.frame.3.pkt_pos="262903"
+packets_and_frames.frame.3.sample_fmt="s16"
+packets_and_frames.frame.3.nb_samples=1024
+packets_and_frames.frame.3.channels=1
+packets_and_frames.frame.3.channel_layout="unknown"
+packets_and_frames.packet.4.codec_type="video"
+packets_and_frames.packet.4.stream_index=1
+packets_and_frames.packet.4.pts=1
+packets_and_frames.packet.4.pts_time="0.040000"
+packets_and_frames.packet.4.dts=1
+packets_and_frames.packet.4.dts_time="0.040000"
+packets_and_frames.packet.4.duration=1
+packets_and_frames.packet.4.duration_time="0.040000"
+packets_and_frames.packet.4.convergence_duration="N/A"
+packets_and_frames.packet.4.convergence_duration_time="N/A"
+packets_and_frames.packet.4.size="230400"
+packets_and_frames.packet.4.pos="264979"
+packets_and_frames.packet.4.flags="K"
+packets_and_frames.frame.4.media_type="video"
+packets_and_frames.frame.4.key_frame=1
+packets_and_frames.frame.4.pkt_pts=1
+packets_and_frames.frame.4.pkt_pts_time="0.040000"
+packets_and_frames.frame.4.pkt_dts=1
+packets_and_frames.frame.4.pkt_dts_time="0.040000"
+packets_and_frames.frame.4.pkt_duration=1
+packets_and_frames.frame.4.pkt_duration_time="0.040000"
+packets_and_frames.frame.4.pkt_pos="264979"
+packets_and_frames.frame.4.width=320
+packets_and_frames.frame.4.height=240
+packets_and_frames.frame.4.pix_fmt="rgb24"
+packets_and_frames.frame.4.sample_aspect_ratio="1:1"
+packets_and_frames.frame.4.pict_type="I"
+packets_and_frames.frame.4.coded_picture_number=0
+packets_and_frames.frame.4.display_picture_number=0
+packets_and_frames.frame.4.interlaced_frame=0
+packets_and_frames.frame.4.top_field_first=0
+packets_and_frames.frame.4.repeat_pict=0
+packets_and_frames.frame.4.reference=0
+packets_and_frames.packet.5.codec_type="video"
+packets_and_frames.packet.5.stream_index=2
+packets_and_frames.packet.5.pts=1
+packets_and_frames.packet.5.pts_time="0.040000"
+packets_and_frames.packet.5.dts=1
+packets_and_frames.packet.5.dts_time="0.040000"
+packets_and_frames.packet.5.duration=1
+packets_and_frames.packet.5.duration_time="0.040000"
+packets_and_frames.packet.5.convergence_duration="N/A"
+packets_and_frames.packet.5.convergence_duration_time="N/A"
+packets_and_frames.packet.5.size="30000"
+packets_and_frames.packet.5.pos="495401"
+packets_and_frames.packet.5.flags="K"
+packets_and_frames.frame.5.media_type="video"
+packets_and_frames.frame.5.key_frame=1
+packets_and_frames.frame.5.pkt_pts=1
+packets_and_frames.frame.5.pkt_pts_time="0.040000"
+packets_and_frames.frame.5.pkt_dts=1
+packets_and_frames.frame.5.pkt_dts_time="0.040000"
+packets_and_frames.frame.5.pkt_duration=1
+packets_and_frames.frame.5.pkt_duration_time="0.040000"
+packets_and_frames.frame.5.pkt_pos="495401"
+packets_and_frames.frame.5.width=100
+packets_and_frames.frame.5.height=100
+packets_and_frames.frame.5.pix_fmt="rgb24"
+packets_and_frames.frame.5.sample_aspect_ratio="1:1"
+packets_and_frames.frame.5.pict_type="I"
+packets_and_frames.frame.5.coded_picture_number=0
+packets_and_frames.frame.5.display_picture_number=0
+packets_and_frames.frame.5.interlaced_frame=0
+packets_and_frames.frame.5.top_field_first=0
+packets_and_frames.frame.5.repeat_pict=0
+packets_and_frames.frame.5.reference=0
+packets_and_frames.packet.6.codec_type="audio"
+packets_and_frames.packet.6.stream_index=0
+packets_and_frames.packet.6.pts=2048
+packets_and_frames.packet.6.pts_time="0.046440"
+packets_and_frames.packet.6.dts=2048
+packets_and_frames.packet.6.dts_time="0.046440"
+packets_and_frames.packet.6.duration=1024
+packets_and_frames.packet.6.duration_time="0.023220"
+packets_and_frames.packet.6.convergence_duration="N/A"
+packets_and_frames.packet.6.convergence_duration_time="N/A"
+packets_and_frames.packet.6.size="2048"
+packets_and_frames.packet.6.pos="525406"
+packets_and_frames.packet.6.flags="K"
+packets_and_frames.frame.6.media_type="audio"
+packets_and_frames.frame.6.key_frame=1
+packets_and_frames.frame.6.pkt_pts=2048
+packets_and_frames.frame.6.pkt_pts_time="0.046440"
+packets_and_frames.frame.6.pkt_dts=2048
+packets_and_frames.frame.6.pkt_dts_time="0.046440"
+packets_and_frames.frame.6.pkt_duration=1024
+packets_and_frames.frame.6.pkt_duration_time="0.023220"
+packets_and_frames.frame.6.pkt_pos="525406"
+packets_and_frames.frame.6.sample_fmt="s16"
+packets_and_frames.frame.6.nb_samples=1024
+packets_and_frames.frame.6.channels=1
+packets_and_frames.frame.6.channel_layout="unknown"
+packets_and_frames.packet.7.codec_type="audio"
+packets_and_frames.packet.7.stream_index=0
+packets_and_frames.packet.7.pts=3072
+packets_and_frames.packet.7.pts_time="0.069660"
+packets_and_frames.packet.7.dts=3072
+packets_and_frames.packet.7.dts_time="0.069660"
+packets_and_frames.packet.7.duration=1024
+packets_and_frames.packet.7.duration_time="0.023220"
+packets_and_frames.packet.7.convergence_duration="N/A"
+packets_and_frames.packet.7.convergence_duration_time="N/A"
+packets_and_frames.packet.7.size="2048"
+packets_and_frames.packet.7.pos="527477"
+packets_and_frames.packet.7.flags="K"
+packets_and_frames.frame.7.media_type="audio"
+packets_and_frames.frame.7.key_frame=1
+packets_and_frames.frame.7.pkt_pts=3072
+packets_and_frames.frame.7.pkt_pts_time="0.069660"
+packets_and_frames.frame.7.pkt_dts=3072
+packets_and_frames.frame.7.pkt_dts_time="0.069660"
+packets_and_frames.frame.7.pkt_duration=1024
+packets_and_frames.frame.7.pkt_duration_time="0.023220"
+packets_and_frames.frame.7.pkt_pos="527477"
+packets_and_frames.frame.7.sample_fmt="s16"
+packets_and_frames.frame.7.nb_samples=1024
+packets_and_frames.frame.7.channels=1
+packets_and_frames.frame.7.channel_layout="unknown"
+packets_and_frames.packet.8.codec_type="video"
+packets_and_frames.packet.8.stream_index=1
+packets_and_frames.packet.8.pts=2
+packets_and_frames.packet.8.pts_time="0.080000"
+packets_and_frames.packet.8.dts=2
+packets_and_frames.packet.8.dts_time="0.080000"
+packets_and_frames.packet.8.duration=1
+packets_and_frames.packet.8.duration_time="0.040000"
+packets_and_frames.packet.8.convergence_duration="N/A"
+packets_and_frames.packet.8.convergence_duration_time="N/A"
+packets_and_frames.packet.8.size="230400"
+packets_and_frames.packet.8.pos="529553"
+packets_and_frames.packet.8.flags="K"
+packets_and_frames.frame.8.media_type="video"
+packets_and_frames.frame.8.key_frame=1
+packets_and_frames.frame.8.pkt_pts=2
+packets_and_frames.frame.8.pkt_pts_time="0.080000"
+packets_and_frames.frame.8.pkt_dts=2
+packets_and_frames.frame.8.pkt_dts_time="0.080000"
+packets_and_frames.frame.8.pkt_duration=1
+packets_and_frames.frame.8.pkt_duration_time="0.040000"
+packets_and_frames.frame.8.pkt_pos="529553"
+packets_and_frames.frame.8.width=320
+packets_and_frames.frame.8.height=240
+packets_and_frames.frame.8.pix_fmt="rgb24"
+packets_and_frames.frame.8.sample_aspect_ratio="1:1"
+packets_and_frames.frame.8.pict_type="I"
+packets_and_frames.frame.8.coded_picture_number=0
+packets_and_frames.frame.8.display_picture_number=0
+packets_and_frames.frame.8.interlaced_frame=0
+packets_and_frames.frame.8.top_field_first=0
+packets_and_frames.frame.8.repeat_pict=0
+packets_and_frames.frame.8.reference=0
+packets_and_frames.packet.9.codec_type="video"
+packets_and_frames.packet.9.stream_index=2
+packets_and_frames.packet.9.pts=2
+packets_and_frames.packet.9.pts_time="0.080000"
+packets_and_frames.packet.9.dts=2
+packets_and_frames.packet.9.dts_time="0.080000"
+packets_and_frames.packet.9.duration=1
+packets_and_frames.packet.9.duration_time="0.040000"
+packets_and_frames.packet.9.convergence_duration="N/A"
+packets_and_frames.packet.9.convergence_duration_time="N/A"
+packets_and_frames.packet.9.size="30000"
+packets_and_frames.packet.9.pos="759975"
+packets_and_frames.packet.9.flags="K"
+packets_and_frames.frame.9.media_type="video"
+packets_and_frames.frame.9.key_frame=1
+packets_and_frames.frame.9.pkt_pts=2
+packets_and_frames.frame.9.pkt_pts_time="0.080000"
+packets_and_frames.frame.9.pkt_dts=2
+packets_and_frames.frame.9.pkt_dts_time="0.080000"
+packets_and_frames.frame.9.pkt_duration=1
+packets_and_frames.frame.9.pkt_duration_time="0.040000"
+packets_and_frames.frame.9.pkt_pos="759975"
+packets_and_frames.frame.9.width=100
+packets_and_frames.frame.9.height=100
+packets_and_frames.frame.9.pix_fmt="rgb24"
+packets_and_frames.frame.9.sample_aspect_ratio="1:1"
+packets_and_frames.frame.9.pict_type="I"
+packets_and_frames.frame.9.coded_picture_number=0
+packets_and_frames.frame.9.display_picture_number=0
+packets_and_frames.frame.9.interlaced_frame=0
+packets_and_frames.frame.9.top_field_first=0
+packets_and_frames.frame.9.repeat_pict=0
+packets_and_frames.frame.9.reference=0
+packets_and_frames.packet.10.codec_type="audio"
+packets_and_frames.packet.10.stream_index=0
+packets_and_frames.packet.10.pts=4096
+packets_and_frames.packet.10.pts_time="0.092880"
+packets_and_frames.packet.10.dts=4096
+packets_and_frames.packet.10.dts_time="0.092880"
+packets_and_frames.packet.10.duration=1024
+packets_and_frames.packet.10.duration_time="0.023220"
+packets_and_frames.packet.10.convergence_duration="N/A"
+packets_and_frames.packet.10.convergence_duration_time="N/A"
+packets_and_frames.packet.10.size="2048"
+packets_and_frames.packet.10.pos="789980"
+packets_and_frames.packet.10.flags="K"
+packets_and_frames.frame.10.media_type="audio"
+packets_and_frames.frame.10.key_frame=1
+packets_and_frames.frame.10.pkt_pts=4096
+packets_and_frames.frame.10.pkt_pts_time="0.092880"
+packets_and_frames.frame.10.pkt_dts=4096
+packets_and_frames.frame.10.pkt_dts_time="0.092880"
+packets_and_frames.frame.10.pkt_duration=1024
+packets_and_frames.frame.10.pkt_duration_time="0.023220"
+packets_and_frames.frame.10.pkt_pos="789980"
+packets_and_frames.frame.10.sample_fmt="s16"
+packets_and_frames.frame.10.nb_samples=1024
+packets_and_frames.frame.10.channels=1
+packets_and_frames.frame.10.channel_layout="unknown"
+packets_and_frames.packet.11.codec_type="audio"
+packets_and_frames.packet.11.stream_index=0
+packets_and_frames.packet.11.pts=5120
+packets_and_frames.packet.11.pts_time="0.116100"
+packets_and_frames.packet.11.dts=5120
+packets_and_frames.packet.11.dts_time="0.116100"
+packets_and_frames.packet.11.duration=1024
+packets_and_frames.packet.11.duration_time="0.023220"
+packets_and_frames.packet.11.convergence_duration="N/A"
+packets_and_frames.packet.11.convergence_duration_time="N/A"
+packets_and_frames.packet.11.size="2048"
+packets_and_frames.packet.11.pos="792051"
+packets_and_frames.packet.11.flags="K"
+packets_and_frames.frame.11.media_type="audio"
+packets_and_frames.frame.11.key_frame=1
+packets_and_frames.frame.11.pkt_pts=5120
+packets_and_frames.frame.11.pkt_pts_time="0.116100"
+packets_and_frames.frame.11.pkt_dts=5120
+packets_and_frames.frame.11.pkt_dts_time="0.116100"
+packets_and_frames.frame.11.pkt_duration=1024
+packets_and_frames.frame.11.pkt_duration_time="0.023220"
+packets_and_frames.frame.11.pkt_pos="792051"
+packets_and_frames.frame.11.sample_fmt="s16"
+packets_and_frames.frame.11.nb_samples=1024
+packets_and_frames.frame.11.channels=1
+packets_and_frames.frame.11.channel_layout="unknown"
+packets_and_frames.packet.12.codec_type="video"
+packets_and_frames.packet.12.stream_index=1
+packets_and_frames.packet.12.pts=3
+packets_and_frames.packet.12.pts_time="0.120000"
+packets_and_frames.packet.12.dts=3
+packets_and_frames.packet.12.dts_time="0.120000"
+packets_and_frames.packet.12.duration=1
+packets_and_frames.packet.12.duration_time="0.040000"
+packets_and_frames.packet.12.convergence_duration="N/A"
+packets_and_frames.packet.12.convergence_duration_time="N/A"
+packets_and_frames.packet.12.size="230400"
+packets_and_frames.packet.12.pos="794127"
+packets_and_frames.packet.12.flags="K"
+packets_and_frames.frame.12.media_type="video"
+packets_and_frames.frame.12.key_frame=1
+packets_and_frames.frame.12.pkt_pts=3
+packets_and_frames.frame.12.pkt_pts_time="0.120000"
+packets_and_frames.frame.12.pkt_dts=3
+packets_and_frames.frame.12.pkt_dts_time="0.120000"
+packets_and_frames.frame.12.pkt_duration=1
+packets_and_frames.frame.12.pkt_duration_time="0.040000"
+packets_and_frames.frame.12.pkt_pos="794127"
+packets_and_frames.frame.12.width=320
+packets_and_frames.frame.12.height=240
+packets_and_frames.frame.12.pix_fmt="rgb24"
+packets_and_frames.frame.12.sample_aspect_ratio="1:1"
+packets_and_frames.frame.12.pict_type="I"
+packets_and_frames.frame.12.coded_picture_number=0
+packets_and_frames.frame.12.display_picture_number=0
+packets_and_frames.frame.12.interlaced_frame=0
+packets_and_frames.frame.12.top_field_first=0
+packets_and_frames.frame.12.repeat_pict=0
+packets_and_frames.frame.12.reference=0
+packets_and_frames.packet.13.codec_type="video"
+packets_and_frames.packet.13.stream_index=2
+packets_and_frames.packet.13.pts=3
+packets_and_frames.packet.13.pts_time="0.120000"
+packets_and_frames.packet.13.dts=3
+packets_and_frames.packet.13.dts_time="0.120000"
+packets_and_frames.packet.13.duration=1
+packets_and_frames.packet.13.duration_time="0.040000"
+packets_and_frames.packet.13.convergence_duration="N/A"
+packets_and_frames.packet.13.convergence_duration_time="N/A"
+packets_and_frames.packet.13.size="30000"
+packets_and_frames.packet.13.pos="1024549"
+packets_and_frames.packet.13.flags="K"
+packets_and_frames.frame.13.media_type="video"
+packets_and_frames.frame.13.key_frame=1
+packets_and_frames.frame.13.pkt_pts=3
+packets_and_frames.frame.13.pkt_pts_time="0.120000"
+packets_and_frames.frame.13.pkt_dts=3
+packets_and_frames.frame.13.pkt_dts_time="0.120000"
+packets_and_frames.frame.13.pkt_duration=1
+packets_and_frames.frame.13.pkt_duration_time="0.040000"
+packets_and_frames.frame.13.pkt_pos="1024549"
+packets_and_frames.frame.13.width=100
+packets_and_frames.frame.13.height=100
+packets_and_frames.frame.13.pix_fmt="rgb24"
+packets_and_frames.frame.13.sample_aspect_ratio="1:1"
+packets_and_frames.frame.13.pict_type="I"
+packets_and_frames.frame.13.coded_picture_number=0
+packets_and_frames.frame.13.display_picture_number=0
+packets_and_frames.frame.13.interlaced_frame=0
+packets_and_frames.frame.13.top_field_first=0
+packets_and_frames.frame.13.repeat_pict=0
+packets_and_frames.frame.13.reference=0
+streams.stream.0.index=0
+streams.stream.0.codec_name="pcm_s16le"
+streams.stream.0.codec_long_name="PCM signed 16-bit little-endian"
+streams.stream.0.profile="unknown"
+streams.stream.0.codec_type="audio"
+streams.stream.0.codec_time_base="1/44100"
+streams.stream.0.codec_tag_string="[1][0][0][0]"
+streams.stream.0.codec_tag="0x0001"
+streams.stream.0.default=0
+streams.stream.0.forced=0
+streams.stream.0.sample_fmt="s16"
+streams.stream.0.sample_rate="44100"
+streams.stream.0.channels=1
+streams.stream.0.bits_per_sample=16
+streams.stream.0.id="N/A"
+streams.stream.0.r_frame_rate="0/0"
+streams.stream.0.avg_frame_rate="0/0"
+streams.stream.0.time_base="1/44100"
+streams.stream.0.start_pts=0
+streams.stream.0.start_time="0.000000"
+streams.stream.0.duration_ts=527312
+streams.stream.0.duration="11.957188"
+streams.stream.0.bit_rate="705600"
+streams.stream.0.nb_frames="N/A"
+streams.stream.0.nb_read_frames="6"
+streams.stream.0.nb_read_packets="6"
+streams.stream.1.index=1
+streams.stream.1.codec_name="rawvideo"
+streams.stream.1.codec_long_name="raw video"
+streams.stream.1.profile="unknown"
+streams.stream.1.codec_type="video"
+streams.stream.1.codec_time_base="1/25"
+streams.stream.1.codec_tag_string="RGB[24]"
+streams.stream.1.codec_tag="0x18424752"
+streams.stream.1.default=0
+streams.stream.1.forced=0
+streams.stream.1.width=320
+streams.stream.1.height=240
+streams.stream.1.has_b_frames=0
+streams.stream.1.sample_aspect_ratio="1:1"
+streams.stream.1.display_aspect_ratio="4:3"
+streams.stream.1.pix_fmt="rgb24"
+streams.stream.1.level=-99
+streams.stream.1.timecode="N/A"
+streams.stream.1.attached_pic=0
+streams.stream.1.id="N/A"
+streams.stream.1.r_frame_rate="25/1"
+streams.stream.1.avg_frame_rate="0/0"
+streams.stream.1.time_base="1/25"
+streams.stream.1.start_pts=0
+streams.stream.1.start_time="0.000000"
+streams.stream.1.duration_ts=299
+streams.stream.1.duration="11.960000"
+streams.stream.1.bit_rate="N/A"
+streams.stream.1.nb_frames="N/A"
+streams.stream.1.nb_read_frames="4"
+streams.stream.1.nb_read_packets="4"
+streams.stream.2.index=2
+streams.stream.2.codec_name="rawvideo"
+streams.stream.2.codec_long_name="raw video"
+streams.stream.2.profile="unknown"
+streams.stream.2.codec_type="video"
+streams.stream.2.codec_time_base="1/25"
+streams.stream.2.codec_tag_string="RGB[24]"
+streams.stream.2.codec_tag="0x18424752"
+streams.stream.2.default=0
+streams.stream.2.forced=0
+streams.stream.2.width=100
+streams.stream.2.height=100
+streams.stream.2.has_b_frames=0
+streams.stream.2.sample_aspect_ratio="1:1"
+streams.stream.2.display_aspect_ratio="1:1"
+streams.stream.2.pix_fmt="rgb24"
+streams.stream.2.level=-99
+streams.stream.2.timecode="N/A"
+streams.stream.2.attached_pic=0
+streams.stream.2.id="N/A"
+streams.stream.2.r_frame_rate="25/1"
+streams.stream.2.avg_frame_rate="0/0"
+streams.stream.2.time_base="1/25"
+streams.stream.2.start_pts=0
+streams.stream.2.start_time="0.000000"
+streams.stream.2.duration_ts=299
+streams.stream.2.duration="11.960000"
+streams.stream.2.bit_rate="N/A"
+streams.stream.2.nb_frames="N/A"
+streams.stream.2.nb_read_frames="4"
+streams.stream.2.nb_read_packets="4"
+format.filename="tests/data/ffprobe-test.nut"
+format.nb_streams=3
+format.format_name="nut"
+format.format_long_name="NUT"
+format.start_time="0.000000"
+format.duration="11.960000"
+format.size="1054624"
+format.bit_rate="705434"
+format.tags.title="ffprobe test file"
+format.tags.comment="'A comment wih CSV, XML & JSON special chars': <tag value=\"x\">"
+format.tags.comment2="I ♥ Üñîçød€"
diff --git a/tests/ref/fate/ffprobe_ini b/tests/ref/fate/ffprobe_ini
new file mode 100644 (file)
index 0000000..6a925b7
--- /dev/null
@@ -0,0 +1,586 @@
+# ffprobe output
+
+[packets_and_frames.packet.0]
+codec_type=audio
+stream_index=0
+pts=0
+pts_time=0.000000
+dts=0
+dts_time=0.000000
+duration=1024
+duration_time=0.023220
+convergence_duration=N/A
+convergence_duration_time=N/A
+size=2048
+pos=402
+flags=K
+
+[packets_and_frames.frame.0]
+media_type=audio
+key_frame=1
+pkt_pts=0
+pkt_pts_time=0.000000
+pkt_dts=0
+pkt_dts_time=0.000000
+pkt_duration=1024
+pkt_duration_time=0.023220
+pkt_pos=402
+sample_fmt=s16
+nb_samples=1024
+channels=1
+channel_layout=unknown
+
+[packets_and_frames.packet.1]
+codec_type=video
+stream_index=1
+pts=0
+pts_time=0.000000
+dts=0
+dts_time=0.000000
+duration=1
+duration_time=0.040000
+convergence_duration=N/A
+convergence_duration_time=N/A
+size=230400
+pos=2477
+flags=K
+
+[packets_and_frames.frame.1]
+media_type=video
+key_frame=1
+pkt_pts=0
+pkt_pts_time=0.000000
+pkt_dts=0
+pkt_dts_time=0.000000
+pkt_duration=1
+pkt_duration_time=0.040000
+pkt_pos=2477
+width=320
+height=240
+pix_fmt=rgb24
+sample_aspect_ratio=1\:1
+pict_type=I
+coded_picture_number=0
+display_picture_number=0
+interlaced_frame=0
+top_field_first=0
+repeat_pict=0
+reference=0
+
+[packets_and_frames.packet.2]
+codec_type=video
+stream_index=2
+pts=0
+pts_time=0.000000
+dts=0
+dts_time=0.000000
+duration=1
+duration_time=0.040000
+convergence_duration=N/A
+convergence_duration_time=N/A
+size=30000
+pos=232898
+flags=K
+
+[packets_and_frames.frame.2]
+media_type=video
+key_frame=1
+pkt_pts=0
+pkt_pts_time=0.000000
+pkt_dts=0
+pkt_dts_time=0.000000
+pkt_duration=1
+pkt_duration_time=0.040000
+pkt_pos=232898
+width=100
+height=100
+pix_fmt=rgb24
+sample_aspect_ratio=1\:1
+pict_type=I
+coded_picture_number=0
+display_picture_number=0
+interlaced_frame=0
+top_field_first=0
+repeat_pict=0
+reference=0
+
+[packets_and_frames.packet.3]
+codec_type=audio
+stream_index=0
+pts=1024
+pts_time=0.023220
+dts=1024
+dts_time=0.023220
+duration=1024
+duration_time=0.023220
+convergence_duration=N/A
+convergence_duration_time=N/A
+size=2048
+pos=262903
+flags=K
+
+[packets_and_frames.frame.3]
+media_type=audio
+key_frame=1
+pkt_pts=1024
+pkt_pts_time=0.023220
+pkt_dts=1024
+pkt_dts_time=0.023220
+pkt_duration=1024
+pkt_duration_time=0.023220
+pkt_pos=262903
+sample_fmt=s16
+nb_samples=1024
+channels=1
+channel_layout=unknown
+
+[packets_and_frames.packet.4]
+codec_type=video
+stream_index=1
+pts=1
+pts_time=0.040000
+dts=1
+dts_time=0.040000
+duration=1
+duration_time=0.040000
+convergence_duration=N/A
+convergence_duration_time=N/A
+size=230400
+pos=264979
+flags=K
+
+[packets_and_frames.frame.4]
+media_type=video
+key_frame=1
+pkt_pts=1
+pkt_pts_time=0.040000
+pkt_dts=1
+pkt_dts_time=0.040000
+pkt_duration=1
+pkt_duration_time=0.040000
+pkt_pos=264979
+width=320
+height=240
+pix_fmt=rgb24
+sample_aspect_ratio=1\:1
+pict_type=I
+coded_picture_number=0
+display_picture_number=0
+interlaced_frame=0
+top_field_first=0
+repeat_pict=0
+reference=0
+
+[packets_and_frames.packet.5]
+codec_type=video
+stream_index=2
+pts=1
+pts_time=0.040000
+dts=1
+dts_time=0.040000
+duration=1
+duration_time=0.040000
+convergence_duration=N/A
+convergence_duration_time=N/A
+size=30000
+pos=495401
+flags=K
+
+[packets_and_frames.frame.5]
+media_type=video
+key_frame=1
+pkt_pts=1
+pkt_pts_time=0.040000
+pkt_dts=1
+pkt_dts_time=0.040000
+pkt_duration=1
+pkt_duration_time=0.040000
+pkt_pos=495401
+width=100
+height=100
+pix_fmt=rgb24
+sample_aspect_ratio=1\:1
+pict_type=I
+coded_picture_number=0
+display_picture_number=0
+interlaced_frame=0
+top_field_first=0
+repeat_pict=0
+reference=0
+
+[packets_and_frames.packet.6]
+codec_type=audio
+stream_index=0
+pts=2048
+pts_time=0.046440
+dts=2048
+dts_time=0.046440
+duration=1024
+duration_time=0.023220
+convergence_duration=N/A
+convergence_duration_time=N/A
+size=2048
+pos=525406
+flags=K
+
+[packets_and_frames.frame.6]
+media_type=audio
+key_frame=1
+pkt_pts=2048
+pkt_pts_time=0.046440
+pkt_dts=2048
+pkt_dts_time=0.046440
+pkt_duration=1024
+pkt_duration_time=0.023220
+pkt_pos=525406
+sample_fmt=s16
+nb_samples=1024
+channels=1
+channel_layout=unknown
+
+[packets_and_frames.packet.7]
+codec_type=audio
+stream_index=0
+pts=3072
+pts_time=0.069660
+dts=3072
+dts_time=0.069660
+duration=1024
+duration_time=0.023220
+convergence_duration=N/A
+convergence_duration_time=N/A
+size=2048
+pos=527477
+flags=K
+
+[packets_and_frames.frame.7]
+media_type=audio
+key_frame=1
+pkt_pts=3072
+pkt_pts_time=0.069660
+pkt_dts=3072
+pkt_dts_time=0.069660
+pkt_duration=1024
+pkt_duration_time=0.023220
+pkt_pos=527477
+sample_fmt=s16
+nb_samples=1024
+channels=1
+channel_layout=unknown
+
+[packets_and_frames.packet.8]
+codec_type=video
+stream_index=1
+pts=2
+pts_time=0.080000
+dts=2
+dts_time=0.080000
+duration=1
+duration_time=0.040000
+convergence_duration=N/A
+convergence_duration_time=N/A
+size=230400
+pos=529553
+flags=K
+
+[packets_and_frames.frame.8]
+media_type=video
+key_frame=1
+pkt_pts=2
+pkt_pts_time=0.080000
+pkt_dts=2
+pkt_dts_time=0.080000
+pkt_duration=1
+pkt_duration_time=0.040000
+pkt_pos=529553
+width=320
+height=240
+pix_fmt=rgb24
+sample_aspect_ratio=1\:1
+pict_type=I
+coded_picture_number=0
+display_picture_number=0
+interlaced_frame=0
+top_field_first=0
+repeat_pict=0
+reference=0
+
+[packets_and_frames.packet.9]
+codec_type=video
+stream_index=2
+pts=2
+pts_time=0.080000
+dts=2
+dts_time=0.080000
+duration=1
+duration_time=0.040000
+convergence_duration=N/A
+convergence_duration_time=N/A
+size=30000
+pos=759975
+flags=K
+
+[packets_and_frames.frame.9]
+media_type=video
+key_frame=1
+pkt_pts=2
+pkt_pts_time=0.080000
+pkt_dts=2
+pkt_dts_time=0.080000
+pkt_duration=1
+pkt_duration_time=0.040000
+pkt_pos=759975
+width=100
+height=100
+pix_fmt=rgb24
+sample_aspect_ratio=1\:1
+pict_type=I
+coded_picture_number=0
+display_picture_number=0
+interlaced_frame=0
+top_field_first=0
+repeat_pict=0
+reference=0
+
+[packets_and_frames.packet.10]
+codec_type=audio
+stream_index=0
+pts=4096
+pts_time=0.092880
+dts=4096
+dts_time=0.092880
+duration=1024
+duration_time=0.023220
+convergence_duration=N/A
+convergence_duration_time=N/A
+size=2048
+pos=789980
+flags=K
+
+[packets_and_frames.frame.10]
+media_type=audio
+key_frame=1
+pkt_pts=4096
+pkt_pts_time=0.092880
+pkt_dts=4096
+pkt_dts_time=0.092880
+pkt_duration=1024
+pkt_duration_time=0.023220
+pkt_pos=789980
+sample_fmt=s16
+nb_samples=1024
+channels=1
+channel_layout=unknown
+
+[packets_and_frames.packet.11]
+codec_type=audio
+stream_index=0
+pts=5120
+pts_time=0.116100
+dts=5120
+dts_time=0.116100
+duration=1024
+duration_time=0.023220
+convergence_duration=N/A
+convergence_duration_time=N/A
+size=2048
+pos=792051
+flags=K
+
+[packets_and_frames.frame.11]
+media_type=audio
+key_frame=1
+pkt_pts=5120
+pkt_pts_time=0.116100
+pkt_dts=5120
+pkt_dts_time=0.116100
+pkt_duration=1024
+pkt_duration_time=0.023220
+pkt_pos=792051
+sample_fmt=s16
+nb_samples=1024
+channels=1
+channel_layout=unknown
+
+[packets_and_frames.packet.12]
+codec_type=video
+stream_index=1
+pts=3
+pts_time=0.120000
+dts=3
+dts_time=0.120000
+duration=1
+duration_time=0.040000
+convergence_duration=N/A
+convergence_duration_time=N/A
+size=230400
+pos=794127
+flags=K
+
+[packets_and_frames.frame.12]
+media_type=video
+key_frame=1
+pkt_pts=3
+pkt_pts_time=0.120000
+pkt_dts=3
+pkt_dts_time=0.120000
+pkt_duration=1
+pkt_duration_time=0.040000
+pkt_pos=794127
+width=320
+height=240
+pix_fmt=rgb24
+sample_aspect_ratio=1\:1
+pict_type=I
+coded_picture_number=0
+display_picture_number=0
+interlaced_frame=0
+top_field_first=0
+repeat_pict=0
+reference=0
+
+[packets_and_frames.packet.13]
+codec_type=video
+stream_index=2
+pts=3
+pts_time=0.120000
+dts=3
+dts_time=0.120000
+duration=1
+duration_time=0.040000
+convergence_duration=N/A
+convergence_duration_time=N/A
+size=30000
+pos=1024549
+flags=K
+
+[packets_and_frames.frame.13]
+media_type=video
+key_frame=1
+pkt_pts=3
+pkt_pts_time=0.120000
+pkt_dts=3
+pkt_dts_time=0.120000
+pkt_duration=1
+pkt_duration_time=0.040000
+pkt_pos=1024549
+width=100
+height=100
+pix_fmt=rgb24
+sample_aspect_ratio=1\:1
+pict_type=I
+coded_picture_number=0
+display_picture_number=0
+interlaced_frame=0
+top_field_first=0
+repeat_pict=0
+reference=0
+
+[streams.stream.0]
+index=0
+codec_name=pcm_s16le
+codec_long_name=PCM signed 16-bit little-endian
+profile=unknown
+codec_type=audio
+codec_time_base=1/44100
+codec_tag_string=[1][0][0][0]
+codec_tag=0x0001
+default=0
+forced=0
+sample_fmt=s16
+sample_rate=44100
+channels=1
+bits_per_sample=16
+id=N/A
+r_frame_rate=0/0
+avg_frame_rate=0/0
+time_base=1/44100
+start_pts=0
+start_time=0.000000
+duration_ts=527312
+duration=11.957188
+bit_rate=705600
+nb_frames=N/A
+nb_read_frames=6
+nb_read_packets=6
+
+[streams.stream.1]
+index=1
+codec_name=rawvideo
+codec_long_name=raw video
+profile=unknown
+codec_type=video
+codec_time_base=1/25
+codec_tag_string=RGB[24]
+codec_tag=0x18424752
+default=0
+forced=0
+width=320
+height=240
+has_b_frames=0
+sample_aspect_ratio=1\:1
+display_aspect_ratio=4\:3
+pix_fmt=rgb24
+level=-99
+timecode=N/A
+attached_pic=0
+id=N/A
+r_frame_rate=25/1
+avg_frame_rate=0/0
+time_base=1/25
+start_pts=0
+start_time=0.000000
+duration_ts=299
+duration=11.960000
+bit_rate=N/A
+nb_frames=N/A
+nb_read_frames=4
+nb_read_packets=4
+
+[streams.stream.2]
+index=2
+codec_name=rawvideo
+codec_long_name=raw video
+profile=unknown
+codec_type=video
+codec_time_base=1/25
+codec_tag_string=RGB[24]
+codec_tag=0x18424752
+default=0
+forced=0
+width=100
+height=100
+has_b_frames=0
+sample_aspect_ratio=1\:1
+display_aspect_ratio=1\:1
+pix_fmt=rgb24
+level=-99
+timecode=N/A
+attached_pic=0
+id=N/A
+r_frame_rate=25/1
+avg_frame_rate=0/0
+time_base=1/25
+start_pts=0
+start_time=0.000000
+duration_ts=299
+duration=11.960000
+bit_rate=N/A
+nb_frames=N/A
+nb_read_frames=4
+nb_read_packets=4
+
+[format]
+filename=tests/data/ffprobe-test.nut
+nb_streams=3
+format_name=nut
+format_long_name=NUT
+start_time=0.000000
+duration=11.960000
+size=1054624
+bit_rate=705434
+
+[format.tags]
+title=ffprobe test file
+comment='A comment wih CSV, XML & JSON special chars'\: <tag value\="x">
+comment2=I ♥ Üñîçød€
diff --git a/tests/ref/fate/ffprobe_json b/tests/ref/fate/ffprobe_json
new file mode 100644 (file)
index 0000000..05f03a8
--- /dev/null
@@ -0,0 +1,572 @@
+{
+    "packets_and_frames": [
+        {
+            "type": "packet",
+            "codec_type": "audio",
+            "stream_index": 0,
+            "pts": 0,
+            "pts_time": "0.000000",
+            "dts": 0,
+            "dts_time": "0.000000",
+            "duration": 1024,
+            "duration_time": "0.023220",
+            "size": "2048",
+            "pos": "402",
+            "flags": "K"
+        },
+        {
+            "type": "frame",
+            "media_type": "audio",
+            "key_frame": 1,
+            "pkt_pts": 0,
+            "pkt_pts_time": "0.000000",
+            "pkt_dts": 0,
+            "pkt_dts_time": "0.000000",
+            "pkt_duration": 1024,
+            "pkt_duration_time": "0.023220",
+            "pkt_pos": "402",
+            "sample_fmt": "s16",
+            "nb_samples": 1024,
+            "channels": 1
+        },
+        {
+            "type": "packet",
+            "codec_type": "video",
+            "stream_index": 1,
+            "pts": 0,
+            "pts_time": "0.000000",
+            "dts": 0,
+            "dts_time": "0.000000",
+            "duration": 1,
+            "duration_time": "0.040000",
+            "size": "230400",
+            "pos": "2477",
+            "flags": "K"
+        },
+        {
+            "type": "frame",
+            "media_type": "video",
+            "key_frame": 1,
+            "pkt_pts": 0,
+            "pkt_pts_time": "0.000000",
+            "pkt_dts": 0,
+            "pkt_dts_time": "0.000000",
+            "pkt_duration": 1,
+            "pkt_duration_time": "0.040000",
+            "pkt_pos": "2477",
+            "width": 320,
+            "height": 240,
+            "pix_fmt": "rgb24",
+            "sample_aspect_ratio": "1:1",
+            "pict_type": "I",
+            "coded_picture_number": 0,
+            "display_picture_number": 0,
+            "interlaced_frame": 0,
+            "top_field_first": 0,
+            "repeat_pict": 0,
+            "reference": 0
+        },
+        {
+            "type": "packet",
+            "codec_type": "video",
+            "stream_index": 2,
+            "pts": 0,
+            "pts_time": "0.000000",
+            "dts": 0,
+            "dts_time": "0.000000",
+            "duration": 1,
+            "duration_time": "0.040000",
+            "size": "30000",
+            "pos": "232898",
+            "flags": "K"
+        },
+        {
+            "type": "frame",
+            "media_type": "video",
+            "key_frame": 1,
+            "pkt_pts": 0,
+            "pkt_pts_time": "0.000000",
+            "pkt_dts": 0,
+            "pkt_dts_time": "0.000000",
+            "pkt_duration": 1,
+            "pkt_duration_time": "0.040000",
+            "pkt_pos": "232898",
+            "width": 100,
+            "height": 100,
+            "pix_fmt": "rgb24",
+            "sample_aspect_ratio": "1:1",
+            "pict_type": "I",
+            "coded_picture_number": 0,
+            "display_picture_number": 0,
+            "interlaced_frame": 0,
+            "top_field_first": 0,
+            "repeat_pict": 0,
+            "reference": 0
+        },
+        {
+            "type": "packet",
+            "codec_type": "audio",
+            "stream_index": 0,
+            "pts": 1024,
+            "pts_time": "0.023220",
+            "dts": 1024,
+            "dts_time": "0.023220",
+            "duration": 1024,
+            "duration_time": "0.023220",
+            "size": "2048",
+            "pos": "262903",
+            "flags": "K"
+        },
+        {
+            "type": "frame",
+            "media_type": "audio",
+            "key_frame": 1,
+            "pkt_pts": 1024,
+            "pkt_pts_time": "0.023220",
+            "pkt_dts": 1024,
+            "pkt_dts_time": "0.023220",
+            "pkt_duration": 1024,
+            "pkt_duration_time": "0.023220",
+            "pkt_pos": "262903",
+            "sample_fmt": "s16",
+            "nb_samples": 1024,
+            "channels": 1
+        },
+        {
+            "type": "packet",
+            "codec_type": "video",
+            "stream_index": 1,
+            "pts": 1,
+            "pts_time": "0.040000",
+            "dts": 1,
+            "dts_time": "0.040000",
+            "duration": 1,
+            "duration_time": "0.040000",
+            "size": "230400",
+            "pos": "264979",
+            "flags": "K"
+        },
+        {
+            "type": "frame",
+            "media_type": "video",
+            "key_frame": 1,
+            "pkt_pts": 1,
+            "pkt_pts_time": "0.040000",
+            "pkt_dts": 1,
+            "pkt_dts_time": "0.040000",
+            "pkt_duration": 1,
+            "pkt_duration_time": "0.040000",
+            "pkt_pos": "264979",
+            "width": 320,
+            "height": 240,
+            "pix_fmt": "rgb24",
+            "sample_aspect_ratio": "1:1",
+            "pict_type": "I",
+            "coded_picture_number": 0,
+            "display_picture_number": 0,
+            "interlaced_frame": 0,
+            "top_field_first": 0,
+            "repeat_pict": 0,
+            "reference": 0
+        },
+        {
+            "type": "packet",
+            "codec_type": "video",
+            "stream_index": 2,
+            "pts": 1,
+            "pts_time": "0.040000",
+            "dts": 1,
+            "dts_time": "0.040000",
+            "duration": 1,
+            "duration_time": "0.040000",
+            "size": "30000",
+            "pos": "495401",
+            "flags": "K"
+        },
+        {
+            "type": "frame",
+            "media_type": "video",
+            "key_frame": 1,
+            "pkt_pts": 1,
+            "pkt_pts_time": "0.040000",
+            "pkt_dts": 1,
+            "pkt_dts_time": "0.040000",
+            "pkt_duration": 1,
+            "pkt_duration_time": "0.040000",
+            "pkt_pos": "495401",
+            "width": 100,
+            "height": 100,
+            "pix_fmt": "rgb24",
+            "sample_aspect_ratio": "1:1",
+            "pict_type": "I",
+            "coded_picture_number": 0,
+            "display_picture_number": 0,
+            "interlaced_frame": 0,
+            "top_field_first": 0,
+            "repeat_pict": 0,
+            "reference": 0
+        },
+        {
+            "type": "packet",
+            "codec_type": "audio",
+            "stream_index": 0,
+            "pts": 2048,
+            "pts_time": "0.046440",
+            "dts": 2048,
+            "dts_time": "0.046440",
+            "duration": 1024,
+            "duration_time": "0.023220",
+            "size": "2048",
+            "pos": "525406",
+            "flags": "K"
+        },
+        {
+            "type": "frame",
+            "media_type": "audio",
+            "key_frame": 1,
+            "pkt_pts": 2048,
+            "pkt_pts_time": "0.046440",
+            "pkt_dts": 2048,
+            "pkt_dts_time": "0.046440",
+            "pkt_duration": 1024,
+            "pkt_duration_time": "0.023220",
+            "pkt_pos": "525406",
+            "sample_fmt": "s16",
+            "nb_samples": 1024,
+            "channels": 1
+        },
+        {
+            "type": "packet",
+            "codec_type": "audio",
+            "stream_index": 0,
+            "pts": 3072,
+            "pts_time": "0.069660",
+            "dts": 3072,
+            "dts_time": "0.069660",
+            "duration": 1024,
+            "duration_time": "0.023220",
+            "size": "2048",
+            "pos": "527477",
+            "flags": "K"
+        },
+        {
+            "type": "frame",
+            "media_type": "audio",
+            "key_frame": 1,
+            "pkt_pts": 3072,
+            "pkt_pts_time": "0.069660",
+            "pkt_dts": 3072,
+            "pkt_dts_time": "0.069660",
+            "pkt_duration": 1024,
+            "pkt_duration_time": "0.023220",
+            "pkt_pos": "527477",
+            "sample_fmt": "s16",
+            "nb_samples": 1024,
+            "channels": 1
+        },
+        {
+            "type": "packet",
+            "codec_type": "video",
+            "stream_index": 1,
+            "pts": 2,
+            "pts_time": "0.080000",
+            "dts": 2,
+            "dts_time": "0.080000",
+            "duration": 1,
+            "duration_time": "0.040000",
+            "size": "230400",
+            "pos": "529553",
+            "flags": "K"
+        },
+        {
+            "type": "frame",
+            "media_type": "video",
+            "key_frame": 1,
+            "pkt_pts": 2,
+            "pkt_pts_time": "0.080000",
+            "pkt_dts": 2,
+            "pkt_dts_time": "0.080000",
+            "pkt_duration": 1,
+            "pkt_duration_time": "0.040000",
+            "pkt_pos": "529553",
+            "width": 320,
+            "height": 240,
+            "pix_fmt": "rgb24",
+            "sample_aspect_ratio": "1:1",
+            "pict_type": "I",
+            "coded_picture_number": 0,
+            "display_picture_number": 0,
+            "interlaced_frame": 0,
+            "top_field_first": 0,
+            "repeat_pict": 0,
+            "reference": 0
+        },
+        {
+            "type": "packet",
+            "codec_type": "video",
+            "stream_index": 2,
+            "pts": 2,
+            "pts_time": "0.080000",
+            "dts": 2,
+            "dts_time": "0.080000",
+            "duration": 1,
+            "duration_time": "0.040000",
+            "size": "30000",
+            "pos": "759975",
+            "flags": "K"
+        },
+        {
+            "type": "frame",
+            "media_type": "video",
+            "key_frame": 1,
+            "pkt_pts": 2,
+            "pkt_pts_time": "0.080000",
+            "pkt_dts": 2,
+            "pkt_dts_time": "0.080000",
+            "pkt_duration": 1,
+            "pkt_duration_time": "0.040000",
+            "pkt_pos": "759975",
+            "width": 100,
+            "height": 100,
+            "pix_fmt": "rgb24",
+            "sample_aspect_ratio": "1:1",
+            "pict_type": "I",
+            "coded_picture_number": 0,
+            "display_picture_number": 0,
+            "interlaced_frame": 0,
+            "top_field_first": 0,
+            "repeat_pict": 0,
+            "reference": 0
+        },
+        {
+            "type": "packet",
+            "codec_type": "audio",
+            "stream_index": 0,
+            "pts": 4096,
+            "pts_time": "0.092880",
+            "dts": 4096,
+            "dts_time": "0.092880",
+            "duration": 1024,
+            "duration_time": "0.023220",
+            "size": "2048",
+            "pos": "789980",
+            "flags": "K"
+        },
+        {
+            "type": "frame",
+            "media_type": "audio",
+            "key_frame": 1,
+            "pkt_pts": 4096,
+            "pkt_pts_time": "0.092880",
+            "pkt_dts": 4096,
+            "pkt_dts_time": "0.092880",
+            "pkt_duration": 1024,
+            "pkt_duration_time": "0.023220",
+            "pkt_pos": "789980",
+            "sample_fmt": "s16",
+            "nb_samples": 1024,
+            "channels": 1
+        },
+        {
+            "type": "packet",
+            "codec_type": "audio",
+            "stream_index": 0,
+            "pts": 5120,
+            "pts_time": "0.116100",
+            "dts": 5120,
+            "dts_time": "0.116100",
+            "duration": 1024,
+            "duration_time": "0.023220",
+            "size": "2048",
+            "pos": "792051",
+            "flags": "K"
+        },
+        {
+            "type": "frame",
+            "media_type": "audio",
+            "key_frame": 1,
+            "pkt_pts": 5120,
+            "pkt_pts_time": "0.116100",
+            "pkt_dts": 5120,
+            "pkt_dts_time": "0.116100",
+            "pkt_duration": 1024,
+            "pkt_duration_time": "0.023220",
+            "pkt_pos": "792051",
+            "sample_fmt": "s16",
+            "nb_samples": 1024,
+            "channels": 1
+        },
+        {
+            "type": "packet",
+            "codec_type": "video",
+            "stream_index": 1,
+            "pts": 3,
+            "pts_time": "0.120000",
+            "dts": 3,
+            "dts_time": "0.120000",
+            "duration": 1,
+            "duration_time": "0.040000",
+            "size": "230400",
+            "pos": "794127",
+            "flags": "K"
+        },
+        {
+            "type": "frame",
+            "media_type": "video",
+            "key_frame": 1,
+            "pkt_pts": 3,
+            "pkt_pts_time": "0.120000",
+            "pkt_dts": 3,
+            "pkt_dts_time": "0.120000",
+            "pkt_duration": 1,
+            "pkt_duration_time": "0.040000",
+            "pkt_pos": "794127",
+            "width": 320,
+            "height": 240,
+            "pix_fmt": "rgb24",
+            "sample_aspect_ratio": "1:1",
+            "pict_type": "I",
+            "coded_picture_number": 0,
+            "display_picture_number": 0,
+            "interlaced_frame": 0,
+            "top_field_first": 0,
+            "repeat_pict": 0,
+            "reference": 0
+        },
+        {
+            "type": "packet",
+            "codec_type": "video",
+            "stream_index": 2,
+            "pts": 3,
+            "pts_time": "0.120000",
+            "dts": 3,
+            "dts_time": "0.120000",
+            "duration": 1,
+            "duration_time": "0.040000",
+            "size": "30000",
+            "pos": "1024549",
+            "flags": "K"
+        },
+        {
+            "type": "frame",
+            "media_type": "video",
+            "key_frame": 1,
+            "pkt_pts": 3,
+            "pkt_pts_time": "0.120000",
+            "pkt_dts": 3,
+            "pkt_dts_time": "0.120000",
+            "pkt_duration": 1,
+            "pkt_duration_time": "0.040000",
+            "pkt_pos": "1024549",
+            "width": 100,
+            "height": 100,
+            "pix_fmt": "rgb24",
+            "sample_aspect_ratio": "1:1",
+            "pict_type": "I",
+            "coded_picture_number": 0,
+            "display_picture_number": 0,
+            "interlaced_frame": 0,
+            "top_field_first": 0,
+            "repeat_pict": 0,
+            "reference": 0
+        }
+    ],
+    "streams": [
+        {
+            "index": 0,
+            "codec_name": "pcm_s16le",
+            "codec_long_name": "PCM signed 16-bit little-endian",
+            "codec_type": "audio",
+            "codec_time_base": "1/44100",
+            "codec_tag_string": "[1][0][0][0]",
+            "codec_tag": "0x0001",
+            "default": 0,
+            "forced": 0,
+            "sample_fmt": "s16",
+            "sample_rate": "44100",
+            "channels": 1,
+            "bits_per_sample": 16,
+            "r_frame_rate": "0/0",
+            "avg_frame_rate": "0/0",
+            "time_base": "1/44100",
+            "start_pts": 0,
+            "start_time": "0.000000",
+            "duration_ts": 527312,
+            "duration": "11.957188",
+            "bit_rate": "705600",
+            "nb_read_frames": "6",
+            "nb_read_packets": "6"
+        },
+        {
+            "index": 1,
+            "codec_name": "rawvideo",
+            "codec_long_name": "raw video",
+            "codec_type": "video",
+            "codec_time_base": "1/25",
+            "codec_tag_string": "RGB[24]",
+            "codec_tag": "0x18424752",
+            "default": 0,
+            "forced": 0,
+            "width": 320,
+            "height": 240,
+            "has_b_frames": 0,
+            "sample_aspect_ratio": "1:1",
+            "display_aspect_ratio": "4:3",
+            "pix_fmt": "rgb24",
+            "level": -99,
+            "attached_pic": 0,
+            "r_frame_rate": "25/1",
+            "avg_frame_rate": "0/0",
+            "time_base": "1/25",
+            "start_pts": 0,
+            "start_time": "0.000000",
+            "duration_ts": 299,
+            "duration": "11.960000",
+            "nb_read_frames": "4",
+            "nb_read_packets": "4"
+        },
+        {
+            "index": 2,
+            "codec_name": "rawvideo",
+            "codec_long_name": "raw video",
+            "codec_type": "video",
+            "codec_time_base": "1/25",
+            "codec_tag_string": "RGB[24]",
+            "codec_tag": "0x18424752",
+            "default": 0,
+            "forced": 0,
+            "width": 100,
+            "height": 100,
+            "has_b_frames": 0,
+            "sample_aspect_ratio": "1:1",
+            "display_aspect_ratio": "1:1",
+            "pix_fmt": "rgb24",
+            "level": -99,
+            "attached_pic": 0,
+            "r_frame_rate": "25/1",
+            "avg_frame_rate": "0/0",
+            "time_base": "1/25",
+            "start_pts": 0,
+            "start_time": "0.000000",
+            "duration_ts": 299,
+            "duration": "11.960000",
+            "nb_read_frames": "4",
+            "nb_read_packets": "4"
+        }
+    ],
+    "format": {
+        "filename": "tests/data/ffprobe-test.nut",
+        "nb_streams": 3,
+        "format_name": "nut",
+        "format_long_name": "NUT",
+        "start_time": "0.000000",
+        "duration": "11.960000",
+        "size": "1054624",
+        "bit_rate": "705434",
+        "tags": {
+            "title": "ffprobe test file",
+            "comment": "'A comment wih CSV, XML & JSON special chars': <tag value=\"x\">",
+            "comment2": "I ♥ Üñîçød€"
+        }
+    }
+}
diff --git a/tests/ref/fate/ffprobe_xml b/tests/ref/fate/ffprobe_xml
new file mode 100644 (file)
index 0000000..01323af
--- /dev/null
@@ -0,0 +1,45 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ffprobe>
+    <packets_and_frames>
+        <packet codec_type="audio" stream_index="0" pts="0" pts_time="0.000000" dts="0" dts_time="0.000000" duration="1024" duration_time="0.023220" size="2048" pos="402" flags="K"/>
+        <frame media_type="audio" key_frame="1" pkt_pts="0" pkt_pts_time="0.000000" pkt_dts="0" pkt_dts_time="0.000000" pkt_duration="1024" pkt_duration_time="0.023220" pkt_pos="402" sample_fmt="s16" nb_samples="1024" channels="1"/>
+        <packet codec_type="video" stream_index="1" pts="0" pts_time="0.000000" dts="0" dts_time="0.000000" duration="1" duration_time="0.040000" size="230400" pos="2477" flags="K"/>
+        <frame media_type="video" key_frame="1" pkt_pts="0" pkt_pts_time="0.000000" pkt_dts="0" pkt_dts_time="0.000000" pkt_duration="1" pkt_duration_time="0.040000" pkt_pos="2477" width="320" height="240" pix_fmt="rgb24" sample_aspect_ratio="1:1" pict_type="I" coded_picture_number="0" display_picture_number="0" interlaced_frame="0" top_field_first="0" repeat_pict="0" reference="0"/>
+        <packet codec_type="video" stream_index="2" pts="0" pts_time="0.000000" dts="0" dts_time="0.000000" duration="1" duration_time="0.040000" size="30000" pos="232898" flags="K"/>
+        <frame media_type="video" key_frame="1" pkt_pts="0" pkt_pts_time="0.000000" pkt_dts="0" pkt_dts_time="0.000000" pkt_duration="1" pkt_duration_time="0.040000" pkt_pos="232898" width="100" height="100" pix_fmt="rgb24" sample_aspect_ratio="1:1" pict_type="I" coded_picture_number="0" display_picture_number="0" interlaced_frame="0" top_field_first="0" repeat_pict="0" reference="0"/>
+        <packet codec_type="audio" stream_index="0" pts="1024" pts_time="0.023220" dts="1024" dts_time="0.023220" duration="1024" duration_time="0.023220" size="2048" pos="262903" flags="K"/>
+        <frame media_type="audio" key_frame="1" pkt_pts="1024" pkt_pts_time="0.023220" pkt_dts="1024" pkt_dts_time="0.023220" pkt_duration="1024" pkt_duration_time="0.023220" pkt_pos="262903" sample_fmt="s16" nb_samples="1024" channels="1"/>
+        <packet codec_type="video" stream_index="1" pts="1" pts_time="0.040000" dts="1" dts_time="0.040000" duration="1" duration_time="0.040000" size="230400" pos="264979" flags="K"/>
+        <frame media_type="video" key_frame="1" pkt_pts="1" pkt_pts_time="0.040000" pkt_dts="1" pkt_dts_time="0.040000" pkt_duration="1" pkt_duration_time="0.040000" pkt_pos="264979" width="320" height="240" pix_fmt="rgb24" sample_aspect_ratio="1:1" pict_type="I" coded_picture_number="0" display_picture_number="0" interlaced_frame="0" top_field_first="0" repeat_pict="0" reference="0"/>
+        <packet codec_type="video" stream_index="2" pts="1" pts_time="0.040000" dts="1" dts_time="0.040000" duration="1" duration_time="0.040000" size="30000" pos="495401" flags="K"/>
+        <frame media_type="video" key_frame="1" pkt_pts="1" pkt_pts_time="0.040000" pkt_dts="1" pkt_dts_time="0.040000" pkt_duration="1" pkt_duration_time="0.040000" pkt_pos="495401" width="100" height="100" pix_fmt="rgb24" sample_aspect_ratio="1:1" pict_type="I" coded_picture_number="0" display_picture_number="0" interlaced_frame="0" top_field_first="0" repeat_pict="0" reference="0"/>
+        <packet codec_type="audio" stream_index="0" pts="2048" pts_time="0.046440" dts="2048" dts_time="0.046440" duration="1024" duration_time="0.023220" size="2048" pos="525406" flags="K"/>
+        <frame media_type="audio" key_frame="1" pkt_pts="2048" pkt_pts_time="0.046440" pkt_dts="2048" pkt_dts_time="0.046440" pkt_duration="1024" pkt_duration_time="0.023220" pkt_pos="525406" sample_fmt="s16" nb_samples="1024" channels="1"/>
+        <packet codec_type="audio" stream_index="0" pts="3072" pts_time="0.069660" dts="3072" dts_time="0.069660" duration="1024" duration_time="0.023220" size="2048" pos="527477" flags="K"/>
+        <frame media_type="audio" key_frame="1" pkt_pts="3072" pkt_pts_time="0.069660" pkt_dts="3072" pkt_dts_time="0.069660" pkt_duration="1024" pkt_duration_time="0.023220" pkt_pos="527477" sample_fmt="s16" nb_samples="1024" channels="1"/>
+        <packet codec_type="video" stream_index="1" pts="2" pts_time="0.080000" dts="2" dts_time="0.080000" duration="1" duration_time="0.040000" size="230400" pos="529553" flags="K"/>
+        <frame media_type="video" key_frame="1" pkt_pts="2" pkt_pts_time="0.080000" pkt_dts="2" pkt_dts_time="0.080000" pkt_duration="1" pkt_duration_time="0.040000" pkt_pos="529553" width="320" height="240" pix_fmt="rgb24" sample_aspect_ratio="1:1" pict_type="I" coded_picture_number="0" display_picture_number="0" interlaced_frame="0" top_field_first="0" repeat_pict="0" reference="0"/>
+        <packet codec_type="video" stream_index="2" pts="2" pts_time="0.080000" dts="2" dts_time="0.080000" duration="1" duration_time="0.040000" size="30000" pos="759975" flags="K"/>
+        <frame media_type="video" key_frame="1" pkt_pts="2" pkt_pts_time="0.080000" pkt_dts="2" pkt_dts_time="0.080000" pkt_duration="1" pkt_duration_time="0.040000" pkt_pos="759975" width="100" height="100" pix_fmt="rgb24" sample_aspect_ratio="1:1" pict_type="I" coded_picture_number="0" display_picture_number="0" interlaced_frame="0" top_field_first="0" repeat_pict="0" reference="0"/>
+        <packet codec_type="audio" stream_index="0" pts="4096" pts_time="0.092880" dts="4096" dts_time="0.092880" duration="1024" duration_time="0.023220" size="2048" pos="789980" flags="K"/>
+        <frame media_type="audio" key_frame="1" pkt_pts="4096" pkt_pts_time="0.092880" pkt_dts="4096" pkt_dts_time="0.092880" pkt_duration="1024" pkt_duration_time="0.023220" pkt_pos="789980" sample_fmt="s16" nb_samples="1024" channels="1"/>
+        <packet codec_type="audio" stream_index="0" pts="5120" pts_time="0.116100" dts="5120" dts_time="0.116100" duration="1024" duration_time="0.023220" size="2048" pos="792051" flags="K"/>
+        <frame media_type="audio" key_frame="1" pkt_pts="5120" pkt_pts_time="0.116100" pkt_dts="5120" pkt_dts_time="0.116100" pkt_duration="1024" pkt_duration_time="0.023220" pkt_pos="792051" sample_fmt="s16" nb_samples="1024" channels="1"/>
+        <packet codec_type="video" stream_index="1" pts="3" pts_time="0.120000" dts="3" dts_time="0.120000" duration="1" duration_time="0.040000" size="230400" pos="794127" flags="K"/>
+        <frame media_type="video" key_frame="1" pkt_pts="3" pkt_pts_time="0.120000" pkt_dts="3" pkt_dts_time="0.120000" pkt_duration="1" pkt_duration_time="0.040000" pkt_pos="794127" width="320" height="240" pix_fmt="rgb24" sample_aspect_ratio="1:1" pict_type="I" coded_picture_number="0" display_picture_number="0" interlaced_frame="0" top_field_first="0" repeat_pict="0" reference="0"/>
+        <packet codec_type="video" stream_index="2" pts="3" pts_time="0.120000" dts="3" dts_time="0.120000" duration="1" duration_time="0.040000" size="30000" pos="1024549" flags="K"/>
+        <frame media_type="video" key_frame="1" pkt_pts="3" pkt_pts_time="0.120000" pkt_dts="3" pkt_dts_time="0.120000" pkt_duration="1" pkt_duration_time="0.040000" pkt_pos="1024549" width="100" height="100" pix_fmt="rgb24" sample_aspect_ratio="1:1" pict_type="I" coded_picture_number="0" display_picture_number="0" interlaced_frame="0" top_field_first="0" repeat_pict="0" reference="0"/>
+    </packets_and_frames>
+
+    <streams>
+        <stream index="0" codec_name="pcm_s16le" codec_long_name="PCM signed 16-bit little-endian" codec_type="audio" codec_time_base="1/44100" codec_tag_string="[1][0][0][0]" codec_tag="0x0001" default="0" forced="0" sample_fmt="s16" sample_rate="44100" channels="1" bits_per_sample="16" r_frame_rate="0/0" avg_frame_rate="0/0" time_base="1/44100" start_pts="0" start_time="0.000000" duration_ts="527312" duration="11.957188" bit_rate="705600" nb_read_frames="6" nb_read_packets="6"/>
+        <stream index="1" codec_name="rawvideo" codec_long_name="raw video" codec_type="video" codec_time_base="1/25" codec_tag_string="RGB[24]" codec_tag="0x18424752" default="0" forced="0" width="320" height="240" has_b_frames="0" sample_aspect_ratio="1:1" display_aspect_ratio="4:3" pix_fmt="rgb24" level="-99" attached_pic="0" r_frame_rate="25/1" avg_frame_rate="0/0" time_base="1/25" start_pts="0" start_time="0.000000" duration_ts="299" duration="11.960000" nb_read_frames="4" nb_read_packets="4"/>
+        <stream index="2" codec_name="rawvideo" codec_long_name="raw video" codec_type="video" codec_time_base="1/25" codec_tag_string="RGB[24]" codec_tag="0x18424752" default="0" forced="0" width="100" height="100" has_b_frames="0" sample_aspect_ratio="1:1" display_aspect_ratio="1:1" pix_fmt="rgb24" level="-99" attached_pic="0" r_frame_rate="25/1" avg_frame_rate="0/0" time_base="1/25" start_pts="0" start_time="0.000000" duration_ts="299" duration="11.960000" nb_read_frames="4" nb_read_packets="4"/>
+    </streams>
+
+    <format filename="tests/data/ffprobe-test.nut" nb_streams="3" format_name="nut" format_long_name="NUT" start_time="0.000000" duration="11.960000" size="1054624" bit_rate="705434">
+        <tag key="title" value="ffprobe test file"/>
+        <tag key="comment" value="&apos;A comment wih CSV, XML &amp; JSON special chars&apos;: &lt;tag value=&quot;x&quot;&gt;"/>
+        <tag key="comment2" value="I ♥ Üñîçød€"/>
+    </format>
+</ffprobe>