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 719529 - vaapiencode: don't use GstVaapiEncoder private definitions
vaapiencode: don't use GstVaapiEncoder private definitions
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: 719775
Blocks: 719412 719693 719820 719953
 
 
Reported: 2013-11-29 05:23 UTC by Gwenole Beauchesne
Modified: 2014-01-13 16:34 UTC
See Also:
GNOME target: ---
GNOME version: ---



Description Gwenole Beauchesne 2013-11-29 05:23:56 UTC
The vaapiencode plug-in elements shall not use private definitions from GstVaapiEncoder, neither from its derived classes. Appropriate accessors need to be provided.

- Add gst_vaapi_encoder_set_rate_control().
Scope: valid before the first frame is pushed to the encoder.

- Add gst_vaapi_encoder_set_bitrate().
Scope: valid at any point in time but user needs to be aware (documentation) that this setting takes effect immediately. This means that it is going to be applied to any pending frame in the queue. Should the user want this to be delayed until that queue is purged, then he should flush() first.

- Add codec-specific params definitions as GstVaapiEncoderCODECParams.
where codec is H264, Mpeg2, depending on the class name. The data structure holds any codec-specific features needed for encoding. Accessors:
+ gst_vaapi_encoder_XXX_set_params(): set new encoding params ;
+ gst_vaapi_encoder_XXX_get_params(): get currently set params ;
+ gst_vaapi_encoder_XXX_get_default_params(): get the default set of params.

The latter function is useful to get defaults and fill out the corresponding plug-in properties. Scope: the params that are set are valid before the first frame is pushed to the encoder, for now.
Comment 1 Gwenole Beauchesne 2014-01-13 16:34:50 UTC
commit a43d06dcf5b109165ba39c8214124433c4d4a5ee
Author: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
Date:   Wed Jan 8 18:36:46 2014 +0100

    vaapiencode: update for new properties API.
    
    Update MPEG-2 and H.264 encode elements to cope with the new core
    libgstvaapi properties API. i.e. all configurable properties are now
    directly handled at the GstVaapiEncoder level.
    
    Besides, this also makes sure to not use or modify the GstVaapiEncoder
    private definitions directly. Private data need to remain private.
    
    https://bugzilla.gnome.org/show_bug.cgi?id=719529

commit dcc7a94408f8fd4b06c097909c8da1df6858ed96
Author: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
Date:   Mon Jan 6 17:46:40 2014 +0100

    encoder: add properties API.
    
    Add interface to communicate configurable properties to the encoder.
    This covers both the common ones (rate-control, bitrate), and the
    codec specific properties.
    
    https://bugzilla.gnome.org/show_bug.cgi?id=719529

commit 70b3600f115d737df876c6fab36319759b070000
Author: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
Date:   Mon Jan 6 18:01:33 2014 +0100

    encoder: add bitrate API.
    
    Add gst_vaapi_encoder_set_bitrate() interface to allow the user control
    the bitrate for encoding. Currently, changing this parameter is only
    valid before the first frame is encoded. Should the value be modified
    afterwards, then GST_VAAPI_ENCODER_STATUS_ERROR_OPERATION_FAILED is
    returned.
    
    https://bugzilla.gnome.org/show_bug.cgi?id=719529

commit a24c52e4d0b3d0c168b30939aae406879c6c6a94
Author: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
Date:   Mon Jan 6 15:10:36 2014 +0100

    encoder: add rate control API.
    
    Add gst_vaapi_encoder_set_rate_control() interface to request a new
    rate control mode for encoding. Changing the rate control mode is
    only valid prior to encoding the very first frame. Afterwards, an
    error ("operation-failed") is issued.
    
    https://bugzilla.gnome.org/show_bug.cgi?id=719529