Currently our MediaStreamGraph infrastructure supports the idea of "blocking" MediaStreams: instead of MediaStreams always advancing, there can be time intervals when a MediaStream is "blocked". This isn't really required by Web APIs today, and it adds complexity and overhead, so maybe we should get rid of it.
Blocking was mainly intended to support three kinds of use-cases: 1) Eliminating spurious "dead time" for recording (or other non-real-time-playback media sinks). For example, if you stream a MediaElement over the network and transcode it to store locally via MediaRecorder, time intervals during which playback was stalled due to buffering should not be recorded. 2) Pause/resume synchronization. The old MediaStreams Processing proposal let you pause and resume individual MediaStreams. For MediaStreams whose production rate we control (e.g. media resource playback), this would throttle playback as expected. MSP had a synchronization primitive that (among other things) let you block a MediaStream precisely until another MediaStream reached a specified timestamp. Handy for building seamless playlists, video editors etc. 3) Concurrent stream synchronization. The HTML5 MediaController API requires the ability to keep multiple media playback streams in sync with each other. Our MSG implementation can be configured to do this, by automatically adding blocking intervals to keep streams in sync. Currently these use-cases aren't handled well by standard APIs. #1 is mainly being ignored by everyone (though I think we actually do the right thing). Some cases of #2 can be addressed using Media Source Extensions to operate on the pre-decoded stream (though MSE turns out to be a really complicated and brittle API for those use-cases, AFAICT). For #3, no-one seems to care about the HTML5 MediaController API. Are these are features we care about, or will care about? Can we address them in simpler/better ways than with the MediaStream blocking concept? Or should we just ignore them, take out the blocking support, and add it back in if/when we need to? Rob -- oIo otoeololo oyooouo otohoaoto oaonoyooonoeo owohooo oioso oaonogoroyo owoiotoho oao oboroootohoeoro oooro osoiosotoeoro owoiololo oboeo osouobojoeocoto otooo ojouodogomoeonoto.o oAogoaoiono,o oaonoyooonoeo owohooo osoaoyoso otooo oao oboroootohoeoro oooro osoiosotoeoro,o o‘oRoaocoao,o’o oioso oaonosowoeoroaoboloeo otooo otohoeo ocooouoroto.o oAonodo oaonoyooonoeo owohooo osoaoyoso,o o‘oYooouo ofooooolo!o’o owoiololo oboeo oiono odoaonogoeoro ooofo otohoeo ofoioroeo ooofo ohoeololo. _______________________________________________ dev-media mailing list [email protected] https://lists.mozilla.org/listinfo/dev-media

