Changing filesink location after a mux with many inputs.
Paddy
pat.blanchon at gmail.com
Thu Oct 18 15:11:15 PDT 2012
Paddy wrote
> More progress ...
>
> I've recovered the 1.3sec of missing video. This is what I now do when I
> want to change the filesink location on the fly:
> 1) install/enable a handoff function on an identity element inserted
> between the x264enc & videoQ elements which simply looks for keyframes
> (see above pipeline).
> 2) when a keyframe is detected block both queue src pads & disable the
> handoff
> 3) in the first blocked callback, unlink the mux/sink bin from both
> queues & send an EOS event to the audio & video sink pads in the mux/sink
> bin. I have to do this - without the EOS I never see the second callback.
> I can also confirm that both EOS's find their way to the mux/sink bin - I
> missed them in the yards of debug
> 4) on the second callback a new mux/sink bin is created, added & synced
> to the pipeline & the queues are unblocked
> 5) the mux/file bin EOS handler function sets the retiring bin state to
> NULL & removes it from the pipeline
>
> Hopefully this may help others who want to try this.
>
> Meanwhile I still have a couple of questions:
>
> Is the missing second block callback expected behaviour or a bug ? I never
> see the second callback unless I send the EOS event.
>
> Bug or not: is the above procedure sound ? I'm new to gstreamer & don't
> have much of a grip on its architecture, design & implementation; so
> there's everything chance what I'm doing is fundamentally flawed.
>
> Cheer again
Bumping this up so hopefully my questions can be considered.
I'll dig some sample code out that shows the pertinent steps for those gents
that have asked
--
View this message in context: http://gstreamer-devel.966125.n4.nabble.com/Changing-filesink-location-after-a-mux-with-many-inputs-tp4656116p4656654.html
Sent from the GStreamer-devel mailing list archive at Nabble.com.
More information about the gstreamer-devel
mailing list