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

Reply via email to