Conditional linking of audiosink element in pipeline

classic Classic list List threaded Threaded
2 messages Options
Reply | Threaded
Open this post in threaded view
|

Conditional linking of audiosink element in pipeline

Babineau, Denis

Hi,

 

I’m building the following pipeline with the decodebin element (I’m not using playbin because the src may change):

 

filesrc -> decodebin <sig> videosink <sig> audiosink

 

Where videosink and audiosink are connected via the pad-added signal of decodebin. Videosink and audiosink are bins containing the following elements respectively:

 

ffmpegcolorspace -> customvideosink

 

queue -> audioconvert -> customaudiosink

 

 

I add all the elements to the pipeline, then link (except what gets linked by signals), then I set the state to playing. This works when I play a video with audio, but if the video doesn’t contain an audio stream, it seems that the pipeline stalls, if I don’t add the audiosink elements to the pipeline it works. I’m assuming I have to somehow add the audiosink elements to the pipeline on the fly? What is the proper way of doing this? It seems I can’t just add the elements on the fly in the signal handler while the state is playing?

 

Thanks

Denis

CONFIDENTIALITY NOTICE: The contents of this email are confidential
and for the exclusive use of the intended recipient. If you receive this
email in error, please delete it from your system immediately and 
notify us either by email, telephone or fax. You should not copy,
forward, or otherwise disclose the content of the email.

------------------------------------------------------------------------------
Download Intel&#174; Parallel Studio Eval
Try the new software tools for yourself. Speed compiling, find bugs
proactively, and fine-tune applications for parallel performance.
See why Intel Parallel Studio got high marks during beta.
http://p.sf.net/sfu/intel-sw-dev
_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/gstreamer-devel
Reply | Threaded
Open this post in threaded view
|

Re: Conditional linking of audiosink element in pipeline

Stefan Sauer
Am 24.02.2010 14:34, schrieb Babineau, Denis:

> Hi,
>
>  
>
> I’m building the following pipeline with the decodebin element (I’m not
> using playbin because the src may change):
>
>  
>
> filesrc -> decodebin <sig> videosink <sig> audiosink
>
>  
>
> Where videosink and audiosink are connected via the pad-added signal of
> decodebin. Videosink and audiosink are bins containing the following
> elements respectively:
>
>  
>
> ffmpegcolorspace -> customvideosink
>
>  
>
> queue -> audioconvert -> customaudiosink
>
>  
>
>  
>
> I add all the elements to the pipeline, then link (except what gets
> linked by signals), then I set the state to playing. This works when I
> play a video with audio, but if the video doesn’t contain an audio
> stream, it seems that the pipeline stalls, if I don’t add the audiosink
> elements to the pipeline it works. I’m assuming I have to somehow add
> the audiosink elements to the pipeline on the fly? What is the proper
> way of doing this? It seems I can’t just add the elements on the fly in
> the signal handler while the state is playing?


you can't have unlinked element in the pipeline in most cases (having a passive
element e.g. volume would be okay). I can recommend two things:

1) add & link the elements as needed
2) add the elements as you do, but use gst_element_set_locked_state on the
unused ones and keep them in NULL/READY. You would unlock the state and sync the
staten when you use them.

Stefan


>
>  
>
> Thanks
>
> Denis
>
> CONFIDENTIALITY NOTICE: The contents of this email are confidential
> and for the exclusive use of the intended recipient. If you receive this
> email in error, please delete it from your system immediately and
> notify us either by email, telephone or fax. You should not copy,
> forward, or otherwise disclose the content of the email.
>
>
>
> ------------------------------------------------------------------------------
> Download Intel&#174; Parallel Studio Eval
> Try the new software tools for yourself. Speed compiling, find bugs
> proactively, and fine-tune applications for parallel performance.
> See why Intel Parallel Studio got high marks during beta.
> http://p.sf.net/sfu/intel-sw-dev
>
>
>
> _______________________________________________
> gstreamer-devel mailing list
> [hidden email]
> https://lists.sourceforge.net/lists/listinfo/gstreamer-devel


------------------------------------------------------------------------------
Download Intel&#174; Parallel Studio Eval
Try the new software tools for yourself. Speed compiling, find bugs
proactively, and fine-tune applications for parallel performance.
See why Intel Parallel Studio got high marks during beta.
http://p.sf.net/sfu/intel-sw-dev
_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/gstreamer-devel