Commit 75bd0109 authored by Carl Eugen Hoyos's avatar Carl Eugen Hoyos

lavf/rtpenc: Add support for 24 bit pcm encoding as defined by RFC 3190.

Fixes ticket #6770.
parent e9930883
...@@ -66,6 +66,7 @@ static int is_supported(enum AVCodecID id) ...@@ -66,6 +66,7 @@ static int is_supported(enum AVCodecID id)
case AV_CODEC_ID_PCM_S8: case AV_CODEC_ID_PCM_S8:
case AV_CODEC_ID_PCM_S16BE: case AV_CODEC_ID_PCM_S16BE:
case AV_CODEC_ID_PCM_S16LE: case AV_CODEC_ID_PCM_S16LE:
case AV_CODEC_ID_PCM_S24BE:
case AV_CODEC_ID_PCM_U16BE: case AV_CODEC_ID_PCM_U16BE:
case AV_CODEC_ID_PCM_U16LE: case AV_CODEC_ID_PCM_U16LE:
case AV_CODEC_ID_PCM_U8: case AV_CODEC_ID_PCM_U8:
...@@ -544,6 +545,8 @@ static int rtp_write_packet(AVFormatContext *s1, AVPacket *pkt) ...@@ -544,6 +545,8 @@ static int rtp_write_packet(AVFormatContext *s1, AVPacket *pkt)
case AV_CODEC_ID_PCM_S16BE: case AV_CODEC_ID_PCM_S16BE:
case AV_CODEC_ID_PCM_S16LE: case AV_CODEC_ID_PCM_S16LE:
return rtp_send_samples(s1, pkt->data, size, 16 * st->codecpar->channels); return rtp_send_samples(s1, pkt->data, size, 16 * st->codecpar->channels);
case AV_CODEC_ID_PCM_S24BE:
return rtp_send_samples(s1, pkt->data, size, 24 * st->codecpar->channels);
case AV_CODEC_ID_ADPCM_G722: case AV_CODEC_ID_ADPCM_G722:
/* The actual sample size is half a byte per sample, but since the /* The actual sample size is half a byte per sample, but since the
* stream clock rate is 8000 Hz while the sample rate is 16000 Hz, * stream clock rate is 8000 Hz while the sample rate is 16000 Hz,
......
...@@ -584,6 +584,12 @@ static char *sdp_write_media_attributes(char *buff, int size, AVStream *st, int ...@@ -584,6 +584,12 @@ static char *sdp_write_media_attributes(char *buff, int size, AVStream *st, int
payload_type, payload_type,
p->sample_rate, p->channels); p->sample_rate, p->channels);
break; break;
case AV_CODEC_ID_PCM_S24BE:
if (payload_type >= RTP_PT_PRIVATE)
av_strlcatf(buff, size, "a=rtpmap:%d L24/%d/%d\r\n",
payload_type,
p->sample_rate, p->channels);
break;
case AV_CODEC_ID_PCM_MULAW: case AV_CODEC_ID_PCM_MULAW:
if (payload_type >= RTP_PT_PRIVATE) if (payload_type >= RTP_PT_PRIVATE)
av_strlcatf(buff, size, "a=rtpmap:%d PCMU/%d/%d\r\n", av_strlcatf(buff, size, "a=rtpmap:%d PCMU/%d/%d\r\n",
......
...@@ -33,7 +33,7 @@ ...@@ -33,7 +33,7 @@
// Also please add any ticket numbers that you believe might be affected here // Also please add any ticket numbers that you believe might be affected here
#define LIBAVFORMAT_VERSION_MAJOR 58 #define LIBAVFORMAT_VERSION_MAJOR 58
#define LIBAVFORMAT_VERSION_MINOR 0 #define LIBAVFORMAT_VERSION_MINOR 0
#define LIBAVFORMAT_VERSION_MICRO 101 #define LIBAVFORMAT_VERSION_MICRO 102
#define LIBAVFORMAT_VERSION_INT AV_VERSION_INT(LIBAVFORMAT_VERSION_MAJOR, \ #define LIBAVFORMAT_VERSION_INT AV_VERSION_INT(LIBAVFORMAT_VERSION_MAJOR, \
LIBAVFORMAT_VERSION_MINOR, \ LIBAVFORMAT_VERSION_MINOR, \
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment