On Fri, Jun 21, 2013 at 01:24:59AM +0530, George Thomas wrote: > On Wed, Jun 19, 2013 at 6:04 PM, Sandro Santilli <s...@keybit.net> 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; _______________________________________________ Gnash-dev mailing list Gnash-dev@gnu.org https://lists.gnu.org/mailman/listinfo/gnash-dev