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: Sandro Santilli
Subject: Re: [Gnash-dev] RTMP NetStream Patch
Date: Fri, 21 Jun 2013 00:44:18 +0200
User-agent: Mutt/1.5.21 (2010-09-15)

On Fri, Jun 21, 2013 at 01:24:59AM +0530, George Thomas wrote:
> 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.

Wow, this is great news ! I didn't know curl supported RTMP already.

> >> >> 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 ?

./libbase/RTMP.cpp:            log_error(_("Incomplete packet received on 
channel %s"), channel);

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

Why is RTMP.cpp inolved in this at all, if libcurl would be enough
to get the video our way ? Did you try using the command-line curl(1) 
to fetch the audio/video stream ?

--strk;



reply via email to

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