Not getting handoff signal from my fakesink anymore...

Chris Whittenburg whittenburg at gmail.com
Wed Oct 17 19:56:24 PDT 2012


I wrote a plugin for the mjpg-streamer app which uses gstreamer to
capture jpeg frames.

It uses the handoff signal from fakesink to do a callback to the
function which passes the frame to the rest of the mjpg-streamer code:

g_object_set(G_OBJECT(fakesink),"signal-handoffs",TRUE,NULL);
g_signal_connect(fakesink,"handoff", G_CALLBACK(cb_handoff),NULL);

The funny thing is, it works great if I start it from a shell prompt,
but if I let systemd start it automatically at boot, I don't see any
of the signals being emitted.

If I stop the "service" and start it by hand, it works again.

Can anyone give me any pointers on things to check?  Is it something
related to the various threads?

mjpg-streamer starts two threads, the input plugin (which has my gst
code) and the output plugin.

The gst pipeline my code creates is similar to: v4l2src ! queue !
jpegenc ! queue ! fakesink.

Actually there is also a tee in there which sends a copy of the jpeg
images to queue ! avimux ! filesink.

As I said, it works great in testing, but just won't startup with
systemd at boot.  And it doesn't really give me any errors.  It just
sits there waiting indefinitely.

Thanks,
Chris


More information about the gstreamer-devel mailing list