aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorCarl Eugen Hoyos <cehoyos@ag.or.at>2016-10-22 03:53:38 +0200
committerCarl Eugen Hoyos <cehoyos@ag.or.at>2016-10-22 03:53:38 +0200
commit6969bed12c6fc53509aa694aab32d01838318f30 (patch)
tree36a8108a777f6bff99f8cdca449abd3f4dd6f192
parent41da4f8cb3a7ac6888dbe6a6bbe1a573a74062ff (diff)
downloadffmpeg-6969bed12c6fc53509aa694aab32d01838318f30.tar.gz
lavf/rtpdec_g726: Map mime type G726 to g726le.
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.
-rw-r--r--Changelog1
-rw-r--r--libavformat/rtpdec.c4
-rw-r--r--libavformat/rtpdec_formats.h4
-rw-r--r--libavformat/rtpdec_g726.c8
-rw-r--r--libavformat/version.h2
5 files changed, 17 insertions, 2 deletions
diff --git a/Changelog b/Changelog
index c319388cda..e05b1af544 100644
--- a/Changelog
+++ b/Changelog
@@ -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:
diff --git a/libavformat/rtpdec.c b/libavformat/rtpdec.c
index f73cb410a8..51feeeaad3 100644
--- a/libavformat/rtpdec.c
+++ b/libavformat/rtpdec.c
@@ -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);
diff --git a/libavformat/rtpdec_formats.h b/libavformat/rtpdec_formats.h
index cf251a54aa..3292a3d265 100644
--- a/libavformat/rtpdec_formats.h
+++ b/libavformat/rtpdec_formats.h
@@ -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;
diff --git a/libavformat/rtpdec_g726.c b/libavformat/rtpdec_g726.c
index 172a4b36ab..2de09ac233 100644
--- a/libavformat/rtpdec_g726.c
+++ b/libavformat/rtpdec_g726.c
@@ -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);
diff --git a/libavformat/version.h b/libavformat/version.h
index a0747a39ea..88b69e968c 100644
--- a/libavformat/version.h
+++ b/libavformat/version.h
@@ -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, \