Skip to content
  • Gwenole Beauchesne's avatar
    encoder: rework GstVaapiCodedBuffer and related proxy. · 0fb7c605
    Gwenole Beauchesne authored
    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
    0fb7c605