[Bug 722686] New: omxvideodec: integrate resize component

GStreamer (bugzilla.gnome.org) bugzilla at gnome.org
Tue Jan 21 04:38:52 PST 2014


https://bugzilla.gnome.org/show_bug.cgi?id=722686
  GStreamer | gst-omx | git

           Summary: omxvideodec: integrate resize component
    Classification: Platform
           Product: GStreamer
           Version: git
        OS/Version: Linux
            Status: UNCONFIRMED
          Severity: normal
          Priority: Normal
         Component: gst-omx
        AssignedTo: gstreamer-bugs at lists.freedesktop.org
        ReportedBy: julien.isorce at gmail.com
         QAContact: gstreamer-bugs at lists.freedesktop.org
     GNOME version: ---


Created an attachment (id=266858)
 View: https://bugzilla.gnome.org/attachment.cgi?id=266858
 Review: https://bugzilla.gnome.org/review?bug=722686&attachment=266858

omxvideodec: integrate resize component on RPI

It enables the use of ximagesink on RPI.
Or any video sink that does not use GL on RPI.
Total CPU load at 20% for a 640x360 video.
Total CPU load at 60% for 1280x720 video.
(if you do not move the mouse :) )

The OMX.broadcom.resize component does colorspace conversion.
So integrating it allows to support more downstream elements (or make them
usable because it drastically reduces CPU load)
Ex: Allow to output RGB16 if downstream does not support I420
and if "video_decode" can only output I420.

Only available on RPI (passing --with-omx-target=rpi to
the configure script) because I only tested on RPI and also
because I'm sure if the resize element is available on other
platform. And for now it's instantiated using its name directly:
"OMX.broadcom.resize"

But you does not necessarly need to have GST_EGL as it's the case
to use "OMX.broadcom.egl_render"

First, omxvideodec tries "egl_render" (if egl available) then if it
fails it directly tries "video_decode" as useall but then if it fails
again it tries "resize" with a compatible downstream colorformat.

When trying the resize component it try to do OMX_UseBuffer
(useful to use downstream XImage create using XShmCreateImage)
and if it fails to actually use those downstream buffers then it
fallbacks to OMX_AllocateBuffer.

Ex: Allow to have zero-copy with omxh264dec ! ximagesink (OMX_UseBuffer)
but omxh264dec ! tee ! ximagesink will do OMX_AllocateBuffer because
tee does not forward the allocation query.

example: https://drive.google.com/file/d/0Bw6t368wtIMYS1ZOOTF2REFKdkk

-- 
Configure bugmail: https://bugzilla.gnome.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the QA contact for the bug.
You are the assignee for the bug.


More information about the gstreamer-bugs mailing list