Overlay without major performance hit?

Michael Tyson michael at tyson.id.au
Sat Mar 15 04:38:18 PDT 2014


Ah, I was wondering about using OpenGL. I want to render just a few pieces of text, plus a line drawing, so OpenGL rendering would suffice.

I was looking through the eglglessink source to see if there was a convenient way to access the egl context. Would this be the path forward, or is there another element type that one would use? glfilterapp, perhaps? Would that retain the performance of the omxh264dec/eglglessink combo? Or would it be better (or safer, perhaps, making less assumptions) to gain access to eglglessink’s egl context?

Cheers!
Michael


On 15 Mar 2014, at 8:34 pm, Adrien Schwartzentruber <adrien.schwartzentruber at gmail.com> wrote:

> One of the limitation with the cairooverlay element is that it require RGB format, so it will always downgrade your pipeline speed (if convert is needed, that is usually the case). This fact, is due to the under cairo image format limitation.
> 
> I think that the solution depends of what king of content you want to add to the stream. How complex ? Static ? 
> 
> I never tried, but I think that you can compose images with opengl element. If I was you, I will try to look in this direction.  
> 
> 
> On Sat, Mar 15, 2014 at 8:12 AM, Michael Tyson <michael at tyson.id.au> wrote:
> Hello,
> 
> I’m trying to use cairooverlay to add some content to live video frames displayed on a Raspberry Pi.
> 
> I’ve not been able to get video frames to appear onscreen while drawing from udpsrc, so I did some testing using get-inspect and a file-based test video:
> 
> gst-launch-1.0 filesrc location=big_buck_bunny_720p_H264_AAC_25fps_3400K.MP4 ! qtdemux ! h264parse ! omxh264dec ! autovideoconvert ! cairooverlay ! autovideoconvert ! eglglessink
> 
> I discovered that including cairooverlay in the video pipeline introduces a massive performance hit at 720p: The video playback goes from the video’s native framerate to about 1 or 2 frames per second. I guess cairooverlay doesn’t work with the zero-copy stuff happening between omxh264dec and eglglessink.
> 
> Curious about using appsrc and videomixer instead, I tried another pipeline, using videotestsrc (in place of appsrc) and a videomixer:
> 
> gst-launch-1.0 filesrc location=big_buck_bunny_720p_H264_AAC_25fps_3400K.MP4 ! qtdemux ! h264parse ! omxh264dec ! autovideoconvert ! videomixer name=mix !  eglglessink sync=false videotestsrc ! mix.
> 
> The same thing happened: Frame rate dropped below usable values.
> 
> I’m wondering: Is there any way, using the Gstreamer framework, that one can achieve acceptable frame rates while applying an overlay?
> 
> Cheers,
> Michael
> 
> _______________________________________________
> gstreamer-devel mailing list
> gstreamer-devel at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
> 
> _______________________________________________
> gstreamer-devel mailing list
> gstreamer-devel at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freedesktop.org/archives/gstreamer-devel/attachments/20140315/6b518278/attachment.html>


More information about the gstreamer-devel mailing list