GNOME Bugzilla – Bug 719775
encoder: rework GstVaapiCodedBuffer and related proxy
Last modified: 2013-12-04 18:16:25 UTC
Refactor the GstVaapiCodedBuffer APIs so that to more clearly separate public and private definitions. Besides, the map/unmap APIs should not be exposed as is but appropriate accessors should be provided instead. * GstVaapiCodedBuffer: VA coded buffer abstraction - gst_vaapi_coded_buffer_get_size(): get VA coded buffer size. - gst_vaapi_coded_buffer_extract(): extract VA coded buffer data to raw buffer - gst_vaapi_coded_buffer_copy_into(): copy VA coded buffer into GstBuffer * GstVaapiCodedBufferPool: pool of VA coded buffer objects - gst_vaapi_coded_buffer_pool_new(): create a pool of VA coded buffers of the specified max size, and bound to the supplied encoder * GstVaapiCodedBufferProxy: VA coded buffer proxy object backed up from pool - gst_vaapi_coded_buffer_proxy_new(): create a new VA coded buffer proxy from object allocated from specified pool - gst_vaapi_coded_buffer_proxy_get_buffer(): get underlying VA coded buffer - gst_vaapi_coded_buffer_proxy_get_buffer_size(): get underlying VA coded buffer size - gst_vaapi_coded_buffer_proxy_copy_into(): copy underlying VA coded buffer into GstBuffer Rationale: more optimized transfer functions might be provided in the future, thus rendering the map/unmap mechanism obsolete or sub-optimal.
Created attachment 263437 [details] [review] encoder: rework GstVaapiCodedBuffer and related proxy FYI, here is the patch I am going to push within the next two days.
commit 0fb7c605080e926a4ff3a7b01337281d968148b5 Author: Gwenole Beauchesne <gwenole.beauchesne@intel.com> Date: Tue Dec 3 16:11:46 2013 +0100 encoder: rework GstVaapiCodedBuffer and related proxy. Refactor the GstVaapiCodedBuffer APIs so that to more clearly separate public and private interfaces. Besides, the map/unmap APIs should not be exposed as is but appropriate accessors should be provided instead. * GstVaapiCodedBuffer: VA coded buffer abstraction - gst_vaapi_coded_buffer_get_size(): get coded buffer size. - gst_vaapi_coded_buffer_copy_into(): copy coded buffer into GstBuffer * GstVaapiCodedBufferPool: pool of VA coded buffer objects - gst_vaapi_coded_buffer_pool_new(): create a pool of coded buffers of the specified max size, and bound to the supplied encoder * GstVaapiCodedBufferProxy: pool-allocated VA coded buffer object proxy - gst_vaapi_coded_buffer_proxy_new_from_pool(): create coded buf from pool - gst_vaapi_coded_buffer_proxy_get_buffer(): get underlying coded buffer - gst_vaapi_coded_buffer_proxy_get_buffer_size(): get coded buffer size Rationale: more optimized transfer functions might be provided in the future, thus rendering the map/unmap mechanism obsolete or sub-optimal. https://bugzilla.gnome.org/show_bug.cgi?id=719775