After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 719775 - encoder: rework GstVaapiCodedBuffer and related proxy
encoder: rework GstVaapiCodedBuffer and related proxy
Status: RESOLVED FIXED
Product: gstreamer-vaapi
Classification: Other
Component: general
git master
Other Linux
: Normal normal
: ---
Assigned To: gstreamer-vaapi maintainer(s)
gstreamer-vaapi maintainer(s)
Depends on:
Blocks: 719412 719529
 
 
Reported: 2013-12-03 14:04 UTC by Gwenole Beauchesne
Modified: 2013-12-04 18:16 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
encoder: rework GstVaapiCodedBuffer and related proxy (53.13 KB, patch)
2013-12-03 20:42 UTC, Gwenole Beauchesne
none Details | Review

Description Gwenole Beauchesne 2013-12-03 14:04:46 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.
Comment 1 Gwenole Beauchesne 2013-12-03 20:42:13 UTC
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.
Comment 2 Gwenole Beauchesne 2013-12-04 18:16:25 UTC
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