[Bug 790752] msdk: supports bufferpool

GStreamer (GNOME Bugzilla) bugzilla at gnome.org
Sat Feb 10 01:38:08 UTC 2018


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

sreerenj <bsreerenj at gmail.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
 Attachment #368115|none                        |needs-work
             status|                            |

--- Comment #92 from sreerenj <bsreerenj at gmail.com> ---
Review of attachment 368115:
 --> (https://bugzilla.gnome.org/review?bug=790752&attachment=368115)

::: sys/msdk/gstmsdkdec.c
@@ +110,3 @@
+        frame->output_buffer = NULL;
+        goto retry;
+       * We should be keep these buffers and check if it's unlocked.

I remember you were talking about the possibility to keep a separate surface
pool and writing our own acquire_buffer() for the bufferpool. How about just
overriding the acquire_buffer() as:

gst_msdk_buffer_pool_acqurre_buffer{
  buffer = GST_BUFFER_POOL_CLASS
      (gst_msdk_buffer_pool_parent_class)->acquire_buffer()
  if (buffer.surface.Data.locked)
      release_buffer() and try again.
  else
       ret buffer;
}

@@ +731,3 @@
+    return NULL;
+  }
+

I think we should move/refactor this function as a common utility method for
both encode and decoder.
It is almost the same in both, you may just need to pass few more parameters.

@@ +818,3 @@
+
+    memcpy (&thiz->output_info, &info_from_caps, sizeof (GstVideoInfo));
+    memcpy (&info_aligned, &info_from_caps, sizeof (info_aligned));

Just assign the struct, no need of memcpy.

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