On 8/8/2011 2:51 PM, Glenn Maynard wrote:
On Mon, Aug 8, 2011 at 4:31 PM, Simon Heckmann <[email protected]
<mailto:[email protected]>> wrote:
Well, not directly an answer to your question, but the use case I
had in mind is the following:
A large encrypted video (e.g. HD movie with 2GB) file is stored
using the File API, I then want to decrypt this file and start
playing with only a minor delay. I do not want to decrypt the
entire file before it can be viewed. As long as such as use case
gets covered I am fine with everything.
Assuming you're thinking of DRM, are there any related use cases other
than crypto? Encryption for DRM, at least, isn't a very compelling
use case; client-side Javascript encryption is a very weak level of
protection (putting aside, for now, the question of whether the web
can or should be attempting to handle DRM in the first place). If
it's not DRM you're thinking of, can you clarify?
Jonas Sickling brought up a few cases for XHR-based streaming of
arraybuffers: progressive rendering of word docs and PDFs.
WebP and WebM have had interesting packaging hacks. Packaging itself,
whether DRM or not, is compelling.
PDF supports embedded data, a wide range of formats. GPAC provides many
related tools (MP4 based, I believe):
http://gpac.wp.institut-telecom.fr/
The audio and video tags drop frames
It seems to me that if a listener is not registered to the stream, data
would just be dropped.
As an alternative, the author could register a fixed length circular buffer.
For instance, I could create 1 megabyte arrayview, run
URL.createBlobStream(ArrayView)
and use .append(data). That kind of structure may support multicast
(multiple audio/video elements)
and improved XHR2 semantics. The circular buffer, itself, is easy to
prototype: subarray
works well with typed arrays.
Otherwise relevant, is the work on raw audio data
that Firefox and Chromium have released as experimental extensions.
It does work on a buffer-based system.
-Charles