YouTube doesn't buffer with media.mediasource.decoder-per-segment=true

RESOLVED FIXED in Firefox 37

Status

()

P1
normal
RESOLVED FIXED
4 years ago
4 years ago

People

(Reporter: cpearce, Assigned: jya)

Tracking

(Blocks: 1 bug)

unspecified
mozilla38
x86_64
Windows 8.1
Points:
---

Firefox Tracking Flags

(firefox36 unaffected, firefox37+ fixed, firefox38 fixed)

Details

Attachments

(1 attachment)

I discovered that YouTube doesn't buffer past the first ~10 seconds if the pref media.mediasource.decoder-per-segment is set to true. I only noticed this after I updated my mozilla-central and rebuilt this morning. It was working in my tree that I built on Friday.

This bug is also present in today's Nightly.

STR:
1. Set media.mediasource.decoder-per-segment=true
2. Open a YouTube video, I repro'd in https://www.youtube.com/watch?v=bv5KmP5psvw&hd=1
3. Let the vidEo load. Playback and downlaad stalled for me at 8 seconds in the above video. That is, only the first 8 seconds of video are buffered, and playback does not advance past the 8 second mark.
(Reporter)

Comment 1

4 years ago
2015-02-04-03-02-34 Last good revision
2015-02-05-03-02-05 First bad revision

https://hg.mozilla.org/releases/mozilla-aurora/pushloghtml?fromchange=0c2f7434c325&tochange=34a66aaaca81

Jen-Yves: Could it be one of your pushes in that range?
Flags: needinfo?(jyavenard)
(Assignee)

Comment 2

4 years ago
That url doesn't work for me
(Assignee)

Comment 3

4 years ago
Something weird is happening here.

The first segment when it's appended is see as range [0-5], the next time the parse reads it to read the range it is seen as [0,3.97] ; next buffer is [5-10]. so when RequestVideoData arrives it sees data from [0-3.97] and nothing after that, and playback stall.
Flags: needinfo?(jyavenard)

Updated

4 years ago
Priority: -- → P1
(Assignee)

Comment 4

4 years ago
Created attachment 8562086 [details] [diff] [review]
Only create a new decoder if we have a new media segment

Only create new decoder if buffer starts with a mediasegment (moof or ftyp). We should really look within the buffer to find the moof and cut there. With YouTube not all buffer starts with either an init segment or media segment. They can be within. On average only every 16s will a buffer starts with a moof (while segments are 5s long)
Attachment #8562086 - Flags: review?(matt.woodrow)
(Assignee)

Updated

4 years ago
Assignee: nobody → jyavenard
Status: NEW → ASSIGNED
Attachment #8562086 - Flags: review?(matt.woodrow) → review+
https://hg.mozilla.org/mozilla-central/rev/8d1478ae4bc8
Status: ASSIGNED → RESOLVED
Last Resolved: 4 years ago
status-firefox38: --- → fixed
Resolution: --- → FIXED
Target Milestone: --- → mozilla38
Pushed to aurora 37 with pre-approval from lmandel.

https://hg.mozilla.org/releases/mozilla-aurora/rev/23b7642864e2
status-firefox37: --- → fixed
Comment on attachment 8562086 [details] [diff] [review]
Only create a new decoder if we have a new media segment

Retroactive approval request for 37 uplift tracking. We don't know that this affects youtube (it was found with non-standard testing settings) but I'd like to have it to reduce code variance between the branches.

Approval Request Comment
[Feature/regressing bug #]: MSE
[User impact if declined]: Less consistent testing.
[Describe test coverage new/current, TreeHerder]: Landed on m-c some time ago.
[Risks and why]: Change is MSE-specific, so low. 
[String/UUID change made/needed]: None.
Attachment #8562086 - Flags: approval-mozilla-aurora?
status-firefox36: --- → unaffected
tracking-firefox37: --- → +
Comment on attachment 8562086 [details] [diff] [review]
Only create a new decoder if we have a new media segment

As stated, this bug was pre-approved to land with a set of changes for MSE. Marking the approval after the fact.
Attachment #8562086 - Flags: approval-mozilla-aurora? → approval-mozilla-aurora+
You need to log in before you can comment on or make changes to this bug.