New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

HTMLMediaElement backoff protocol and other improvements to a/v playback #22522

Merged
merged 8 commits into from Jan 11, 2019

Conversation

7 participants
@ferjm
Copy link
Member

ferjm commented Dec 21, 2018

  • ./mach build -d does not report any errors
  • ./mach test-tidy does not report any errors

This PR implements a backoff protocol to keep us from dropping frames whenever it's possible. It also add some other improvements like:

  • Clean up the implementation a little bit by adding all fetch request related state to HTMLMediaElementFetchContext.
  • Make sure that we ignore responses from old requests.
  • Set the stream to seekable iff there's support for range requests. This will likely change when we add the media cache.
  • Implements part of step 8 of the seek spec where we bail out if the stream is not seekable.

This change is Reviewable

@highfive

This comment has been minimized.

Copy link

highfive commented Dec 21, 2018

Heads up! This PR modifies the following files:

  • @asajeffrey: components/script/dom/htmlmediaelement.rs, components/script/dom/bindings/trace.rs
  • @KiChjang: components/script/dom/htmlmediaelement.rs, components/script/dom/bindings/trace.rs
@highfive

This comment has been minimized.

Copy link

highfive commented Dec 21, 2018

warning Warning warning

  • These commits modify script code, but no tests are modified. Please consider adding a test!

@ferjm ferjm force-pushed the ferjm:av.playback.improvements branch from 6c4406b to 0001336 Dec 21, 2018

@ferjm

This comment has been minimized.

Copy link
Member Author

ferjm commented Dec 21, 2018

@bors-servo try=wpt

@bors-servo

This comment has been minimized.

Copy link
Contributor

bors-servo commented Dec 21, 2018

⌛️ Trying commit 0001336 with merge a936f26...

bors-servo added a commit that referenced this pull request Dec 21, 2018

Auto merge of #22522 - ferjm:av.playback.improvements, r=<try>
HTMLMediaElement backoff protocol and other improvements to a/v playback

- [X] `./mach build -d` does not report any errors
- [X] `./mach test-tidy` does not report any errors

This PR implements a backoff protocol to keep us from dropping frames whenever it's possible. It also add some other improvements like:
- Clean up the implementation a little bit by adding all fetch request related state to `HTMLMediaElementFetchContext`.
- Make sure that we ignore responses from old requests.
- Implements part of [step 8 of the seek spec](https://html.spec.whatwg.org/multipage/media.html#dom-media-seek) where we bail out if the stream is not seekable.

<!-- Reviewable:start -->
---
This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/22522)
<!-- Reviewable:end -->
@ferjm

This comment has been minimized.

Copy link
Member Author

ferjm commented Dec 21, 2018

@highfive highfive assigned Manishearth and unassigned emilio Dec 21, 2018

@ferjm

This comment has been minimized.

Copy link
Member Author

ferjm commented Dec 21, 2018

This requires servo/media#176. I'll removed the patched Cargo.toml when that one is merged.

@bors-servo

This comment has been minimized.

Copy link
Contributor

bors-servo commented Dec 21, 2018

💔 Test failed - status-taskcluster

@ferjm ferjm added this to In progress in Media playback Dec 21, 2018

@bors-servo

This comment has been minimized.

Copy link
Contributor

bors-servo commented Dec 28, 2018

☔️ The latest upstream changes (presumably #22449) made this pull request unmergeable. Please resolve the merge conflicts.

@ferjm ferjm force-pushed the ferjm:av.playback.improvements branch from 0001336 to de694c1 Dec 28, 2018

@Manishearth
Copy link
Member

Manishearth left a comment

looks good!

@jdm jdm removed the S-needs-rebase label Jan 2, 2019

@ferjm

This comment has been minimized.

Copy link
Member Author

ferjm commented Jan 7, 2019

@bors-servo r=Manishearth

@bors-servo

This comment has been minimized.

Copy link
Contributor

bors-servo commented Jan 7, 2019

📌 Commit de694c1 has been approved by Manishearth

@bors-servo

This comment has been minimized.

Copy link
Contributor

bors-servo commented Jan 7, 2019

⌛️ Testing commit de694c1 with merge 7b87f2d...

bors-servo added a commit that referenced this pull request Jan 7, 2019

Auto merge of #22522 - ferjm:av.playback.improvements, r=Manishearth
HTMLMediaElement backoff protocol and other improvements to a/v playback

- [X] `./mach build -d` does not report any errors
- [X] `./mach test-tidy` does not report any errors

This PR implements a backoff protocol to keep us from dropping frames whenever it's possible. It also add some other improvements like:
- Clean up the implementation a little bit by adding all fetch request related state to `HTMLMediaElementFetchContext`.
- Make sure that we ignore responses from old requests.
- Set the stream to seekable iff there's support for range requests. This will likely change when we add the media cache.
- Implements part of [step 8 of the seek spec](https://html.spec.whatwg.org/multipage/media.html#dom-media-seek) where we bail out if the stream is not seekable.

<!-- Reviewable:start -->
---
This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/22522)
<!-- Reviewable:end -->
@bors-servo

This comment has been minimized.

Copy link
Contributor

bors-servo commented Jan 7, 2019

💔 Test failed - linux-rel-css

@bors-servo

This comment has been minimized.

Copy link
Contributor

bors-servo commented Jan 10, 2019

📌 Commit 9aced06 has been approved by Manishearth

@bors-servo

This comment has been minimized.

Copy link
Contributor

bors-servo commented Jan 10, 2019

⌛️ Testing commit 9aced06 with merge a63cd9b...

bors-servo added a commit that referenced this pull request Jan 10, 2019

Auto merge of #22522 - ferjm:av.playback.improvements, r=Manishearth
HTMLMediaElement backoff protocol and other improvements to a/v playback

- [X] `./mach build -d` does not report any errors
- [X] `./mach test-tidy` does not report any errors

This PR implements a backoff protocol to keep us from dropping frames whenever it's possible. It also add some other improvements like:
- Clean up the implementation a little bit by adding all fetch request related state to `HTMLMediaElementFetchContext`.
- Make sure that we ignore responses from old requests.
- Set the stream to seekable iff there's support for range requests. This will likely change when we add the media cache.
- Implements part of [step 8 of the seek spec](https://html.spec.whatwg.org/multipage/media.html#dom-media-seek) where we bail out if the stream is not seekable.

<!-- Reviewable:start -->
---
This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/22522)
<!-- Reviewable:end -->
@bors-servo

This comment has been minimized.

Copy link
Contributor

bors-servo commented Jan 10, 2019

💔 Test failed - linux-rel-css

@ferjm

This comment has been minimized.

Copy link
Member Author

ferjm commented Jan 11, 2019

@bors-servo r=Manishearth

@bors-servo

This comment has been minimized.

Copy link
Contributor

bors-servo commented Jan 11, 2019

📌 Commit 9a18074 has been approved by Manishearth

@bors-servo

This comment has been minimized.

Copy link
Contributor

bors-servo commented Jan 11, 2019

⌛️ Testing commit 9a18074 with merge b49e751...

bors-servo added a commit that referenced this pull request Jan 11, 2019

Auto merge of #22522 - ferjm:av.playback.improvements, r=Manishearth
HTMLMediaElement backoff protocol and other improvements to a/v playback

- [X] `./mach build -d` does not report any errors
- [X] `./mach test-tidy` does not report any errors

This PR implements a backoff protocol to keep us from dropping frames whenever it's possible. It also add some other improvements like:
- Clean up the implementation a little bit by adding all fetch request related state to `HTMLMediaElementFetchContext`.
- Make sure that we ignore responses from old requests.
- Set the stream to seekable iff there's support for range requests. This will likely change when we add the media cache.
- Implements part of [step 8 of the seek spec](https://html.spec.whatwg.org/multipage/media.html#dom-media-seek) where we bail out if the stream is not seekable.

<!-- Reviewable:start -->
---
This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/22522)
<!-- Reviewable:end -->
@bors-servo

This comment has been minimized.

Copy link
Contributor

bors-servo commented Jan 11, 2019

💔 Test failed - mac-rel-wpt3

@ferjm

This comment has been minimized.

Copy link
Member Author

ferjm commented Jan 11, 2019

@bors-servo

This comment has been minimized.

Copy link
Contributor

bors-servo commented Jan 11, 2019

@bors-servo

This comment has been minimized.

Copy link
Contributor

bors-servo commented Jan 11, 2019

☀️ Test successful - android-mac, arm32, arm64, linux-rel-css, linux-rel-wpt, mac-rel-css1, mac-rel-css2, mac-rel-wpt1, mac-rel-wpt2, mac-rel-wpt3, mac-rel-wpt4, magicleap, status-taskcluster
Approved by: Manishearth
Pushing b49e751 to master...

@bors-servo bors-servo merged commit 9a18074 into servo:master Jan 11, 2019

3 checks passed

Taskcluster (pull_request) TaskGroup: success
Details
continuous-integration/appveyor/pr AppVeyor build succeeded
Details
homu Test successful
Details

Media playback automation moved this from In progress to Done Jan 11, 2019

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment