You've already forked FFmpeg
mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2025-07-16 22:42:38 +02:00
lavf/rtpenc: Add support for 24 bit pcm encoding as defined by RFC 3190.
Fixes ticket #6770.
This commit is contained in:
@ -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)
|
|||||||
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
|
|||||||
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 @@
|
|||||||
// 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, \
|
||||||
|
Reference in New Issue
Block a user