vp8enc: Set VP8E_SET_CPUUSED to 0

This setting controls how much CPU can be used by the encoder, specified
in fractions of 16. Negative values mean strict enforcement of this
while positive values are adaptive.

The default value is -4, which means that we're not running as fast
as possible and probably are wasting some quality. 0 is the recommended
default by libvpx upstream.
This commit is contained in:
Sebastian Dröge 2010-06-14 15:56:24 +02:00
parent c2809e6843
commit 0679c76b64

View file

@ -701,13 +701,19 @@ gst_vp8_enc_handle_frame (GstBaseVideoEncoder * base_video_encoder,
status = vpx_codec_enc_init (&encoder->encoder, &vpx_codec_vp8_cx_algo, status = vpx_codec_enc_init (&encoder->encoder, &vpx_codec_vp8_cx_algo,
&cfg, 0); &cfg, 0);
if (status) { if (status != VPX_CODEC_OK) {
GST_ELEMENT_ERROR (encoder, LIBRARY, INIT, GST_ELEMENT_ERROR (encoder, LIBRARY, INIT,
("Failed to initialize encoder"), ("%s", ("Failed to initialize encoder"), ("%s",
gst_vpx_error_name (status))); gst_vpx_error_name (status)));
return GST_FLOW_ERROR; return GST_FLOW_ERROR;
} }
status = vpx_codec_control (&encoder->encoder, VP8E_SET_CPUUSED, 0);
if (status != VPX_CODEC_OK) {
GST_WARNING_OBJECT (encoder, "Failed to set VP8E_SET_CPUUSED to 0: %s",
gst_vpx_error_name (status));
}
gst_base_video_encoder_set_latency (base_video_encoder, 0, gst_base_video_encoder_set_latency (base_video_encoder, 0,
gst_util_uint64_scale (encoder->max_latency, gst_util_uint64_scale (encoder->max_latency,
base_video_encoder->state.fps_d * GST_SECOND, base_video_encoder->state.fps_d * GST_SECOND,