From 083c7bf70131a70bc9a23b4daccd9e688a6c0854 Mon Sep 17 00:00:00 2001 From: Dmitry Samonenko Date: Sat, 13 Oct 2012 19:03:33 +0400 Subject: [PATCH] sdp: output speex optional vbr parameter Optional sdp speex payload parameter is outputed only when data is encoded. It's not printed in case of stream copy. Signed-off-by: Michael Niedermayer --- libavformat/sdp.c | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/libavformat/sdp.c b/libavformat/sdp.c index ca8c3dfdb7..c4edd783be 100644 --- a/libavformat/sdp.c +++ b/libavformat/sdp.c @@ -575,6 +575,20 @@ static char *sdp_write_media_attributes(char *buff, int size, AVCodecContext *c, case AV_CODEC_ID_SPEEX: av_strlcatf(buff, size, "a=rtpmap:%d speex/%d\r\n", payload_type, c->sample_rate); + if (c->codec) { + const char *mode; + uint64_t vad_option; + + if (c->flags & CODEC_FLAG_QSCALE) + mode = "on"; + else if (!av_opt_get_int(c, "vad", AV_OPT_FLAG_ENCODING_PARAM, &vad_option) && vad_option) + mode = "vad"; + else + mode = "off"; + + av_strlcatf(buff, size, "a=fmtp:%d vbr=%s\r\n", + payload_type, mode); + } break; case AV_CODEC_ID_OPUS: av_strlcatf(buff, size, "a=rtpmap:%d opus/48000\r\n",