[Freeswitch-svn] [commit] r11534 - freeswitch/trunk/src/mod/endpoints/mod_opal
FreeSWITCH SVN
robertj at freeswitch.org
Tue Jan 27 19:12:37 PST 2009
Author: robertj
Date: Tue Jan 27 21:12:36 2009
New Revision: 11534
Log:
Removed the construction of new OpalMediaFormat instances from FS codecs, need for H.323 capabilities makes this impossible, OPAL must know about the codec a priori (and how to make H.323 capability from it) or it cannot be used.
Modified:
freeswitch/trunk/src/mod/endpoints/mod_opal/mod_opal.cpp
freeswitch/trunk/src/mod/endpoints/mod_opal/mod_opal.h
Modified: freeswitch/trunk/src/mod/endpoints/mod_opal/mod_opal.cpp
==============================================================================
--- freeswitch/trunk/src/mod/endpoints/mod_opal/mod_opal.cpp (original)
+++ freeswitch/trunk/src/mod/endpoints/mod_opal/mod_opal.cpp Tue Jan 27 21:12:36 2009
@@ -351,6 +351,21 @@
AddRouteEntry("iax2:.* = local:<da>"); // config option for direct routing
AddRouteEntry("local:.* = h323:<da>"); // config option for direct routing
+ // Make sure all known codecs are instantiated,
+ // these are ones we know how to translate into H.323 capabilities
+ GetOpalG728();
+ GetOpalG729();
+ GetOpalG729A();
+ GetOpalG729B();
+ GetOpalG729AB();
+ GetOpalG7231_6k3();
+ GetOpalG7231_5k3();
+ GetOpalG7231A_6k3();
+ GetOpalG7231A_5k3();
+ GetOpalGSM0610();
+ GetOpalGSMAMR();
+ GetOpaliLBC();
+
/* For compatibility with the algorithm in FSConnection::SetCodecs() we need
to set all audio media formats to be 1 frame per packet */
OpalMediaFormatList allCodecs = OpalMediaFormat::GetAllRegisteredMediaFormats();
@@ -469,49 +484,6 @@
}
-bool FSEndPoint::AddMediaFormat(const switch_codec_implementation_t *codec)
-{
- OpalMediaType mediaType;
-
- switch (codec->codec_type) {
- case SWITCH_CODEC_TYPE_AUDIO:
- mediaType = OpalMediaType::Audio();
- break;
-
- case SWITCH_CODEC_TYPE_VIDEO:
- mediaType = OpalMediaType::Video();
- break;
-
- case SWITCH_CODEC_TYPE_T38:
- mediaType = OpalMediaType::Fax();
- break;
-
- default:
- return false;
- }
-
- OpalMediaFormat * newMediaFormat = new OpalMediaFormat(codec->iananame,
- mediaType,
- (RTP_DataFrame::PayloadTypes) codec->ianacode,
- codec->iananame,
- codec->codec_type == SWITCH_CODEC_TYPE_AUDIO,
- codec->bits_per_second,
- codec->encoded_bytes_per_packet,
- codec->samples_per_packet,
- codec->samples_per_second);
- if (newMediaFormat == NULL || !newMediaFormat->IsValid()) {
- return false;
- }
-
- // Save pointer so will auto delete allocated objects on destruction.
- m_globalMediaFormats.Append(newMediaFormat);
-
- PTRACE(2, "mod_opal\tNew OPAL media format created for FS codec: iananame=" << codec->iananame
- << ", ianacode=" << codec->ianacode << ", rate=" << codec->samples_per_second);
- return true;
-}
-
-
///////////////////////////////////////////////////////////////////////
FSConnection::FSConnection(OpalCall & call, FSEndPoint & endpoint)
@@ -680,11 +652,8 @@
// See if we have a match by name alone
switchFormat = codec->iananame;
if (!switchFormat.IsValid()) {
- // Add the new name to OPAL's global lists
- if (m_endpoint.AddMediaFormat(codec)) {
- // Now we finally have it
- switchFormat = codec->iananame;
- }
+ PTRACE(2, "mod_opal\tCould not match FS codec " << codec->iananame << " to OPAL media format.");
+ continue;
}
}
Modified: freeswitch/trunk/src/mod/endpoints/mod_opal/mod_opal.h
==============================================================================
--- freeswitch/trunk/src/mod/endpoints/mod_opal/mod_opal.h (original)
+++ freeswitch/trunk/src/mod/endpoints/mod_opal/mod_opal.h Tue Jan 27 21:12:36 2009
@@ -114,11 +114,6 @@
virtual bool OnIncomingCall(OpalLocalConnection &);
virtual OpalLocalConnection *CreateConnection(OpalCall &, void *);
-
- bool AddMediaFormat(const switch_codec_implementation_t *codec);
-
- private:
- PList<OpalMediaFormat> m_globalMediaFormats;
};
More information about the Freeswitch-svn
mailing list