shmsrc/shmsink plugin

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

shmsrc/shmsink plugin

Pazzo Da Legare
I'm trying to use shmsrc/shmsink to decode a video source once and use
decoded video from many application so I start testing the plugins
using videotestsrc to produce a test stream and many consumer to
receive it


Producer:
gst-launch videotestsrc ! shmsink socket-path=/tmp/dudda
shm-size=10000000 wait-for-connection=false preroll-queue-len=5

Consumers:

gst-launch shmsrc socket-path=/tmp/dudda !
"video/x-raw-yuv,format=(fourcc)YUY2, color-matrix=(string)sdtv,
chroma-site=(string)mpeg2,width=(int)320, height=(int)240,
framerate=(fraction)30/1" ! autovideosink

But when I start the fifth (sometimes the forth) consumer I ran into
problem: which are the limitation of shmsrc, I wonder the use of a
global lock.

The message I got is:

gst-launch shmsrc socket-path=/tmp/blah !
"video/x-raw-yuv,format=(fourcc)YUY2, color-matrix=(string)sdtv,
chroma-site=(string)mpeg2,width=(int)320, height=(int)240,
framerate=(fraction)30/1" ! autovideosink
Setting pipeline to PAUSED ...
Pipeline is PREROLLING ...
ERROR: from element /GstPipeline:pipeline0/GstCapsFilter:capsfilter0:
Filter caps do not completely specify the output format
Additional debug info:
gstcapsfilter.c(392): gst_capsfilter_prepare_buf ():
/GstPipeline:pipeline0/GstCapsFilter:capsfilter0:
Output caps are unfixed: EMPTY
ERROR: pipeline doesn't want to preroll.
Setting pipeline to NULL ...
Freeing pipeline ...

Any clue?

Maurizio
_______________________________________________
gstreamer-devel mailing list
[hidden email]
http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
Reply | Threaded
Open this post in threaded view
|

Re: shmsrc/shmsink plugin

Pazzo Da Legare
Uh uh someone claims this problem here:

https://bugzilla.gnome.org/show_bug.cgi?id=669697


2012/2/21 Pazzo Da Legare <[hidden email]>:

> I'm trying to use shmsrc/shmsink to decode a video source once and use
> decoded video from many application so I start testing the plugins
> using videotestsrc to produce a test stream and many consumer to
> receive it
>
>
> Producer:
> gst-launch videotestsrc ! shmsink socket-path=/tmp/dudda
> shm-size=10000000 wait-for-connection=false preroll-queue-len=5
>
> Consumers:
>
> gst-launch shmsrc socket-path=/tmp/dudda !
> "video/x-raw-yuv,format=(fourcc)YUY2, color-matrix=(string)sdtv,
> chroma-site=(string)mpeg2,width=(int)320, height=(int)240,
> framerate=(fraction)30/1" ! autovideosink
>
> But when I start the fifth (sometimes the forth) consumer I ran into
> problem: which are the limitation of shmsrc, I wonder the use of a
> global lock.
>
> The message I got is:
>
> gst-launch shmsrc socket-path=/tmp/blah !
> "video/x-raw-yuv,format=(fourcc)YUY2, color-matrix=(string)sdtv,
> chroma-site=(string)mpeg2,width=(int)320, height=(int)240,
> framerate=(fraction)30/1" ! autovideosink
> Setting pipeline to PAUSED ...
> Pipeline is PREROLLING ...
> ERROR: from element /GstPipeline:pipeline0/GstCapsFilter:capsfilter0:
> Filter caps do not completely specify the output format
> Additional debug info:
> gstcapsfilter.c(392): gst_capsfilter_prepare_buf ():
> /GstPipeline:pipeline0/GstCapsFilter:capsfilter0:
> Output caps are unfixed: EMPTY
> ERROR: pipeline doesn't want to preroll.
> Setting pipeline to NULL ...
> Freeing pipeline ...
>
> Any clue?
>
> Maurizio
_______________________________________________
gstreamer-devel mailing list
[hidden email]
http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
Reply | Threaded
Open this post in threaded view
|

Re: shmsrc/shmsink plugin

Pazzo Da Legare
I forgot to add my version reference:

gst-launch-0.10 version 0.10.35
GStreamer 0.10.35
https://launchpad.net/distros/ubuntu/+source/gstreamer0.10

on Ubuntu 11.10@64bit

pz

2012/2/21 Pazzo Da Legare <[hidden email]>:

> Uh uh someone claims this problem here:
>
> https://bugzilla.gnome.org/show_bug.cgi?id=669697
>
>
> 2012/2/21 Pazzo Da Legare <[hidden email]>:
>> I'm trying to use shmsrc/shmsink to decode a video source once and use
>> decoded video from many application so I start testing the plugins
>> using videotestsrc to produce a test stream and many consumer to
>> receive it
>>
>>
>> Producer:
>> gst-launch videotestsrc ! shmsink socket-path=/tmp/dudda
>> shm-size=10000000 wait-for-connection=false preroll-queue-len=5
>>
>> Consumers:
>>
>> gst-launch shmsrc socket-path=/tmp/dudda !
>> "video/x-raw-yuv,format=(fourcc)YUY2, color-matrix=(string)sdtv,
>> chroma-site=(string)mpeg2,width=(int)320, height=(int)240,
>> framerate=(fraction)30/1" ! autovideosink
>>
>> But when I start the fifth (sometimes the forth) consumer I ran into
>> problem: which are the limitation of shmsrc, I wonder the use of a
>> global lock.
>>
>> The message I got is:
>>
>> gst-launch shmsrc socket-path=/tmp/blah !
>> "video/x-raw-yuv,format=(fourcc)YUY2, color-matrix=(string)sdtv,
>> chroma-site=(string)mpeg2,width=(int)320, height=(int)240,
>> framerate=(fraction)30/1" ! autovideosink
>> Setting pipeline to PAUSED ...
>> Pipeline is PREROLLING ...
>> ERROR: from element /GstPipeline:pipeline0/GstCapsFilter:capsfilter0:
>> Filter caps do not completely specify the output format
>> Additional debug info:
>> gstcapsfilter.c(392): gst_capsfilter_prepare_buf ():
>> /GstPipeline:pipeline0/GstCapsFilter:capsfilter0:
>> Output caps are unfixed: EMPTY
>> ERROR: pipeline doesn't want to preroll.
>> Setting pipeline to NULL ...
>> Freeing pipeline ...
>>
>> Any clue?
>>
>> Maurizio
_______________________________________________
gstreamer-devel mailing list
[hidden email]
http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
Reply | Threaded
Open this post in threaded view
|

Re: shmsrc/shmsink plugin

Pazzo Da Legare
In reply to this post by Pazzo Da Legare
Could you please help me?

2012/2/21 Pazzo Da Legare <[hidden email]>:

> I'm trying to use shmsrc/shmsink to decode a video source once and use
> decoded video from many application so I start testing the plugins
> using videotestsrc to produce a test stream and many consumer to
> receive it
>
>
> Producer:
> gst-launch videotestsrc ! shmsink socket-path=/tmp/dudda
> shm-size=10000000 wait-for-connection=false preroll-queue-len=5
>
> Consumers:
>
> gst-launch shmsrc socket-path=/tmp/dudda !
> "video/x-raw-yuv,format=(fourcc)YUY2, color-matrix=(string)sdtv,
> chroma-site=(string)mpeg2,width=(int)320, height=(int)240,
> framerate=(fraction)30/1" ! autovideosink
>
> But when I start the fifth (sometimes the forth) consumer I ran into
> problem: which are the limitation of shmsrc, I wonder the use of a
> global lock.
>
> The message I got is:
>
> gst-launch shmsrc socket-path=/tmp/blah !
> "video/x-raw-yuv,format=(fourcc)YUY2, color-matrix=(string)sdtv,
> chroma-site=(string)mpeg2,width=(int)320, height=(int)240,
> framerate=(fraction)30/1" ! autovideosink
> Setting pipeline to PAUSED ...
> Pipeline is PREROLLING ...
> ERROR: from element /GstPipeline:pipeline0/GstCapsFilter:capsfilter0:
> Filter caps do not completely specify the output format
> Additional debug info:
> gstcapsfilter.c(392): gst_capsfilter_prepare_buf ():
> /GstPipeline:pipeline0/GstCapsFilter:capsfilter0:
> Output caps are unfixed: EMPTY
> ERROR: pipeline doesn't want to preroll.
> Setting pipeline to NULL ...
> Freeing pipeline ...
>
> Any clue?
>
> Maurizio
_______________________________________________
gstreamer-devel mailing list
[hidden email]
http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
Reply | Threaded
Open this post in threaded view
|

Re: Re: shmsrc/shmsink plugin

Jan Spurný
Hi,

just an idea - maybe you can try a different approach: forget about shared memory and just split the decoded stream using "tee" element, place a queue in each tee branch (which makes it run in separate thread) and you can do whatever you like in each branch..

sincerely,
Jan Spurny

> ------------ Původní zpráva ------------
> Od: Pazzo Da Legare <[hidden email]>
> Předmět: Re: shmsrc/shmsink plugin
> Datum: 06.3.2012 10:40:20
> ----------------------------------------
> Could you please help me?
>
> 2012/2/21 Pazzo Da Legare <[hidden email]>:
> > I'm trying to use shmsrc/shmsink to decode a video source once and use
> > decoded video from many application so I start testing the plugins
> > using videotestsrc to produce a test stream and many consumer to
> > receive it
> >
> >
> > Producer:
> > gst-launch videotestsrc ! shmsink socket-path=/tmp/dudda
> > shm-size=10000000 wait-for-connection=false preroll-queue-len=5
> >
> > Consumers:
> >
> > gst-launch shmsrc socket-path=/tmp/dudda !
> > "video/x-raw-yuv,format=(fourcc)YUY2, color-matrix=(string)sdtv,
> > chroma-site=(string)mpeg2,width=(int)320, height=(int)240,
> > framerate=(fraction)30/1" ! autovideosink
> >
> > But when I start the fifth (sometimes the forth) consumer I ran into
> > problem: which are the limitation of shmsrc, I wonder the use of a
> > global lock.
> >
> > The message I got is:
> >
> > gst-launch shmsrc socket-path=/tmp/blah !
> > "video/x-raw-yuv,format=(fourcc)YUY2, color-matrix=(string)sdtv,
> > chroma-site=(string)mpeg2,width=(int)320, height=(int)240,
> > framerate=(fraction)30/1" ! autovideosink
> > Setting pipeline to PAUSED ...
> > Pipeline is PREROLLING ...
> > ERROR: from element /GstPipeline:pipeline0/GstCapsFilter:capsfilter0:
> > Filter caps do not completely specify the output format
> > Additional debug info:
> > gstcapsfilter.c(392): gst_capsfilter_prepare_buf ():
> > /GstPipeline:pipeline0/GstCapsFilter:capsfilter0:
> > Output caps are unfixed: EMPTY
> > ERROR: pipeline doesn't want to preroll.
> > Setting pipeline to NULL ...
> > Freeing pipeline ...
> >
> > Any clue?
> >
> > Maurizio
> _______________________________________________
> gstreamer-devel mailing list
> [hidden email]
> http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
>
>
>
_______________________________________________
gstreamer-devel mailing list
[hidden email]
http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
Reply | Threaded
Open this post in threaded view
|

Re: shmsrc/shmsink plugin

Olivier Crête-3
In reply to this post by Pazzo Da Legare
Hi,

On Tue, 2012-02-21 at 11:39 +0100, Pazzo Da Legare wrote:
> But when I start the fifth (sometimes the forth) consumer I ran into
> problem: which are the limitation of shmsrc, I wonder the use of a
> global lock.

There should be no limit on the number of consumers, the only limit is
that they all have to keep up with the producer, otherwise they will end
up stalling the other ones, as the buffers are not freed before each
consumer has consumed it.

> gst-launch shmsrc socket-path=/tmp/blah !
> "video/x-raw-yuv,format=(fourcc)YUY2, color-matrix=(string)sdtv,
> chroma-site=(string)mpeg2,width=(int)320, height=(int)240,
> framerate=(fraction)30/1" ! autovideosink
> ERROR: from element /GstPipeline:pipeline0/GstCapsFilter:capsfilter0:
> Filter caps do not completely specify the output format
> Additional debug info:

This is very strange.. It does it only for the 4th or 5th try ? Tbh, I
haven't really tested with multiple readers much, most users up to now
have had a single one.

--
Olivier Crête
[hidden email]

_______________________________________________
gstreamer-devel mailing list
[hidden email]
http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel

signature.asc (205 bytes) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: Re: shmsrc/shmsink plugin

Pazzo Da Legare
In reply to this post by Jan Spurný
Hi Jan,

Thank you for your advice. I would like to use the shared memory
because I want to decode once and use decoded frame from different
application, dynamically added application.

pz

2012/3/6 Jan Spurný <[hidden email]>:

> Hi,
>
> just an idea - maybe you can try a different approach: forget about shared memory and just split the decoded stream using "tee" element, place a queue in each tee branch (which makes it run in separate thread) and you can do whatever you like in each branch..
>
> sincerely,
> Jan Spurny
>
>> ------------ Původní zpráva ------------
>> Od: Pazzo Da Legare <[hidden email]>
>> Předmět: Re: shmsrc/shmsink plugin
>> Datum: 06.3.2012 10:40:20
>> ----------------------------------------
>> Could you please help me?
>>
>> 2012/2/21 Pazzo Da Legare <[hidden email]>:
>> > I'm trying to use shmsrc/shmsink to decode a video source once and use
>> > decoded video from many application so I start testing the plugins
>> > using videotestsrc to produce a test stream and many consumer to
>> > receive it
>> >
>> >
>> > Producer:
>> > gst-launch videotestsrc ! shmsink socket-path=/tmp/dudda
>> > shm-size=10000000 wait-for-connection=false preroll-queue-len=5
>> >
>> > Consumers:
>> >
>> > gst-launch shmsrc socket-path=/tmp/dudda !
>> > "video/x-raw-yuv,format=(fourcc)YUY2, color-matrix=(string)sdtv,
>> > chroma-site=(string)mpeg2,width=(int)320, height=(int)240,
>> > framerate=(fraction)30/1" ! autovideosink
>> >
>> > But when I start the fifth (sometimes the forth) consumer I ran into
>> > problem: which are the limitation of shmsrc, I wonder the use of a
>> > global lock.
>> >
>> > The message I got is:
>> >
>> > gst-launch shmsrc socket-path=/tmp/blah !
>> > "video/x-raw-yuv,format=(fourcc)YUY2, color-matrix=(string)sdtv,
>> > chroma-site=(string)mpeg2,width=(int)320, height=(int)240,
>> > framerate=(fraction)30/1" ! autovideosink
>> > Setting pipeline to PAUSED ...
>> > Pipeline is PREROLLING ...
>> > ERROR: from element /GstPipeline:pipeline0/GstCapsFilter:capsfilter0:
>> > Filter caps do not completely specify the output format
>> > Additional debug info:
>> > gstcapsfilter.c(392): gst_capsfilter_prepare_buf ():
>> > /GstPipeline:pipeline0/GstCapsFilter:capsfilter0:
>> > Output caps are unfixed: EMPTY
>> > ERROR: pipeline doesn't want to preroll.
>> > Setting pipeline to NULL ...
>> > Freeing pipeline ...
>> >
>> > Any clue?
>> >
>> > Maurizio
>> _______________________________________________
>> gstreamer-devel mailing list
>> [hidden email]
>> http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
>>
>>
>>
> _______________________________________________
> gstreamer-devel mailing list
> [hidden email]
> http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
_______________________________________________
gstreamer-devel mailing list
[hidden email]
http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel