[Red5commits] [681] jbauch

luke@codegent.com luke at codegent.com
Sun Apr 9 13:30:05 EDT 2006


re-enabled video codec support
removed obsolete stream methods from RTMPConnection


Timestamp: 04/10/06 03:19:06 (less than one hour ago) 
Change: 681 
Author: jbauch

Files (see diff or trac for details): 
java/server/trunk/conf/red5-common.xml
java/server/trunk/src/org/red5/server/net/rtmp/RTMPConnection.java
java/server/trunk/src/org/red5/server/stream/BroadcastStreamScope.java


Trac: http://mirror1.cvsdude.com/trac/osflash/red5/changeset/681

Index: /java/server/trunk/conf/red5-common.xml
===================================================================
--- /java/server/trunk/conf/red5-common.xml (revision 659)
+++ /java/server/trunk/conf/red5-common.xml (revision 681)
@@ -20,3 +20,11 @@
 		autowire="byType" init-method="init" />
 	
+	<bean id="videoCodecFactory" class="org.red5.server.stream.VideoCodecFactory">
+		<property name="codecs">
+			<list>
+				<bean id="screenVideoCodec" class="org.red5.server.stream.codec.ScreenVideo"/>
+				<bean id="sorensonVideoCodec" class="org.red5.server.stream.codec.SorensonVideo"/>
+			</list>
+		</property>
+	</bean>
 </beans>
Index: /java/server/trunk/src/org/red5/server/net/rtmp/RTMPConnection.java
===================================================================
--- /java/server/trunk/src/org/red5/server/net/rtmp/RTMPConnection.java (revision 680)
+++ /java/server/trunk/src/org/red5/server/net/rtmp/RTMPConnection.java (revision 681)
@@ -9,4 +9,5 @@
 import org.apache.mina.common.ByteBuffer;
 import org.red5.server.BaseConnection;
+import org.red5.server.api.IContext;
 import org.red5.server.api.IScope;
 import org.red5.server.api.so.ISharedObject;
@@ -24,4 +25,5 @@
 import org.red5.server.stream.BroadcastStream;
 import org.red5.server.stream.BroadcastStreamScope;
+import org.red5.server.stream.VideoCodecFactory;
 import org.red5.server.stream.OnDemandStream;
 import org.red5.server.stream.OutputStream;
@@ -29,4 +31,5 @@
 import org.red5.server.stream.Stream;
 import org.red5.server.stream.SubscriberStream;
+import org.springframework.context.ApplicationContext;
 
 public abstract class RTMPConnection extends BaseConnection 
@@ -37,4 +40,5 @@
 
 	private final static int MAX_STREAMS = 12;
+	private final static String VIDEO_CODEC_FACTORY = "videoCodecFactory";
 	
 	//private Context context;
@@ -110,4 +114,13 @@
 	}
 	
+	public VideoCodecFactory getVideoCodecFactory() {
+		final IContext context = scope.getContext();
+		ApplicationContext appCtx = context.getApplicationContext();
+		if (!appCtx.containsBean(VIDEO_CODEC_FACTORY))
+			return null;
+	
+		return (VideoCodecFactory) appCtx.getBean(VIDEO_CODEC_FACTORY);
+	}
+	
 	public IBroadcastStream newBroadcastStream(String name, int streamId) {
 		if (!reservedStreams[streamId])
@@ -123,7 +136,9 @@
 			((BroadcastStream) result).setStreamId(streamId+1);
 			((BroadcastStream) result).setDownstream(createOutputStream(streamId));
+			((BroadcastStream) result).setVideoCodecFactory(getVideoCodecFactory());
 		} else if (result instanceof BroadcastStreamScope) {
 			((BroadcastStreamScope) result).setStreamId(streamId+1);
 			((BroadcastStreamScope) result).setDownstream(createOutputStream(streamId));
+			((BroadcastStreamScope) result).setVideoCodecFactory(getVideoCodecFactory());
 		} else
 			log.error("Can't initialize broadcast stream.");
@@ -166,18 +181,4 @@
 		streams[streamId] = stream;
 		return stream;
-	}
-	
-	/* Returns a stream for the next available stream id or null if all slots are in use. */
-	public Stream createNewStream() {
-		synchronized (streams) {
-			for (int i=0; i<streams.length; i++)
-				if (streams[i] == null) {
-					Stream stream = createStream(i);
-					streams[i] = stream;
-					return stream;
-				}
-		}
-		
-		return null;
 	}
 	
@@ -212,18 +213,4 @@
 	}
 	
-	protected Stream createStream(int streamId){
-		byte channelId = (byte) (4 + (streamId * 5));
-		Stream stream = new Stream(this.getScope(), this);
-		stream.setStreamId(streamId+1);
-		final Channel data = getChannel(channelId++);
-		final Channel video = getChannel(channelId++);
-		final Channel audio = getChannel(channelId++);
-		//final Channel unknown = getChannel(channelId++);
-		//final Channel ctrl = getChannel(channelId++);
-		final OutputStream down = new OutputStream(this.getScope(), video,audio,data);
-		stream.setDownstream(down);
-		return stream;
-	}
-	
 	public void deleteStreamById(int streamId) {
 		if (streamId >= 0 && streamId < MAX_STREAMS-1) {
Index: /java/server/trunk/src/org/red5/server/stream/BroadcastStreamScope.java
===================================================================
--- /java/server/trunk/src/org/red5/server/stream/BroadcastStreamScope.java (revision 679)
+++ /java/server/trunk/src/org/red5/server/stream/BroadcastStreamScope.java (revision 681)
@@ -21,4 +21,8 @@
 		super(parent, IBroadcastStream.TYPE, name, false);
 		stream = new BroadcastStream(parent, conn);
+	}
+	
+	public void setVideoCodecFactory(VideoCodecFactory factory) {
+		stream.setVideoCodecFactory(factory);
 	}
 	



More information about the Red5commits mailing list