Best way to add a filter inside PlayBin2

Jacques Bride jacques.bride at googlemail.com
Fri Feb 10 07:59:59 PST 2012


thanks Stefan

it's clear now. I have succeeded in creating my ilter and make it work
with playbin2 and the OMAP4 pvrvideosink. I will now do what you
suggest to make it high RANK and naturally used by the video pipeline

Thanks a lot


2012/2/10 Stefan Sauer <ensonic at hora-obscura.de>:
> On 02/09/2012 03:24 PM, Jacques Bride wrote:
>> Hello Stefan
>>
>> just to confirm, I will adapt my filter element to be a source of of
>> the OMAP4 video sink (pvrvideosink) and I can use it this ways if I
>> understand well:
>>
>> gst-launch playbin2 uri="file:///myfile" video-sink="myfilter!pvrvideosink"
>>
>> Then to make it default for players like totem, I know I can set the
>> priority of plugins with the method gst_plugin_feature_set_rank () but
>> I don't really see how I can augment the rank of the combo
>> "myfilter!pvrvideosink" such that it is used by default instead of
>> pvrvideosink alone
>
> In your myfilter plugin, you have the myfilter element. You add another
> element there, let say myfiltersink, that is subclassing gstbin. It will
> have a high rank (PRIMARY+X), classify itself as a videosink and plug
> myfilter ! pvrvvideosink. Many bin elements (such as playbin, decodebin,
> etc.) implement pipeline layout logic in the bin, but no actual data
> processing.
>
> Stefan
>
>> Thanks
>>
>> 2012/2/9 Jacques Bride <jacques.bride at googlemail.com>:
>>> I see, I understand
>>> Thanks
>>> Jacques
>>>
>>>
>>> 2012/2/9 Stefan Sauer <ensonic at hora-obscura.de>:
>>>> On 02/09/2012 10:49 AM, Jacques Bride wrote:
>>>>> Hello Stefan
>>>>>
>>>>> Thanks for your reply. In other words, do you recommend that I create
>>>>> a new video sink and kind of force PlayBin2 to use it instead of the
>>>>> one used normally? The display on the OMAP4 pandaboard is handled by a
>>>>> TI custom video sink called GstPVRVideoSink and not sure I can change
>>>>> it to get same performance and platform support
>>>> You don't replace the actual sink, you just tell apps to use your bin,
>>>> which contains the effect + the actual sink.
>>>>
>>>> Stefan
>>>>
>>>>> Jacques
>>>>>
>>>>>> One way is to set a custom video sink, which is a bin containing your
>>>>>> effect ! autovideosink. If you can't modify the apps, you will need to
>>>>>> install that custom video sink bin and set the RANK to be e.g.
>>>>>> PRIMARY+10 so that it is automatically chosen.
>>>>> 2012/2/8 Stefan Sauer <ensonic at hora-obscura.de>:
>>>>>> On 02/08/2012 06:27 PM, Jacques Bride wrote:
>>>>>>> Hello
>>>>>>>
>>>>>>> I am developing a frame enhancement filter for the need of a video
>>>>>>> control application. I am developing on a OMAP4 pandabaord on ubuntu
>>>>>>> with the Texas Instruments hardware accelerated gstreamer pipeline
>>>>>>> (1080PPfps decode), anyhow I think my question is rather general.  I
>>>>>>> am a beginner in gstreamer so please do not hesitate to redirect me to
>>>>>>> the doc if my question is already answered somewhere.
>>>>>>>
>>>>>>> My project consists in a video filter that transforms the yuv decoded
>>>>>>> frames before being displayed (for example a sepia filter to display
>>>>>>> frames in sepia color).
>>>>>>>
>>>>>>> What is the best way to add my filter in the installed gstreamer
>>>>>>> pipeline such that it becomes part of my video chain?
>>>>>>>
>>>>>>> Please see below more details:
>>>>>>> - I wish to use the installed and omap4 optimized gstreamer/totem
>>>>>>> pipeline to enable full video stream
>>>>>>> decode and display with my filter on
>>>>>> One way is to set a custom video sink, which is a bin containing your
>>>>>> effect ! autovideosink. If you can't modify the apps, you will need to
>>>>>> install that custom video sink bin and set the RANK to be e.g.
>>>>>> PRIMARY+10 so that it is automatically chosen.
>>>>>>
>>>>>> Stefan
>>>>>>
>>>>>>> .
>>>>>>> - I created  a gstreamer plugin/element for my filter with the
>>>>>>> gst-template framework, but how to make it part of GstPlayBin2?
>>>>>>> - I looked at the pipeline graph of totem and gst-launch: they both
>>>>>>> use the playbin2 module, and I would like to add my filter in-between
>>>>>>> GstURIDecodeBin and GstPlaySink (input from src0 and output to
>>>>>>> video_raw_sink  through gstinputselector). Is is possible to add and
>>>>>>> link a new element  here without breaking the full bin? It is not
>>>>>>> either on the input or the output of playbin2 so I do not really
>>>>>>> understand how to just create a playbin2 element in my application and
>>>>>>> delicately insert a new element inside...
>>>>>>> - do I have to modify the source code of PlayBin2, add my filter,
>>>>>>> recompile and install it on my board to have my added features
>>>>>>> naturally enabled when I play videos? Or is it possible to tell
>>>>>>> existing gst-launch and totem applications to add a user filter plugin
>>>>>>> in the installed video processing?
>>>>>>>
>>>>>>> Thanks for your help
>>>>>>> Jacques
>>>>>>> _______________________________________________
>>>>>>> gstreamer-devel mailing list
>>>>>>> gstreamer-devel at lists.freedesktop.org
>>>>>>> http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
>>>>>> _______________________________________________
>>>>>> gstreamer-devel mailing list
>>>>>> gstreamer-devel at lists.freedesktop.org
>>>>>> http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
>>>>> _______________________________________________
>>>>> gstreamer-devel mailing list
>>>>> gstreamer-devel at lists.freedesktop.org
>>>>> http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
>>>> _______________________________________________
>>>> gstreamer-devel mailing list
>>>> gstreamer-devel at lists.freedesktop.org
>>>> http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
>> _______________________________________________
>> gstreamer-devel mailing list
>> gstreamer-devel at lists.freedesktop.org
>> http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
>
> _______________________________________________
> gstreamer-devel mailing list
> gstreamer-devel at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel


More information about the gstreamer-devel mailing list