[gst-devel] Sending EOS into continuous sources

Ronald Bultje rbultje at ronald.bitfreak.net
Sun Dec 21 14:31:00 CET 2003


Hi all,

my next issue in gst-rec: I'm getting "push on pad x:x but it has no
chainhandler" warnings. This is correct. I have the following pipeline:

{ { { source ! queue } ! encoder ! queue } ! mux.video_00 ... }

Sometimes, the encoder is missing (raw recording), then I have:

{ { source ! queue } ! mux.video_00 ... }

For EOS, I'm simply setting source to paused (to make sure that EOS is
the last data and I'm not getting into the race where I first send EOS
and then it sends another buffer. After setting source to paused, I'm
pushing the buffer into queue:src. This works for the encoder-case,
because most (all but mpeg2enc) encoders are chainbased. However, it
doesn't work for the second case.

A better solution would be to gst_element_send_event (source,
gst_event_new (GST_EVENT_EOS)); Osssrc currently supports this, but no
other element does. Are people allright with me implementing this in all
continuous source elements (sine, silence, oss, alsa, v4l, v4l2,
v4lmjpeg, videotest, just to name a few)? Or do you have better
suggestions?

Note that whatever I'm going to use here, I'd like to use it for
projects like gnonlin in the future too (as a replacement of
SEEK_SEGMENT - which is pretty stupid). So I'd rather see something
generic that doesn't require too much work in every single plugin. :).

Ronald
(trying to get gst-rec in a releasable state)

-- 
Ronald Bultje <rbultje at ronald.bitfreak.net>
Linux Video/Multimedia developer





More information about the gstreamer-devel mailing list