gnash-dev
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Gnash-dev] RTMP NetStream Patch


From: George Thomas
Subject: Re: [Gnash-dev] RTMP NetStream Patch
Date: Fri, 21 Jun 2013 01:24:59 +0530

On Wed, Jun 19, 2013 at 6:04 PM, Sandro Santilli <address@hidden> wrote:
> On Wed, Jun 19, 2013 at 02:45:06PM +0530, George Thomas wrote:
>> On Wed, Jun 19, 2013 at 2:12 PM, Sandro Santilli wrote:
>> > On Wed, Jun 19, 2013 at 12:29:43AM +0530, George Thomas wrote:
>> >> On Tue, Jun 18, 2013 at 6:40 PM, Sandro Santilli <...> wrote:
>> >> > On Tue, Jun 18, 2013 at 06:33:38PM +0530, George Thomas wrote:
>> >>
>> >> Looking at the logs the same is happening.
>> >>
>> >> 2826:1] 441 FUNCTION: PASSED: RTMP connection - status Success
>> >> 2826:1] 441 DEBUG: Loading native class NetStream
>> >> 2826:1] 441 DEBUG: Calling remote method createStream
>> >> 2826:1] 442 FUNCTION: In Run test
>> >> 2826:1] 442 FUNCTION: Running test1
>> >> 2826:1] 442 FUNCTION: NetStream contents
>> >> 2826:1] 442 DEBUG: Calling remote method play
>> >> 2826:1] 443 DEBUG: detachAuxStreamer called while not attached
>> >> 2826:1] 443 SECURITY: Connecting to movie: hobbit_vp6
>> >> 2826:1] 443 SECURITY: Checking security of URL
>> >> 'file:///home/george/work/bldGnash/testsuite/misc-ming.all/hobbit_vp6'
>> >> 2826:1] 444 SECURITY: Load of file
>> >> /home/george/work/bldGnash/testsuite/misc-ming.all/hobbit_vp6 granted
>> >> (under local sandbox
>> >> /home/george/work/bldGnash/testsuite/misc-ming.all/)
>> >> 2826:1] 444 ERROR: Could not open file
>> >> /home/george/work/bldGnash/testsuite/misc-ming.all/hobbit_vp6: No such
>> >> file or directory
>> >> 2826:1] 444 ERROR: Gnash could not get stream 'hobbit_vp6' from 
>> >> NetConnection
>> >> 2826:1] 445 ERROR: NetStream.play(hobbit_vp6): failed starting playback
>> >> 2826:1] 459 DEBUG: Received <invoke packet>
>> >
>> > You can see that Gnash tries to load the "hobbit_vp6" as a file,
>> > it shouldn't happen, right ?
>> >
>>
>> Yea the get stream is not returning an RTMP stream for playing.
>>
>> I was looking at the places to start for implementing this and wanted an
>> idea of how to validate if my changes are right.
>>
>> Looking into the streamProvider class for this.
>> http://git.savannah.gnu.org/cgit/gnash.git/tree/libbase/StreamProvider.cpp
>>
>> http looks to  be using curl for getting streams should RTMP follow the same 
>> ?
>> or can it be separate ?
>
> At the end of the day NetStream expects an IOChannel, so first of all
> you'll need an adapter so that an RTMP stream can expose an IOChannel
> interface. I don't know if that interface is good enough for all of
> RTMP. Once an IOChannel subclass exists you may add support for rtmp://
> uris into the StreamProvider to instanciate it.
>

I tried a change to the source where I pass the url instead of the
movie filename
for RTMP and I get the following debug saying stream successfully
created by curl

Change

    if(isRTMP())
    {
       std::string rtmpUrl = _uri + "/" + name;
       URL url(rtmpUrl, streamProvider.baseURL());
       return streamProvider.getStream(url, rcfile.saveStreamingMedia());
    }
    else
    {
       // How it was before
       URL url(name, streamProvider.baseURL());
       return streamProvider.getStream(url, rcfile.saveStreamingMedia());
    }

Effect

11545:1] 236 DEBUG: Calling remote method play
11545:1] 240 DEBUG: detachAuxStreamer called while not attached
11545:1] 240 SECURITY: Connecting to movie: hobbit_vp6
11545:1] 240 SECURITY: Checking security of URL
'rtmp://localhost:1935/oflaDemo/hobbit_vp6'
11545:1] 240 SECURITY: Load from host localhost granted (default)
11545:1] 240 DEBUG: CurlStreamFile 0xb47b06c0 created
11545:1] 361 DEBUG: Parsing FLV version 1, audio:1, video:1
11545:1] 361 DEBUG: Starting MediaParser thread
11545:1] 382 DEBUG: Received <invoke packet>


The play Head also kept moving with this change. I am guessing its because RTMP
is supported in libcurl.

>> >> After this the video packets come from the server which it unaware of.
>> >>
>> >> 2826:1] 796 DEBUG: Received <metadata packet>
>> >> 2826:1] 807 DEBUG: Received <audio packet>
>> >> 2826:1] 827 ERROR: Incomplete packet received on channel 21
>> >> 2826:1] 827 ERROR: Incomplete packet received on channel 21
>> >> 2826:1] 827 ERROR: Incomplete packet received on channel 21
>> >> 2826:1] 827 ERROR: Incomplete packet received on channel 21
>> >> 2826:1] 827 ERROR: Incomplete packet received on channel 21
>> >> 2826:1] 837 ERROR: Incomplete packet received on channel 21
>> >> 2826:1] 837 ERROR: Incomplete packet received on channel 21
>> >> 2826:1] 837 ERROR: Incomplete packet received on channel 21
>> >> 2826:1] 837 ERROR: Incomplete packet received on channel 21
>> >> 2826:1] 837 ERROR: Incomplete packet received on channel 21
>> >
>> > I guess these ones come from the RTMP class itself, correct ?
>>
>> Yeah they are RTMP is trying to evaluate them as command packets but these 
>> are
>> the video and audio packets.
>
> This is a bug in the RTMP code, right ?

These packets should be handled by the stream rather than the RTMP code right
or is the IOChannel there for a different reason ?

The ERROR messages remained the same even if when stream was created by
curlstreamfile.

-George-



reply via email to

[Prev in Thread] Current Thread [Next in Thread]