basesink: drops or duplicates buffers when dumping oggdemux output
Submitted by Tim Müller @tpm
Link to original bug (#681642)
Description
So ... no idea if this is in fact a basesink issue, but here goes: when dumping oggdemux buffers to stdout in gst-launch with queue ! fakesink silent=false, it seems that (a) not all buffers are shown and, (b) sometimes buffers are shown multiple times.
Not 100% sure what the trigger is, at first I thought it was queue related, but seems not.
Reproduce with:
$ for i in seq 1 5
; do gst-launch-1.0 filesrc location=video.ogg ! oggdemux name=d d. ! queue ! fakesink async=false silent=false d. ! queue ! fakesink async=false silent=false -v 2>&1 | grep chain | grep 'offset_end: -1' ; echo =========; done
Each iteration should show 6 header buffers, 3 for the vorbis stream and 3 for the theora stream. There should be 4 small packets and 2 larger packets.
$ for i in seq 1 5
; do gst-launch-1.0 filesrc location=video.ogg ! oggdemux name=d d. ! queue ! fakesink silent=false d. ! queue ! fakesink silent=false -v 2>&1 | grep chain | grep 'offset_end: -1' ; echo =========; done
chain fakesink1 30 bytes flags: 00000040 discont ) 0x7f67bc0079d0
chain fakesink1 30 bytes flags: 00000040 discont ) 0x7f67bc0079d0
chain fakesink1 30 bytes flags: 00000040 discont ) 0x7f67bc0079d0
chain fakesink1 30 bytes flags: 00000040 discont ) 0x7f67bc0079d0
chain fakesink1 30 bytes flags: 00000040 discont ) 0x16e8a10
chain fakesink1 95 bytes flags: 00000000 ) 0x16e8b20
chain fakesink1 3484 bytes flags: 00000000 ) 0x16e8c30
chain fakesink0 97 bytes flags: 00000000 ) 0x16e87f0
chain fakesink0 97 bytes flags: 00000000 ) 0x16e87f0
chain fakesink0 97 bytes flags: 00000000 ) 0x16e87f0
chain fakesink0 42 bytes flags: 00000040 discont ) 0xc206e0
chain fakesink0 42 bytes flags: 00000040 discont ) 0xc206e0
chain fakesink0 42 bytes flags: 00000040 discont ) 0xc206e0
chain fakesink0 42 bytes flags: 00000040 discont ) 0xc206e0
chain fakesink0 42 bytes flags: 00000040 discont ) 0x1f8c6a0
chain fakesink0 42 bytes flags: 00000040 discont ) 0x1f8c6a0
chain fakesink0 42 bytes flags: 00000040 discont ) 0x1f8c6a0
chain fakesink0 42 bytes flags: 00000040 discont ) 0x1f8c6a0
chain fakesink0 42 bytes flags: 00000040 discont ) 0x1f8c6a0
chain fakesink0 42 bytes flags: 00000040 discont ) 0x1f8c6a0
chain fakesink1 30 bytes flags: 00000040 discont ) 0x172da10
chain fakesink1 30 bytes flags: 00000040 discont ) 0x172da10
chain fakesink1 30 bytes flags: 00000040 discont ) 0x172da10