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

Reply via email to