[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Gnash-dev] from Hong Yu: Gnash/server/asobj/LoadVars.* need fix for run
From: |
Hong Yu |
Subject: |
[Gnash-dev] from Hong Yu: Gnash/server/asobj/LoadVars.* need fix for running www.twango.com videos |
Date: |
Mon, 28 Jan 2008 14:25:10 +0800 |
User-agent: |
Thunderbird 2.0.0.9 (X11/20071031) |
We are trying to use Gnash0.8.1 with its mozilla plugin to run online
video service from www.twango.com on Linux platform. However, we have
encountered some problem and after inspection we believe that the
appropriate fix is to modify the Gnash AS object 'LoadVars'
event-handling implementation: 'onLoad' and 'onData'. Detailed
descriptions of bug reproduction and our intended approach are in the
following.
Bug-Reproducing Procedure:
[1] Linux platform: Ubuntu 6.10 edgy
[2] Firefox in Ubuntu with version 2.0.0.11
[3] Uninstall adobe flash player plugin by removing/renaming the file
'libflashplayer.so' under the installation directory
${HOME}/.mozilla/plugins/
[4] Download Gnash 0.8.1 source from its GNU site, compile with
GCC4.1.1, and with those 'configure' options:
configure --prefix=${REBUILD_ROOT} \
--disable-kparts \
--enable-gui=gtk \
--with-ffmpeg-incl=/usr/include \
--with-ffmpeg-lib=/usr/lib \
--with-plugindir=${REBUILD_ROOT}/mozilla/plugins \
--enable-debugger \
--enable-fps-debug \
--enable-write
[5] After building Gnash0.8.1 successfully, copy 'libgnashplugin.so' to
${HOME}/.mozilla/plugins/; then restart firefox; then check the URL
'about:plugins' and find Gnash plugin information
[6] Test Gnash0.8.1 plugin with video on www.twango.com failed. The
first symptoms are: gnash child process is still running, but FLV data
never read from network.
In order to pinpoint the problem, we have de-compiled action-script code
from 'videoplayer.swf' from www.twango.com (see attached). The problem
is that current Gnash0.8.1 implementation of AS object 'LoadVars'
event-handlers 'onLoad' and 'onData' is not consistent with adobe
action-script2.0. We need to modify 'onLoad' and 'onData' of 'LoadVars'
AS object to achieve:
-- 'onLoad' will handle the one BOOL parameter successfully,
-- 'onData' will handle the one STRING parameter successfully,
-- 'LoadVariablesThread' will compute correct STRING value for 'onData'
handler.
We have changed 'server/LoadVariablesThread.*' and
'server/asobj/LoadVars.*' (see attached) for fixing the above problems
and have had progresses: we modified 'LoadVars::processLoaded()' so that
'onData' handler would be called after successful data-load; we added
'LoadVariablesThread::_rawVal' and 'LoadVariablesThread::getRawValue()'
so that 'LoadVariablesThread' would return correct unparsed string data
to 'LoadVars::load()'. In addition, we tried to modify
'LoadVars::processLoaded()' and 'LoadVars::dispatchDataEvent()' so to
pass raw loaded data to 'onData' event handler as parameter. However,
'onData' handler with one STRING parameter did not run successfully, and
after some executions, gtk-gnash child process detected the 'env' stack
non-empty in the call to 'markReachableResources()' and exited. We were
not able to find simple fix for the stack problem.
On the other hand, since Gnash0.8.1 can run online video from
www.youtube.com successfully, and we find that youtube's 'player2.swf'
has extensive calls to AS object 'xml's 'onLoad' event handler. Our
intended fix approach is to re-write 'LoadVars' event-handlers 'onLoad'
and 'onData' and follow that of 'xml's 'onLoad' handler.
And, we eagerly wish for suggestions from those Gnash developers with
rich experience of Gnash internals. Your valuable advices will surely
help us find the best fix.
List of Attachments:
-- 'actions_videoplayer_twango.tar.gz': de-composed action-script code
from 'videoplayer.swf' of www.twango.com
-- 'gnash_src_modified.tar.gz': modified Gnash source code with our
tempted fix resulting in partial progress; after extraction, please
check where '// Hong Yu --' for our modifications
Best Regards,
Hong Yu
<address@hidden>
actions_videoplayer_twango.tar.gz
Description: GNU Zip compressed data
gnash_src_modified.tar.gz
Description: GNU Zip compressed data
- [Gnash-dev] from Hong Yu: Gnash/server/asobj/LoadVars.* need fix for running www.twango.com videos,
Hong Yu <=