Fri 02 Jan 2009 04:58:31 PM UTC, comment #16:
For an XO ? I can probably build you an RPM, or you can do a Gnash build from trunk.
|
Fri 02 Jan 2009 04:56:25 PM UTC, comment #15:
Where/How can I get the update/fix to test. Thanks
|
Wed 26 Nov 2008 09:24:00 PM UTC, comment #14:
With strk's fix this game (and all the others in the key stage 1 area) should work.
|
Wed 26 Nov 2008 04:53:46 PM UTC, comment #13:
At the moment getBytesLoaded returns _lastParsedPosition (for ffmpeg at least).
|
Wed 26 Nov 2008 04:45:40 PM UTC, comment #12:
the reason is seeks.
Consider youtube... getBytesLoaded from a NetStream doesn't
get back to zero if you seek back to zero.
Rather, there's a bug in one of the media parsers
which is not properly updating the bytes loaded member
(what's returned by getBytesLoaded).
|
Wed 26 Nov 2008 04:40:42 PM UTC, comment #11:
Returning _stream->tell() from the media parser's getBytesLoaded method finally lets the movie play. Is there a reason not to do this?
|
Wed 26 Nov 2008 04:25:21 PM UTC, comment #10:
Now, I've committed a fix for the constructor, which allows Gnash to start loading the sounds.
This depends on getBytesLoaded() and getBytesTotal(). The latter is undefined in the pp much more than in Gnash. With ffmpeg we load quite a few sounds, with gst not as many.
With ffmpeg it gets stuck loading instructions.mp3 for me, as Gnash only reaches 6144 bytes, when the stream is 6188 bytes long.
|
Wed 26 Nov 2008 01:37:15 PM UTC, comment #9:
DisplayList::place_character, which calls stagePlacementCallback, can't copy the properties because the displaylist is still not constructed.
I have a working implementation that passes initObj to MovieClip::stagePlacementCallback (and unfortunately all the other implementations of the virtual function), and delays calling copyProperties() and constructAsScriptObject() until the end of the function, instead of before DisplayList construction. It doesn't seem particularly clean.
|
Wed 26 Nov 2008 12:19:38 PM UTC, comment #8:
The display list is constructed by the ::onStagePlacement call,
which is performed on placement.
You may try passing the init object to DisplayList, and maybe
forward to ::onStagePlacement as an argument, or let DisplayList
do the dirty work.
|
Wed 26 Nov 2008 11:39:07 AM UTC, comment #7:
The null bounds comes from MovieClip::getBounds() being called while the display list is empty.
|
Wed 26 Nov 2008 10:17:28 AM UTC, comment #6:
In attachMovie, copying the initObj properties before attaching the character succeeds (I think) in every instance except for height and width. This seems to be because those two properties rely on getBounds(), and the bounds are NULL at that time. Not sure what to do about this.
That change does fix the loading of this movie, but it still get stuck, I imagine because Sounds.getBytesLoaded / getBytesTotal still haven't been implemented.
|
Mon 24 Nov 2008 03:42:50 PM UTC, comment #5:
I tested with 0.8.4-2 and now it appears to "lock up" when loading text instead of sounds.
The system crash I originally mentioned occurred on an OLPC XO. I'll see what I can do to get some more debugging information from that to help.
|
Mon 24 Nov 2008 03:36:47 PM UTC, comment #4:
The problem comes from the attachMovie call with an initialization object and a constructor function. The properties of the object should be available to the constructor, but they are not.
|
Mon 24 Nov 2008 02:13:31 PM UTC, comment #3:
Some arrays of URLs to mp3s should be loaded from a sounds XML file.
The function reference_Sounds seems to be passed as a callback in loadXMLSounds(). reference_Sounds() is called, but soundsXML.firstChild.childNodes is empty, which means the two arrays soundsC and soundsL aren't filled, so in referenceSpeechs() the call to addSounds passes an empty array. Consequently the elements 0 and 1 are undefined. That's where the undefined values are coming from.
It's not (yet) an XML parsing bug, as Gnash traces show that the sounds xml file is never loaded.
|
Sat 22 Nov 2008 09:27:44 AM UTC, comment #2:
The undefined value comes from R5[1] (shown both in the LOADING trace and the loadSound call), which is used after array.shift(). Not sure whether the array is defined at that point yet.
R5 = array_.shift();
R4 = R5[0];
R6 = root.PATH.sounds+R5[1];
R7 = R5[2];
[...]
this.tempSound = new Sound(this.tempMC);
this.tempName = R4;
trace('LOADING '+R5[1]);
this.tempSound.loadSound(R6,false);
|
Sat 22 Nov 2008 09:01:25 AM UTC, comment #1:
An example of the loading problem is: http://www.bbc.co.uk/schools/ks1bitesize/numeracy/numbers/maincontainer_001.swf
14957:3045320432] 09:54:03 ERROR: HTTP response 404 from url http://downloads.bbc.co.uk/schools/ks1bitesize/numbers/data/sounds/undefined
14957:3045320432] 09:54:03 ERROR: MediaHandler::isFLV: Could not read 3 bytes from input stream
14957:3045320432] 09:54:03 DEBUG: CurlStreamFile 0x9f6adc0 deleted
14957:3045320432] 09:54:03 ERROR: Could not create FFMPEG based media parser for input stream: MediaParserFfmpeg could not read probe data from input
14957:3045320432] 09:54:03 ERROR: Unable to create parser for Sound at http://downloads.bbc.co.uk/schools/ks1bitesize/numbers/data/sounds/undefined
14957:3045320432] 09:54:03 DEBUG: Global instance list grew to 16 entries
14957:3045320432] 09:54:03 UNIMPLEMENTED: Sound.getBytesLoaded()
14957:3045320432] 09:54:03 UNIMPLEMENTED: Sound.getBytesTotal()
So first problem: undefined value for load. Second problem, Sound.getBytesLoaded and getBytesTotal should be implemented. There's already a bug report for a similar problem.
For the crash, please try with a more recent version of Gnash. 0.8.4 contains many bugfixes compared to 0.8.3, and current head fixes some bugs in 0.8.4.
Can you give a URL of a page (and preferably the SWF file) where you see a crash? I've tried some of the pages under http://www.bbc.co.uk/schools/ks2bitesize/, and they appear to work fine, but I've no idea if I'm trying the same ones as you.
And please open another bug for it. This bug is for the loading problems.
|
Fri 21 Nov 2008 10:04:08 PM UTC, original submission:
Problematic sites are:
Link to all of the sections;
http://www.bbc.co.uk/schools/revision/
Links to different key stages;
http://www.bbc.co.uk/schools/ks1bitesize/ - Not loading - due to sound
http://www.bbc.co.uk/schools/ks2bitesize/ - Crashes
http://www.bbc.co.uk/schools/ks3bitesize/
|