Closed Bug 1844772 Opened 2 years ago Closed 2 years ago

HTML5 video not looping properly

Categories

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

Desktop
All
defect

Tracking

()

VERIFIED FIXED
118 Branch
Tracking Status
firefox-esr102 --- unaffected
firefox-esr115 --- wontfix
firefox115 --- wontfix
firefox116 --- wontfix
firefox117 --- wontfix
firefox118 --- fixed

People

(Reporter: sbadau, Assigned: alwu)

References

(Regression)

Details

(Keywords: regression)

Attachments

(7 files)

Found in

  • Firefox 116.0b8

Affected versions

  • Nightly 117.0a1
  • Firefox 116.0b8
  • Firefox 115.0.2
  • Firefox 115.0.3esr

Tested platforms

  • Affected platforms: Ubuntu 22.04
  • Unaffected platforms: MacOS 11.7

Steps to reproduce

  1. Go to this HTML5 video
  2. Right-click on the video and choose "Loop" from the context menu.
  3. Click the "Play" button and wait for the video to finish playing.

Expected result

  • The video should play in a continuous loop, as indicated by the "Loop" option in the context menu.

Actual result

  • The video does not loop; it stops at the end despite selecting the "Loop" option.

Regression range
This issue is a regression as it's not reproducible on Firefox 102.13.0 esr, I will look for a regression range as soon as possible.

Additional notes

  • The issue is not reproducible if the video is muted before selecting the "Loop" option.

I can reproduce this on Nightly117.0a1 Windows10.

OS: Linux → All

:alwu, since you are the author of the regressor, bug 1262276, could you take a look?

For more information, please visit BugBot documentation.

Flags: needinfo?(alwu)
Assignee: nobody → alwu
Flags: needinfo?(alwu)
Priority: -- → P2
Summary: HTML5 video not looping properly on Ubuntu 22.04 → HTML5 video not looping properly
Duplicate of this bug: 1839450

Test video is created by ffmpeg, silence audio + white video frames.

Depends on D184272

Attachment #9345139 - Attachment description: WIP: Bug 1844772 - part1 : add silence audio data to fill the gap. → Bug 1844772 - part1 : add silence audio data to fill the gap.
Attachment #9345140 - Attachment description: WIP: Bug 1844772 - part2 : add a test for shorter audio track. → Bug 1844772 - part2 : add a test for shorter audio track.

Depends on D184273

Pushed by alwu@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/36a12ece43ec part1 : add silence audio data to fill the gap. r=padenot https://hg.mozilla.org/integration/autoland/rev/e94039a48a3a part2 : add a test for shorter audio track. r=padenot https://hg.mozilla.org/integration/autoland/rev/24a9921b9493 part3 : revert the audio sink underrun change. r=padenot https://hg.mozilla.org/integration/autoland/rev/8d9acbf64797 part4 : split audio into smaller chunks otherwise it might not be able to be pused into SPSC queue. r=padenot https://hg.mozilla.org/integration/autoland/rev/a3407577bf02 part5 : add a MSE test for the case where audio track is way shorter than its video track. r=padenot https://hg.mozilla.org/integration/autoland/rev/fb9eb5400943 part6 : don't request data while MDSM still waiting the data. r=padenot

Backed out for causing build bustages on MediaSourceDemuxer.cpp.

[task 2023-07-31T22:42:30.507Z] 22:42:30     INFO -  gmake[4]: Entering directory '/builds/worker/workspace/obj-build/dom/media/mediasource'
[task 2023-07-31T22:42:30.510Z] 22:42:30     INFO -  /builds/worker/fetches/sccache/sccache /builds/worker/fetches/clang/bin/clang++ -isysroot /builds/worker/fetches/MacOSX13.3.sdk -mmacosx-version-min=10.12 -stdlib=libc++ --target=x86_64-apple-darwin -o MediaSourceDemuxer.o -c  -I/builds/worker/workspace/obj-build/dist/stl_wrappers -fvisibility=hidden -fvisibility-inlines-hidden -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 -fstack-protector-strong -DNDEBUG=1 -DTRIMMED=1 -DMOZ_HAS_MOZGLUE -DMOZILLA_INTERNAL_API -DIMPL_LIBXUL -DSTATIC_EXPORTABLE_JS_API -I/builds/worker/checkouts/gecko/dom/media/mediasource -I/builds/worker/workspace/obj-build/dom/media/mediasource -I/builds/worker/workspace/obj-build/ipc/ipdl/_ipdlheaders -I/builds/worker/checkouts/gecko/ipc/chromium/src -I/builds/worker/workspace/obj-build/dist/include -I/builds/worker/workspace/obj-build/dist/include/nspr -I/builds/worker/workspace/obj-build/dist/include/nss -DMOZILLA_CLIENT -include /builds/worker/workspace/obj-build/mozilla-config.h -fno-sized-deallocation -fno-aligned-new -fcrash-diagnostics-dir=/builds/worker/artifacts -fno-exceptions -fPIC -fno-rtti -ffunction-sections -fdata-sections -fno-exceptions -fno-math-errno -pipe -gdwarf-4 -Xclang -load -Xclang /builds/worker/workspace/obj-build/build/clang-plugin/libclang-plugin.so -Xclang -add-plugin -Xclang moz-check -O3 -fno-omit-frame-pointer -funwind-tables -Werror -Wall -Wbitfield-enum-conversion -Wdeprecated-this-capture -Wempty-body -Wformat-type-confusion -Wignored-qualifiers -Wpointer-arith -Wshadow-field-in-constructor-modified -Wsign-compare -Wtautological-constant-in-range-compare -Wtype-limits -Wno-error=tautological-type-limit-compare -Wunreachable-code -Wunreachable-code-return -Wunused-but-set-parameter -Wno-invalid-offsetof -Wclass-varargs -Wempty-init-stmt -Wfloat-overflow-conversion -Wfloat-zero-conversion -Wloop-analysis -Wno-range-loop-analysis -Wc++2a-compat -Wenum-compare-conditional -Wenum-float-conversion -Wno-error=deprecated -Wno-error=deprecated-anon-enum-enum-conversion -Wno-error=deprecated-enum-enum-conversion -Wno-error=deprecated-pragma -Wno-error=deprecated-this-capture -Wcomma -Wimplicit-fallthrough -Wduplicate-method-arg -Wduplicate-method-match -Wmissing-method-return-type -Wobjc-signed-char-bool -Wsemicolon-before-method-body -Wsuper-class-method-mismatch -Wstring-conversion -Wno-inline-new-delete -Wno-error=deprecated-declarations -Wno-error=array-bounds -Wno-error=free-nonheap-object -Wno-error=atomic-alignment -Wno-error=deprecated-builtins -Wformat -Wformat-security -Wno-psabi -Wthread-safety -Werror=unguarded-availability-new -Wno-error=builtin-macro-redefined -Wno-unknown-warning-option -fno-strict-aliasing -ffp-contract=off  -MD -MP -MF .deps/MediaSourceDemuxer.o.pp   /builds/worker/checkouts/gecko/dom/media/mediasource/MediaSourceDemuxer.cpp
[task 2023-07-31T22:42:30.510Z] 22:42:30    ERROR -  /builds/worker/checkouts/gecko/dom/media/mediasource/MediaSourceDemuxer.cpp:384:3: error: use of undeclared identifier 'GetMediaSourceLog'
[task 2023-07-31T22:42:30.510Z] 22:42:30     INFO -    MSE_DEBUG("DoSeek, original target=%" PRId64 "%s, seekTime=%" PRId64
[task 2023-07-31T22:42:30.510Z] 22:42:30     INFO -    ^
[task 2023-07-31T22:42:30.511Z] 22:42:30     INFO -  /builds/worker/checkouts/gecko/dom/media/mediasource/MediaSourceDemuxer.cpp:23:13: note: expanded from macro 'MSE_DEBUG'
[task 2023-07-31T22:42:30.511Z] 22:42:30     INFO -    DDMOZ_LOG(GetMediaSourceLog(), mozilla::LogLevel::Debug, "::%s: " arg, \
[task 2023-07-31T22:42:30.511Z] 22:42:30     INFO -              ^
[task 2023-07-31T22:42:30.511Z] 22:42:30    ERROR -  /builds/worker/checkouts/gecko/dom/media/mediasource/MediaSourceDemuxer.cpp:384:3: error: use of undeclared identifier 'GetMediaSourceLog'
[task 2023-07-31T22:42:30.511Z] 22:42:30     INFO -  /builds/worker/checkouts/gecko/dom/media/mediasource/MediaSourceDemuxer.cpp:23:13: note: expanded from macro 'MSE_DEBUG'
[task 2023-07-31T22:42:30.511Z] 22:42:30     INFO -    DDMOZ_LOG(GetMediaSourceLog(), mozilla::LogLevel::Debug, "::%s: " arg, \
[task 2023-07-31T22:42:30.511Z] 22:42:30     INFO -              ^
[task 2023-07-31T22:42:30.512Z] 22:42:30    ERROR -  /builds/worker/checkouts/gecko/dom/media/mediasource/MediaSourceDemuxer.cpp:402:5: error: use of undeclared identifier 'GetMediaSourceLog'
[task 2023-07-31T22:42:30.512Z] 22:42:30     INFO -      MSE_DEBUG("Can't find seekTime %" PRId64
[task 2023-07-31T22:42:30.512Z] 22:42:30     INFO -      ^
[task 2023-07-31T22:42:30.512Z] 22:42:30     INFO -  /builds/worker/checkouts/gecko/dom/media/mediasource/MediaSourceDemuxer.cpp:23:13: note: expanded from macro 'MSE_DEBUG'
[task 2023-07-31T22:42:30.512Z] 22:42:30     INFO -    DDMOZ_LOG(GetMediaSourceLog(), mozilla::LogLevel::Debug, "::%s: " arg, \
[task 2023-07-31T22:42:30.512Z] 22:42:30     INFO -              ^
[task 2023-07-31T22:42:30.512Z] 22:42:30    ERROR -  /builds/worker/checkouts/gecko/dom/media/mediasource/MediaSourceDemuxer.cpp:402:5: error: use of undeclared identifier 'GetMediaSourceLog'
[task 2023-07-31T22:42:30.513Z] 22:42:30     INFO -  /builds/worker/checkouts/gecko/dom/media/mediasource/MediaSourceDemuxer.cpp:23:13: note: expanded from macro 'MSE_DEBUG'
[task 2023-07-31T22:42:30.513Z] 22:42:30     INFO -    DDMOZ_LOG(GetMediaSourceLog(), mozilla::LogLevel::Debug, "::%s: " arg, \
[task 2023-07-31T22:42:30.513Z] 22:42:30     INFO -              ^
[task 2023-07-31T22:42:30.513Z] 22:42:30     INFO -  4 errors generated.
[task 2023-07-31T22:42:30.513Z] 22:42:30    ERROR -  gmake[4]: *** [/builds/worker/checkouts/gecko/config/rules.mk:659: MediaSourceDemuxer.o] Error 1
[task 2023-07-31T22:42:30.513Z] 22:42:30     INFO -  gmake[4]: Leaving directory '/builds/worker/workspace/obj-build/dom/media/mediasource'
[task 2023-07-31T22:42:30.513Z] 22:42:30     INFO -  gmake[4]: Target 'target-objects' not remade because of errors.
[task 2023-07-31T22:42:30.514Z] 22:42:30    ERROR -  gmake[3]: *** [/builds/worker/checkouts/gecko/config/recurse.mk:72: dom/media/mediasource/target-objects] Error 2
[task 2023-07-31T22:42:30.514Z] 22:42:30     INFO -  gmake[4]: Entering directory '/builds/worker/workspace/obj-build/dom/media/webm'
Flags: needinfo?(alwu)
Flags: needinfo?(alwu)
Pushed by alwu@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/692a25f62da9 part1 : add silence audio data to fill the gap. r=padenot https://hg.mozilla.org/integration/autoland/rev/84fcb0eb9da4 part2 : add a test for shorter audio track. r=padenot https://hg.mozilla.org/integration/autoland/rev/2ebfc1c87f37 part3 : revert the audio sink underrun change. r=padenot https://hg.mozilla.org/integration/autoland/rev/73fb70e5442e part4 : split audio into smaller chunks otherwise it might not be able to be pused into SPSC queue. r=padenot https://hg.mozilla.org/integration/autoland/rev/fa188d2eb292 part5 : add a MSE test for the case where audio track is way shorter than its video track. r=padenot https://hg.mozilla.org/integration/autoland/rev/960446a8f00d part6 : don't request data while MDSM still waiting the data. r=padenot
Backout by imoraru@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/40dc04fa64a2 Backed out 14 changesets (bug 1844772, bug 1845213) for causing mochitest-media failures on test_seamless_looping_shorter_audio_than_video.html. CLOSED TREE

Set release status flags based on info from the regressing bug 1262276

Pushed by alwu@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/8fd5cbd73850 part1 : add silence audio data to fill the gap. r=padenot https://hg.mozilla.org/integration/autoland/rev/049ce4cb9252 part2 : add a test for shorter audio track. r=padenot https://hg.mozilla.org/integration/autoland/rev/ab37f40399c1 part3 : revert the audio sink underrun change. r=padenot https://hg.mozilla.org/integration/autoland/rev/376c0d163e88 part4 : split audio into smaller chunks otherwise it might not be able to be pused into SPSC queue. r=padenot https://hg.mozilla.org/integration/autoland/rev/019f7e499014 part5 : add a MSE test for the case where audio track is way shorter than its video track. r=padenot https://hg.mozilla.org/integration/autoland/rev/9f733a00a354 part6 : don't request data while MDSM still waiting the data. r=padenot

The patch landed in nightly and beta is affected.
:alwu, is this bug important enough to require an uplift?

  • If yes, please nominate the patch for beta approval.
  • If no, please set status-firefox117 to wontfix.

For more information, please visit BugBot documentation.

Flags: needinfo?(alwu)
Flags: needinfo?(alwu)

Reproduced the issue with Firefox 117.0a1 (2023-07-21) on Win 10 and Ubuntu 22. When selecting the "Loop" option from the context menu, the video stops at the end without starting again.
The issue is verified fixed with Firefox 119.0a1 (20230830212731) and Firefox 118.0b2 (20230829180158) on MacOS 12, Win 10 and Ubuntu 22. When selecting the "Loop" option from the context menu, the video starts over and over again each time it finish playing.

Status: RESOLVED → VERIFIED
Flags: qe-verify+
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: