GNOME Bugzilla – Bug 719529
vaapiencode: don't use GstVaapiEncoder private definitions
Last modified: 2014-01-13 16:34:50 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.
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