Re: First DASH Demo Builds: Non-Adaptive WebM On Demand Video
Steve Workman <[email protected]>
| Newsgroups | gmane.comp.mozilla.devel.netlib,gmane.comp.mozilla.devel.media |
|---|---|
| Message-ID | <[email protected]> |
These didn't post to dev-media or dev-tech-network yesterday, so I'm including some folks directly, and trying a resend to the mailing lists. On May 17, 2012, at 4:03 PM, Steve Workman wrote: > Hi all, > > Cross posting to dev-media and dev-tech-network. I've uploaded new patches to Bug 734546 with the following comment: > > Patches for non-adaptive, DASH/WebM On Demand Demo Build: > -- Please patch and build the complete diff or run try builds (https://ftp.mozilla.org/pub/mozilla.org/firefox/try-builds/[email protected]/) and point your browser to http://people.mozilla.com/~sworkman/Elephants_Dream.html > Notes: > 1) I've tested this on Mac, Android and Windows - let me know if your system doesn't work. > 2) please add/set media.dash.enabled=true in your prefs. > > > What's working: > -- Current patches parse MPD according to WebM On Demand profile, pick a video and audio stream and mix them to a single decoder to play them non-adaptively > -- Seeking > -- Refreshing the page without issue > > What's not working/not right: > -- no adaption/stream switching yet; initial work done on this, but not reflected in this code > -- Seeking far enough from the current offset adds a buffering icon on the video, which does not go away > -- some URLs are leaking in the MPD files > -- stats are not correct - some data only pertains to the video stream, not both - to be examined/fixed. > > Patches: > 1) Decoder files > *** Description of interaction in nsDASHDecoder.cpp at top of file. *** > -- Muxes multiple resources through multiple readers to a single decoder and state machine. Proxy classes distribute/aggregate calls as need be. > -- Note: I said in an email earlier on dev-media that I was going to stick with multiple decoders for now, but I quickly discovered that audio and video do not sync easily like this. Hence the change to a single decoder and multiple readers/resources :) > -- includes minor changes to existing files. > -- aiming for abstract - less work when adding DASH profiles/decoders later - to be improved. > -- used nsIByteBuffer in a hacky way to store the downloaded MPD data; to be cleaned up. > -- some #ifdef DASH_IGNORES are present. The ignored code is to be reviewed for inclusion. > > 2) WebMOnDemand, MPD files > -- files to parse MPD into classes, and report MPD contents to DASHMediaResource > -- based on WebM On Demand profile: http://wiki.webmproject.org/adaptive-streaming/webm-dash-specification > > Other patches include changes to nsHTMLMediaElement and build files. > > General Patch notes: > -- Makefile/config note - I've hardcoded MOZ_DASH something similar to MOZ_WEBM, but not to the extent of having a "--disable-dash" just yet. > -- The complete patch file includes some Adaptation files from libdash (ITEC) but these are not included in the build yet. > > TODO: > -- Stream switching and Adaptation > -- rate limiting video > -- Other decoder/DASH profile types > > Although there's not a lot to see yet demo-wise, this is a milestone and I'd appreciate any and all constructive feedback. > > Thanks, > Steve.