shmsink changes from 1.0.10 to 1.1.4

Peter Maersk-Moller pmaersk at gmail.com
Wed Sep 18 13:03:56 PDT 2013


Problem solved.

It turns out that GStreamer 1.1.4 is a bit more pedantic about timing
compared to 1.0.x and 0.10. The following pipeline will use the shared
memory area and then freeze in 1.1.4 while working in 1.0.x and 0.10

gst-launch-1.0 -v videotestsrc is-live=true ! $RAWVIDEO ! queue ! identity
! shmsink socket-path=/tmp/feed1-control-pipe shm-size=20000000
wait-for-connection=0 sync=true

However if you add 'do-timestamp=true' to videotestsrc, it will flow again,
also in 1.1.4.

gst-launch-1.0 -v videotestsrc is-live=true do-timestamp=true ! $RAWVIDEO !
queue ! identity ! shmsink socket-path=/tmp/feed1-control-pipe
shm-size=20000000 wait-for-connection=0 sync=true

I guess that is an overall change in 1.1.x not only affecting shmsink?
Probably a right decision, but it will for sure be difficult for many
current implementations.

Best regards
Peter MM


On Wed, Sep 18, 2013 at 7:07 PM, Peter Maersk-Moller <pmaersk at gmail.com>wrote:

> Hi.
>
> Apparently there are some changes in plugin shmsink between 1.0.10 and
> 1.1.4 that breaks how external programs should use the shmsink. I tried to
> look in the release announcements for 1.1.1-1.1.4, but only smaller changes
> mostly wrt to how gstreamer handles shmsinks without a connected process
> are listed. Nevertheless, there appear to me to be changes that goes beyond
> that.
>
> I have a program, namely Snowmix that uses the shm of GStreamer heavily
> and it works quite well up till 1.0.10, but for 1.1.4 the shmsink doesn't
> seem to understand when I signal that I have read the buffer it has send. I
> do receive frames send via shmsink until the allocated shm area has been
> used, and then no more, even though I signal over the control connection,
> that I have released the buffers sent.
>
> Has the binary layout format for the control connection messages changed?
> If yes, in what way? Is it documented somewhere?
>
> If the binary format has changed, we really need for it to be able to tell
> its version over the control connection so applications can detect the
> gstreamer version and act accordingly.
>
> The pipeline used for testing is this simple pipeline
>
> RAWVIDEO='video/x-raw, format=(string)BGRA, bpp=(int)32, depth=(int)32,
> endianness=(int)4321, width=(int)1280, height=(int)720,
> framerate=(fraction)24/1, pixel-aspect-ratio=(fraction)1/1,
> interlaced=(boolean)false'
>
> gst-launch-1.0 -v videotestsrc is-live=true !\
>     $RAWVIDEO !\
>     queue !\
>     identity !\
>     shmsink socket-path=/tmp/feed1-control-pipe shm-size=10000000
> wait-for-connection=1 sync=true
>
> Kind regards
> Peter MM
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freedesktop.org/archives/gstreamer-devel/attachments/20130918/8272d6a5/attachment.html>


More information about the gstreamer-devel mailing list