bugGnash - The GNU Flash player - Bugs: bug #33760, gst fails to play loaded dynamic...


bug #33760: gst fails to play loaded dynamic sounds.

Submitted by:  Benjamin Wolsey <bwy>
Submitted on:  Wed Jul 13 07:39:55 2011  
Category: soundSeverity: 5 - Blocker
Release: masterStatus: Ready For Test
Privacy: PublicAssigned to: Bastiaan Jacques <bjacques>
Open/Closed: Closed

Add a New Comment (Rich MarkupRich Markup):

You are not logged in

Please log in, so followups can be emailed to you.


(Jump to the original submission Jump to the original submission)

Fri Nov 1 09:34:35 2013, comment #10:

No, this doesn’t seem to be a duplicate of #25456, which still needs to be fixed.


Pablo Rodríguez <ousia>
Wed Oct 30 18:09:39 2013, comment #9:

Sorry, but is bug 25456 a duplicate of this bug?

If it is, bug 25456 could be closed.

Many thanks for your help.

Pablo Rodríguez <ousia>
Tue Jul 9 21:22:07 2013, comment #8:

Should be fixed with 9c9fde8.

Bastiaan Jacques <bjacques>
Project MemberIn charge of this item.
Tue Jul 9 16:41:01 2013, comment #7:

I committed an attempted fix in 953e044, and although it solves the problem of this bug, it does not quite do the right thing. Some testing with the pp shows that:

- onLoad should not be called until the whole sound is loaded (parsed).
- if the sound is a streaming sound it should start playing immediately (and consequently onLoad will be called some time after playback starts).

Bastiaan Jacques <bjacques>
Project MemberIn charge of this item.
Sun Jul 7 13:16:32 2013, comment #6:

I've added a test for this issue in 941633fd.

Bastiaan Jacques <bjacques>
Project MemberIn charge of this item.
Sun Jul 7 10:01:20 2013, comment #5:

I converted my testing mp3 back and forth to WAVE, removing any tags, and now the movie is just as silent with ffmpeg as it is with Gstreamer.

Thinking a little bit about the fix: if it is desirable that the whole sound is parsed, then of course the buffer length should be made infinite. Otherwise, we could use MediaParser::bufferFull() to tell us whether there is enough data to start playing, although that is an internal API at the moment.

Bastiaan Jacques <bjacques>
Project MemberIn charge of this item.
Sun Jul 7 01:32:43 2013, comment #4:

> Well, there is a bug in the ffmpeg MediaParser, that somehow detects a single video frame in the mp3

This might not be a bug exactly, because the mp3 with which I am testing happens to have a little JPEG data embedded, presumably in an ID3 tag, which ffmpeg is treating as video.

Bastiaan Jacques <bjacques>
Project MemberIn charge of this item.
Sat Jul 6 23:20:25 2013, comment #3:

MediaParser base class is in charge of obtaining new buffers from the derived Media Parser class, which I will call "DMP". MediaParser asks DMP to parse frames until a buffer (set to 1 minute) is full. Then it waits for Sound_as to consume the buffers and parsing continues. The trouble is that there is a chicken-and-egg situation between MediaParser and Sound_as:
Sound_as waits for parsing to be completed before it consumes audio and MediaParser is waiting for Sound_as to consume some data before it parses the rest of the file.

So, you ask, why does it work with Ffmpeg at all? Well, there is a bug in the ffmpeg MediaParser, that somehow detects a single video frame in the mp3, and the buffer length is calculated to be the minimum of either the audio or video time, and since the minimum video time will never reach the one minute barrier, Ffmpeg is permitted to parse the whole file; and then Sound_as can begin consuming.

Bastiaan Jacques <bjacques>
Project MemberIn charge of this item.
Fri Jul 15 09:19:35 2011, comment #2:

It was 6b478714a7264187cce8bd6d24c458ed94441843, the implementation of the onLoad callback. The problem isn't really the code that was added, but rather the fact that the gst decoder doesn't behave as expected.

It never sets decodingCompleted() to true, even though at some point it stops decoding and just sits there uselessly waiting for something to happen.

Benjamin Wolsey <bwy>
Project Member
Wed Jul 13 16:07:56 2011, comment #1:

0.8.9 appears to work, so this is a recent regression.

Benjamin Wolsey <bwy>
Project Member
Wed Jul 13 07:39:55 2011, original submission:

The following code should load and play some.mp3. It works as expected with ffmpeg, not with gstreamer.

s = new Sound();
s.loadSound("some.mp3", true);

It has been a bug for a while.

Benjamin Wolsey <bwy>
Project Member


(Note: upload size limit is set to 16384 kB, after insertion of the required escape characters.)

Attach File(s):

No files currently attached


Depends on the following items: None found

Items that depend on this one: None found


Carbon-Copy List
  • -unavailable- added by ousia (Posted a comment)
  • -unavailable- added by bjacques (Posted a comment)
  • -unavailable- added by bwy (Submitted the item)

    Do you think this task is very important?
    If so, you can click here to add your encouragement to it.
    This task has 0 encouragements so far.

    Only logged-in users can vote.


    Please enter the title of George Orwell's famous dystopian book (it's a date):



    Follow 6 latest changes.

    Date Changed By Updated Field Previous Value => Replaced By
    Sat Jul 13 10:46:03 2013bjacquesOpen/ClosedOpen=>Closed
    Tue Jul 9 21:22:07 2013bjacquesStatusConfirmed=>Ready For Test
    Tue Jul 9 16:41:01 2013bjacquesAssigned toNone=>bjacques
    Sun Jul 7 10:01:20 2013bjacquesStatusNone=>Confirmed
    Sat Jul 6 23:20:25 2013bjacquesCategorysound-gst=>sound
    Wed Jul 13 16:07:56 2011bwySeverity3 - Normal=>5 - Blocker

    Back to the top

    Powered by Savane 3.1-cleanup1