[FFmpeg-cvslog] lavf/rtpdec_g726: Map mime type G726 to g726le.

Carl Eugen Hoyos git at videolan.org
Sat Oct 22 04:57:21 EEST 2016


ffmpeg | branch: master | Carl Eugen Hoyos <cehoyos at ag.or.at> | Sat Oct 22 03:53:38 2016 +0200| [6969bed12c6fc53509aa694aab32d01838318f30] | committer: Carl Eugen Hoyos

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.

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=6969bed12c6fc53509aa694aab32d01838318f30
---

 Changelog                    | 1 +
 libavformat/rtpdec.c         | 4 ++++
 libavformat/rtpdec_formats.h | 4 ++++
 libavformat/rtpdec_g726.c    | 8 +++++++-
 libavformat/version.h        | 2 +-
 5 files changed, 17 insertions(+), 2 deletions(-)

diff --git a/Changelog b/Changelog
index c319388..e05b1af 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 f73cb41..51feeea 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 cf251a5..3292a3d 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 172a4b3..2de09ac 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 a0747a3..88b69e9 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, \



More information about the ffmpeg-cvslog mailing list