Browse code

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.

Carl Eugen Hoyos authored on 2016/10/22 10:53:38
Showing 5 changed files
... ...
@@ -37,6 +37,7 @@ version <next>:
37 37
 - libfaac encoder removed
38 38
 - Matroska muxer now writes CRC32 elements by default in all Level 1 elements
39 39
 - sidedata video and asidedata audio filter
40
+- Changed mapping of rtp MIME type G726 to codec g726le.
40 41
 
41 42
 
42 43
 version 3.1:
... ...
@@ -81,6 +81,10 @@ void ff_register_rtp_dynamic_payload_handlers(void)
81 81
     ff_register_dynamic_payload_handler(&ff_g726_24_dynamic_handler);
82 82
     ff_register_dynamic_payload_handler(&ff_g726_32_dynamic_handler);
83 83
     ff_register_dynamic_payload_handler(&ff_g726_40_dynamic_handler);
84
+    ff_register_dynamic_payload_handler(&ff_g726le_16_dynamic_handler);
85
+    ff_register_dynamic_payload_handler(&ff_g726le_24_dynamic_handler);
86
+    ff_register_dynamic_payload_handler(&ff_g726le_32_dynamic_handler);
87
+    ff_register_dynamic_payload_handler(&ff_g726le_40_dynamic_handler);
84 88
     ff_register_dynamic_payload_handler(&ff_h261_dynamic_handler);
85 89
     ff_register_dynamic_payload_handler(&ff_h263_1998_dynamic_handler);
86 90
     ff_register_dynamic_payload_handler(&ff_h263_2000_dynamic_handler);
... ...
@@ -55,6 +55,10 @@ extern RTPDynamicProtocolHandler ff_g726_16_dynamic_handler;
55 55
 extern RTPDynamicProtocolHandler ff_g726_24_dynamic_handler;
56 56
 extern RTPDynamicProtocolHandler ff_g726_32_dynamic_handler;
57 57
 extern RTPDynamicProtocolHandler ff_g726_40_dynamic_handler;
58
+extern RTPDynamicProtocolHandler ff_g726le_16_dynamic_handler;
59
+extern RTPDynamicProtocolHandler ff_g726le_24_dynamic_handler;
60
+extern RTPDynamicProtocolHandler ff_g726le_32_dynamic_handler;
61
+extern RTPDynamicProtocolHandler ff_g726le_40_dynamic_handler;
58 62
 extern RTPDynamicProtocolHandler ff_h261_dynamic_handler;
59 63
 extern RTPDynamicProtocolHandler ff_h263_1998_dynamic_handler;
60 64
 extern RTPDynamicProtocolHandler ff_h263_2000_dynamic_handler;
... ...
@@ -36,10 +36,16 @@ static av_cold int g726_ ## bitrate ##_init(AVFormatContext *s, int st_index, \
36 36
 } \
37 37
 \
38 38
 RTPDynamicProtocolHandler ff_g726_ ## bitrate ## _dynamic_handler = { \
39
-    .enc_name   = "G726-" #bitrate, \
39
+    .enc_name   = "AAL2-G726-" #bitrate, \
40 40
     .codec_type = AVMEDIA_TYPE_AUDIO, \
41 41
     .codec_id   = AV_CODEC_ID_ADPCM_G726, \
42 42
     .init       = g726_ ## bitrate ## _init, \
43
+}; \
44
+RTPDynamicProtocolHandler ff_g726le_ ## bitrate ## _dynamic_handler = { \
45
+    .enc_name   = "G726-" #bitrate, \
46
+    .codec_type = AVMEDIA_TYPE_AUDIO, \
47
+    .codec_id   = AV_CODEC_ID_ADPCM_G726LE, \
48
+    .init       = g726_ ## bitrate ## _init, \
43 49
 }
44 50
 
45 51
 RTP_G726_HANDLER(16);
... ...
@@ -32,7 +32,7 @@
32 32
 // Major bumping may affect Ticket5467, 5421, 5451(compatibility with Chromium)
33 33
 // Also please add any ticket numbers that you believe might be affected here
34 34
 #define LIBAVFORMAT_VERSION_MAJOR  57
35
-#define LIBAVFORMAT_VERSION_MINOR  52
35
+#define LIBAVFORMAT_VERSION_MINOR  53
36 36
 #define LIBAVFORMAT_VERSION_MICRO 100
37 37
 
38 38
 #define LIBAVFORMAT_VERSION_INT AV_VERSION_INT(LIBAVFORMAT_VERSION_MAJOR, \