Closed Bug 1159745 Opened 9 years ago Closed 14 days ago

Firefox says mp3 is corrupt, but it downloads and plays just fine

Categories

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

40 Branch
defect

Tracking

()

RESOLVED WORKSFORME
Tracking Status
firefox40 --- affected

People

(Reporter: VarCat, Unassigned)

References

()

Details

+++ This bug was initially created as a clone of Bug #949036 +++

I get the "Video can't be played because it is corrupt" box when I visit the URL: http://www.theyoungnovelists.com/SilentNight.mp3 , but I downloaded it via Firefox and played it in Rhythmbox and it worked just fine.
No longer depends on: 949036
The file in question is actually a mislabeled uncompressed WAVE file, so this is not an issue with the MP3 decoder as such. However, we do fail on it in an odd way (tested on Windows 7):

(In reply to Emanuel Hoogeveen [:ehoogeveen] from comment #14)
> Trying to decode the mp3 from the URL fails in two places:
> 
> [6256] WARNING: CoCreateInstance failed, hr=80040154: file
> dom/media/directshow/DirectShowUtils.cpp, line 198
> [6256] WARNING: NS_ENSURE_TRUE(SUCCEEDED(hr)) failed: file
> dom/media/directshow/DirectShowReader.cpp, line 186
> 
> The first one is part of a call that is expected to fail on versions of
> Windows after Windows XP, but it's odd that CoCreateInstance is failing of
> all things (it doesn't fail with the other mp3s linked in this bug).
> 
> The second failure is the first ConnectFilters() call, which simply connects
> the demuxer to the source filter. I have no idea why this would fail when
> all the previous calls succeeded. It might be interesting to see if things
> fail the same way on other OSes.

I would expect this to fail earlier, when we determine that the file is not an MP3 at all. But it's possible that there is some data in the file that happens to *look like* either an MP3 frame or an ID3v2 tag. It's difficult to prove a negative, after all.

Since 1) Firefox does not support the WAVE format, 2) finding that the file is not an MP3 would present the same error (file is corrupt), and 3) even some dedicated music players such as foobar2000 choke on it, I don't think this is a huge problem.

To fix it, I think we would need to recognize it as a WAVE file. Then we could either play it ('decoding' uncompressed WAVE is not difficult) or at least present a better error message. As long as we treat it as an MP3 on the basis of the file extension, I don't think there's a lot we can do.
Component: Audio/Video → Audio/Video: Playback
Severity: normal → S3

No longer occurs in our latest Release 123.0.1, when we download the file we correctly download it as a .wav file and it works without issues.

Status: NEW → RESOLVED
Closed: 14 days ago
Resolution: --- → WORKSFORME
You need to log in before you can comment on or make changes to this bug.