Closed Bug 1565838 Opened 4 months ago Closed 3 months ago

Android 6 mpeg audio "Media Resource" "could not be decoded, error: Error Code: NS_ERROR_DOM_MEDIA_FATAL_ERR (0x806e0005) Details: ProcessOutput", html5 ended event does not fire

Categories

(Firefox for Android :: Audio/Video, defect, P3)

Firefox 68
ARM
Android
defect

Tracking

()

VERIFIED FIXED
Firefox 70
Webcompat Priority ?
Tracking Status
firefox-esr60 --- unaffected
firefox-esr68 --- verified
firefox68 --- wontfix
firefox69 --- verified
firefox70 --- verified

People

(Reporter: pqwoerituytrueiwoq, Assigned: jhlin)

References

(Regression)

Details

(Keywords: regression)

Attachments

(4 files)

Attached file Test Sample.zip

User Agent: Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:67.0) Gecko/20100101 Firefox/67.0

Steps to reproduce:

Play mp3 content in a audio tag and expect the ended event to work properly as it previously did

Actual results:

my expeditions did not come to fruition

Expected results:

The audio should fire the ended event when the media cont reaches the end

This issue occurs on my Galaxy S5 (SM-S903VL) running android 6.0.1 while using Firefox 68

Hi, I tested the issue with a device and android version similar to yours, Samsung Galaxy S6(Android 6.0.1) on Firefox Release 68.0, Firefox Beta 68.1b1 and Firefox Nightly 68.1a1(2019-07-13) but was not able to reproduce.

What do you mean when you say that the ended event does not work properly? Does the site that you used had a pop up displayed when the video was ended? Example: https://www.w3schools.com/tags/tryit.asp?filename=tryhtml5_av_event_ended
Can you provide the link for the audio?

Flags: needinfo?(pqwoerituytrueiwoq)
OS: Unspecified → Android
Hardware: Unspecified → ARM

I attached a sample html file with a audio sample
I can confirm the w3schools pages works, well until i remove the ogg format audio

Flags: needinfo?(pqwoerituytrueiwoq)
Summary: html5 ended event does not fire → html5 ended event does not fire (mpeg audio)

Thanks for the testcase. I'm not reproducing in Firefox 68 for Android on a Pixel, Android 9.
i.e. I see

Play event detected
Pause event detected
Ended event detected

Keywords: regression
Priority: -- → P3

I do know it used to work on this phone just fine, it has been working fine for months, it stopped working on the 12th
i never restart the browser unless android decided on its own it needs to stop it the process so the issue may not have appeared for a week or so after a update broke it
I got some screenshots after managing to get remote debugging working

Attached image Debug screenshot

The audio does play, the warnings only appear at end of playback

Summary: html5 ended event does not fire (mpeg audio) → Android 6 mpeg audio "Media Resource" "could not be decoded, error: Error Code: NS_ERROR_DOM_MEDIA_FATAL_ERR (0x806e0005) Details: ProcessOutput", html5 ended event does not fire
Attached file betterTestPage.zip

I made a better test page, one that test EVERY event and logs more data to the console
Here is the console data: https://pastebin.com/5Xc8n6W7

Hello,

I managed to reproduce your issue on Release 68.0, Beta 68.1b3 and Nightly 70.0a1 (2019-07-22) using a Samsung Galaxy S5 (Android 6.0.1), I will mark this issue as new.

Status: UNCONFIRMED → NEW
Ever confirmed: true

Does this affect other versions of Android besides 6.0? Also, does this reproduce with Fenix?

I have retested the issue on the following devices: Samsung Galaxy S6 (Android 6.0.1), Samsung Galaxy Tab Active (Android 5.1.1), Nexus 7 (Android 5.1.1) and LG G3 (Android 4.4.2). On Firefox the issue occurs only on Samsung Galaxy S5 (Android 6.0.1) and Samsung Galaxy Tab Active (Android 5.1.1).
Regarding Fenix I was unable to load the test page from Comment 7, however I used the video http://techslides.com/demos/sample-videos/small.mp4 both in Firefox and Fenix when reaching the end of the video the error message "Video can't be played because the file is corrupt" and the same error message as mentioned in comment 6 is generated but only on the Samsung Galaxy S6 (Android 6.0.1) and Samsung Galaxy Tab Active (Android 5.1.1) devices.
In short the issue does affect older versions of Android 6.0 but only on Samsung devices and it affects both Firefox and Fenix.

Flags: needinfo?(laurentiu.apahidean)

I happen to diagnose an issue with a similar error reported here https://webcompat.com/issues/35558

So I run mozregression for the testcase that is attached to this bug:

25:21.13 INFO: Narrowed inbound regression window from [216f1bef, 7a04d9e5] (4 builds) to [634737ac, 7a04d9e5] (2 builds) (~1 steps left)
25:21.13 INFO: No more inbound revisions, bisection finished.
25:21.13 INFO: Last good revision: 634737ac37d4c6bcc1a93206a144c5e58fa70aa4
25:21.13 INFO: First bad revision: 7a04d9e5975407828f087eb38ac6d4b51deada94
25:21.13 INFO: Pushlog:
https://hg.mozilla.org/integration/autoland/pushloghtml?fromchange=634737ac37d4c6bcc1a93206a144c5e58fa70aa4&tochange=7a04d9e5975407828f087eb38ac6d4b51deada94
Regressed by: 1540748
Flags: needinfo?(alwu)

John might have some ideas about this decode error, because he has handled some similar bugs before.

Flags: needinfo?(alwu) → needinfo?(jolin)

Ah this is a duplicate of Bug 1536004, but this bug has more information. Let's move things here.

Duplicate of this bug: 1536004
See Also: → 1567421

as Ksenia pointed out to me, I might have been too fast duplicating things. Let's see when things are fixed if we solved the issue on duolingo, and if not let's revisit things. Thx Ksenia.

I can conform i did noticed a issue while making a test page for this with short audio files, i did not use it cause it did not seem like the issue i noticed, figured it was the file, then i remembered i had a clip of my cat purring that could avoid any copyright claims, I think this was the short file i tested:
http://www.noiseaddicts.com/samples_1w72b820/3727.mp3

Just received a Samsung Galaxy S8 and debugged on it. It turns out Samsung has its own MP3 decoder(OMX.SEC.mp3.dec) and it behaves differently than the Android builtin decoder(OMX.google.mp3.decoder) that other devices use.

Flags: needinfo?(jolin)

Bug 1540748/D28167 checks the output sample timestamp against the
time parsed by demuxer to determine the validness. However, unlike
Android builtin MP3 decoder which sets EOS flag in the final valid
output, the Samsung MP3 decoder always emit additional EOS sample
with invalid timestamp. To address this, the timestamp check should
be ignore for EOS samples.

Duplicate of this bug: 1567421
Pushed by jolin@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/b607778b1fda
don't check timestamp of EOS samples. r=jya
Status: NEW → RESOLVED
Closed: 3 months ago
Resolution: --- → FIXED
Target Milestone: --- → Firefox 70

Please nominate this for Beta & ESR68 approval when you get a chance.

Flags: qe-verify+
Flags: needinfo?(jolin)

Comment on attachment 9085295 [details]
Bug 1565838 - don't check timestamp of EOS samples. r?jya

Beta/Release Uplift Approval Request

  • User impact if declined: MP3 audio won't play on Samsung devices.
  • Is this code covered by automated tests?: No
  • Has the fix been verified in Nightly?: Yes
  • Needs manual test from QE?: No
  • If yes, steps to reproduce:
  • List of other uplifts needed: None
  • Risk to taking this patch: Low
  • Why is the change risky/not risky? (and alternatives if risky): It's a simple change that checks a flag in decoder output.
  • String changes made/needed:

ESR Uplift Approval Request

  • If this is not a sec:{high,crit} bug, please state case for ESR consideration: Fennec hasn't been able to play MP3 audio on Samsung devices since 68.
  • User impact if declined: MP3 audio won't play on Samsung devices.
  • Fix Landed on Version: 70
  • Risk to taking this patch: Low
  • Why is the change risky/not risky? (and alternatives if risky): It's a simple change that checks the flag in decoder output.
  • String or UUID changes made by this patch:
Flags: needinfo?(jolin)
Attachment #9085295 - Flags: approval-mozilla-esr68?
Attachment #9085295 - Flags: approval-mozilla-beta?

Comment on attachment 9085295 [details]
Bug 1565838 - don't check timestamp of EOS samples. r?jya

Fixes MP3 playback on some Samsung devices. Approved for Fennec 68.1b7 and GV69.

Attachment #9085295 - Flags: approval-mozilla-esr68?
Attachment #9085295 - Flags: approval-mozilla-esr68+
Attachment #9085295 - Flags: approval-mozilla-beta?
Attachment #9085295 - Flags: approval-mozilla-beta+

Hi, verified as fixed on Firefox 68.1b7 using the following devices along with the 2nd link
Samsung Galaxy S5 (Android 6.0.1) Console log
Galaxy Tab Active (Android 5.1.1) Console log

This fix resolves related bug 1570360 on Firefox 68.1b7 as well. Using Samsung Galaxy Prime (Android 9.0).

Note: the reason I say that this is a related bug and not merely a duplicate is that this 1565838 bug thread is about decoding mp3's and my bug post 1570360 is about decoding MIDI audio fonts. For those who have experienced MIDI audio codec problems. Obviously related, but not identical.

I have tested the issue on the latest Firefox builds: 69.0b16 and 70.0a1 (2019-08-21) using a Samsung Galaxy S5 (Android 6.0.1) and the issue no longer occurs. I will mark this issue accordingly.

Status: RESOLVED → VERIFIED
Flags: qe-verify+

Patch confirmed working in both Firefox Nightly 68.1a1 and Firefox Beta 68.1b7
Now finally I use use my media player again :)

You need to log in before you can comment on or make changes to this bug.