Hi,
     After further testing. Well, actually I used the same application
I've developed just to test this bug, its attached to the SN-14 thread
on JIRA and you can find it here:

http://www.exintroverted.com/temp/test.swf

I simply get a different error from last time after 12 streams, here:

     [java] [ERROR] 51860 SocketAcceptorIoProcessor-0.0:( org.red5.server.net.rt
mp.codec.RTMPProtocolEncoder.error ) Error encoding object:
     [java] java.nio.BufferOverflowException
     [java]     at java.nio.HeapByteBuffer.put(HeapByteBuffer.java:165)
     [java]     at org.apache.mina.common.support.BaseByteBuffer.put(BaseByteBuf
fer.java:252)
     [java]     at org.apache.mina.common.ByteBuffer.put(ByteBuffer.java:501)
     [java]     at org.red5.server.net.rtmp.RTMPUtils.writeReverseInt(RTMPUtils.
java:60)
     [java]     at org.red5.server.net.rtmp.codec.RTMPProtocolEncoder.encodeHead
er(RTMPProtocolEncoder.java:198)
     [java]     at org.red5.server.net.rtmp.codec.RTMPProtocolEncoder.encodePack
et(RTMPProtocolEncoder.java:128)
     [java]     at org.red5.server.net.rtmp.codec.RTMPProtocolEncoder.encode(RTM
PProtocolEncoder.java:89)
     [java]     at org.red5.server.net.rtmp.codec.RTMPMinaProtocolEncoder.encode
(RTMPMinaProtocolEncoder.java:41)
     [java]     at org.apache.mina.filter.codec.ProtocolCodecFilter.filterWrite(
ProtocolCodecFilter.java:221)
     [java]     at org.apache.mina.common.support.AbstractIoFilterChain.callPrev
iousFilterWrite(AbstractIoFilterChain.java:444)
     [java]     at org.apache.mina.common.support.AbstractIoFilterChain.access$1
400(AbstractIoFilterChain.java:53)
     [java]     at org.apache.mina.common.support.AbstractIoFilterChain$EntryImp
l$1.filterWrite(AbstractIoFilterChain.java:809)
     [java]     at org.apache.mina.common.support.AbstractIoFilterChain$TailFilt
er.filterWrite(AbstractIoFilterChain.java:712)
     [java]     at org.apache.mina.common.support.AbstractIoFilterChain.callPrev
iousFilterWrite(AbstractIoFilterChain.java:444)
     [java]     at org.apache.mina.common.support.AbstractIoFilterChain.fireFilt
erWrite(AbstractIoFilterChain.java:435)
     [java]     at org.apache.mina.transport.socket.nio.SocketSessionImpl.write0
(SocketSessionImpl.java:169)
     [java]     at org.apache.mina.common.support.BaseIoSession.write(BaseIoSess
ion.java:146)
     [java]     at org.apache.mina.common.support.BaseIoSession.write(BaseIoSess
ion.java:132)
     [java]     at org.red5.server.net.rtmp.RTMPMinaConnection.write(RTMPMinaCon
nection.java:85)
     [java]     at org.red5.server.net.rtmp.Channel.write(Channel.java:124)
     [java]     at org.red5.server.net.rtmp.Channel.sendStatus(Channel.java:151)

     [java]     at org.red5.server.stream.consumer.ConnectionConsumer.pushMessag
e(ConnectionConsumer.java:108)
     [java]     at org.red5.server.messaging.InMemoryPushPushPipe.pushMessage(In
MemoryPushPushPipe.java:83)
     [java]     at org.red5.server.stream.ClientBroadcastStream.sendPublishStart
Notify(ClientBroadcastStream.java:496)
     [java]     at org.red5.server.stream.ClientBroadcastStream.checkSendNotific
ations(ClientBroadcastStream.java:453)
     [java]     at org.red5.server.stream.ClientBroadcastStream.dispatchEvent(Cl
ientBroadcastStream.java:415)
     [java]     at org.red5.server.net.rtmp.BaseRTMPHandler.messageReceived(Base
RTMPHandler.java:163)
     [java]     at org.red5.server.net.rtmp.RTMPMinaIoHandler.messageReceived(RT
MPMinaIoHandler.java:117)
     [java]     at org.apache.mina.common.support.AbstractIoFilterChain$TailFilt
er.messageReceived(AbstractIoFilterChain.java:700)
     [java]     at org.apache.mina.common.support.AbstractIoFilterChain.callNext
MessageReceived(AbstractIoFilterChain.java:361)
     [java]     at org.apache.mina.common.support.AbstractIoFilterChain.access$1
100(AbstractIoFilterChain.java:53)
     [java]     at org.apache.mina.common.support.AbstractIoFilterChain$EntryImp
l$1.messageReceived(AbstractIoFilterChain.java:785)
     [java]     at org.apache.mina.filter.codec.support.SimpleProtocolDecoderOut
put.flush(SimpleProtocolDecoderOutput.java:62)
     [java]     at org.apache.mina.filter.codec.ProtocolCodecFilter.messageRecei
ved(ProtocolCodecFilter.java:187)
     [java]     at org.apache.mina.common.support.AbstractIoFilterChain.callNext
MessageReceived(AbstractIoFilterChain.java:361)
     [java]     at org.apache.mina.common.support.AbstractIoFilterChain.access$1
100(AbstractIoFilterChain.java:53)
     [java]     at org.apache.mina.common.support.AbstractIoFilterChain$EntryImp
l$1.messageReceived(AbstractIoFilterChain.java:785)
     [java]     at org.apache.mina.common.support.AbstractIoFilterChain$HeadFilt
er.messageReceived(AbstractIoFilterChain.java:616)
     [java]     at org.apache.mina.common.support.AbstractIoFilterChain.callNext
MessageReceived(AbstractIoFilterChain.java:361)
     [java]     at org.apache.mina.common.support.AbstractIoFilterChain.fireMess
ageReceived(AbstractIoFilterChain.java:352)
     [java]     at org.apache.mina.transport.socket.nio.SocketIoProcessor.read(S
ocketIoProcessor.java:288)
     [java]     at org.apache.mina.transport.socket.nio.SocketIoProcessor.proces
s(SocketIoProcessor.java:248)
     [java]     at org.apache.mina.transport.socket.nio.SocketIoProcessor.access
$500(SocketIoProcessor.java:49)
     [java]     at org.apache.mina.transport.socket.nio.SocketIoProcessor$Worker
.run(SocketIoProcessor.java:540)
     [java]     at org.apache.mina.util.NamePreservingRunnable.run(NamePreservin
gRunnable.java:43)
     [java]     at java.lang.Thread.run(Thread.java:619)


On 2/9/07, Nankun Huang <[EMAIL PROTECTED]> wrote:
> HI,
>    this is simply fantastic =) The Red5 team rocks!
> NK
>
> On 2/9/07, Interalab <[EMAIL PROTECTED]> wrote:
> > Nice work!
> >
> > Joachim Bauch wrote:
> > > Hi,
> > >
> > > just a short FYI: the 12 stream-limit per connection is finally gone.
> > > Most of the credits go to Steven for finding out about 2 byte channel
> > > ids. The now (and final) maximum number of streams per connection is
> > > 13119 which should be enough for any type of application :)
> > >
> > > Technical background:
> > > RTMP uses two "magic" channels to encode such higher channel ids:
> > > Channel 0: 2 bytes containing "AB000000 CDEFGHIJ" where "AB" is
> > > the header size marker and "CDEFGHIJ" is the channel id - 64.
> > >
> > > Channel 1: 3 bytes containing "AB000001 KLMNOPQR CDEFGHIJ" where
> > > AB is the header size marker and "CDEFGHIJ KLMNOPQR" (network byte
> > > order!) is the channel id - 64.
> > >
> > > Examples (all assuming complete headers):
> > > Channel  234 is encoded as 0x00 0xAA
> > > Channel 3926 is encoded as 0x01 0x56 0x0F
> > >
> > > Joachim
> > >
> > >
> > > _______________________________________________
> > > Red5 mailing list
> > > [email protected]
> > > http://osflash.org/mailman/listinfo/red5_osflash.org
> > >
> >
> > _______________________________________________
> > Red5 mailing list
> > [email protected]
> > http://osflash.org/mailman/listinfo/red5_osflash.org
> >
>

_______________________________________________
Red5 mailing list
[email protected]
http://osflash.org/mailman/listinfo/red5_osflash.org

Reply via email to