Plugin creation

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

Plugin creation

cammille
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
[hidden email]
https://lists.sourceforge.net/lists/listinfo/gstreamer-devel
Reply | Threaded
Open this post in threaded view
|

Re: Plugin creation

ved kpl
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,  <[hidden email]> 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
> [hidden email]
> 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
[hidden email]
https://lists.sourceforge.net/lists/listinfo/gstreamer-devel
Reply | Threaded
Open this post in threaded view
|

Re: Plugin creation

ved kpl
assuming that the shared library name is libgsttestfilters.so

On Thu, Mar 5, 2009 at 4:28 PM, ved kpl <[hidden email]> 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,  <[hidden email]> 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
>> [hidden email]
>> 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
[hidden email]
https://lists.sourceforge.net/lists/listinfo/gstreamer-devel
Reply | Threaded
Open this post in threaded view
|

Re: Plugin creation

cammille
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 <[hidden email]> 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,  <[hidden email]> 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
>>> [hidden email]
>>> 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
> [hidden email]
> 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
[hidden email]
https://lists.sourceforge.net/lists/listinfo/gstreamer-devel
Reply | Threaded
Open this post in threaded view
|

Re : Plugin creation

Albert Costa
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 : "[hidden email]" <[hidden email]>
À : Discussion of the development of GStreamer <[hidden email]>
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 <[hidden email]> 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,  <[hidden email]> 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
>>> [hidden email]
>>> 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
> [hidden email]
> 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
[hidden email]
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
[hidden email]
https://lists.sourceforge.net/lists/listinfo/gstreamer-devel
Reply | Threaded
Open this post in threaded view
|

Re: Re : Plugin creation

cammille
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 : "[hidden email]" <[hidden email]>
> À : Discussion of the development of GStreamer
> <[hidden email]>
> 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 <[hidden email]> 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,  <[hidden email]> 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
>>>> [hidden email]
>>>> 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
>> [hidden email]
>> 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
> [hidden email]
> 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
> [hidden email]
> 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
[hidden email]
https://lists.sourceforge.net/lists/listinfo/gstreamer-devel
Reply | Threaded
Open this post in threaded view
|

Plugin creation

cammille
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 : "[hidden email]" <[hidden email]>
>> À : Discussion of the development of GStreamer
>> <[hidden email]>
>> 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 <[hidden email]> 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,  <[hidden email]> 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
>>>>> [hidden email]
>>>>> 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
>>> [hidden email]
>>> 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
>> [hidden email]
>> 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
>> [hidden email]
>> 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
> [hidden email]
> 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
[hidden email]
https://lists.sourceforge.net/lists/listinfo/gstreamer-devel
Reply | Threaded
Open this post in threaded view
|

Re: Plugin creation

Iago Toral Quiroga
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 doed 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;
 }
...

I attach a silly filter plugin example that applies different color
masks to an rgb stream, hopefully you will find it useful.

Iago

El vie, 06-03-2009 a las 09:05 +0100, [hidden email]
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 : "[hidden email]" <[hidden email]>
> >> À : Discussion of the development of GStreamer
> >> <[hidden email]>
> >> 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 <[hidden email]> 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,  <[hidden email]> 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
> >>>>> [hidden email]
> >>>>> 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
> >>> [hidden email]
> >>> 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
> >> [hidden email]
> >> 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
> >> [hidden email]
> >> 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
> > [hidden email]
> > 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
> [hidden email]
> 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
[hidden email]
https://lists.sourceforge.net/lists/listinfo/gstreamer-devel

gstmyvideo.c (10K) Download Attachment
gstmyvideo.h (3K) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: Plugin creation

Iago Toral Quiroga
In reply to this post by cammille
(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, [hidden email]
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 : "[hidden email]" <[hidden email]>
> >> À : Discussion of the development of GStreamer
> >> <[hidden email]>
> >> 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 <[hidden email]> 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,  <[hidden email]> 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
> >>>>> [hidden email]
> >>>>> 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
> >>> [hidden email]
> >>> 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
> >> [hidden email]
> >> 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
> >> [hidden email]
> >> 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
> > [hidden email]
> > 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
> [hidden email]
> 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
[hidden email]
https://lists.sourceforge.net/lists/listinfo/gstreamer-devel
Reply | Threaded
Open this post in threaded view
|

Re: Plugin creation

cammille
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, [hidden email]
> 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 : "[hidden email]" <[hidden email]>
>> >> À : Discussion of the development of GStreamer
>> >> <[hidden email]>
>> >> 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 <[hidden email]> 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,  <[hidden email]>
>> 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
>> >>>>> [hidden email]
>> >>>>> 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
>> >>> [hidden email]
>> >>> 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
>> >> [hidden email]
>> >> 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
>> >> [hidden email]
>> >> 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
>> > [hidden email]
>> > 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
>> [hidden email]
>> 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
> [hidden email]
> 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
[hidden email]
https://lists.sourceforge.net/lists/listinfo/gstreamer-devel
Reply | Threaded
Open this post in threaded view
|

Re: Plugin creation

cammille
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, [hidden email]
>> 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 : "[hidden email]" <[hidden email]>
>>> >> À : Discussion of the development of GStreamer
>>> >> <[hidden email]>
>>> >> 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 <[hidden email]> 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,  <[hidden email]>
>>> 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
>>> >>>>> [hidden email]
>>> >>>>> 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
>>> >>> [hidden email]
>>> >>> 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
>>> >> [hidden email]
>>> >> 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
>>> >> [hidden email]
>>> >> 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
>>> > [hidden email]
>>> > 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
>>> [hidden email]
>>> 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
>> [hidden email]
>> 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
> [hidden email]
> 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
[hidden email]
https://lists.sourceforge.net/lists/listinfo/gstreamer-devel
Reply | Threaded
Open this post in threaded view
|

Re: Plugin creation

Iago Toral Quiroga
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, [hidden email]
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, [hidden email]
> >> 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 : "[hidden email]" <[hidden email]>
> >>> >> À : Discussion of the development of GStreamer
> >>> >> <[hidden email]>
> >>> >> 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 <[hidden email]> 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,  <[hidden email]>
> >>> 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
> >>> >>>>> [hidden email]
> >>> >>>>> 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
> >>> >>> [hidden email]
> >>> >>> 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
> >>> >> [hidden email]
> >>> >> 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
> >>> >> [hidden email]
> >>> >> 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
> >>> > [hidden email]
> >>> > 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
> >>> [hidden email]
> >>> 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
> >> [hidden email]
> >> 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
> > [hidden email]
> > 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
> [hidden email]
> 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
[hidden email]
https://lists.sourceforge.net/lists/listinfo/gstreamer-devel
Reply | Threaded
Open this post in threaded view
|

Re: Plugin creation

cammille
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, [hidden email]
> 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, [hidden email]
>> >> 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 : "[hidden email]" <[hidden email]>
>> >>> >> À : Discussion of the development of GStreamer
>> >>> >> <[hidden email]>
>> >>> >> 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 <[hidden email]>
>> 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,  <[hidden email]>
>> >>> 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
>> >>> >>>>> [hidden email]
>> >>> >>>>> 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
>> >>> >>> [hidden email]
>> >>> >>> 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
>> >>> >> [hidden email]
>> >>> >> 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
>> >>> >> [hidden email]
>> >>> >> 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
>> >>> > [hidden email]
>> >>> > 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
>> >>> [hidden email]
>> >>> 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
>> >> [hidden email]
>> >> 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
>> > [hidden email]
>> > 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
>> [hidden email]
>> 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
> [hidden email]
> 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
[hidden email]
https://lists.sourceforge.net/lists/listinfo/gstreamer-devel
Reply | Threaded
Open this post in threaded view
|

Re: Plugin creation

Iago Toral Quiroga
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, [hidden email]
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, [hidden email]
> > 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, [hidden email]
> >> >> 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 : "[hidden email]" <[hidden email]>
> >> >>> >> À : Discussion of the development of GStreamer
> >> >>> >> <[hidden email]>
> >> >>> >> 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 <[hidden email]>
> >> 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,  <[hidden email]>
> >> >>> 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
> >> >>> >>>>> [hidden email]
> >> >>> >>>>> 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
> >> >>> >>> [hidden email]
> >> >>> >>> 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
> >> >>> >> [hidden email]
> >> >>> >> 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
> >> >>> >> [hidden email]
> >> >>> >> 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
> >> >>> > [hidden email]
> >> >>> > 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
> >> >>> [hidden email]
> >> >>> 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
> >> >> [hidden email]
> >> >> 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
> >> > [hidden email]
> >> > 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
> >> [hidden email]
> >> 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
> > [hidden email]
> > 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
> [hidden email]
> 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
[hidden email]
https://lists.sourceforge.net/lists/listinfo/gstreamer-devel
Reply | Threaded
Open this post in threaded view
|

Re: Plugin creation

cammille
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, [hidden email]
> 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, [hidden email]
>> > 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, [hidden email]
>> >> >> 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 : "[hidden email]" <[hidden email]>
>> >> >>> >> À : Discussion of the development of GStreamer
>> >> >>> >> <[hidden email]>
>> >> >>> >> 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 <[hidden email]>
>> >> 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,
>> <[hidden email]>
>> >> >>> 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
>> >> >>> >>>>> [hidden email]
>> >> >>> >>>>> 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
>> >> >>> >>> [hidden email]
>> >> >>> >>> 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
>> >> >>> >> [hidden email]
>> >> >>> >> 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
>> >> >>> >> [hidden email]
>> >> >>> >> 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
>> >> >>> > [hidden email]
>> >> >>> > 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
>> >> >>> [hidden email]
>> >> >>> 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
>> >> >> [hidden email]
>> >> >> 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
>> >> > [hidden email]
>> >> > 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
>> >> [hidden email]
>> >> 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
>> > [hidden email]
>> > 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
>> [hidden email]
>> 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
> [hidden email]
> 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
[hidden email]
https://lists.sourceforge.net/lists/listinfo/gstreamer-devel