[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