]> git.ipfire.org Git - thirdparty/freeswitch.git/commitdiff
FS-7903 #resolve [proxy_media gives Codec PROXY Exists but not at the desired impleme...
authorAnthony Minessale <anthm@freeswitch.org>
Mon, 24 Aug 2015 22:43:59 +0000 (17:43 -0500)
committerMichael Jerris <mike@jerris.com>
Tue, 1 Sep 2015 20:26:02 +0000 (15:26 -0500)
src/switch_core_codec.c
src/switch_core_media.c
src/switch_pcm.c

index 20fdaf2bd124e49535ac93367802db0603e4e9d0..1e30b2857f06a4144574b15a0a8a458f07e147f7 100644 (file)
@@ -651,6 +651,17 @@ SWITCH_DECLARE(switch_status_t) switch_core_codec_init_with_bitrate(switch_codec
                return SWITCH_STATUS_GENERR;
        }
 
+       if (!strncasecmp(codec_name, "PROXY", 5)) {
+               for (iptr = codec_interface->implementations; iptr; iptr = iptr->next) {
+                       if ((!channels || channels == iptr->number_of_channels)) {
+                               implementation = iptr;
+                               break;
+                       }
+               }
+
+               goto found;
+       }
+       
        /* If no specific codec interval is requested opt for 20ms above all else because lots of stuff assumes it */
        if (!ms) {
                for (iptr = codec_interface->implementations; iptr; iptr = iptr->next) {
index 5878519cd64a84df55f2466d2f65a08a26833026..53ffead2bb34584d342d96e2aa257d03648dbdfa 100644 (file)
@@ -688,7 +688,6 @@ SWITCH_DECLARE(payload_map_t *) switch_core_media_add_payload_map(switch_core_se
 
        pmap->allocated = 1;
 
-
        pmap->recv_pt = (switch_payload_t) pt;
 
 
@@ -7471,7 +7470,7 @@ SWITCH_DECLARE(void) switch_core_media_patch_sdp(switch_core_session_t *session)
                                                                                                 SDP_TYPE_RESPONSE,
                                                                                                 0,
                                                                                                 8000,
-                                                                                                8000,
+                                                                                                20,
                                                                                                 1,
                                                                                                 SWITCH_TRUE);
 
@@ -8751,7 +8750,7 @@ SWITCH_DECLARE(void) switch_core_media_check_outgoing_proxy(switch_core_session_
                                                                                         SDP_TYPE_RESPONSE,
                                                                                         0,
                                                                                         8000,
-                                                                                        8000,
+                                                                                        20,
                                                                                         1,
                                                                                         SWITCH_TRUE);
 
index 73e266da01727812ad690f76b6c02fe114157e0c..cfbdd7673a072e87552251287dbd5b90ba1189e5 100644 (file)
@@ -364,24 +364,24 @@ SWITCH_MODULE_LOAD_FUNCTION(core_pcm_load)
                                                                                 switch_proxy_decode,   /* function to decode encoded data into raw data */
                                                                                 switch_proxy_destroy); /* deinitalize a codec handle using this implementation */
 
-  SWITCH_ADD_CODEC(codec_interface, "PROXY PASS-THROUGH");
-  switch_core_codec_add_implementation(pool, codec_interface, SWITCH_CODEC_TYPE_AUDIO,  /* enumeration defining the type of the codec */
-                     0, /* the IANA code number */
-                     "PROXY", /* the IANA code name */
-                     NULL,  /* default fmtp to send (can be overridden by the init function) */
-                     8000,  /* samples transferred per second */
-                     8000,  /* actual samples transferred per second */
-                     0, /* bits transferred per second */
-                     20000, /* number of microseconds per frame */
-                     160, /* number of samples per frame */
-                     320 * 2, /* number of bytes per frame decompressed */
-                     320 * 2, /* number of bytes per frame compressed */
-                     2, /* number of channels represented */
-                     1, /* number of frames per network packet */
-                     switch_proxy_init, /* function to initialize a codec handle using this implementation */
-                     switch_proxy_encode, /* function to encode raw data into encoded data */
-                     switch_proxy_decode, /* function to decode encoded data into raw data */
-                     switch_proxy_destroy); /* deinitalize a codec handle using this implementation */
+
+       switch_core_codec_add_implementation(pool, codec_interface, SWITCH_CODEC_TYPE_AUDIO,  /* enumeration defining the type of the codec */
+                                                                                0, /* the IANA code number */
+                                                                                "PROXY", /* the IANA code name */
+                                                                                NULL,  /* default fmtp to send (can be overridden by the init function) */
+                                                                                8000,  /* samples transferred per second */
+                                                                                8000,  /* actual samples transferred per second */
+                                                                                0, /* bits transferred per second */
+                                                                                20000, /* number of microseconds per frame */
+                                                                                160, /* number of samples per frame */
+                                                                                320 * 2, /* number of bytes per frame decompressed */
+                                                                                320 * 2, /* number of bytes per frame compressed */
+                                                                                2, /* number of channels represented */
+                                                                                1, /* number of frames per network packet */
+                                                                                switch_proxy_init, /* function to initialize a codec handle using this implementation */
+                                                                                switch_proxy_encode, /* function to encode raw data into encoded data */
+                                                                                switch_proxy_decode, /* function to decode encoded data into raw data */
+                                                                                switch_proxy_destroy); /* deinitalize a codec handle using this implementation */
 
        SWITCH_ADD_CODEC(codec_interface, "RAW Signed Linear (16 bit)");