[gst-devel] Plugin creation

cammille at polytech.unice.fr cammille at polytech.unice.fr
Fri Mar 6 14:46:27 CET 2009


It works !!!

Thank you very much for your help and your time  !!!


> My understanding is that v4l2src cannot generate rgb16, so try this:
>
> v4l2src ! ffmpegcolorspace ! "video/x-raw-rgb,bpp=16,depth=16" !
> testfilter ! videoscale ! ffmpegcolorspace ! xvimagesink
>
> If that doesn't work then I'm afraid I ran out of answers :)
>
> Iago
>
> El vie, 06-03-2009 a las 14:10 +0100, cammille at polytech.unice.fr
> escribió:
>> If I try this :
>> v4l2src ! "video/x-raw-rgb,bpp=16,depth=16" ! testfilter ! videoscale !
>> ffmpegcolorspace ! xvimagesink
>>
>> I obtain that :
>> (gst-launch-0.10:3704): GStreamer-WARNING **: pad v4l2src0:src returned
>> caps which are not a real subset of its template caps
>> ERROR: Pipeline doesn't want to pause.
>> ERROR: from element /GstPipeline:pipeline0/GstV4l2Src:v4l2src0: Could
>> not
>> negotiate format
>>
>>
>>
>> > You have to force rgb16 format in the filter src, and I'd also use the
>> > videoscale and ffmpegcolorspace elements after the filtering has taken
>> > place. Try this:
>> >
>> > v4l2src ! "video/x-raw-rgb,bpp=16,depth=16" ! testfilter ! videoscale
>> !
>> > ffmpegcolorspace ! xvimagesink
>> >
>> >
>> > El vie, 06-03-2009 a las 11:59 +0100, cammille at polytech.unice.fr
>> > escribió:
>> >> I resolve the problem !
>> >>
>> >> But there still is the problem I had at the beginning : Could not
>> >> negotiate format...
>> >>
>> >>
>> >> I remember you my pipeline :
>> >> v4l2src  !  videoscale !  ffmpegcolorspace ! testfilter ! xvimagesink
>> >>
>> >> Where testfilter should apply a red mask.
>> >>
>> >> > Thanks for your help !
>> >> >
>> >> > I have another problem when I compile my project :  error:
>> >> > gst/video/video.h: No such file or directory
>> >> >
>> >> > So I can't test your code. I searched on google but it seems that
>> >> nobody
>> >> > have the problem.
>> >> >
>> >> > Do you know how to resolve the problem ?
>> >> >
>> >> >> (I sent another email with an implementation of a silly video
>> filter
>> >> >> that applies different color masks to an rgb stream, but for some
>> >> reason
>> >> >> it did not hit the list, guess it does not like attachments so I
>> >> removed
>> >> >> it, hopefully this one will make it. If you want the code, say so
>> and
>> >> >> I'll send it to you directly).
>> >> >>
>> >> >> In summary, you just need to get the red_mask from the caps:
>> >> >>
>> >> >> gst_filter_set_caps (GstPad * pad, GstCaps * caps)
>> >> >> {
>> >> >>   Gstmyvideo *filter;
>> >> >>   GstPad *otherpad;
>> >> >>
>> >> >>   filter = GST_MYVIDEO (gst_pad_get_parent (pad));
>> >> >>   otherpad = (pad == filter->srcpad) ? filter->sinkpad :
>> >> filter->srcpad;
>> >> >>   gst_object_unref (filter);
>> >> >>
>> >> >>   GstStructure *structure = gst_caps_get_structure (caps, 0);
>> >> >>   ...
>> >> >>   gst_structure_get_int (structure, "red_mask",
>> &filter->red_mask);
>> >> >>   ...
>> >> >> }
>> >> >>
>> >> >> Then, in your process function, apply the mask to the samples,
>> >> something
>> >> >> like this does the trick:
>> >> >>
>> >> >> ...
>> >> >> guint samples = GST_BUFFER_SIZE (buf) / 2;
>> >> >> guint16 *data = (guint16 *) GST_BUFFER_DATA (buf);
>> >> >> gint i;
>> >> >>
>> >> >> for (i=0; i<samples; i++) {
>> >> >>     data[i] = data[i] & filter->red_mask;
>> >> >>  }
>> >> >> ...
>> >> >>
>> >> >> Iago
>> >> >>
>> >> >> El vie, 06-03-2009 a las 09:05 +0100, cammille at polytech.unice.fr
>> >> >> escribió:
>> >> >>> Nobody knows how to filter the red color ?
>> >> >>>
>> >> >>> If someone can explain me how to manipulate the buffer just to
>> keep
>> >> the
>> >> >>> red color it would be great.
>> >> >>>
>> >> >>> Thank you.
>> >> >>>
>> >> >>> > Thanks everybody !
>> >> >>> >
>> >> >>> > I'm ok with you Albert, I think the simplest is RGB.. but there
>> >> still
>> >> >>> is a
>> >> >>> > problem.
>> >> >>> > If I define a cap I have an error which is :
>> >> >>> > ERROR: from element /GstPipeline:pipeline0/GstV4l2Src:v4l2src0:
>> >> Could
>> >> >>> not
>> >> >>> > negotiate format
>> >> >>> >
>> >> >>> > So I tried to force the format in the pipeline and I have the
>> same
>> >> >>> error !
>> >> >>> >
>> >> >>> > here is my command : gst-launch
>> >> >>> > --gst-plugin-path=$HOME/gst-template/gst-plugin/src/.libs/
>> v4l2src
>> >>  !
>> >> >>> > videoscale !  ffmpegcolorspace ! testfilter ! xvimagesink
>> >> >>> >
>> >> >>> > I have searched in vain other examples...
>> >> >>> >
>> >> >>> > It's strange, because in my code, if I change my buffer like
>> that
>> >> :
>> >> >>> > int i;
>> >> >>> > int size = GST_BUFFER_CAST(buf)->size;
>> >> >>> >
>> >> >>> > for(i=1; i < size; i++) {
>> >> >>> >   (buf->data)[i] = 0;
>> >> >>> > }
>> >> >>> >
>> >> >>> > The images become all green... I really don't understand why.
>> >> >>> >
>> >> >>> > I think there is a simple way to just keep the red color.. but
>> I
>> >> >>> don't
>> >> >>> > find it.
>> >> >>> >
>> >> >>> >
>> >> >>> >
>> >> >>> >> Hi,
>> >> >>> >> the plugin name and description can (must...) be changed in
>> the
>> >> >>> >> plugin_init function and GST_PLUGIN_DEFINE macro definition in
>> >> the
>> >> >>> code
>> >> >>> >> that must be present in your code.
>> >> >>> >> Concerning the filtering itself, you must check that you have
>> RGB
>> >> (I
>> >> >>> >> guess
>> >> >>> >> that's the simplest) image buffers coming to your plugin in
>> order
>> >> to
>> >> >>> >> make
>> >> >>> >> your processing in the chain function. Best way would be to
>> set
>> >> the
>> >> >>> caps
>> >> >>> >> of your sink pad to video/x-rgb flow. Check other exisitng
>> >> plugins
>> >> >>> to
>> >> >>> >> see
>> >> >>> >> how to do this. You'll need a ffmpegcolorspace element before
>> >> your
>> >> >>> >> plugin
>> >> >>> >> to let the flow be in the good format.
>> >> >>> >> The example plugin is just a skeleton, you need now to
>> specialize
>> >> it
>> >> >>> >> with
>> >> >>> >> your own code... Read the gstreamer plugin writer's guide, it
>> >> will
>> >> >>> give
>> >> >>> >> you information.
>> >> >>> >> Regards,
>> >> >>> >> Al
>> >> >>> >>
>> >> >>> >>
>> >> >>> >>
>> >> >>> >> ________________________________
>> >> >>> >> De : "cammille at polytech.unice.fr" <cammille at polytech.unice.fr>
>> >> >>> >> À : Discussion of the development of GStreamer
>> >> >>> >> <gstreamer-devel at lists.sourceforge.net>
>> >> >>> >> Envoyé le : Jeudi, 5 Mars 2009, 12h15mn 55s
>> >> >>> >> Objet : Re: [gst-devel] Plugin creation
>> >> >>> >>
>> >> >>> >> I found the problem ! The fact is that my plugin is not named
>> >> >>> >> "testfilter".. It's named "plugin". How can I change this name
>> ?
>> >> >>> >> beacause
>> >> >>> >> I have never specified that my plugin is named "plugin".
>> >> >>> >>
>> >> >>> >> Another question, : now, I would like to create a simple
>> plugin :
>> >> >>> >> I would like to filter the video taken by my webcam and filter
>> >> the
>> >> >>> red
>> >> >>> >> color (i would like to apply an effect like the effectv
>> plugin).
>> >> >>> >> I know the algorithm, but I'm not sure how to do that.
>> >> >>> >>
>> >> >>> >> Do you think I should create this plugin by using the example
>> >> plugin
>> >> >>> ?
>> >> >>> >>
>> >> >>> >>
>> >> >>> >>> assuming that the shared library name is libgsttestfilters.so
>> >> >>> >>>
>> >> >>> >>> On Thu, Mar 5, 2009 at 4:28 PM, ved kpl <ved.kpl at gmail.com>
>> >> wrote:
>> >> >>> >>>> Try gst-inspect on your plugin
>> >> >>> >>>>
>> >> >>> >>>> Assuming that the plugin is installed in
>> >> >>> >>>> "$HOME/gst-template/gst-plugin/src/.libs/"
>> >> >>> >>>> do the following and see what you get
>> >> >>> >>>>
>> >> >>> >>>>  gst-inspect
>> >> >>> >>>> $HOME/gst-template/gst-plugin/src/.libs/libgsttestfilters.so
>> >> >>> >>>>
>> >> >>> >>>> On Thu, Mar 5, 2009 at 4:15 PM,
>> <cammille at polytech.unice.fr>
>> >> >>> wrote:
>> >> >>> >>>>> Hello !
>> >> >>> >>>>> I would like to create a simple plugin such as effectv..
>> >> >>> >>>>>
>> >> >>> >>>>> But, first of all, I would like to create a "test plugin".
>> >> >>> >>>>> So, I tried to make the example described in the GStreamer
>> >> Plugin
>> >> >>> >>>>> Writer's
>> >> >>> >>>>> Guide.
>> >> >>> >>>>>
>> >> >>> >>>>> I compiled the "test plugin" with the makefile, and now I'm
>> >> >>> trying
>> >> >>> to
>> >> >>> >>>>> launch this plugin, but I have an error..
>> >> >>> >>>>>
>> >> >>> >>>>> What's wrong with :
>> >> >>> >>>>>
>> >> >>> >>>>> $ gst-launch
>> >> >>> >>>>> --gst-plugin-path=$HOME/gst-template/gst-plugin/src/.libs/
>> >> >>> >>>>> fakesrc ! testfilters ! fakesink silent=TRUE
>> >> >>> >>>>>  > WARNING: erroneous pipeline: no element "testfilters"
>> >> >>> >>>>>
>> >> >>> >>>>> Maybe I have forgotten something ?
>> >> >>> >>>>>
>> >> >>> >>>>>
>> >> >>> >>>>> Thank you.
>> >> >>> >>>>>
>> >> >>> >>>>>
>> >> >>> >>>>>
>> >> >>> >>>>> ------------------------------------------------------------------------------
>> >> >>> >>>>> Open Source Business Conference (OSBC), March 24-25, 2009,
>> San
>> >> >>> >>>>> Francisco, CA
>> >> >>> >>>>> -OSBC tackles the biggest issue in open source: Open
>> Sourcing
>> >> the
>> >> >>> >>>>> Enterprise
>> >> >>> >>>>> -Strategies to boost innovation and cut costs with open
>> source
>> >> >>> >>>>> participation
>> >> >>> >>>>> -Receive a $600 discount off the registration fee with the
>> >> source
>> >> >>> >>>>> code:
>> >> >>> >>>>> SFAD
>> >> >>> >>>>> http://p.sf.net/sfu/XcvMzF8H
>> >> >>> >>>>> _______________________________________________
>> >> >>> >>>>> gstreamer-devel mailing list
>> >> >>> >>>>> gstreamer-devel at lists.sourceforge.net
>> >> >>> >>>>> https://lists.sourceforge.net/lists/listinfo/gstreamer-devel
>> >> >>> >>>>>
>> >> >>> >>>>
>> >> >>> >>>
>> >> >>> >>> ------------------------------------------------------------------------------
>> >> >>> >>> Open Source Business Conference (OSBC), March 24-25, 2009,
>> San
>> >> >>> >>> Francisco,
>> >> >>> >>> CA
>> >> >>> >>> -OSBC tackles the biggest issue in open source: Open Sourcing
>> >> the
>> >> >>> >>> Enterprise
>> >> >>> >>> -Strategies to boost innovation and cut costs with open
>> source
>> >> >>> >>> participation
>> >> >>> >>> -Receive a $600 discount off the registration fee with the
>> >> source
>> >> >>> code:
>> >> >>> >>> SFAD
>> >> >>> >>> http://p.sf.net/sfu/XcvMzF8H
>> >> >>> >>> _______________________________________________
>> >> >>> >>> gstreamer-devel mailing list
>> >> >>> >>> gstreamer-devel at lists.sourceforge.net
>> >> >>> >>> https://lists.sourceforge.net/lists/listinfo/gstreamer-devel
>> >> >>> >>>
>> >> >>> >>
>> >> >>> >>
>> >> >>> >>
>> >> >>> >> ------------------------------------------------------------------------------
>> >> >>> >> Open Source Business Conference (OSBC), March 24-25, 2009, San
>> >> >>> >> Francisco,
>> >> >>> >> CA
>> >> >>> >> -OSBC tackles the biggest issue in open source: Open Sourcing
>> the
>> >> >>> >> Enterprise
>> >> >>> >> -Strategies to boost innovation and cut costs with open source
>> >> >>> >> participation
>> >> >>> >> -Receive a $600 discount off the registration fee with the
>> source
>> >> >>> code:
>> >> >>> >> SFAD
>> >> >>> >> http://p.sf.net/sfu/XcvMzF8H
>> >> >>> >> _______________________________________________
>> >> >>> >> gstreamer-devel mailing list
>> >> >>> >> gstreamer-devel at lists.sourceforge.net
>> >> >>> >> https://lists.sourceforge.net/lists/listinfo/gstreamer-devel
>> >> >>> >>
>> >> >>> >>
>> >> >>> >>
>> >> >>> >>       ------------------------------------------------------------------------------
>> >> >>> >> Open Source Business Conference (OSBC), March 24-25, 2009, San
>> >> >>> >> Francisco,
>> >> >>> >> CA
>> >> >>> >> -OSBC tackles the biggest issue in open source: Open Sourcing
>> the
>> >> >>> >> Enterprise
>> >> >>> >> -Strategies to boost innovation and cut costs with open source
>> >> >>> >> participation
>> >> >>> >> -Receive a $600 discount off the registration fee with the
>> source
>> >> >>> code:
>> >> >>> >> SFAD
>> >> >>> >> http://p.sf.net/sfu/XcvMzF8H_______________________________________________
>> >> >>> >> gstreamer-devel mailing list
>> >> >>> >> gstreamer-devel at lists.sourceforge.net
>> >> >>> >> https://lists.sourceforge.net/lists/listinfo/gstreamer-devel
>> >> >>> >>
>> >> >>> >
>> >> >>> >
>> >> >>> >
>> >> >>> > ------------------------------------------------------------------------------
>> >> >>> > Open Source Business Conference (OSBC), March 24-25, 2009, San
>> >> >>> Francisco,
>> >> >>> > CA
>> >> >>> > -OSBC tackles the biggest issue in open source: Open Sourcing
>> the
>> >> >>> > Enterprise
>> >> >>> > -Strategies to boost innovation and cut costs with open source
>> >> >>> > participation
>> >> >>> > -Receive a $600 discount off the registration fee with the
>> source
>> >> >>> code:
>> >> >>> > SFAD
>> >> >>> > http://p.sf.net/sfu/XcvMzF8H
>> >> >>> > _______________________________________________
>> >> >>> > gstreamer-devel mailing list
>> >> >>> > gstreamer-devel at lists.sourceforge.net
>> >> >>> > https://lists.sourceforge.net/lists/listinfo/gstreamer-devel
>> >> >>> >
>> >> >>>
>> >> >>>
>> >> >>>
>> >> >>> ------------------------------------------------------------------------------
>> >> >>> Open Source Business Conference (OSBC), March 24-25, 2009, San
>> >> >>> Francisco, CA
>> >> >>> -OSBC tackles the biggest issue in open source: Open Sourcing the
>> >> >>> Enterprise
>> >> >>> -Strategies to boost innovation and cut costs with open source
>> >> >>> participation
>> >> >>> -Receive a $600 discount off the registration fee with the source
>> >> code:
>> >> >>> SFAD
>> >> >>> http://p.sf.net/sfu/XcvMzF8H
>> >> >>> _______________________________________________
>> >> >>> gstreamer-devel mailing list
>> >> >>> gstreamer-devel at lists.sourceforge.net
>> >> >>> https://lists.sourceforge.net/lists/listinfo/gstreamer-devel
>> >> >>>
>> >> >>
>> >> >>
>> >> >> ------------------------------------------------------------------------------
>> >> >> Open Source Business Conference (OSBC), March 24-25, 2009, San
>> >> >> Francisco,
>> >> >> CA
>> >> >> -OSBC tackles the biggest issue in open source: Open Sourcing the
>> >> >> Enterprise
>> >> >> -Strategies to boost innovation and cut costs with open source
>> >> >> participation
>> >> >> -Receive a $600 discount off the registration fee with the source
>> >> code:
>> >> >> SFAD
>> >> >> http://p.sf.net/sfu/XcvMzF8H
>> >> >> _______________________________________________
>> >> >> gstreamer-devel mailing list
>> >> >> gstreamer-devel at lists.sourceforge.net
>> >> >> https://lists.sourceforge.net/lists/listinfo/gstreamer-devel
>> >> >>
>> >> >
>> >> >
>> >> >
>> >> > ------------------------------------------------------------------------------
>> >> > Open Source Business Conference (OSBC), March 24-25, 2009, San
>> >> Francisco,
>> >> > CA
>> >> > -OSBC tackles the biggest issue in open source: Open Sourcing the
>> >> > Enterprise
>> >> > -Strategies to boost innovation and cut costs with open source
>> >> > participation
>> >> > -Receive a $600 discount off the registration fee with the source
>> >> code:
>> >> > SFAD
>> >> > http://p.sf.net/sfu/XcvMzF8H
>> >> > _______________________________________________
>> >> > gstreamer-devel mailing list
>> >> > gstreamer-devel at lists.sourceforge.net
>> >> > https://lists.sourceforge.net/lists/listinfo/gstreamer-devel
>> >> >
>> >>
>> >>
>> >>
>> >> ------------------------------------------------------------------------------
>> >> Open Source Business Conference (OSBC), March 24-25, 2009, San
>> >> Francisco, CA
>> >> -OSBC tackles the biggest issue in open source: Open Sourcing the
>> >> Enterprise
>> >> -Strategies to boost innovation and cut costs with open source
>> >> participation
>> >> -Receive a $600 discount off the registration fee with the source
>> code:
>> >> SFAD
>> >> http://p.sf.net/sfu/XcvMzF8H
>> >> _______________________________________________
>> >> gstreamer-devel mailing list
>> >> gstreamer-devel at lists.sourceforge.net
>> >> https://lists.sourceforge.net/lists/listinfo/gstreamer-devel
>> >>
>> >
>> >
>> > ------------------------------------------------------------------------------
>> > Open Source Business Conference (OSBC), March 24-25, 2009, San
>> Francisco,
>> > CA
>> > -OSBC tackles the biggest issue in open source: Open Sourcing the
>> > Enterprise
>> > -Strategies to boost innovation and cut costs with open source
>> > participation
>> > -Receive a $600 discount off the registration fee with the source
>> code:
>> > SFAD
>> > http://p.sf.net/sfu/XcvMzF8H
>> > _______________________________________________
>> > gstreamer-devel mailing list
>> > gstreamer-devel at lists.sourceforge.net
>> > https://lists.sourceforge.net/lists/listinfo/gstreamer-devel
>> >
>>
>>
>>
>> ------------------------------------------------------------------------------
>> Open Source Business Conference (OSBC), March 24-25, 2009, San
>> Francisco, CA
>> -OSBC tackles the biggest issue in open source: Open Sourcing the
>> Enterprise
>> -Strategies to boost innovation and cut costs with open source
>> participation
>> -Receive a $600 discount off the registration fee with the source code:
>> SFAD
>> http://p.sf.net/sfu/XcvMzF8H
>> _______________________________________________
>> gstreamer-devel mailing list
>> gstreamer-devel at lists.sourceforge.net
>> https://lists.sourceforge.net/lists/listinfo/gstreamer-devel
>>
>
>
> ------------------------------------------------------------------------------
> Open Source Business Conference (OSBC), March 24-25, 2009, San Francisco,
> CA
> -OSBC tackles the biggest issue in open source: Open Sourcing the
> Enterprise
> -Strategies to boost innovation and cut costs with open source
> participation
> -Receive a $600 discount off the registration fee with the source code:
> SFAD
> http://p.sf.net/sfu/XcvMzF8H
> _______________________________________________
> 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