Revision: 11161
Author: [email protected]
Date: Wed Apr 14 05:58:18 2010
Log: Fixed AOBI Exception for rx/txExtendedFormat
http://code.google.com/p/mobicents/source/detail?r=11161
Modified:
/trunk/servers/media/core/server-impl/src/main/java/org/mobicents/media/server/RtpConnectionImpl.java
=======================================
---
/trunk/servers/media/core/server-impl/src/main/java/org/mobicents/media/server/RtpConnectionImpl.java
Wed Mar 31 02:44:41 2010
+++
/trunk/servers/media/core/server-impl/src/main/java/org/mobicents/media/server/RtpConnectionImpl.java
Wed Apr 14 05:58:18 2010
@@ -42,7 +42,6 @@
import org.mobicents.media.server.impl.rtp.sdp.SessionDescriptor;
import org.mobicents.media.server.resource.Channel;
import org.mobicents.media.server.spi.Connection;
-import org.mobicents.media.server.spi.ConnectionMode;
import org.mobicents.media.server.spi.ConnectionState;
import org.mobicents.media.server.spi.MediaType;
import org.mobicents.media.server.spi.ResourceUnavailableException;
@@ -167,23 +166,32 @@
}
return profile;
}
+
+ private boolean formatPresent(Format[] srcFormat, Format
formatToCheck, int count){
+ for(int i = 0; i < count; i++){
+ Format f = srcFormat[i];
+ if(f.matches(formatToCheck)){
+ return true;
+ }
+ }
+ return false;
+ }
private int getExtendedRxFormats(Format[] formats, Collection<Codec>
codecs, Format[] extended) {
int count = 0;
for (Format fmt : formats) {
+
+ if(formatPresent(extended, fmt, count)){
+ continue;
+ }
+
extended[count++] = fmt;
if (fmt == Format.ANY) {
break;
}
for (Codec c : codecs) {
if (c.getSupportedOutputFormat().matches(fmt)) {
- boolean present = false;
- for (int i = 0; i < count; i++) {
- if
(extended[i].matches(c.getSupportedInputFormat())) {
- present = true;
- break;
- }
- }
+ boolean present = formatPresent(extended,
c.getSupportedInputFormat(), count);
if (!present) {
extended[count++] = c.getSupportedInputFormat();
}
@@ -196,19 +204,18 @@
private int getExtendedTxFormats(Format[] formats, Collection<Codec>
codecs, Format[] extended) {
int count = 0;
for (Format fmt : formats) {
+
+ if(formatPresent(extended, fmt, count)){
+ continue;
+ }
+
extended[count++] = fmt;
if (fmt == Format.ANY) {
break;
}
for (Codec c : codecs) {
if (c.getSupportedInputFormat().matches(fmt)) {
- boolean present = false;
- for (int i = 0; i < count; i++) {
- if
(extended[i].matches(c.getSupportedOutputFormat())) {
- present = true;
- break;
- }
- }
+ boolean present = formatPresent(extended,
c.getSupportedInputFormat(), count);
if (!present) {
extended[count++] = c.getSupportedOutputFormat();
}
--
To unsubscribe, reply using "remove me" as the subject.