On 11/30/2011 04:22 PM, Martin Storsjö wrote:
> ---
> libavformat/rtpenc.c | 5 +++++
> libavformat/sdp.c | 10 ++++++++++
> 2 files changed, 15 insertions(+), 0 deletions(-)
>
> diff --git a/libavformat/rtpenc.c b/libavformat/rtpenc.c
> index 7434837..1f036a6 100644
> --- a/libavformat/rtpenc.c
> +++ b/libavformat/rtpenc.c
> @@ -72,6 +72,7 @@ static int is_supported(enum CodecID id)
> case CODEC_ID_THEORA:
> case CODEC_ID_VP8:
> case CODEC_ID_ADPCM_G722:
> + case CODEC_ID_ADPCM_G726:
> return 1;
> default:
> return 0;
> @@ -411,6 +412,10 @@ static int rtp_write_packet(AVFormatContext *s1,
> AVPacket *pkt)
> * clock. */
> rtp_send_samples(s1, pkt->data, size, 8 * st->codec->channels);
> break;
> + case CODEC_ID_ADPCM_G726:
> + rtp_send_samples(s1, pkt->data, size,
> + st->codec->bits_per_coded_sample *
> st->codec->channels);
> + break;
> case CODEC_ID_MP2:
> case CODEC_ID_MP3:
> rtp_send_mpegaudio(s1, pkt->data, size);
> diff --git a/libavformat/sdp.c b/libavformat/sdp.c
> index ba3d4dd..c27c671 100644
> --- a/libavformat/sdp.c
> +++ b/libavformat/sdp.c
> @@ -517,6 +517,16 @@ static char *sdp_write_media_attributes(char *buff, int
> size, AVCodecContext *c,
> payload_type,
> 8000, c->channels);
> break;
> + case CODEC_ID_ADPCM_G726: {
> + int bitrate = c->bit_rate;
> + if (!bitrate)
> + bitrate = c->sample_rate * c->bits_per_coded_sample;
> + if (payload_type >= RTP_PT_PRIVATE)
> + av_strlcatf(buff, size, "a=rtpmap:%d G726-%d/%d\r\n",
> + payload_type, bitrate/1000,
> + c->sample_rate);
> + break;
> + }
> default:
> /* Nothing special to do here... */
> break;
non-standard rates might not work well here.
if we want to support that, it probably would be best to use
bits_per_coded_sample to map 2,3,4,5 to 16,24,32,40 independent of the
actual bitrate.
-Justin
_______________________________________________
libav-devel mailing list
[email protected]
https://lists.libav.org/mailman/listinfo/libav-devel