[Bug 747352] New: applemedia: texture cache negotiation doesn't work

GStreamer (GNOME Bugzilla) bugzilla at gnome.org
Sat Apr 4 15:26:49 PDT 2015


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

            Bug ID: 747352
           Summary: applemedia: texture cache negotiation doesn't work
    Classification: Platform
           Product: GStreamer
           Version: git master
                OS: All
            Status: NEW
          Severity: normal
          Priority: Normal
         Component: gst-plugins-bad
          Assignee: gstreamer-bugs at lists.freedesktop.org
          Reporter: ilya.konstantinov at gmail.com
        QA Contact: gstreamer-bugs at lists.freedesktop.org
     GNOME version: ---

For the following pipeline:

  avfvideosrc device-index=0 ! 
  video/x-raw(memory:GLMemory),width=1280,height=720,framerate=30/1 ! 
  glimagesink enable-last-sample=0 sync=false

the texture cache path doesn't work, i.e. textureCache == NULL and no
optimisation takes place.

PRELIMINARY ANALYSIS

In avfvideosrc, we have the following code in decideAllocations:

  gst_query_find_allocation_meta (query,
GST_VIDEO_GL_TEXTURE_UPLOAD_META_API_TYPE, &idx)

This meta is only added by _upload_meta_upload_propose_allocation, which is
called through:
  gst_gl_upload_propose_allocation
    _gst_gl_upload_element_propose_allocation
       GST_BASE_TRANSFORM (bt)->propose_allocation

However, gst_gl_base_filter_query contains:

  switch (GST_QUERY_TYPE (query)) {
    case GST_QUERY_ALLOCATION:
    {
      if (direction == GST_PAD_SINK
          && gst_base_transform_is_passthrough (trans)) {
        _find_local_gl_context (filter);

        return gst_pad_peer_query (GST_BASE_TRANSFORM_SRC_PAD (trans), query);
      }
      break;
    }

Since the direction of the GstUpload "filter" (why is it a filter?) is indeed
-> sink, the query is forwarded onward to gstglimagesink, which lacks the
special handling.

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