summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHyunjun Ko <zzoon@igalia.com>2017-06-01 12:12:26 +0900
committerVíctor Manuel Jáquez Leal <vjaquez@igalia.com>2017-06-07 11:24:38 +0200
commit5d345b08fd7a707b19140d58adad2c63e49d8afe (patch)
treef77a84a375bb5cf6db60431baf2b911ed05512a6
parentf68d0452be7fe914519bcac7431a0848a27dab0b (diff)
libs: encoder: vp8: Adds VBR Encoding support
https://bugzilla.gnome.org/show_bug.cgi?id=778732
-rw-r--r--gst-libs/gst/vaapi/gstvaapiencoder_vp8.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/gst-libs/gst/vaapi/gstvaapiencoder_vp8.c b/gst-libs/gst/vaapi/gstvaapiencoder_vp8.c
index 3aa46e7a..3b52dc2d 100644
--- a/gst-libs/gst/vaapi/gstvaapiencoder_vp8.c
+++ b/gst-libs/gst/vaapi/gstvaapiencoder_vp8.c
@@ -40,7 +40,8 @@
/* Supported set of VA rate controls, within this implementation */
#define SUPPORTED_RATECONTROLS \
(GST_VAAPI_RATECONTROL_MASK (CQP) | \
- GST_VAAPI_RATECONTROL_MASK (CBR))
+ GST_VAAPI_RATECONTROL_MASK (CBR) | \
+ GST_VAAPI_RATECONTROL_MASK (VBR))
/* Supported set of tuning options, within this implementation */
#define SUPPORTED_TUNE_OPTIONS \
@@ -125,6 +126,7 @@ ensure_bitrate (GstVaapiEncoderVP8 * encoder)
/* Default compression: 64 bits per macroblock */
switch (GST_VAAPI_ENCODER_RATE_CONTROL (encoder)) {
case GST_VAAPI_RATECONTROL_CBR:
+ case GST_VAAPI_RATECONTROL_VBR:
if (!base_encoder->bitrate) {
base_encoder->bitrate =
gst_util_uint64_scale (GST_VAAPI_ENCODER_WIDTH (encoder) *
@@ -220,7 +222,8 @@ fill_sequence (GstVaapiEncoderVP8 * encoder, GstVaapiEncSequence * sequence)
seq_param->frame_width = GST_VAAPI_ENCODER_WIDTH (encoder);
seq_param->frame_height = GST_VAAPI_ENCODER_HEIGHT (encoder);
- if (GST_VAAPI_ENCODER_RATE_CONTROL (encoder) & GST_VAAPI_RATECONTROL_CBR)
+ if (GST_VAAPI_ENCODER_RATE_CONTROL (encoder) == GST_VAAPI_RATECONTROL_CBR ||
+ GST_VAAPI_ENCODER_RATE_CONTROL (encoder) == GST_VAAPI_RATECONTROL_VBR)
seq_param->bits_per_second = base_encoder->bitrate * 1000;
seq_param->intra_period = base_encoder->keyframe_period;