Play position advancing but frames not rendered

Tvrtko Ursulin tvrtko.ursulin at onelan.co.uk
Wed Jul 27 07:35:34 PDT 2011


Hi all,

When playing an MPEG TS stream multicast over UDP I occasionally see GStreamer 
stop rendering frames while the play position is normally progressing.

On the last occasion this happened it actually managed to untangle itself 
after a while and started playing (rendering) again. Unfortunately I do not 
know whether it would always be case since previously I did not wait this 
long.

To start getting more specific...

I do not know when exactly it stopped rendering, but I know when I first saw it 
in that state which was at 14:14 today. It was streaming for roughly two hours 
up to that point.

Last interesting logged thing before that state was a QOS event at 14:06. Then 
at 14:21 it started to render again and reported another QOS event. 

In between the application was querying play position every ten seconds which 
showed progress.

If you look at this annotated log:

... <video state unknown>
14:06:15.006 PLAY POSITION 6615867197374L
14:06:18.408 QOS @ 6619179855556L Frames: 291654/704; Jitter: 88265288
14:14 <spotted video not playing (not rendering)>
14:20:59.484 PLAY POSITION 7500344289211L
14:21:08.142 QOS @ 6915779855556L Frames: 306475/705; Jitter: 593222818788L
<video started playing again>

Play position is what query_position() on playbin2 element returns 
(documentation says this is stream time). And times logged in QOS events come 
from stream-time message field, so it should be matched up in that respect.

This second event is reporting that a frame was almost ten minutes late, but 
that there was only one dropped frame in the period on roughly a correct 
number of rendered frames (for 25 fps video) during the period. Which is of 
course wrong because nothing was rendered.

Software used is:
gstreamer-tools-0.10.34-1.fc15.i686
gstreamer-plugins-good-0.10.29-1.fc15.i686
gstreamer-0.10.34-1.fc15.i686
gstreamer-plugins-base-0.10.33-92.fc15.i686
gstreamer-plugins-bad-free-0.10.22-1.fc15.i686
gstreamer-python-0.10.19-2.fc15.i686
gstreamer-plugins-ugly-0.10.18-1.fc15.i686

Application is written in python and uses playbin2 with a custom bin set as 
video-sink which is queue ! deinterlace ! queue ! xvimagesink. Audio-sink is 
set to a bin containing alsasink only.

If someone has any ideas on what is going wrong here I would appreciate it.

Thanks in advance,

Tvrtko Ursulin


More information about the gstreamer-devel mailing list