[gst-devel] Changing file location during recording
Edward Hervey
bilboed at gmail.com
Thu Jun 17 08:36:15 CEST 2010
On Wed, 2010-06-16 at 16:27 +0000, Albert Costa wrote:
> Hi,
> I have a pipeline that can be reducted to:
>
>
> gst-launch dshowvideosrc ! tee ! queue ! ffmpegcolorspace !
> ffenc_mpeg2video ! mpegtsmux ! filesink tee0. ! queue !
> ffmpegcolorspace ! directdrawsink
>
>
> All this is created/handled in a c application where I can start and
> stop the pipeline. I now have a requirement to change the location of
> the file after a given size (for example) is reached. I've started to
> test following sequence on user request for the moment:
> -set pipeline to paused
> -change filesink location
> -set back pipeline to playing
> But it seems it does not handle the change of location in the
> filesink. I've also tried to unlink/relink the filesink branch in
> combination with the state change, with no success.
> Is there a way to change dynamically the filesink location, either by
> external commands (like I tried) or even better automatically with a
> plugin I am maybe not aware of?
You want to, when no data is flowing : set the filesink to the NULL
state, change the location, bring back the filesink to the PLAYING
state. To ensure no data is flowing, use the gst_pad_set_blocked_async()
method on the pad feeding data to your filesink.
* Grab the mpegtsmux source pad and
gst_pad_set_blocked_async(sourcepad, TRUE, my_blocked_callback,
filesink);
* In your my_blocked_callback:
** WHEN blocked is TRUE:
*** set filesink to NULL,
*** change the location property of filesink,
*** set filesink to PLAYING,
*** and finally call gst_pad_set_blocked_async(sourcepad, FALSE,
my_blocked_callback, NULL);
Edward
P.S. You can only do this with container formats that don't have headers
(like mpeg-ts). There might also be quirks about the PMT/PAT not being
present at the beginning of the second file.
> Thanks for help,
> Regards,
> Al
>
>
> ------------------------------------------------------------------------------
> ThinkGeek and WIRED's GeekDad team up for the Ultimate
> GeekDad Father's Day Giveaway. ONE MASSIVE PRIZE to the
> lucky parental unit. See the prize list and enter to win:
> http://p.sf.net/sfu/thinkgeek-promo
> _______________________________________________ gstreamer-devel mailing list gstreamer-devel at lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/gstreamer-devel
More information about the gstreamer-devel
mailing list