Another GstAppSrc Question

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

Another GstAppSrc Question

John Stowers
Hi All,

I see quite a few similar questions to these on the gst-devel mailing
list, but none of them allowed me to get past my problem.

I'm building a streaming video thing using gstreamer, the prototype
(works fine) is

sender:
gst-launch -v videotestsrc !
video/x-raw-rgb,width=640,height=480,bpp=24,depth=24 !
ffmpegcolorspace ! videoscale method=1 ! theoraenc bitrate=150 ! udpsink
host=127.0.0.1 port=1234

viewer:
gst-launch -v udpsrc port=1234 ! theoradec ! autovideosink

I have been translating it to C starting with the appsrc-stream example.
I can't get it to negotiate the caps I set properly. The relevant
warning messages are;

basetransform
gstbasetransform.c:1047:gst_base_transform_acceptcaps:<videoscale0>
transform could not transform video/x-raw-rgb, bpp=(int)24,
depth=(int)24, width=(int)640, height=(int)480 in anything we support
0:00:00.178133697 10789  0x829a8d0 WARN           basetransform
gstbasetransform.c:1144:gst_base_transform_setcaps:<ffmpegcsp0> FAILED
to configure caps <ffmpegcsp0:src> to accept video/x-raw-yuv,
format=(fourcc)I420, framerate=(fraction)1/2147483647, width=(int)640,
height=(int)480

The relevant code is;

app->pipeline = gst_parse_launch("appsrc name=mysource !
video/x-raw-rgb,width=640,height=480,bpp=24,depth=24 !
ffmpegcolorspace ! videoscale method=1 ! theoraenc bitrate=150 ! udpsink
host=127.0.0.1 port=1234", NULL);

<snip>

caps = gst_caps_new_simple ("video/x-raw-rgb",
    "bpp",G_TYPE_INT,24,
    "depth",G_TYPE_INT,24,
     "width", G_TYPE_INT, 640,
     "height", G_TYPE_INT, 480,
     NULL);
gst_app_src_set_caps(GST_APP_SRC(app->appsrc), caps);

Full source code is here
http://pastebin.com/PJuGVJLC

Any pointers?

John

------------------------------------------------------------------------------
Increase Visibility of Your 3D Game App & Earn a Chance To Win $500!
Tap into the largest installed PC base & get more eyes on your game by
optimizing for Intel(R) Graphics Technology. Get started today with the
Intel(R) Software Partner Program. Five $500 cash prizes are up for grabs.
http://p.sf.net/sfu/intelisp-dev2dev
_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/gstreamer-devel
Reply | Threaded
Open this post in threaded view
|

Re: Another GstAppSrc Question

ved kpl
it expects the entire rgb caps...
Easier way would be to use videoparse after the appsrc.
eg. appsrc ! videoparse width=640 height=480 format=rgb ! ....

On Thu, Dec 2, 2010 at 11:28 AM, John Stowers
<[hidden email]> wrote:

> Hi All,
>
> I see quite a few similar questions to these on the gst-devel mailing
> list, but none of them allowed me to get past my problem.
>
> I'm building a streaming video thing using gstreamer, the prototype
> (works fine) is
>
> sender:
> gst-launch -v videotestsrc !
> video/x-raw-rgb,width=640,height=480,bpp=24,depth=24 !
> ffmpegcolorspace ! videoscale method=1 ! theoraenc bitrate=150 ! udpsink
> host=127.0.0.1 port=1234
>
> viewer:
> gst-launch -v udpsrc port=1234 ! theoradec ! autovideosink
>
> I have been translating it to C starting with the appsrc-stream example.
> I can't get it to negotiate the caps I set properly. The relevant
> warning messages are;
>
> basetransform
> gstbasetransform.c:1047:gst_base_transform_acceptcaps:<videoscale0>
> transform could not transform video/x-raw-rgb, bpp=(int)24,
> depth=(int)24, width=(int)640, height=(int)480 in anything we support
> 0:00:00.178133697 10789  0x829a8d0 WARN           basetransform
> gstbasetransform.c:1144:gst_base_transform_setcaps:<ffmpegcsp0> FAILED
> to configure caps <ffmpegcsp0:src> to accept video/x-raw-yuv,
> format=(fourcc)I420, framerate=(fraction)1/2147483647, width=(int)640,
> height=(int)480
>
> The relevant code is;
>
> app->pipeline = gst_parse_launch("appsrc name=mysource !
> video/x-raw-rgb,width=640,height=480,bpp=24,depth=24 !
> ffmpegcolorspace ! videoscale method=1 ! theoraenc bitrate=150 ! udpsink
> host=127.0.0.1 port=1234", NULL);
>
> <snip>
>
> caps = gst_caps_new_simple ("video/x-raw-rgb",
>    "bpp",G_TYPE_INT,24,
>    "depth",G_TYPE_INT,24,
>     "width", G_TYPE_INT, 640,
>     "height", G_TYPE_INT, 480,
>     NULL);
> gst_app_src_set_caps(GST_APP_SRC(app->appsrc), caps);
>
> Full source code is here
> http://pastebin.com/PJuGVJLC
>
> Any pointers?
>
> John
>
> ------------------------------------------------------------------------------
> Increase Visibility of Your 3D Game App & Earn a Chance To Win $500!
> Tap into the largest installed PC base & get more eyes on your game by
> optimizing for Intel(R) Graphics Technology. Get started today with the
> Intel(R) Software Partner Program. Five $500 cash prizes are up for grabs.
> http://p.sf.net/sfu/intelisp-dev2dev
> _______________________________________________
> gstreamer-devel mailing list
> [hidden email]
> https://lists.sourceforge.net/lists/listinfo/gstreamer-devel
>

------------------------------------------------------------------------------
Increase Visibility of Your 3D Game App & Earn a Chance To Win $500!
Tap into the largest installed PC base & get more eyes on your game by
optimizing for Intel(R) Graphics Technology. Get started today with the
Intel(R) Software Partner Program. Five $500 cash prizes are up for grabs.
http://p.sf.net/sfu/intelisp-dev2dev
_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/gstreamer-devel
Reply | Threaded
Open this post in threaded view
|

Re: Another GstAppSrc Question

Prabhulinga Swamy B S
In reply to this post by John Stowers
Hi John,

You can just leave out the filter you are doing between 'appsrc' and
'ffmpegcolorspace'.
That is not required since you are setting the caps of appsrc, that fine.
Have you tried like this?

app->pipeline = gst_parse_launch("appsrc name=mysource ! "
        " ffmpegcolorspace ! videoscale method=1 ! theoraenc bitrate=150 ! udpsink "
        " host=127.0.0.1 port=1234", NULL);


Prabhu



On 12/02/2010 11:28 AM, John Stowers wrote:

> Hi All,
>
> I see quite a few similar questions to these on the gst-devel mailing
> list, but none of them allowed me to get past my problem.
>
> I'm building a streaming video thing using gstreamer, the prototype
> (works fine) is
>
> sender:
> gst-launch -v videotestsrc !
> video/x-raw-rgb,width=640,height=480,bpp=24,depth=24 !
> ffmpegcolorspace ! videoscale method=1 ! theoraenc bitrate=150 ! udpsink
> host=127.0.0.1 port=1234
>
> viewer:
> gst-launch -v udpsrc port=1234 ! theoradec ! autovideosink
>
> I have been translating it to C starting with the appsrc-stream example.
> I can't get it to negotiate the caps I set properly. The relevant
> warning messages are;
>
> basetransform
> gstbasetransform.c:1047:gst_base_transform_acceptcaps:<videoscale0>
> transform could not transform video/x-raw-rgb, bpp=(int)24,
> depth=(int)24, width=(int)640, height=(int)480 in anything we support
> 0:00:00.178133697 10789  0x829a8d0 WARN           basetransform
> gstbasetransform.c:1144:gst_base_transform_setcaps:<ffmpegcsp0>  FAILED
> to configure caps<ffmpegcsp0:src>  to accept video/x-raw-yuv,
> format=(fourcc)I420, framerate=(fraction)1/2147483647, width=(int)640,
> height=(int)480
>
> The relevant code is;
>
> app->pipeline = gst_parse_launch("appsrc name=mysource !
> video/x-raw-rgb,width=640,height=480,bpp=24,depth=24 !
> ffmpegcolorspace ! videoscale method=1 ! theoraenc bitrate=150 ! udpsink
> host=127.0.0.1 port=1234", NULL);
>
> <snip>
>
> caps = gst_caps_new_simple ("video/x-raw-rgb",
>      "bpp",G_TYPE_INT,24,
>      "depth",G_TYPE_INT,24,
>       "width", G_TYPE_INT, 640,
>       "height", G_TYPE_INT, 480,
>       NULL);
> gst_app_src_set_caps(GST_APP_SRC(app->appsrc), caps);
>
> Full source code is here
> http://pastebin.com/PJuGVJLC
>
> Any pointers?
>
> John
>
>
>    

------------------------------------------------------------------------------
Increase Visibility of Your 3D Game App & Earn a Chance To Win $500!
Tap into the largest installed PC base & get more eyes on your game by
optimizing for Intel(R) Graphics Technology. Get started today with the
Intel(R) Software Partner Program. Five $500 cash prizes are up for grabs.
http://p.sf.net/sfu/intelisp-dev2dev
_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/gstreamer-devel
Reply | Threaded
Open this post in threaded view
|

Re: Another GstAppSrc Question

John Stowers
In reply to this post by ved kpl
On Thu, Dec 2, 2010 at 10:39 PM, ved kpl <[hidden email]> wrote:
> it expects the entire rgb caps...
> Easier way would be to use videoparse after the appsrc.
> eg. appsrc ! videoparse width=640 height=480 format=rgb ! ....

It worked fine without any extra caps

The videoparse stuff made it work!

Thanks a lot

John

>
> On Thu, Dec 2, 2010 at 11:28 AM, John Stowers
> <[hidden email]> wrote:
>> Hi All,
>>
>> I see quite a few similar questions to these on the gst-devel mailing
>> list, but none of them allowed me to get past my problem.
>>
>> I'm building a streaming video thing using gstreamer, the prototype
>> (works fine) is
>>
>> sender:
>> gst-launch -v videotestsrc !
>> video/x-raw-rgb,width=640,height=480,bpp=24,depth=24 !
>> ffmpegcolorspace ! videoscale method=1 ! theoraenc bitrate=150 ! udpsink
>> host=127.0.0.1 port=1234
>>
>> viewer:
>> gst-launch -v udpsrc port=1234 ! theoradec ! autovideosink
>>
>> I have been translating it to C starting with the appsrc-stream example.
>> I can't get it to negotiate the caps I set properly. The relevant
>> warning messages are;
>>
>> basetransform
>> gstbasetransform.c:1047:gst_base_transform_acceptcaps:<videoscale0>
>> transform could not transform video/x-raw-rgb, bpp=(int)24,
>> depth=(int)24, width=(int)640, height=(int)480 in anything we support
>> 0:00:00.178133697 10789  0x829a8d0 WARN           basetransform
>> gstbasetransform.c:1144:gst_base_transform_setcaps:<ffmpegcsp0> FAILED
>> to configure caps <ffmpegcsp0:src> to accept video/x-raw-yuv,
>> format=(fourcc)I420, framerate=(fraction)1/2147483647, width=(int)640,
>> height=(int)480
>>
>> The relevant code is;
>>
>> app->pipeline = gst_parse_launch("appsrc name=mysource !
>> video/x-raw-rgb,width=640,height=480,bpp=24,depth=24 !
>> ffmpegcolorspace ! videoscale method=1 ! theoraenc bitrate=150 ! udpsink
>> host=127.0.0.1 port=1234", NULL);
>>
>> <snip>
>>
>> caps = gst_caps_new_simple ("video/x-raw-rgb",
>>    "bpp",G_TYPE_INT,24,
>>    "depth",G_TYPE_INT,24,
>>     "width", G_TYPE_INT, 640,
>>     "height", G_TYPE_INT, 480,
>>     NULL);
>> gst_app_src_set_caps(GST_APP_SRC(app->appsrc), caps);
>>
>> Full source code is here
>> http://pastebin.com/PJuGVJLC
>>
>> Any pointers?
>>
>> John
>>
>> ------------------------------------------------------------------------------
>> Increase Visibility of Your 3D Game App & Earn a Chance To Win $500!
>> Tap into the largest installed PC base & get more eyes on your game by
>> optimizing for Intel(R) Graphics Technology. Get started today with the
>> Intel(R) Software Partner Program. Five $500 cash prizes are up for grabs.
>> http://p.sf.net/sfu/intelisp-dev2dev
>> _______________________________________________
>> gstreamer-devel mailing list
>> [hidden email]
>> https://lists.sourceforge.net/lists/listinfo/gstreamer-devel
>>
>
> ------------------------------------------------------------------------------
> Increase Visibility of Your 3D Game App & Earn a Chance To Win $500!
> Tap into the largest installed PC base & get more eyes on your game by
> optimizing for Intel(R) Graphics Technology. Get started today with the
> Intel(R) Software Partner Program. Five $500 cash prizes are up for grabs.
> http://p.sf.net/sfu/intelisp-dev2dev
> _______________________________________________
> gstreamer-devel mailing list
> [hidden email]
> https://lists.sourceforge.net/lists/listinfo/gstreamer-devel
>

------------------------------------------------------------------------------
Increase Visibility of Your 3D Game App & Earn a Chance To Win $500!
Tap into the largest installed PC base & get more eyes on your game by
optimizing for Intel(R) Graphics Technology. Get started today with the
Intel(R) Software Partner Program. Five $500 cash prizes are up for grabs.
http://p.sf.net/sfu/intelisp-dev2dev
_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/gstreamer-devel
Reply | Threaded
Open this post in threaded view
|

Re: Another GstAppSrc Question

John Stowers
In reply to this post by Prabhulinga Swamy B S
On Thu, Dec 2, 2010 at 10:52 PM, Prabhulinga Swamy B S
<[hidden email]> wrote:
> Hi John,
>
> You can just leave out the filter you are doing between 'appsrc' and
> 'ffmpegcolorspace'.
> That is not required since you are setting the caps of appsrc, that fine.
> Have you tried like this?

Yeah. The solution was to add a videoparse filter (noted in another reply).

Thanks,

John

>
> app->pipeline = gst_parse_launch("appsrc name=mysource ! "
>        " ffmpegcolorspace ! videoscale method=1 ! theoraenc bitrate=150 ! udpsink "
>        " host=127.0.0.1 port=1234", NULL);
>
>
> Prabhu
>
>
>
> On 12/02/2010 11:28 AM, John Stowers wrote:
>> Hi All,
>>
>> I see quite a few similar questions to these on the gst-devel mailing
>> list, but none of them allowed me to get past my problem.
>>
>> I'm building a streaming video thing using gstreamer, the prototype
>> (works fine) is
>>
>> sender:
>> gst-launch -v videotestsrc !
>> video/x-raw-rgb,width=640,height=480,bpp=24,depth=24 !
>> ffmpegcolorspace ! videoscale method=1 ! theoraenc bitrate=150 ! udpsink
>> host=127.0.0.1 port=1234
>>
>> viewer:
>> gst-launch -v udpsrc port=1234 ! theoradec ! autovideosink
>>
>> I have been translating it to C starting with the appsrc-stream example.
>> I can't get it to negotiate the caps I set properly. The relevant
>> warning messages are;
>>
>> basetransform
>> gstbasetransform.c:1047:gst_base_transform_acceptcaps:<videoscale0>
>> transform could not transform video/x-raw-rgb, bpp=(int)24,
>> depth=(int)24, width=(int)640, height=(int)480 in anything we support
>> 0:00:00.178133697 10789  0x829a8d0 WARN           basetransform
>> gstbasetransform.c:1144:gst_base_transform_setcaps:<ffmpegcsp0>  FAILED
>> to configure caps<ffmpegcsp0:src>  to accept video/x-raw-yuv,
>> format=(fourcc)I420, framerate=(fraction)1/2147483647, width=(int)640,
>> height=(int)480
>>
>> The relevant code is;
>>
>> app->pipeline = gst_parse_launch("appsrc name=mysource !
>> video/x-raw-rgb,width=640,height=480,bpp=24,depth=24 !
>> ffmpegcolorspace ! videoscale method=1 ! theoraenc bitrate=150 ! udpsink
>> host=127.0.0.1 port=1234", NULL);
>>
>> <snip>
>>
>> caps = gst_caps_new_simple ("video/x-raw-rgb",
>>      "bpp",G_TYPE_INT,24,
>>      "depth",G_TYPE_INT,24,
>>       "width", G_TYPE_INT, 640,
>>       "height", G_TYPE_INT, 480,
>>       NULL);
>> gst_app_src_set_caps(GST_APP_SRC(app->appsrc), caps);
>>
>> Full source code is here
>> http://pastebin.com/PJuGVJLC
>>
>> Any pointers?
>>
>> John
>>
>>
>>
>
> ------------------------------------------------------------------------------
> Increase Visibility of Your 3D Game App & Earn a Chance To Win $500!
> Tap into the largest installed PC base & get more eyes on your game by
> optimizing for Intel(R) Graphics Technology. Get started today with the
> Intel(R) Software Partner Program. Five $500 cash prizes are up for grabs.
> http://p.sf.net/sfu/intelisp-dev2dev
> _______________________________________________
> gstreamer-devel mailing list
> [hidden email]
> https://lists.sourceforge.net/lists/listinfo/gstreamer-devel
>

------------------------------------------------------------------------------
Increase Visibility of Your 3D Game App & Earn a Chance To Win $500!
Tap into the largest installed PC base & get more eyes on your game by
optimizing for Intel(R) Graphics Technology. Get started today with the
Intel(R) Software Partner Program. Five $500 cash prizes are up for grabs.
http://p.sf.net/sfu/intelisp-dev2dev
_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/gstreamer-devel
Reply | Threaded
Open this post in threaded view
|

Re: Another GstAppSrc Question

ved kpl
On Thu, Dec 2, 2010 at 4:24 PM, John Stowers
<[hidden email]> wrote:

> On Thu, Dec 2, 2010 at 10:52 PM, Prabhulinga Swamy B S
> <[hidden email]> wrote:
>> Hi John,
>>
>> You can just leave out the filter you are doing between 'appsrc' and
>> 'ffmpegcolorspace'.
>> That is not required since you are setting the caps of appsrc, that fine.
>> Have you tried like this?
>
> Yeah. The solution was to add a videoparse filter (noted in another reply).

   Also, u need not set any caps on appsrc.
>
> Thanks,
>
> John



>>
>> app->pipeline = gst_parse_launch("appsrc name=mysource ! "
>>        " ffmpegcolorspace ! videoscale method=1 ! theoraenc bitrate=150 ! udpsink "
>>        " host=127.0.0.1 port=1234", NULL);
>>
>>
>> Prabhu
>>
>>
>>
>> On 12/02/2010 11:28 AM, John Stowers wrote:
>>> Hi All,
>>>
>>> I see quite a few similar questions to these on the gst-devel mailing
>>> list, but none of them allowed me to get past my problem.
>>>
>>> I'm building a streaming video thing using gstreamer, the prototype
>>> (works fine) is
>>>
>>> sender:
>>> gst-launch -v videotestsrc !
>>> video/x-raw-rgb,width=640,height=480,bpp=24,depth=24 !
>>> ffmpegcolorspace ! videoscale method=1 ! theoraenc bitrate=150 ! udpsink
>>> host=127.0.0.1 port=1234
>>>
>>> viewer:
>>> gst-launch -v udpsrc port=1234 ! theoradec ! autovideosink
>>>
>>> I have been translating it to C starting with the appsrc-stream example.
>>> I can't get it to negotiate the caps I set properly. The relevant
>>> warning messages are;
>>>
>>> basetransform
>>> gstbasetransform.c:1047:gst_base_transform_acceptcaps:<videoscale0>
>>> transform could not transform video/x-raw-rgb, bpp=(int)24,
>>> depth=(int)24, width=(int)640, height=(int)480 in anything we support
>>> 0:00:00.178133697 10789  0x829a8d0 WARN           basetransform
>>> gstbasetransform.c:1144:gst_base_transform_setcaps:<ffmpegcsp0>  FAILED
>>> to configure caps<ffmpegcsp0:src>  to accept video/x-raw-yuv,
>>> format=(fourcc)I420, framerate=(fraction)1/2147483647, width=(int)640,
>>> height=(int)480
>>>
>>> The relevant code is;
>>>
>>> app->pipeline = gst_parse_launch("appsrc name=mysource !
>>> video/x-raw-rgb,width=640,height=480,bpp=24,depth=24 !
>>> ffmpegcolorspace ! videoscale method=1 ! theoraenc bitrate=150 ! udpsink
>>> host=127.0.0.1 port=1234", NULL);
>>>
>>> <snip>
>>>
>>> caps = gst_caps_new_simple ("video/x-raw-rgb",
>>>      "bpp",G_TYPE_INT,24,
>>>      "depth",G_TYPE_INT,24,
>>>       "width", G_TYPE_INT, 640,
>>>       "height", G_TYPE_INT, 480,
>>>       NULL);
>>> gst_app_src_set_caps(GST_APP_SRC(app->appsrc), caps);
>>>
>>> Full source code is here
>>> http://pastebin.com/PJuGVJLC
>>>
>>> Any pointers?
>>>
>>> John
>>>
>>>
>>>
>>
>> ------------------------------------------------------------------------------
>> Increase Visibility of Your 3D Game App & Earn a Chance To Win $500!
>> Tap into the largest installed PC base & get more eyes on your game by
>> optimizing for Intel(R) Graphics Technology. Get started today with the
>> Intel(R) Software Partner Program. Five $500 cash prizes are up for grabs.
>> http://p.sf.net/sfu/intelisp-dev2dev
>> _______________________________________________
>> gstreamer-devel mailing list
>> [hidden email]
>> https://lists.sourceforge.net/lists/listinfo/gstreamer-devel
>>
>
> ------------------------------------------------------------------------------
> Increase Visibility of Your 3D Game App & Earn a Chance To Win $500!
> Tap into the largest installed PC base & get more eyes on your game by
> optimizing for Intel(R) Graphics Technology. Get started today with the
> Intel(R) Software Partner Program. Five $500 cash prizes are up for grabs.
> http://p.sf.net/sfu/intelisp-dev2dev
> _______________________________________________
> gstreamer-devel mailing list
> [hidden email]
> https://lists.sourceforge.net/lists/listinfo/gstreamer-devel
>

------------------------------------------------------------------------------
Increase Visibility of Your 3D Game App & Earn a Chance To Win $500!
Tap into the largest installed PC base & get more eyes on your game by
optimizing for Intel(R) Graphics Technology. Get started today with the
Intel(R) Software Partner Program. Five $500 cash prizes are up for grabs.
http://p.sf.net/sfu/intelisp-dev2dev
_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/gstreamer-devel
Reply | Threaded
Open this post in threaded view
|

Re: Another GstAppSrc Question

John Stowers
On Fri, Dec 3, 2010 at 1:11 AM, ved kpl <[hidden email]> wrote:

> On Thu, Dec 2, 2010 at 4:24 PM, John Stowers
> <[hidden email]> wrote:
>> On Thu, Dec 2, 2010 at 10:52 PM, Prabhulinga Swamy B S
>> <[hidden email]> wrote:
>>> Hi John,
>>>
>>> You can just leave out the filter you are doing between 'appsrc' and
>>> 'ffmpegcolorspace'.
>>> That is not required since you are setting the caps of appsrc, that fine.
>>> Have you tried like this?
>>
>> Yeah. The solution was to add a videoparse filter (noted in another reply).
>
>   Also, u need not set any caps on appsrc.

Is this the recommended way of doing things? It feels like it breaks
abstraction / the point of caps. I mean I wanted to support streaming
multiple video types by only setting different caps on the appsrc and
letting ffmpegcolorspace convert to what was necessary.

So I suspect the root cause of why those caps failed to work remains
unknown. It does not matter even if I set all the rgb caps, still no
success.

Do you know how I might solve this while maintaining the abstraction
of video type through only the setting of caps?

Full code is here;
https://gist.github.com/725122

Thanks,

John

>>
>> Thanks,
>>
>> John
>
>
>
>>>
>>> app->pipeline = gst_parse_launch("appsrc name=mysource ! "
>>>        " ffmpegcolorspace ! videoscale method=1 ! theoraenc bitrate=150 ! udpsink "
>>>        " host=127.0.0.1 port=1234", NULL);
>>>
>>>
>>> Prabhu
>>>
>>>
>>>
>>> On 12/02/2010 11:28 AM, John Stowers wrote:
>>>> Hi All,
>>>>
>>>> I see quite a few similar questions to these on the gst-devel mailing
>>>> list, but none of them allowed me to get past my problem.
>>>>
>>>> I'm building a streaming video thing using gstreamer, the prototype
>>>> (works fine) is
>>>>
>>>> sender:
>>>> gst-launch -v videotestsrc !
>>>> video/x-raw-rgb,width=640,height=480,bpp=24,depth=24 !
>>>> ffmpegcolorspace ! videoscale method=1 ! theoraenc bitrate=150 ! udpsink
>>>> host=127.0.0.1 port=1234
>>>>
>>>> viewer:
>>>> gst-launch -v udpsrc port=1234 ! theoradec ! autovideosink
>>>>
>>>> I have been translating it to C starting with the appsrc-stream example.
>>>> I can't get it to negotiate the caps I set properly. The relevant
>>>> warning messages are;
>>>>
>>>> basetransform
>>>> gstbasetransform.c:1047:gst_base_transform_acceptcaps:<videoscale0>
>>>> transform could not transform video/x-raw-rgb, bpp=(int)24,
>>>> depth=(int)24, width=(int)640, height=(int)480 in anything we support
>>>> 0:00:00.178133697 10789  0x829a8d0 WARN           basetransform
>>>> gstbasetransform.c:1144:gst_base_transform_setcaps:<ffmpegcsp0>  FAILED
>>>> to configure caps<ffmpegcsp0:src>  to accept video/x-raw-yuv,
>>>> format=(fourcc)I420, framerate=(fraction)1/2147483647, width=(int)640,
>>>> height=(int)480
>>>>
>>>> The relevant code is;
>>>>
>>>> app->pipeline = gst_parse_launch("appsrc name=mysource !
>>>> video/x-raw-rgb,width=640,height=480,bpp=24,depth=24 !
>>>> ffmpegcolorspace ! videoscale method=1 ! theoraenc bitrate=150 ! udpsink
>>>> host=127.0.0.1 port=1234", NULL);
>>>>
>>>> <snip>
>>>>
>>>> caps = gst_caps_new_simple ("video/x-raw-rgb",
>>>>      "bpp",G_TYPE_INT,24,
>>>>      "depth",G_TYPE_INT,24,
>>>>       "width", G_TYPE_INT, 640,
>>>>       "height", G_TYPE_INT, 480,
>>>>       NULL);
>>>> gst_app_src_set_caps(GST_APP_SRC(app->appsrc), caps);
>>>>
>>>> Full source code is here
>>>> http://pastebin.com/PJuGVJLC
>>>>
>>>> Any pointers?
>>>>
>>>> John
>>>>
>>>>
>>>>
>>>
>>> ------------------------------------------------------------------------------
>>> Increase Visibility of Your 3D Game App & Earn a Chance To Win $500!
>>> Tap into the largest installed PC base & get more eyes on your game by
>>> optimizing for Intel(R) Graphics Technology. Get started today with the
>>> Intel(R) Software Partner Program. Five $500 cash prizes are up for grabs.
>>> http://p.sf.net/sfu/intelisp-dev2dev
>>> _______________________________________________
>>> gstreamer-devel mailing list
>>> [hidden email]
>>> https://lists.sourceforge.net/lists/listinfo/gstreamer-devel
>>>
>>
>> ------------------------------------------------------------------------------
>> Increase Visibility of Your 3D Game App & Earn a Chance To Win $500!
>> Tap into the largest installed PC base & get more eyes on your game by
>> optimizing for Intel(R) Graphics Technology. Get started today with the
>> Intel(R) Software Partner Program. Five $500 cash prizes are up for grabs.
>> http://p.sf.net/sfu/intelisp-dev2dev
>> _______________________________________________
>> gstreamer-devel mailing list
>> [hidden email]
>> https://lists.sourceforge.net/lists/listinfo/gstreamer-devel
>>
>
> ------------------------------------------------------------------------------
> Increase Visibility of Your 3D Game App & Earn a Chance To Win $500!
> Tap into the largest installed PC base & get more eyes on your game by
> optimizing for Intel(R) Graphics Technology. Get started today with the
> Intel(R) Software Partner Program. Five $500 cash prizes are up for grabs.
> http://p.sf.net/sfu/intelisp-dev2dev
> _______________________________________________
> gstreamer-devel mailing list
> [hidden email]
> https://lists.sourceforge.net/lists/listinfo/gstreamer-devel
>

------------------------------------------------------------------------------
Increase Visibility of Your 3D Game App & Earn a Chance To Win $500!
Tap into the largest installed PC base & get more eyes on your game by
optimizing for Intel(R) Graphics Technology. Get started today with the
Intel(R) Software Partner Program. Five $500 cash prizes are up for grabs.
http://p.sf.net/sfu/intelisp-dev2dev
_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/gstreamer-devel
Reply | Threaded
Open this post in threaded view
|

Re: Another GstAppSrc Question

John Stowers
On Fri, Dec 3, 2010 at 8:06 AM, John Stowers
<[hidden email]> wrote:

> On Fri, Dec 3, 2010 at 1:11 AM, ved kpl <[hidden email]> wrote:
>> On Thu, Dec 2, 2010 at 4:24 PM, John Stowers
>> <[hidden email]> wrote:
>>> On Thu, Dec 2, 2010 at 10:52 PM, Prabhulinga Swamy B S
>>> <[hidden email]> wrote:
>>>> Hi John,
>>>>
>>>> You can just leave out the filter you are doing between 'appsrc' and
>>>> 'ffmpegcolorspace'.
>>>> That is not required since you are setting the caps of appsrc, that fine.
>>>> Have you tried like this?
>>>
>>> Yeah. The solution was to add a videoparse filter (noted in another reply).
>>
>>   Also, u need not set any caps on appsrc.
>
> Is this the recommended way of doing things? It feels like it breaks
> abstraction / the point of caps. I mean I wanted to support streaming
> multiple video types by only setting different caps on the appsrc and
> letting ffmpegcolorspace convert to what was necessary.
>
> So I suspect the root cause of why those caps failed to work remains
> unknown. It does not matter even if I set all the rgb caps, still no
> success.

Got it, I had the wrong mask values - I was assuming RGBA and it looks
like the mask is applied against ARGB. The following works

  caps = gst_caps_new_simple ("video/x-raw-rgb",
                "width", G_TYPE_INT, 640,
                "height", G_TYPE_INT, 480,
                "bpp", G_TYPE_INT, 24,
                "depth", G_TYPE_INT, 24,
                "red_mask",   G_TYPE_INT, 0x00ff0000,
                "green_mask", G_TYPE_INT, 0x0000ff00,
                "blue_mask",  G_TYPE_INT, 0x000000ff,
                "framerate", GST_TYPE_FRACTION, 25, 1,
                "endianness", G_TYPE_INT, G_BIG_ENDIAN,
                NULL);

Seems odd that I need to set the framerate on my appsrc (it is
streaming, with largely unknown rate), but oh well.

Thanks all for the help.

John


>
> Do you know how I might solve this while maintaining the abstraction
> of video type through only the setting of caps?
>
> Full code is here;
> https://gist.github.com/725122
>
> Thanks,
>
> John
>
>>>
>>> Thanks,
>>>
>>> John
>>
>>
>>
>>>>
>>>> app->pipeline = gst_parse_launch("appsrc name=mysource ! "
>>>>        " ffmpegcolorspace ! videoscale method=1 ! theoraenc bitrate=150 ! udpsink "
>>>>        " host=127.0.0.1 port=1234", NULL);
>>>>
>>>>
>>>> Prabhu
>>>>
>>>>
>>>>
>>>> On 12/02/2010 11:28 AM, John Stowers wrote:
>>>>> Hi All,
>>>>>
>>>>> I see quite a few similar questions to these on the gst-devel mailing
>>>>> list, but none of them allowed me to get past my problem.
>>>>>
>>>>> I'm building a streaming video thing using gstreamer, the prototype
>>>>> (works fine) is
>>>>>
>>>>> sender:
>>>>> gst-launch -v videotestsrc !
>>>>> video/x-raw-rgb,width=640,height=480,bpp=24,depth=24 !
>>>>> ffmpegcolorspace ! videoscale method=1 ! theoraenc bitrate=150 ! udpsink
>>>>> host=127.0.0.1 port=1234
>>>>>
>>>>> viewer:
>>>>> gst-launch -v udpsrc port=1234 ! theoradec ! autovideosink
>>>>>
>>>>> I have been translating it to C starting with the appsrc-stream example.
>>>>> I can't get it to negotiate the caps I set properly. The relevant
>>>>> warning messages are;
>>>>>
>>>>> basetransform
>>>>> gstbasetransform.c:1047:gst_base_transform_acceptcaps:<videoscale0>
>>>>> transform could not transform video/x-raw-rgb, bpp=(int)24,
>>>>> depth=(int)24, width=(int)640, height=(int)480 in anything we support
>>>>> 0:00:00.178133697 10789  0x829a8d0 WARN           basetransform
>>>>> gstbasetransform.c:1144:gst_base_transform_setcaps:<ffmpegcsp0>  FAILED
>>>>> to configure caps<ffmpegcsp0:src>  to accept video/x-raw-yuv,
>>>>> format=(fourcc)I420, framerate=(fraction)1/2147483647, width=(int)640,
>>>>> height=(int)480
>>>>>
>>>>> The relevant code is;
>>>>>
>>>>> app->pipeline = gst_parse_launch("appsrc name=mysource !
>>>>> video/x-raw-rgb,width=640,height=480,bpp=24,depth=24 !
>>>>> ffmpegcolorspace ! videoscale method=1 ! theoraenc bitrate=150 ! udpsink
>>>>> host=127.0.0.1 port=1234", NULL);
>>>>>
>>>>> <snip>
>>>>>
>>>>> caps = gst_caps_new_simple ("video/x-raw-rgb",
>>>>>      "bpp",G_TYPE_INT,24,
>>>>>      "depth",G_TYPE_INT,24,
>>>>>       "width", G_TYPE_INT, 640,
>>>>>       "height", G_TYPE_INT, 480,
>>>>>       NULL);
>>>>> gst_app_src_set_caps(GST_APP_SRC(app->appsrc), caps);
>>>>>
>>>>> Full source code is here
>>>>> http://pastebin.com/PJuGVJLC
>>>>>
>>>>> Any pointers?
>>>>>
>>>>> John
>>>>>
>>>>>
>>>>>
>>>>
>>>> ------------------------------------------------------------------------------
>>>> Increase Visibility of Your 3D Game App & Earn a Chance To Win $500!
>>>> Tap into the largest installed PC base & get more eyes on your game by
>>>> optimizing for Intel(R) Graphics Technology. Get started today with the
>>>> Intel(R) Software Partner Program. Five $500 cash prizes are up for grabs.
>>>> http://p.sf.net/sfu/intelisp-dev2dev
>>>> _______________________________________________
>>>> gstreamer-devel mailing list
>>>> [hidden email]
>>>> https://lists.sourceforge.net/lists/listinfo/gstreamer-devel
>>>>
>>>
>>> ------------------------------------------------------------------------------
>>> Increase Visibility of Your 3D Game App & Earn a Chance To Win $500!
>>> Tap into the largest installed PC base & get more eyes on your game by
>>> optimizing for Intel(R) Graphics Technology. Get started today with the
>>> Intel(R) Software Partner Program. Five $500 cash prizes are up for grabs.
>>> http://p.sf.net/sfu/intelisp-dev2dev
>>> _______________________________________________
>>> gstreamer-devel mailing list
>>> [hidden email]
>>> https://lists.sourceforge.net/lists/listinfo/gstreamer-devel
>>>
>>
>> ------------------------------------------------------------------------------
>> Increase Visibility of Your 3D Game App & Earn a Chance To Win $500!
>> Tap into the largest installed PC base & get more eyes on your game by
>> optimizing for Intel(R) Graphics Technology. Get started today with the
>> Intel(R) Software Partner Program. Five $500 cash prizes are up for grabs.
>> http://p.sf.net/sfu/intelisp-dev2dev
>> _______________________________________________
>> gstreamer-devel mailing list
>> [hidden email]
>> https://lists.sourceforge.net/lists/listinfo/gstreamer-devel
>>
>

------------------------------------------------------------------------------
Increase Visibility of Your 3D Game App & Earn a Chance To Win $500!
Tap into the largest installed PC base & get more eyes on your game by
optimizing for Intel(R) Graphics Technology. Get started today with the
Intel(R) Software Partner Program. Five $500 cash prizes are up for grabs.
http://p.sf.net/sfu/intelisp-dev2dev
_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/gstreamer-devel