seek before playback

Holger Kaelberer hk at elberer.de
Fri Jun 21 01:05:00 PDT 2013


Hi

On 06/19/2013 06:43 PM, b12 wrote:

> Basically here is how my pipeline is setup:
> filesrc-> queue->flutsdemux-> ffdec_h264->xvimagesink
> So far I have attempted to do this by: 
> 1)Build my pipeline
> 2)Set state to PLAYING
> 3)On the GST_MESSAGE_STATE_CHANGED to PLAYING I attempt my seek. 

Should be a good point for initial seeks.

> 
> Problem I find with this solution is that 9 times out of 10 the seek fails
> (dont know why).  


$ gst-inspect flutsdemux | grep pcr-difference -A2
  pcr-difference      : PCR difference in seconds for bitrate calculation
                        flags: readable, writable
                        Integer. Range: 0 - 2147483647 Default: 5000

IIRC, flutsdemux drops seek events in the first pcr-difference seconds, at least in push-mode, which
is good if have vbr encoded streams. Not sure about pull mode. Did you try setting pcr-difference =
0? Or try mpegtsdemux (in 0.10), which does not have this settings.

> The one time out of 10 that it does work I get a ton (50 -
> 100) qos messages with very bad rendering then after about 5 seconds it
> begins playback.
> I understand that the bad rendering may be that I am seeking to a point
> between i frames.

Possible. I think it shoudl be ffdec_h264's job to drop non-keyframes after seek/flush-stop events.
Can't remember that it has problems with that. Is your stream healthy?

Holger


More information about the gstreamer-devel mailing list