On Wed, 30 Nov 2011, Justin Ruggles wrote:

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.

Indeed, that probably is more straightforward.

// Martin
_______________________________________________
libav-devel mailing list
[email protected]
https://lists.libav.org/mailman/listinfo/libav-devel

Reply via email to