gnash-dev
[Top][All Lists]
Advanced

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

Re: [Gnash-dev] iPlayer using gnash


From: Matthew Spencer
Subject: Re: [Gnash-dev] iPlayer using gnash
Date: Tue, 15 Sep 2009 09:17:02 +0100

Hi again Rob

I have now integrated the code, but it seems to be acting as it was with the old version of NetConnection_as.cpp.  Could I ask a few more questions:

1, what is the best way to see what is happening in the actionscript?  My understanding is that the code will normally fail silently if there are unimplemented functions, is it possible for me to track these (bearing in mind that I have not written the iPlayer code and have no visibility of how they have implemented their rtmp streaming client side).

2, Which documents are you using for your actionscript reference?  I notice that you have a property NetConnection.isConnected, but according to the flash 9 specs (http://livedocs.adobe.com/flash/9.0/ActionScriptLangRefV3/flash/net/NetConnection.html) there is only a property NetConnection.connected.  My feeling is that the iPlayer code may be calling one of these functions that are unimplemented and failing silently to progress the RTMP negotiation pass the NetConnection.connect phase.

3, What is the process for pushing patches upstream?  Do I send them to the list?  I would be happy to send the initial work I have done to get the code compiling somewhere for review.

Matt

2009/9/13 Rob Savoye <address@hidden>
On 09/11/09 08:55, Matthew Spencer wrote:

Firstly, I am getting a huge number of 'UNIMPLEMENTED' messages in the log
for 'LocalConnection.send' of the form:
  13979:1] 14:46:44: DEBUG:  ***** The send function is called *****
  13979:1] 14:46:44: DEBUG: STOP! No memory allocated!!
  13979:1] 14:46:44: UNIMPLEMENTED: LocalConnection.send unimplemented
[string:emp], [string:traceIt], [string:{72} 14:46:44 [system_event]],
[string:Confirm IplayerLiveStats sent]

 LocalConnection::send() was mostly implemented by one of the student interns that worked on Gnash this summer. The part that needed to be finished was having the notifications work so a movie being player can get an event when data is written.


This looks to me to be a debug interface in the swf file that is not
currently connected to anything, my feeling is that this is safe to ignore
for the moment?

 Very likely, yes, as the real streaming doesn't have anything to do with LocalConnection.


The second question.  YouTube streaming seems to be working fine (although
not through the XL interface at youtube.com/xl).  Looking at the logs again,
it seems that youtube is using http rather than rtmp streaming.  I notice

  Yes, YouTube just uses HTTP, although at one time we noticed they were testing RTMP support for a pay-for-view service. RTMP is considered a form of DRM for streaming. (or was... :-) )


there is a lot of rtmp code in place in gnash, but an rtmp packet is never
sent.  Looking at the code in NetConnection_as.cpp, I also note that there
is only an HTTPRemotingHandler created (line 846), if I want to get RTMP
working, do I need to implement an RTMPRemotingHandler interface?

 I can send you my version of NetConnection_as.cpp, which has rewritten RTMPT support, and most of the client side of RTMP. Al the low level code is done, tested, and works. I just hadn't had time to glue it all into trunk. Remoting isn't really used for just RTMP based streaming like the BBC, that's more for video conferencing types of things. I recently checked in most of my latest RTMP improvements a few days ago, including an improved client side API, so NetConnection_as.cpp can now be simplified somewhat. At one time I had utilities/rtmpget working for the BBC. All you really need is the initial handshake and NetConnection packets, (look in libnet/rtmp_client.*), and sending the NetStream::play() INVOKE, also already supported by the client side API.

 All the RTMP code is in libamf and libnet, and works fine. Test cases are in testsuite/libamf.all, libnet.all, and network.all. The Network.all tests require a working RTMP server, Cygnal, Red5, or FMS all work fine. I was really hoping to get all this done by the release, but working with the student interns took more of my time than I had hoped it would.

 I may be going on vacation after the release, so for better response, hit me with questions now, :-) I'm working on the release, and hope to push it out next week.

       - rob -


reply via email to

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