Closed Bug 1511607 Opened 6 years ago Closed 5 years ago

media.suspend-bkgnd-video.enabled breaks HLS

Categories

(Firefox for Android Graveyard :: Audio/Video, defect, P2)

Firefox 65
defect

Tracking

(firefox66 verified)

RESOLVED FIXED
Firefox 66
Tracking Status
firefox66 --- verified

People

(Reporter: csheany, Assigned: jhlin)

Details

Attachments

(1 file)

User Agent: Mozilla/5.0 (Android 7.1.1; Tablet; rv:65.0) Gecko/65.0 Firefox/65.0

Steps to reproduce:

1. Open https://adultswim.com/streams
2. Play the video
3. Switch to a different tab
4. Return to the original


Actual results:

The video is paused.


Expected results:

To be determined.
Alastor, would you mind taking a first look at this? Is this unexpected behavior?
Flags: needinfo?(alwu)
Because of decoding error, the video can't continue playing. I found that this HLS video doesn't allow seeking, we would get error once we're trying to seek (like suspend-video-decoding do).

This issue can be eaily reproduced when you're trying to seek this video (because they block seeking from control interace, I seeked video from web console). However, I am not sure this seeking error is because the resource site provides is non-seekable or we didn't handle HLS seeking well in our HLS demuxer/HLSDecoder.

---

Hi, John, do you have any idea about that?
Thank you!
Flags: needinfo?(alwu) → needinfo?(jolin)
Yes, the seek request was rejected because the souce is a live stream, which is considered unseekable. However, in this case it is an internal request to support null video decoder rather than actual seek from user/player. Since the demuxer/exoplayer still fetches data in this state, I will try making HLSDemuxer::IsSeekableOnlyInBufferedRanges() returns true and see if that could fix the problem.
Flags: needinfo?(jolin)
Status: UNCONFIRMED → NEW
Ever confirmed: true
Priority: -- → P2
Thank you for looking into it.

Has there been discussion about flipping the default pref value as it is not immmediately user facing?

Is the reason messages along the lines of "video can't be played because the file is corrupt" and "no video with supported format and mime type found" aren't displayed due to the fact it doesn't use the native controls?
I suppose we could just add an additional check to whether the media is seekable and prevent entering suspend mode when not.
Assignee: nobody → jolin
Would that defeat the purpose of the setting?
(In reply to csheany from comment #6)
> Would that defeat the purpose of the setting?

Not really, IMHO. There are several other cases that affects video suspend mode behavior regardless of the pref. See dependent bugs of 1352007.
Is it easier to shut down the decoding when necessary as opposed to the other way adound?
Pushed by jolin@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/516feba2e8cd
don't suspend background video decoding for unseekable media. r=jya
https://hg.mozilla.org/mozilla-central/rev/516feba2e8cd
Status: NEW → RESOLVED
Closed: 5 years ago
Resolution: --- → FIXED
Target Milestone: --- → Firefox 66
Would your original suggestion help with performance while the tab is in the foreground?
Flags: needinfo?(jolin)
(In reply to csheany from comment #12)
> Would your original suggestion help with performance while the tab is in the
> foreground?

I don't think so. It looks like IsSeekableOnlyInBufferedRanges() was added only to support seeking for cue-less WebM files and is not quite suitable for determining whether video decoding can be suspended or not.
Flags: needinfo?(jolin)
What do you think would prevent interruptions from seeking attempts?
I was able to reproduce this issue on an affected build of Nightly and I can confirm the fix on latest Nightly build from 01-02-2019 using Huawei Honor 8 (Android 7.0). 

@csheany do you confirm as well? Thanks
It seems to be working for me as well.
Product: Firefox for Android → Firefox for Android Graveyard
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: