Comments (6)
The proposal involves collapsing two frame removal steps (one with knowledge of frame decoding dependencies and one without) into one. I believe its most likely that implementations will fall into the latter type, and its best that it's requirements be explicitly stated (remove frames to the next random access frame).
from media-source.
@jdsmith3000, I tend to agree, though we perhaps shouldn't restrict implementations to not exercising their knowledge of decoding dependencies with finer granularity.
The proposal unifies the removal of decoding dependencies across steps 13 and 14 into the same logic in step 15. I like the proposal.
@jyavenard, regarding the proposal's side note that [removing all coded frames until the next random access point] 'doesn't appear to cater for B-frames found prior the "coded frames removed" and dependent on the frames removed. This could leave frames that can't be decoded in the track buffer.': the assumption in the spec is that the removal is done in decode, not presentation, frame order. Am I mistaken that there cannot be a B-Frame that depends on something with a decode time in the future?
from media-source.
From TPAC f2f for MSE today, sounds like there is good enough understanding to proceed with a pull request. @jyavenard and @jdsmith3000 please comment especially if you disagree with my comment 5 hours ago.
from media-source.
@wolenetz You can ignore my side note. At the time I had made that comment when I noticed our new implementation not working with a particular video file (which contained B-frame). I have since made the decision that it was incorrectly muxed.
@jdsmith3000 I do agree that I'd be extremely surprised if anyone implemented the detailed version for all possible data type, as it requires inner knowledge of some compression techniques and internal data; well out of scope for a web engine.. Having two different possible implementations, it also leaves room for discrepancy between implementation. So I'd be happy to see one removal option go. away.
from media-source.
Note that similar text (and I believe similar resolution to just the conservative alternative) exists in the coded frame removal algorithm. PR #62 now contains that fix as well, as of commit ddd5086.
from media-source.
PR #62 fixed this with commit 81b27bc
from media-source.
Related Issues (20)
- Standardize expectations around endOfStream followed by later re-opening of MediaSource
- MSE-for-WebCodecs: detection of mismatch of append format (WC vs BSF) is deferred and could produce decode err
- Editorial accessibility concerns and suggestions HOT 4
- Working draft auto-publishing seems working, but editor's draft is now out-of-date HOT 2
- Editorial: Add image description text for the audio splice rendering image (in current WD section 4.5.12)
- Editorial: use the descriptive "summing junction" instead of "green circle with an X" in pipeline model text description
- Broken link on random access points section of ISO BMFF Byte Stream Format
- ManagedMediaSource (jya) HOT 1
- Proposal: ManagedMediaSource API HOT 52
- Proposal: Add quality attribute to ManagedMediaSource API
- Move extensions to HTML to HTML spec
- Redundancies, duplications, and general spec health HOT 7
- Editorial: bullet numbering skips over numbers and renders poorly, needs rework to comply with [Infra] #algorithm-conditional-statements HOT 1
- Consider updating Acknowledgements section HOT 3
- HTMLMediaElement Extensions missing WebIDL? HOT 1
- Describe eviction policy HOT 1
- Specify constructor for MediaSource, ManagedMediaSource, BufferedChangeEvent
- Normative or informative definitions HOT 2
- No handling for when the MediaSource constructed in a DedicatedWorkerGlobalScope goes out of scope
- BufferedChangeEventInit shouldn't be optional in BufferedChangeEvent constructor HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from media-source.