Closed Bug 1207119 Opened 9 years ago Closed 9 years ago

Can't play MPEG samples (duolingo) (nightly)

Categories

(Core :: Audio/Video: Playback, defect, P1)

44 Branch
x86_64
Linux
defect

Tracking

()

RESOLVED FIXED
mozilla44
Tracking Status
firefox44 --- fixed

People

(Reporter: dustin, Assigned: jya)

Details

Attachments

(1 file)

This is on the current nightly:
  https://hg.mozilla.org/mozilla-central/rev/039a8490891595736b16a3ccb17f025f4dcf13eb

Similar to bug 1190122, I get no audio from duolingo, but this time in nightly.

STR: with a Duolingo account, open a lesson (I'm using Dutch, but I doubt that's relevant), and type a nonsense answer.  You should get a disappointed beep.  Instead, you get nothing.  Also, the audio readouts in the target language are not audible (expected in questions with a speaker icon).

I can confirm that other audio sources work fine -- youtube and google music, at least.

The MPEG file linked in that bug (https://d7mj4aqfscim2.cloudfront.net/tts/eo/sentence/195ad94154313ce01bc76c12847c067b) is not flagged as corrupt, but instead offers to download.

There are no errors in the JS console.
Works fine here (on mac)
The link plays directly just fine

which platform are you on ?

If you set media.mp3.enabled=false

does it play any better?
sorry that's media.mp3.enabled=true
Correction, I had ffmpeg enabled ; with media.mp3.enabled=true and the mac default mp3 decoder ; it plays like donald.

Eugen, could it be that the pts aren't properly set on the samples?

This is unlikely to be related to the original bug, as the the MP3 demuxer isn't used by default, but it does indicate a problem elsewhere.
Flags: needinfo?(esawin)
Sorry, I forgot to set the platform.  Fedora 22.

I don't see any 'media.mp3' or even 'mp3' preferences in about:config.
OS: All → Linux
Hardware: All → x86_64
wouldn't work on linux anyway.

So this is a gstreamer bug.

Which version of gstreamer do you have ? what plugins do you have installed?
dustin@hopper ~ $ rpm -qa | grep gstream | sort
gstreamer-0.10.36-11.fc22.x86_64
gstreamer1-1.4.5-1.fc22.i686
gstreamer1-1.4.5-1.fc22.x86_64
gstreamer1-plugins-bad-free-1.4.5-4.fc22.x86_64
gstreamer1-plugins-base-1.4.5-2.fc22.i686
gstreamer1-plugins-base-1.4.5-2.fc22.x86_64
gstreamer1-plugins-good-1.4.5-3.fc22.x86_64
gstreamer-plugins-bad-free-0.10.23-24.fc22.x86_64
gstreamer-plugins-base-0.10.36-12.fc22.x86_64
gstreamer-plugins-espeak-0.4.0-5.fc22.x86_64
gstreamer-plugins-good-0.10.31-13.fc22.x86_64
gstreamer-tools-0.10.36-11.fc22.x86_64
libnice-gstreamer1-0.1.13-1.fc22.x86_64
PackageKit-gstreamer-plugin-1.0.8-2.fc22.x86_64

I assume that answers the question?
I don't see anything wrong with the file, it being mono is the only anomaly I've found.
Playback works on Android (in-tree demuxer, Android decoder) and Ubuntu (with media.mp3.enabled=false).

I'm somewhat curious about the fact that it's reproducing on Mac, but I doubt that the demuxer logs would be useful here (there is no reason for them to be different between platforms).
Flags: needinfo?(esawin)
Is there a way I can test playback of that file in Firefox?  It just offers to download when I click on that link.
Maybe it's mono that is the issue with the Mac MP3 decoder.
(In reply to Dustin J. Mitchell [:dustin] from comment #6)
> dustin@hopper ~ $ rpm -qa | grep gstream | sort
> gstreamer-0.10.36-11.fc22.x86_64
> gstreamer1-1.4.5-1.fc22.i686
> gstreamer1-1.4.5-1.fc22.x86_64
> gstreamer1-plugins-bad-free-1.4.5-4.fc22.x86_64
> gstreamer1-plugins-base-1.4.5-2.fc22.i686
> gstreamer1-plugins-base-1.4.5-2.fc22.x86_64
> gstreamer1-plugins-good-1.4.5-3.fc22.x86_64
> gstreamer-plugins-bad-free-0.10.23-24.fc22.x86_64
> gstreamer-plugins-base-0.10.36-12.fc22.x86_64
> gstreamer-plugins-espeak-0.4.0-5.fc22.x86_64
> gstreamer-plugins-good-0.10.31-13.fc22.x86_64
> gstreamer-tools-0.10.36-11.fc22.x86_64
> libnice-gstreamer1-0.1.13-1.fc22.x86_64
> PackageKit-gstreamer-plugin-1.0.8-2.fc22.x86_64
> 
> I assume that answers the question?

Can you play other MP3 ? Because I don't see one that would make you play MP3 in that list.

gst-plugins-bad would typically contains the mpg123 one (and in that case you also need libmpg123), but I'm not sure about the free version.

You need to acquire a gstreamer plugin to play mp3 ; not sure of your locations but this site list the one you need:
https://ask.fedoraproject.org/en/question/9111/sticky-what-plugins-do-i-need-to-install-to-watch-movies-and-listen-to-music/
The channel count is stored on bit 6 & 7 of byte at offset 3.
(In reply to Eugen Sawin [:esawin] from comment #7)
> I don't see anything wrong with the file, it being mono is the only anomaly
> I've found.
> Playback works on Android (in-tree demuxer, Android decoder) and Ubuntu
> (with media.mp3.enabled=false).

because those decoders ignores the metadata we pass them on initialization.
The mac decoder relies on it.

The trackinfo.mChannels was set with a value of 2.
Assignee: nobody → jyavenard
Comment on attachment 8665731 [details] [diff] [review]
[mp3] Properly read channels count.

Review of attachment 8665731 [details] [diff] [review]:
-----------------------------------------------------------------

FrameHeader::Channels() returns 2 for anything but the field value 3, which explains why it hasn't shown up in tests.
Thanks for fixing this!
Attachment #8665731 - Flags: review+
Maybe we could add a mono mp3 mochitest.

Now, I'm not sure how we could test then if we played it properly, considering it just plays 2x as fast as normal but the duration is still the same.
I'm not sure about a mochitest, but we can add a mono file to the unit tests.
It looks like the packages mentioned in comment 10 would, indeed, get sound working again for duolingo, although there are limits on where they can be used.

If I understand correctly, the issue with channel count is specific to OS X?

Finally, what caused this to stop working between August 3 and today?
tested the following version in a new ubuntu 15.04 VM:
FF 37 (the default): ok
FF 41: ok
FF 42: ok
FF 43: ok
FF 44/Nightly: ok

using gstreamer 1.0 and local build: ok
here is the list of gstreamer plugin installed:
ii  gstreamer0.10-alsa:amd64                             0.10.36-2                                  amd64        GStreamer plugin for ALSA
ii  gstreamer0.10-fluendo-mp3:amd64                      0.10.29.debian-1ubuntu1                    amd64        Fluendo mp3 decoder GStreamer 0.10 plugin
ii  gstreamer0.10-nice:amd64                             0.1.7-1                                    amd64        ICE library (GStreamer 0.10 plugin)
ii  gstreamer0.10-plugins-bad:amd64                      0.10.23-7.4ubuntu2                         amd64        GStreamer plugins from the "bad" set
ii  gstreamer0.10-plugins-base:amd64                     0.10.36-2                                  amd64        GStreamer plugins from the "base" set
ii  gstreamer0.10-plugins-base-apps                      0.10.36-2                                  amd64        GStreamer helper programs from the "base" set
ii  gstreamer0.10-plugins-good:amd64                     0.10.31-3+nmu1ubuntu6                      amd64        GStreamer plugins from the "good" set
ii  gstreamer0.10-plugins-ugly:amd64                     0.10.19-2.1ubuntu1                         amd64        GStreamer plugins from the "ugly" set
ii  gstreamer0.10-pulseaudio:amd64                       0.10.31-3+nmu1ubuntu6                      amd64        GStreamer plugin for PulseAudio
ii  gstreamer0.10-tools                                  0.10.36-1.2ubuntu3                         amd64        Tools for use with GStreamer
ii  gstreamer0.10-x:amd64                                0.10.36-2                                  amd64        GStreamer plugins for X11 and Pango
ii  gstreamer1.0-fluendo-mp3:amd64                       0.10.29.debian-1ubuntu1                    amd64        Fluendo mp3 decoder GStreamer 1.0 plugin
ii  libgstreamer-plugins-bad0.10-0:amd64                 0.10.23-7.4ubuntu2                         amd64        GStreamer shared libraries from the "bad" set
ii  libgstreamer-plugins-base0.10-0:amd64                0.10.36-2                                  amd64        GStreamer libraries from the "base" set
ii  libgstreamer-plugins-base0.10-dev                    0.10.36-2                                  amd64        GStreamer development files for libraries from the "base" set
ii  libgstreamer0.10-0:amd64                             0.10.36-1.2ubuntu3                         amd64        Core GStreamer libraries and elements
ii  libgstreamer0.10-dev                                 0.10.36-1.2ubuntu3                         amd64        GStreamer core development files

fluendo would be the one used to play mp3 here
https://hg.mozilla.org/mozilla-central/rev/f6bedd7b0f2f
Status: NEW → RESOLVED
Closed: 9 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla44
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: