Hi everyone

I'm trying to get into open source development at the moment and so I'd like
to get involved in working on gnash. I've identified a couple of problems
that come up when playing particular SWFs with embedded (non-streaming)
MP3s.

Note: I am using a recent bzr trunk version of gnash with SDL and gstreamer
0.10.14.

The first problem occurs particularly with movies on
www.weebls-stuff.com(the earlier ones - the new ones use the newest
version of flash, which
causes other problems). I have looked in particular at the movies
/flash/pie.swf, /flash/donkey.swf, /flash/angry.swf, and /flash/hairy.swf.
They all have a looping sound that is set to loop a large number of times
(say, 50) in the StartSound tag. The movie doesn't actually last for that
number of loops, so presumably it is just a lazy way of saying "until end of
movie". In Adobe flash, this is certainly how it is interpreted. However,
gnash seems to keep the old copy of the looping sound playing when the movie
restarts. An odd feature of this is that when it restarts the movie, it
first momentarily pauses the old instance (of the MP3), then restarts it
again when the new MP3 instance starts.

I've put a printf, reporting the value of soundsPlaying, into play_sound. On
the first run of the SWF, it reports values of 1, 2, 2, 2, ..., 3, 2, 2...,
while on the second run it reports 2, 3, 3, 3, ..., 4, 3, 3... .

I created my own looping-MP3 swfs using Ming, to see if I got the same
behaviour, and strangely, my SWFs have the probem in both gnash *and* in the
adobe player (i.e. where the old copy overlaps with the new copy). It is
difficult to see how the adobe player manages to "differentiate" between the
two sets of swf files.

The other problem is that sound decoding doesn't keep up with output. This
shows up with "gtk-gnash -v -v pie.swf":

DEBUG: do_mixing: less samples fetched (1488) then I requested (1880).
Filling the rest with silence

and this seems to happen every time a new sound comes in on top of the
background loop. It causes noticeable pauses in playback. The fact that it
always happens exactly once per new sound-instance suggests to me that it
only happens at the beginning or end of decoding...

As for the looping sounds problem, it is difficult for me to know where to
start, as I do not know what the correct behaviour should be. But I would
personally take the attitude that whatever the adobe flash player does is
the correct behaviour, as the primary aim here is compatibility.

-- 
Martin Sidaway
_______________________________________________
Gnash-dev mailing list
[email protected]
http://lists.gnu.org/mailman/listinfo/gnash-dev

Reply via email to