[gst-devel] clock not running in play state

Wesley Smith wesley.hoke at gmail.com
Tue Dec 29 05:43:26 CET 2009


Hi,
I'm trying to debug an odd issue I'm having where I have a pipeline in
the PLAY state but the clock associated with the pipeline isn't
running.  I'm using a playbin and an appsink for getting the video
data and everything works fine when I use my code inside a GLUT app,
but when I use it inside a Qt-based app, the clock associated with the
playbin pipeline fails to start despite it successfully getting into
the PLAY state.

>From what I understand, when a pipeline goes into the PLAY state, a
thread is spawned that services the clock and pushes data through the
pipeline.  I'm wondering if there's something about the mainloop here
that's messing things up.  The way I'm doing things now is

1) create pipeline and open media
2) set callbacks like:
        g_object_set(G_OBJECT(mVideoSink), "emit-signals", TRUE,
"sync", TRUE, NULL);
        g_signal_connect(mVideoSink, "new-buffer",
						G_CALLBACK(new_buffer),
						(gpointer)this);
3) set into play state
4) poll the messages on the pipeline and see if there's any new data

I've built my code into a shared lib that I link into the 2
applications I'm testing with, so the code is _exactly_ the same in
both instances.  This is why I'm a bit baffled and don't know how to
find a way around my problem.  Essentially I'm getting the first frame
and nothing else.  When I query the clock each time I poll for
messages, the clock is stuck at 0 in my Qt app and is increasing for
my GLUT one.  This is what's leading me to suspect something with how
the threading works in gstreamer.  I'm using the latest on Ubuntu
9.10.

If it helps, here's the entire code listing:
http://www.mat.ucsb.edu/projects/luaAV/browser/branches/luaav3/modules/Muro/src/video/GstVideoImpl.cpp

I've googled around quite a bit but haven't found any pertinent info.
Any pointers appreciated.
thanks,
wes




More information about the gstreamer-devel mailing list