[Bug 727885] New: coremediabuffer: handle stride alignment

GStreamer (bugzilla.gnome.org) bugzilla at gnome.org
Wed Apr 9 03:08:33 PDT 2014


https://bugzilla.gnome.org/show_bug.cgi?id=727885
  GStreamer | gst-plugins-bad | git

           Summary: coremediabuffer: handle stride alignment
    Classification: Platform
           Product: GStreamer
           Version: git
        OS/Version: Mac OS
            Status: UNCONFIRMED
          Severity: normal
          Priority: Normal
         Component: gst-plugins-bad
        AssignedTo: gstreamer-bugs at lists.freedesktop.org
        ReportedBy: matthieu.bouron at collabora.com
         QAContact: gstreamer-bugs at lists.freedesktop.org
     GNOME version: ---


This following patch make the coremedia buffers handle the stride alignment of
the CVPixel buffers through the use of the video meta API. It is based on the
corevideobuffer code.

Properly handle the stride alignment is required by iosavassetsrc (which i'm
currently porting to 1.0).

It changes the API of coremediabuffer, so an element can decide wether or not
to use the video meta API (according to downstream capabilities).

GstBuffer * gst_core_media_buffer_new (CMSampleBufferRef sample_buf);
->
GstBuffer * gst_core_media_buffer_new (CMSampleBufferRef sample_buf, gboolean
use_video_meta);

Also, If the video meta API is not used and the cv pixel buffer contains
padding, the core media buffer frame is copied to a SYSMEM buffer frame, thus
removing the padding. In this case a regular GstBuffer is returned by the
function (not a GstCoreMediaBuffer).

This fallback method can be provided as a separate public function so it is the
element responsability of removing the padding. In this case the
gst_core_media_buffer_new method must return somehow the fact that the
underlying buffer contains padding to avoid an unnecessary copy.

Note: this is work in progress, every element using coremedia buffers (vtenc,
avfvideosrc) won't compile.

What do you think ?

-- 
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