"Seek" not working, likely due to duration being detected improperly

Cameron cameron.johnson at l-3com.com
Wed May 28 13:07:19 PDT 2014


I believe it is not only in a paused state, but has waited for the message to
state as much; the code for seeking is only called from within a
"BusWatcher" which receives a message, and when that message is
"MessageType.StateChanged." 

It is specifically within an if statement that checks:

if((oldstate==State.Ready)&&(newstate==State.Paused))




So I am pretty sure that the system is in the Paused state and the message
saying so has been sent and received. However, I did take a look at your
suggestion to use SeekSimple. That doesn't seem to be an implemented method
for Gst.Pipeline. The lines I'm using are:

this.pipeline.QueryPosition(ref curFor, out currentPosition);
this.pipeline.QueryDuration(ref curFor, out duration);

bool success = this.Pipeline.Seek(this.rate, Format.Time, SeekFlags.Flush |
SeekFlags.KeyUnit, SeekType.Set, (long)this.seekOffset.TotalMilliseconds,
SeekType.End, 0);


"success" is always returning as "false," and later queries as to the
position reveal it unchanged from before this line is called. "Duration"
returns as -1, and "currentPosition" as 0. 


Thanks for helping me troubleshoot this! If I'm doing something wrong or
making an incorrect assumption about the state of the system, being
corrected would be nice. If not, hopefully we can find out what is going
wrong. (I remain convinced the duration being misread is the source of the
problem with the seeking.)




--
View this message in context: http://gstreamer-devel.966125.n4.nabble.com/Seek-not-working-likely-due-to-duration-being-detected-improperly-tp4667255p4667259.html
Sent from the GStreamer-devel mailing list archive at Nabble.com.


More information about the gstreamer-devel mailing list