audio encoders: use context default bitrate if no bitrate has been set

Fixes 'bitrate too low: got 0, need 24000 or higher'
error when doing audiotstsrc ! avenc_wmav1 ! fakesink

https://bugzilla.gnome.org/show_bug.cgi?id=680487

https://bugzilla.gnome.org/show_bug.cgi?id=680487
This commit is contained in:
Tim-Philipp Müller 2012-07-23 23:29:26 +01:00
parent 0489f5eb78
commit 2d458ca951

View file

@ -261,10 +261,15 @@ gst_ffmpegaudenc_setcaps (GstFFMpegAudEnc * ffmpegaudenc, GstCaps * caps)
ffmpegaudenc->context->strict_std_compliance = -1; ffmpegaudenc->context->strict_std_compliance = -1;
/* user defined properties */ /* user defined properties */
ffmpegaudenc->context->bit_rate = ffmpegaudenc->bitrate; if (ffmpegaudenc->bitrate > 0) {
ffmpegaudenc->context->bit_rate_tolerance = ffmpegaudenc->bitrate; GST_INFO_OBJECT (ffmpegaudenc, "Setting avcontext to bitrate %d",
GST_DEBUG_OBJECT (ffmpegaudenc, "Setting avcontext to bitrate %d", ffmpegaudenc->bitrate);
ffmpegaudenc->bitrate); ffmpegaudenc->context->bit_rate = ffmpegaudenc->bitrate;
ffmpegaudenc->context->bit_rate_tolerance = ffmpegaudenc->bitrate;
} else {
GST_INFO_OBJECT (ffmpegaudenc, "Using avcontext default bitrate %d",
ffmpegaudenc->context->bit_rate);
}
/* RTP payload used for GOB production (for Asterisk) */ /* RTP payload used for GOB production (for Asterisk) */
if (ffmpegaudenc->rtp_payload_size) { if (ffmpegaudenc->rtp_payload_size) {