Skip to content

Commit

Permalink
lavf/rtpdec_g726: Map mime type G726 to g726le.
Browse files Browse the repository at this point in the history
Add new mime types AAL2-G726 for g726 as suggested in rfc 3551.

This patch will break interaction with applications that incorrectly
use big-endian G.726 with mime type G726 but we know of at least one
device (DVTel camera) that correctly implements the rfc, so do the same.

Fixes ticket #5890.
  • Loading branch information
cehoyos committed Oct 22, 2016
1 parent 41da4f8 commit 6969bed
Show file tree
Hide file tree
Showing 5 changed files with 17 additions and 2 deletions.
1 change: 1 addition & 0 deletions Changelog
Expand Up @@ -37,6 +37,7 @@ version <next>:
- libfaac encoder removed
- Matroska muxer now writes CRC32 elements by default in all Level 1 elements
- sidedata video and asidedata audio filter
- Changed mapping of rtp MIME type G726 to codec g726le.


version 3.1:
Expand Down
4 changes: 4 additions & 0 deletions libavformat/rtpdec.c
Expand Up @@ -81,6 +81,10 @@ void ff_register_rtp_dynamic_payload_handlers(void)
ff_register_dynamic_payload_handler(&ff_g726_24_dynamic_handler);
ff_register_dynamic_payload_handler(&ff_g726_32_dynamic_handler);
ff_register_dynamic_payload_handler(&ff_g726_40_dynamic_handler);
ff_register_dynamic_payload_handler(&ff_g726le_16_dynamic_handler);
ff_register_dynamic_payload_handler(&ff_g726le_24_dynamic_handler);
ff_register_dynamic_payload_handler(&ff_g726le_32_dynamic_handler);
ff_register_dynamic_payload_handler(&ff_g726le_40_dynamic_handler);
ff_register_dynamic_payload_handler(&ff_h261_dynamic_handler);
ff_register_dynamic_payload_handler(&ff_h263_1998_dynamic_handler);
ff_register_dynamic_payload_handler(&ff_h263_2000_dynamic_handler);
Expand Down
4 changes: 4 additions & 0 deletions libavformat/rtpdec_formats.h
Expand Up @@ -55,6 +55,10 @@ extern RTPDynamicProtocolHandler ff_g726_16_dynamic_handler;
extern RTPDynamicProtocolHandler ff_g726_24_dynamic_handler;
extern RTPDynamicProtocolHandler ff_g726_32_dynamic_handler;
extern RTPDynamicProtocolHandler ff_g726_40_dynamic_handler;
extern RTPDynamicProtocolHandler ff_g726le_16_dynamic_handler;
extern RTPDynamicProtocolHandler ff_g726le_24_dynamic_handler;
extern RTPDynamicProtocolHandler ff_g726le_32_dynamic_handler;
extern RTPDynamicProtocolHandler ff_g726le_40_dynamic_handler;
extern RTPDynamicProtocolHandler ff_h261_dynamic_handler;
extern RTPDynamicProtocolHandler ff_h263_1998_dynamic_handler;
extern RTPDynamicProtocolHandler ff_h263_2000_dynamic_handler;
Expand Down
8 changes: 7 additions & 1 deletion libavformat/rtpdec_g726.c
Expand Up @@ -36,10 +36,16 @@ static av_cold int g726_ ## bitrate ##_init(AVFormatContext *s, int st_index, \
} \
\
RTPDynamicProtocolHandler ff_g726_ ## bitrate ## _dynamic_handler = { \
.enc_name = "G726-" #bitrate, \
.enc_name = "AAL2-G726-" #bitrate, \
.codec_type = AVMEDIA_TYPE_AUDIO, \
.codec_id = AV_CODEC_ID_ADPCM_G726, \
.init = g726_ ## bitrate ## _init, \
}; \
RTPDynamicProtocolHandler ff_g726le_ ## bitrate ## _dynamic_handler = { \
.enc_name = "G726-" #bitrate, \
.codec_type = AVMEDIA_TYPE_AUDIO, \
.codec_id = AV_CODEC_ID_ADPCM_G726LE, \
.init = g726_ ## bitrate ## _init, \
}

RTP_G726_HANDLER(16);
Expand Down
2 changes: 1 addition & 1 deletion libavformat/version.h
Expand Up @@ -32,7 +32,7 @@
// Major bumping may affect Ticket5467, 5421, 5451(compatibility with Chromium)
// Also please add any ticket numbers that you believe might be affected here
#define LIBAVFORMAT_VERSION_MAJOR 57
#define LIBAVFORMAT_VERSION_MINOR 52
#define LIBAVFORMAT_VERSION_MINOR 53
#define LIBAVFORMAT_VERSION_MICRO 100

#define LIBAVFORMAT_VERSION_INT AV_VERSION_INT(LIBAVFORMAT_VERSION_MAJOR, \
Expand Down

0 comments on commit 6969bed

Please sign in to comment.