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.

Reply via email to