Closed Bug 1924925 Opened 1 year ago Closed 1 year ago

FLAC files <=4203 bytes can't be decoded (NS_ERROR_DOM_MEDIA_DEMUXER_ERR (0x806e000c))

Categories

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

Firefox 131
defect

Tracking

()

RESOLVED FIXED
133 Branch
Tracking Status
firefox133 --- fixed

People

(Reporter: bugzilla, Assigned: padenot)

Details

Attachments

(3 files)

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

Steps to reproduce:

I've been playing short sound effects from FLAC files. When a file is too small, Firefox can no longer play it, though it still works in Chrome, VLC, Audacity, etc. Playing with padding sizes using the FLAC encoder on the command line suggests that Firefox can only decode FLAC files that are at least 4204 bytes in size.

Behavior is similar whether file is used via <audio> or AudioContext.decodeAudioData. Tested on Linux (Fedora) and Mac.

Example files at https://jacobwinters.com/small-flac-bug/

Actual results:

FLAC files <=4203 bytes don't play. Console shows "Media resource <filename> could not be decoded, error: Error Code: NS_ERROR_DOM_MEDIA_DEMUXER_ERR (0x806e000c)".

Expected results:

FLAC files play regardless of size.

The Bugbug bot thinks this bug should belong to the 'Core::Audio/Video' component, and is moving the bug to that component. Please correct in case you think the bot is wrong.

Component: Untriaged → Audio/Video
Product: Firefox → Core
Status: UNCONFIRMED → NEW
Ever confirmed: true
Flags: needinfo?(padenot)
Summary: FLAC files <=4203 bytes can't be decoded → FLAC files <=4203 bytes can't be decoded (NS_ERROR_DOM_MEDIA_DEMUXER_ERR (0x806e000c))

Can repro on builds from Jan2020, so not a new regression.
File plays on Chrome, and "mpc-hc". VLC didnt play it on my system (Win11x64).
Profile with "media playback" preset logging: https://share.firefox.dev/4f30uzm

Assignee: nobody → padenot
Status: NEW → ASSIGNED

Reporter, I took the liberty to use your "broken" file as a test case, hope it's OK with you. The fix will be in Firefox 133, released on Nov 26 this year, thanks for reporting!

Flags: needinfo?(padenot) → needinfo?(bugzilla)
Pushed by padenot@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/2154b98caca7 Handle tiny flac files properly. r=media-playback-reviewers,aosmond

Awesome, thanks!

Flags: needinfo?(bugzilla)

Backed out for causing build bustages.

[task 2024-10-17T14:55:43.249Z] 14:55:43     INFO -  package> 	--format omni \
[task 2024-10-17T14:55:43.250Z] 14:55:43     INFO -  package> 	--removals /builds/worker/checkouts/gecko/mobile/android/installer/removed-files.in \
[task 2024-10-17T14:55:43.250Z] 14:55:43     INFO -  package> 	--ignore-errors \
[task 2024-10-17T14:55:43.250Z] 14:55:43     INFO -  package> 	 \
[task 2024-10-17T14:55:43.250Z] 14:55:43     INFO -  package> 	--minify \
[task 2024-10-17T14:55:43.250Z] 14:55:43     INFO -  package> 	 \
[task 2024-10-17T14:55:43.250Z] 14:55:43     INFO -  package> 	 \
[task 2024-10-17T14:55:43.250Z] 14:55:43     INFO -  package> 	 \
[task 2024-10-17T14:55:43.251Z] 14:55:43     INFO -  package> 	/builds/worker/checkouts/gecko/mobile/android/installer/package-manifest.in '../../../dist' '../../../dist'/geckoview \
[task 2024-10-17T14:55:43.251Z] 14:55:43     INFO -  package>
[task 2024-10-17T14:55:43.251Z] 14:55:43     INFO -  package> warning: $SRCDIR/mobile/android/installer/package-manifest.in:23: Missing file(s): bin/dictionaries/*
[task 2024-10-17T14:55:43.251Z] 14:55:43     INFO -  package> warning: $SRCDIR/mobile/android/installer/package-manifest.in:83: Missing file(s): bin/package-name.txt
[task 2024-10-17T14:55:43.251Z] 14:55:43     INFO -  package> warning: $SRCDIR/mobile/android/installer/package-manifest.in:92: Missing file(s): bin/components/components.manifest
[task 2024-10-17T14:55:43.252Z] 14:55:43     INFO -  package> warning: $SRCDIR/mobile/android/installer/package-manifest.in:95: Missing file(s): bin/components/toolkitsearch.manifest
[task 2024-10-17T14:55:43.252Z] 14:55:43     INFO -  package> warning: $SRCDIR/mobile/android/installer/package-manifest.in:121: Missing file(s): bin/features/*
[task 2024-10-17T14:55:43.252Z] 14:55:43     INFO -  package> warning: $SRCDIR/mobile/android/installer/package-manifest.in:136: Missing file(s): bin/defaults/pref/channel-prefs.js
[task 2024-10-17T14:55:43.252Z] 14:55:43     INFO -  package> gmake[5]: Leaving directory '/builds/worker/workspace/obj-build/mobile/android/installer'
[task 2024-10-17T14:55:43.610Z] 14:55:43     INFO -  package-tests> gmake[2]: Entering directory '/builds/worker/workspace/obj-build'
[task 2024-10-17T14:55:43.610Z] 14:55:43     INFO -  package-tests> /builds/worker/.mozbuild/srcdirs/gecko-8a5b87fe5d69/_virtualenvs/build/bin/python -m mozbuild.action.process_install_manifest --track install__test_files.track _tests _build_manifests/install/_test_files
[task 2024-10-17T14:55:43.610Z] 14:55:43     INFO -  package-tests> error: Symlink target path does not exist: /builds/worker/checkouts/gecko/dom/media/webaudio/test/0-frame.flac
[task 2024-10-17T14:55:43.611Z] 14:55:43    ERROR -  package-tests> Traceback (most recent call last):
[task 2024-10-17T14:55:43.611Z] 14:55:43     INFO -  package-tests>   File "/builds/worker/fetches/python/lib/python3.8/runpy.py", line 194, in _run_module_as_main
[task 2024-10-17T14:55:43.611Z] 14:55:43     INFO -  package-tests>     return _run_code(code, main_globals, None,
[task 2024-10-17T14:55:43.611Z] 14:55:43     INFO -  package-tests>   File "/builds/worker/fetches/python/lib/python3.8/runpy.py", line 87, in _run_code
[task 2024-10-17T14:55:43.611Z] 14:55:43     INFO -  package-tests>     exec(code, run_globals)
[task 2024-10-17T14:55:43.612Z] 14:55:43     INFO -  package-tests>   File "/builds/worker/checkouts/gecko/python/mozbuild/mozbuild/action/process_install_manifest.py", line 123, in <module>
[task 2024-10-17T14:55:43.612Z] 14:55:43     INFO -  package-tests>     main(sys.argv[1:])
[task 2024-10-17T14:55:43.612Z] 14:55:43     INFO -  package-tests>   File "/builds/worker/checkouts/gecko/python/mozbuild/mozbuild/action/process_install_manifest.py", line 100, in main
[task 2024-10-17T14:55:43.612Z] 14:55:43     INFO -  package-tests>     result = process_manifest(
[task 2024-10-17T14:55:43.612Z] 14:55:43     INFO -  package-tests>   File "/builds/worker/checkouts/gecko/python/mozbuild/mozbuild/action/process_install_manifest.py", line 57, in process_manifest
[task 2024-10-17T14:55:43.612Z] 14:55:43     INFO -  package-tests>     result = copier.copy(
[task 2024-10-17T14:55:43.613Z] 14:55:43     INFO -  package-tests>   File "/builds/worker/fetches/python/lib/python3.8/contextlib.py", line 120, in __exit__
[task 2024-10-17T14:55:43.613Z] 14:55:43     INFO -  package-tests>     next(self.gen)
[task 2024-10-17T14:55:43.613Z] 14:55:43     INFO -  package-tests>   File "/builds/worker/checkouts/gecko/python/mozbuild/mozpack/errors.py", line 143, in accumulate
[task 2024-10-17T14:55:43.613Z] 14:55:43     INFO -  package-tests>     raise AccumulatedErrors()
[task 2024-10-17T14:55:43.613Z] 14:55:43     INFO -  package-tests> mozpack.errors.AccumulatedErrors
[task 2024-10-17T14:55:43.613Z] 14:55:43    ERROR -  package-tests> gmake[2]: *** [Makefile:117: install-test-files] Error 1
[task 2024-10-17T14:55:43.614Z] 14:55:43     INFO -  package-tests> gmake[2]: Leaving directory '/builds/worker/workspace/obj-build'
[task 2024-10-17T14:55:43.953Z] 14:55:43     INFO -  package> gmake[5]: Entering directory '/builds/worker/workspace/obj-build/mobile/android/installer'


Flags: needinfo?(padenot)
Pushed by padenot@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/41b5b7abaf62 Handle tiny flac files properly. r=media-playback-reviewers,aosmond
Component: Audio/Video → Audio/Video: Playback
Status: ASSIGNED → RESOLVED
Closed: 1 year ago
Resolution: --- → FIXED
Target Milestone: --- → 133 Branch
Flags: needinfo?(padenot)
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Creator:
Created:
Updated:
Size: