flvdemux: Gets confused when fed with different streams
@vivia
Submitted by Vivia Nikolaidou Link to original bug (#768005)
Description
Using the files from here:
https://ahiru.eu/~vivia/parts1to7.tar
$ gst-launch-1.0 splitmuxsrc location="part*.flv" name=d d.video ! queue ! h264parse ! matroskamux name=m ! queue ! filesink location=allparts2.mkv d.audio ! aacparse ! queue ! m.
This works fine.
[fish syntax warning]
$ env GST_DEBUG=*:3 gst-launch-1.0 multifilesrc location="part%02d.flv" start-index=1 stop-index=7 ! queue ! flvdemux name=d d.video ! queue ! h264parse ! matroskamux name=m ! queue ! filesink location=allparts1.mkv d.audio ! aacparse ! queue ! m.
[...]
0:00:01.216200161 22013 0xfbf320 WARN flvdemux gstflvdemux.c:1307:gst_flv_demux_video_negotiate:<d>
unsupported video codec tag 8
0:00:01.216265742 22013 0xfbf320 WARN flvdemux gstflvdemux.c:1311:gst_flv_demux_video_negotiate:<d>
failed creating caps for video pad
0:00:01.216353327 22013 0xfbf320 WARN queue gstqueue.c:1541:gst_queue_loop:<queue0>
error: Internal data flow error.
0:00:01.216420933 22013 0xfbf320 WARN queue gstqueue.c:1541:gst_queue_loop:<queue0>
error: streaming task paused, reason error (-5)
ERROR: from element /GstPipeline:pipeline0/GstQueue:queue0: Internal data flow error.
Additional debug info:
gstqueue.c(1541): gst_queue_loop (): /GstPipeline:pipeline0/GstQueue:queue0:
streaming task paused, reason error (-5)
The video codec tag 8 is completely bogus, the file is H264, like all the previous ones. gst-discoverer and gst-play agree with me, as well as the first example.
$ gst-launch-1.0 multifilesrc location="part%02d.flv" start-index=2 stop-index=7 ! queue ! flvdemux name=d d.video ! queue ! h264parse ! matroskamux name=m ! queue ! filesink location=allparts1.mkv d.audio ! aacparse ! queue ! m.
The resulting file is valid, but it only contains the contents of part02.flv .