[meta] Tracking bug for Media Source Extensions API implementation
Categories
(Core :: Audio/Video: Playback, defect, P2)
Tracking
()
People
(Reporter: kinetik, Unassigned)
References
(Depends on 36 open bugs, )
Details
(4 keywords, Whiteboard: [shumway] [dependency: marketplace-partners])
Attachments
(2 obsolete files)
This proposal extends HTMLMediaElement to allow JavaScript to generate media streams for playback. Allowing JavaScript to generate streams facilitates a variety of use cases like adaptive streaming and time shifting live streams.
Reporter | ||
Comment 1•12 years ago
|
||
I plan to work on this in the near future, but I've got a couple of things to finish first. In the mean time, I stubbed out the DOM side of this to give myself an excuse to play with the new WebIDL bindings.
Reporter | ||
Updated•12 years ago
|
Comment 2•12 years ago
|
||
is there a bug filed for handling mediaStream decoding/decryption?
Comment 3•12 years ago
|
||
(In reply to David Dahl :ddahl from comment #2) > is there a bug filed for handling mediaStream decoding/decryption? You mean like the webm encryption stuff? Not that I'm aware of. Of course, the MediaSource API makes it possible to implement many scrambling and encryption methods in javascript.
Reporter | ||
Comment 4•12 years ago
|
||
And if you're referring to the Encrypted Media Extensions (http://dvcs.w3.org/hg/html-media/raw-file/default/encrypted-media/encrypted-media.html), there's no bug that I'm aware of, and I don't think there is a plan to implement it at this stage.
Any progress? Is there any estimation on when this API will be implemented?
Reporter | ||
Updated•11 years ago
|
Comment 6•11 years ago
|
||
(In reply to Matthew Gregan [:kinetik] from comment #1) > I plan to work on this in the near future Matthew - are you still planning to work on this? If not, can this be reassigned? With WebRTC support around the corner, I think the MediaSource API will allow the creation of some pretty amazing applications. Please let me know the current status of this bug. Thanks!
Reporter | ||
Comment 7•11 years ago
|
||
Yes, I picked it up again recently. There are a first set of patches coming shortly.
Comment 8•11 years ago
|
||
Excellent!
Comment 9•11 years ago
|
||
Anything new? when should we expect first patch?
Comment 10•11 years ago
|
||
Hey Matthew, what's the latest on the Media Source Extensions API implementation? You mentioned that a first set of patches would be out around 1 month ago. Any progress?
Reporter | ||
Updated•11 years ago
|
Updated•11 years ago
|
Comment 11•11 years ago
|
||
http://techcrunch.com/2013/04/15/netflix-html5-chromebooks/ http://www.webmonkey.com/2013/04/netflix-plans-to-ditch-silverlight-for-html5/ http://techblog.netflix.com/2013/04/html5-video-at-netflix.html
Comment 12•11 years ago
|
||
List things that we may need to do after Bug 855130 landing. 1. Relation between MediaSource & SourceBuffer should be 1-to-N 2. MediaSource::addSourceBuffer: param(type) MIME type checking. 3. Depend on Bug 744896: to enable/ disable audio track/ to select a video. 4. HTMLMediaElement behavior change https://dvcs.w3.org/hg/html-media/raw-file/tip/media-source/media-source.html#htmlmediaelement-extensions
Reporter | ||
Comment 13•11 years ago
|
||
Items 2 and 4 are partially done in the latest patch attached to bug 855130. I'll file bugs for the others (and a number of other things) that block this bug over the next day or so.
Updated•11 years ago
|
Comment 14•11 years ago
|
||
Hi, How is this going? Are you working on it or waiting for some of the dependencies to clear? Can you give a hint of when it will be milestone? Thank you Dennis
Reporter | ||
Comment 15•11 years ago
|
||
It's being worked on, most of the action is in the dependent bugs. The proposed schedule is here: https://wiki.mozilla.org/Platform/MediaSourceExtensions
Reporter | ||
Updated•11 years ago
|
Comment 16•10 years ago
|
||
This API is needed if you want to see youtube video on 1080p: http://googlesystem.blogspot.fr/2013/10/youtube-drops-support-for-1080p-streams.html " YouTube removed the non-DASH streams for 480p and 1080p. This means that you'll no longer be able to watch 1080p videos in YouTube's HTML5 player if you use Firefox or Safari. "
Updated•10 years ago
|
Reporter | ||
Updated•10 years ago
|
Reporter | ||
Updated•10 years ago
|
Reporter | ||
Updated•10 years ago
|
Updated•10 years ago
|
Comment 17•10 years ago
|
||
The proposed schedule is from the last year. Is the schedule still actual or not? What is the timeline when Firefox would be able to play videos using DASH reference implementation at dashif.org?
Comment 18•10 years ago
|
||
(In reply to anvar.sosnitski from comment #17) > The proposed schedule is from the last year. Is the schedule still actual or > not? What is the timeline when Firefox would be able to play videos using > DASH reference implementation at dashif.org? Some DASH implementations are working in nightly builds - those that use WebM/VP9. See for example: http://cd.pn/mse/webm/dash-player.html Support for YouTube's DASH player is ongoing. Nightly build plus bug 989888 allows playback of VP9 Dash streams on YouTube. More work on that is needed for seeking and stream switching however. I have not yet investigated dashif.org support due to it requiring (AFAIK) H.264 support and we've had muxer issues to deal with in that regard. I would hop ewe can get on to testing and getting it working in the near future.
Comment 19•10 years ago
|
||
Shipping Chrome supports the MSE API: https://groups.google.com/a/chromium.org/forum/#!topic/blink-dev/RG1dEbQEu8E As does IE 11: http://msdn.microsoft.com/en-us/library/ie/dn594470%28v=vs.85%29.aspx
Comment 20•10 years ago
|
||
(In reply to cajbir (:cajbir) from comment #18) > (In reply to anvar.sosnitski from comment #17) > > The proposed schedule is from the last year. Is the schedule still actual or > > not? What is the timeline when Firefox would be able to play videos using > > DASH reference implementation at dashif.org? > > Some DASH implementations are working in nightly builds - those that use > WebM/VP9. See for example: > > http://cd.pn/mse/webm/dash-player.html > > Support for YouTube's DASH player is ongoing. Nightly build plus bug 989888 > allows playback of VP9 Dash streams on YouTube. More work on that is needed > for seeking and stream switching however. > > I have not yet investigated dashif.org support due to it requiring (AFAIK) > H.264 support and we've had muxer issues to deal with in that regard. I > would hop ewe can get on to testing and getting it working in the near > future. @cajbir - I help manage the dash.js project https://github.com/Dash-Industry-Forum/dash.js which is the reference client for the DASH Industry Forum and also the preferred MSE implementation for many members including Microsoft and Akamai. We have good implementations under Chrome and IE11 and would love to add Firefox to that mix, not just for our companies but for the MSE ecosystem in general. If there is anything we can do from our end to help accelerate testing and/or code changes for H.264 ISOBMFF support please don't hesitate to reach out. Cheers Will Law
Comment 21•10 years ago
|
||
Is there a first FF stable release where MSE can be used or is it still in Nightly?
Comment 22•10 years ago
|
||
Dash on youtube doesn't work even in Nightly 32. I think we have to wait for all issues on which this one depends until get it working in nightly. It is too early to talk about stable.
Comment 23•10 years ago
|
||
(In reply to Aymeric Vitte from comment #21) > Is there a first FF stable release where MSE can be used or is it still in > Nightly? (In reply to Nazar Mokrynskyi from comment #22) > Dash on youtube doesn't work even in Nightly 32. I think we have to wait for > all issues on which this one depends until get it working in nightly. It is > too early to talk about stable. It works with VP9/WEBM video streams on youtube. But videos that have them are by far the minority. Also they have around half the bitrate and are more resource demanding to decode. For whatever (irrational) reason h.264 - which is overwhelmingly the dominant format - is ignored until everything else is done.
Comment 24•10 years ago
|
||
(In reply to avada from comment #23) > For whatever (irrational) reason h.264 - which is overwhelmingly the > dominant format - is ignored until everything else is done. This is an inappropriate comment. Please don't pass judgement (using words like irrational) on why things are done, assume good intent from the people doing the work. H.264 support relies on other work which is being done in parallel.
Comment 25•10 years ago
|
||
Do you have any idea when this could be available?
Updated•10 years ago
|
Comment 26•10 years ago
|
||
Afaik h264 in general meanwhile works. Does that mean support for dash/h264 as well (or maybe soon down the road)?
Reporter | ||
Comment 27•10 years ago
|
||
Yes, see bug 1027875.
Comment 28•10 years ago
|
||
As of today, Google has locked Nightly users out of being able to switch back an forth between HTML5 and Flash. HTML5 is now potentially the permanent default on YouTube for Fx33+. This should probably become a higher priority if not already YouTube's policy sticks.
Updated•10 years ago
|
Comment 29•10 years ago
|
||
Sandip, how can we nominate this as a b2g 2.2 feature?
Reporter | ||
Updated•10 years ago
|
Reporter | ||
Updated•10 years ago
|
Reporter | ||
Updated•10 years ago
|
Reporter | ||
Updated•10 years ago
|
Reporter | ||
Updated•10 years ago
|
Reporter | ||
Updated•10 years ago
|
Reporter | ||
Updated•10 years ago
|
Reporter | ||
Updated•10 years ago
|
Reporter | ||
Updated•10 years ago
|
Reporter | ||
Updated•10 years ago
|
Reporter | ||
Updated•10 years ago
|
Reporter | ||
Updated•10 years ago
|
Reporter | ||
Updated•10 years ago
|
Reporter | ||
Updated•10 years ago
|
Reporter | ||
Updated•10 years ago
|
Comment 30•10 years ago
|
||
Now that there is support for H264 in FirefoxNightly when I'm trying to use H264 with MSE I'm getting a 'NotSupportedError: Operation is not supported' error when I'm calling var sourceBuffer = ms.addSourceBuffer('video/mp4;codecs="avc1.42c00d"');
Comment 31•10 years ago
|
||
Of course, have you ever look to this site (youtube.com/html5)? MSE with H264 is not implemented enough today. Just stay tuned, when this bug are resolved, it should work:)
Updated•10 years ago
|
Updated•10 years ago
|
Comment 32•10 years ago
|
||
> feature-b2g: --- → 2.2?
We are currently reviewing the bug backlog for this feature, and the resulting schedule changes. Please don't set this flag until after that review. Thanks!
Comment 33•10 years ago
|
||
(In reply to info from comment #30) > Now that there is support for H264 in FirefoxNightly when I'm trying to use > H264 with MSE I'm getting a 'NotSupportedError: Operation is not supported' > error when I'm calling var sourceBuffer = > ms.addSourceBuffer('video/mp4;codecs="avc1.42c00d"'); I have the same error. Does Anyone know how to fix it?
Comment 34•10 years ago
|
||
(In reply to John from comment #33) > (In reply to info from comment #30) > > Now that there is support for H264 in FirefoxNightly when I'm trying to use > > H264 with MSE I'm getting a 'NotSupportedError: Operation is not supported' > > error when I'm calling var sourceBuffer = > > ms.addSourceBuffer('video/mp4;codecs="avc1.42c00d"'); > > I have the same error. > Does Anyone know how to fix it? Oh, don't support yet, video/webm is OK.
Comment 35•10 years ago
|
||
(In reply to John from comment #33) > (In reply to info from comment #30) > > Now that there is support for H264 in FirefoxNightly when I'm trying to use > > H264 with MSE I'm getting a 'NotSupportedError: Operation is not supported' > > error when I'm calling var sourceBuffer = > > ms.addSourceBuffer('video/mp4;codecs="avc1.42c00d"'); > > I have the same error. > Does Anyone know how to fix it? set media.mediasource.ignore_codecs to true
Updated•10 years ago
|
Comment hidden (spam) |
Comment hidden (spam) |
Comment 38•9 years ago
|
||
Release Note Request (optional, but appreciated) [Why is this notable]: A new area for videos [Suggested wording]: Media Source Extensions API implemented [Links (documentation, blog post, etc)]: Any link? AFAIK, this will ship with 36.
Comment 39•9 years ago
|
||
Specification is https://w3c.github.io/media-source/
Comment 40•9 years ago
|
||
It doesn't have to be in 2.2. But, need to continue working on it. Bobby, please follow up this topic.
Comment 41•9 years ago
|
||
(In reply to Ralph Giles (:rillian) from comment #39) > Specification is https://w3c.github.io/media-source/ Thanks but I was hoping for something more general and less technical.
Comment 42•9 years ago
|
||
continue work and mark as tracking-b2g:+ for future release.
Updated•9 years ago
|
Comment 43•9 years ago
|
||
(In reply to Sylvestre Ledru [:sylvestre] from comment #38) > Release Note Request (optional, but appreciated) > [Why is this notable]: A new area for videos > [Suggested wording]: Media Source Extensions API implemented > [Links (documentation, blog post, etc)]: Any link? > > AFAIK, this will ship with 36. See bug 1112761. API use in 36 will be limited.
Comment 44•9 years ago
|
||
Added to the release notes with "Media Source Extensions API implemented (Youtube only)" as wording. Let me know if someone has an issue with this.
Comment 45•9 years ago
|
||
Update to "Implemented a subset of the Media Source Extensions (MSE) API to allow native HTML5 playback on YouTube. Full support is on the way". Thanks to Bobby for the new version!
Comment 46•9 years ago
|
||
I already took a look in your brand-new MSE implementation using our MPEG-DASH player bitdash - and was happy to see it playing! Streaming different videos and playing around with our API worked fine. We have several test streams online, which might also be interesting for your work, located at: http://www.dash-player.com/demo/streaming-server-and-encoder-support/ (tested with Chrome, IE11 and Safari 8). You can select different videos from different vendors. Most of them are working great, some, like 'Sintel' (first two entries in the list) are stalling the video after a few seconds, whereas audio is still playing. As there are no error messages showing up, I can only guess, but I think the problem is introduced by representation changes (quality adaptation). If I disable the automatic quality switching (select a dedicated representation) everything works fine. Changing the representation manually stalls the video again. We have also a 24/7 live stream available for testing (http://www.dash-player.com/demo/live-streaming/). I experience the same behaviour - playback of a few seconds, then video stops, whereas audio is still playing. However, we are optimistic that everything will be fixed till the official release and we are happy to help, if needed.
Comment 47•9 years ago
|
||
Just for info, we also have DRM showcases available, for ClearKey (http://www.dash-player.com/demo/drm-and-protection/), PlayReady (http://www.dash-player.com/demo/playready-demo/) and Widevine Modular (http://www.dash-player.com/demo/widevine-modular/).
Comment 48•9 years ago
|
||
(In reply to Reinhard from comment #46) > I already took a look in your brand-new MSE implementation using our > MPEG-DASH player bitdash - and was happy to see it playing! Streaming > different videos and playing around with our API worked fine. > > We have several test streams online, which might also be interesting for > your work, located at: > http://www.dash-player.com/demo/streaming-server-and-encoder-support/ > (tested with Chrome, IE11 and Safari 8). You can select different videos > from different vendors. Most of them are working great, some, like 'Sintel' > (first two entries in the list) are stalling the video after a few seconds, > whereas audio is still playing. As there are no error messages showing up, I > can only guess, but I think the problem is introduced by representation > changes (quality adaptation). If I disable the automatic quality switching > (select a dedicated representation) everything works fine. Changing the > representation manually stalls the video again. the fragmented MP4 aren't per spec. They have start time of -0.021333. Specs require that they start at 0. We massage invalid files that are close to 0 but not 0, but only if start time is positive. about:media shows that we have video data from [28,30] and then only from [564,660] ; it stalls at 30s like it should. Can you please open a bug for the video that doesn't play?
Comment 49•9 years ago
|
||
Ok, the bug is reported with number 1131487 (https://bugzilla.mozilla.org/show_bug.cgi?id=1131487). I also added another stream with non zero start time, but this time with a positive offset: http://www.dash-player.com/demo/streaming-server-and-encoder-support/?mpd=http%3A%2F%2Fgce-bitbucket.storage.googleapis.com%2FbitStorage%2F2_6f9d0adade5b9d4547d0ac6ae436ae9c%2F546_Sintel.2010.720p.mkv%2Fmpds%2FSintel.2010.720p.mkv.mpd
Updated•9 years ago
|
Comment 52•9 years ago
|
||
Thank you for your effort about our reported issues (Bug 1131487). We tried with other videos, for instance 1080p60 (http://www.dash-player.com/demo/hfr/) - which worked fine. We also tested 4k sequences, like http://www.dash-player.com/demo/4k/. The playback works fine, until the switch to the first 4k representation (3840x1608) - the video stalls. In the following you can find the HTMLMediaElement debug data: http://www.dash-player.com/demo/4k/ mediasource:http://www.dash-player.com/4885f9ac-c61f-6749-91db-3c585a945fe9 currentTime: 34.446812 SourceBuffer 0 start=18.75 end=34.5 start=63.041666 end=68.041666 start=68.083333 end=115.666666 start=115.708333 end=144.75 SourceBuffer 1 start=0 end=79.552 Internal Data: Dumping data for reader 125f9ec00: Dumping Audio Track Decoders: - mLastAudioTime: 35.498666 Reader 0: 126566800 ranges=[(0.000000, 79.552000)] active=true size=1637674 Dumping Video Track Decoders - mLastVideoTime: 34.500000 Reader 7: 125f97000 ranges=[(119.833333, 144.750000)] active=false size=3508275 Reader 6: 125ea9000 ranges=[(115.708333, 119.833333)] active=false size=1307443 Reader 5: 125ea9400 ranges=[(110.708333, 115.666666)] active=false size=1464886 Reader 4: 124935400 ranges=[(79.625000, 110.750000)] active=false size=11376191 Reader 3: 11fe0e000 ranges=[(72.500000, 79.625000)] active=false size=1651288 Reader 2: 1185d7400 ranges=[(68.083333, 72.500000)] active=false size=14582884 Reader 1: 118905c00 ranges=[(63.041666, 68.041666)] active=false size=8046674 Reader 0: 12afce000 ranges=[(18.750000, 34.500000)] active=true size=9218236 As it can be seen, the video buffer ends at about 34 seconds (thats also where the playback stops) and there is a gap till about 63 seconds. Should we open a new bug for this or append it to Bug 1131487? We changed our handling of init and media segments, as a switch from a lower representation to 4k results in a stall on Chrome. Therefore now the init segment of the highest representation is pushed to the MSE first. The (4k/8k, 1080p60) fmp4 content for the MSE was generated by bitcodin (portal.bitcodin.com). If you want you can also use it to generate test content - please note that it is currently in beta status. We are happy to increase your credits if you need more for stabilising the MSE ;-)
Comment 53•9 years ago
|
||
Please open a new bug. This bug is a container to track the progress of MSE ; it's not to report MSE bug per-say. thanks.. we can take it from there. At a guess, you either haven't appended data from 34s onward, or the data got evicted during appendBuffer and as you don't appear to check that and never resubmit as required: it stalls.
Comment 54•9 years ago
|
||
Ok, the bug is reported with number 1137118 (https://bugzilla.mozilla.org/show_bug.cgi?id=1137118).
Comment 55•9 years ago
|
||
Hi all, I think it's kind of unfair to have a flag youtubeonly for a firefox for a feature. If it's good enough for youtube to play with and take responsibility to take care of it in a way that will be good for their end users then it's also should be available for other websites. What's next - facebookonly flag and yahooonly flag? If the implementation is not complete then I can understand that it is under a flag, but it cannot be available only for a specific domain and for all the others it will be restricted... if it is good enough for youtube to work with , it's also good enough for others.
Comment 56•9 years ago
|
||
hi Guy, the "youtubeonly" flag is temporary while we are testing MSE. Bug 1108086 is an example of an MSE site (Steam.com's Live Broadcasts) that Firefox doesn't support yet and would break without the temporary "youtubeonly" flag.
Comment 57•9 years ago
|
||
Well, If a website is doing something that is not yet fully supported then it will have to not do it. But if a different website simply wants to implement the exact same solution that youtube implemented using firefox mse - it is not fail / ok to enable it only to youtube or any other specific domain. Why should youtube be able to test/deploy their but I can't?
Comment 58•9 years ago
|
||
Hi guy, It is probably better to discuss or clarify policy in one of the fora such as https://www.mozilla.org/en-US/about/forums/#firefox-dev Does bug 1112761 comment 3 & bug1112761 comment 7 help, if you wish to experiment. > media.mediasource.enabled: false means no, true means check the other pref. > media.mediasource.youtubeonly: > false or unset means enabled everywhere, set to true means only https://*.youtube.com.
Comment 59•9 years ago
|
||
John, To have a media.mediasource.enabled I totally understand and agree it should be there. If mediasource is not ready for stable then this pref should be false. But to allow only youtube to test it large scale on their platform/domain without giving the opportunity for other websites is just wrong. Thanks for the tip , i'll try to discuss in the forums.
Comment 60•9 years ago
|
||
Disabling the YouTube restriction is just a matter of setting media.mediasource.youtubeonly property to false.
Comment 61•9 years ago
|
||
I understand that, But I can't do it for my users right...
Comment 62•9 years ago
|
||
(In reply to guy paskar from comment #61) > I understand that, But I can't do it for my users right... Just as an example , this is not my website and I don't have anything to do with it but bitdash has made a great html5 dash player which works great in ff - http://www.bitmovin.net/bitdash-mpeg-dash-player/ Why can youtube use media source in ff in their production environment but bitdash (or me using their player) can't?
Comment 63•9 years ago
|
||
It's just a safety measure until the MSE implementation is more stabilized. IIUC the plan is to have MSE on by default for all websites in Firefox 38 (though the Youtube support got pushed back from 36 to 37, so perhaps the timeline changed a bit).
Comment 64•9 years ago
|
||
Ah, from bug 1138992 comment #3, it will probably be Firefox 39 or 40, but no decision has been made yet.
Comment 65•9 years ago
|
||
(In reply to Emanuel Hoogeveen [:ehoogeveen] from comment #63) > It's just a safety measure until the MSE implementation is more stabilized. > IIUC the plan is to have MSE on by default for all websites in Firefox 38 > (though the Youtube support got pushed back from 36 to 37, so perhaps the > timeline changed a bit). Just saying, if it's good enough for youtube domain - its good enough for other domains that can be responsible for the safety of their products.
Comment 66•9 years ago
|
||
YouTube has disabled MSE playback for Fx37 and 38b. So much for "YouTube only".
Comment 67•9 years ago
|
||
(In reply to Leman Bennett [Omega] from comment #66) Youtube seems to have disabled HTML5 playback by default now. I'm forced to manually enable it on nightly and release channel now now. (Youtube.com/html5)
Updated•9 years ago
|
Comment 68•9 years ago
|
||
Can someone provide an update of where general MSE API support stands in FF 38 and plans for 39/40? Things got a bit confusing with youtubeonly, etc.
Comment 69•9 years ago
|
||
+1 for johneluther's request. We desperately need this for adaptive streaming with HTML5 video in the browser, but I'm not quite sure what the status is and enabling the flag didn't work for any MSE-dependent player lib we tested.
Comment 70•9 years ago
|
||
I'm using Linux Fedora 21 and Firefox 38.0.5 I have issues with MSE+VP9 the youtube video doesn't start playing but it buffers in the background further information: https://bugzilla.mozilla.org/show_bug.cgi?id=1173179
Comment 71•9 years ago
|
||
Any news relating to johneluther's and Sebastian Kippe's requests ? As far as I can see, MSE is not enabled by default on FF41 dev edition. Any update on the target release ?
Reporter | ||
Comment 72•9 years ago
|
||
More a question for jya or kft.
Comment 73•9 years ago
|
||
(In reply to Sebastian Kippe from comment #69) > +1 for johneluther's request. We desperately need this for adaptive > streaming with HTML5 video in the browser, but I'm not quite sure what the > status is and enabling the flag didn't work for any MSE-dependent player lib > we tested. Firefox has a whitelist limiting MSE (to YouTube, Netflix, and Dailymotion) while we fix some compatibility bugs. The whitelist will likely be removed in Firefox 42, making MSE available to all websites. The whitelist is disabled in the Firefox Nightly and Aurora channels. If you find any MSE players that don't work in Firefox Nightly or Aurora, please file a bug! :) (In reply to Djfe from comment #70) > I'm using Linux Fedora 21 and Firefox 38.0.5 > I have issues with MSE+VP9 > the youtube video doesn't start playing but it buffers in the background > > further information: > https://bugzilla.mozilla.org/show_bug.cgi?id=1173179 Firefox does not yet support MSE for VP9, but we're working on it.
Updated•9 years ago
|
Updated•9 years ago
|
Comment 74•9 years ago
|
||
(In reply to Chris Peterson [:cpeterson] from comment #73) > (In reply to Sebastian Kippe from comment #69) > > +1 for johneluther's request. We desperately need this for adaptive > > streaming with HTML5 video in the browser, but I'm not quite sure what the > > status is and enabling the flag didn't work for any MSE-dependent player lib > > we tested. > > Firefox has a whitelist limiting MSE (to YouTube, Netflix, and Dailymotion) > while we fix some compatibility bugs. The whitelist will likely be removed > in Firefox 42, making MSE available to all websites. The whitelist is > disabled in the Firefox Nightly and Aurora channels. If you find any MSE > players that don't work in Firefox Nightly or Aurora, please file a bug! :) > > > (In reply to Djfe from comment #70) > > I'm using Linux Fedora 21 and Firefox 38.0.5 > > I have issues with MSE+VP9 > > the youtube video doesn't start playing but it buffers in the background > > > > further information: > > https://bugzilla.mozilla.org/show_bug.cgi?id=1173179 > > Firefox does not yet support MSE for VP9, but we're working on it. Hello Chris, Can you help to point where is the source code that whitelisted Youtube, Netflix, and Dailymotion? Thanks, Tony
Comment 75•9 years ago
|
||
There is no whitelist anymore ; we won't be adding new sites to the whitelist
Updated•9 years ago
|
Comment 76•9 years ago
|
||
Is the plan still to remove the whitelist in Firefox 42?
Comment 77•9 years ago
|
||
the whitelist has already been removed in 42
Comment 78•9 years ago
|
||
Does it apply to Linux too? Youtube doesn't play good in Linux, and Netflix doesn't work.
Comment 79•9 years ago
|
||
I'm talking about the 41 stable version in Linux 64 bits.
Comment 80•8 years ago
|
||
Marking this MSE tracking bug as meta so it doesn't show up in our list of actionable P1 bugs.
Comment 81•8 years ago
|
||
Hi, running the following snippet over the page I get lots of blocking bugs, that are invalid/wontfix/wfm and so on including 37 bugs, that are duplicates of others: jQuery(function($) { var i = 1; $('#dependson_input_area').nextAll('a.bz_bug_link').each(function() { if ($(this).attr('title').match(/^RESOLVED(?! FIXED)/)) console.log(i++ + ") " + $(this).text() + ": " + $(this).attr('title')); }); }); Shouldn't these be removed from blocking this bug here and the duplicates changed to the correct number?
Comment 82•8 years ago
|
||
why that ? they were blocking, and now are fixed. This is a tracking bug. There are very few blockers left now. I personally prefer to keep the old blockers in, gives a good idea on the progress as well as allow to search for regression
Comment hidden (off-topic) |
Comment 84•7 years ago
|
||
Mass change P1->P2 to align with new Mozilla triage process
Comment 85•6 years ago
|
||
Mass bug change to replace various 'parity' whiteboard flags with the new canonical keywords. (See bug 1443764 comment 13.)
Updated•5 years ago
|
Comment 86•2 years ago
|
||
Comment on attachment 647050 [details] [diff] [review]
WebIDL/DOM stubs - patch v0
HG changeset patch
User Matthew Gregan <kinetik@flim.org>
Date 1343619599 -43200
Node ID 877a5b12f3d525a8d93f73ea8c93d8bcbf190d38
Parent f528e021ceb1daff2d854d9c460e907d4397b0d4
Bug 778617 - Implementation of the media source extensions API.
diff --git a/content/media/Makefile.in b/content/media/Makefile.in
--- a/content/media/Makefile.in
+++ b/content/media/Makefile.in
@@ -87,6 +87,8 @@ endifPARALLEL_DIRS += webrtc
+PARALLEL_DIRS += mediasource
+
TEST_DIRS += testFORCE_STATIC_LIB = 1
diff --git a/content/media/mediasource/Makefile.in b/content/media/mediasource/Makefile.in
new file mode 100644
--- /dev/null
+++ b/content/media/mediasource/Makefile.in
@@ -0,0 +1,36 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+DEPTH = ../../..
+topsrcdir = @top_srcdir@
+srcdir = @srcdir@
+VPATH = @srcdir@
+FAIL_ON_WARNINGS := 1
+
+include $(DEPTH)/config/autoconf.mk
+
+MODULE = content
+LIBRARY_NAME = gkconmediasource_s
+LIBXUL_LIBRARY = 1
+
+
+EXPORTS += \
nsDOMMediaSource.h \
nsDOMSourceBuffer.h \
nsDOMSourceBufferList.h \
$(NULL)
+CPPSRCS = \
nsDOMMediaSource.cpp \
nsDOMSourceBuffer.cpp \
nsDOMSourceBufferList.cpp \
$(NULL)
+FORCE_STATIC_LIB = 1
+
+include $(topsrcdir)/config/rules.mk
+
+LOCAL_INCLUDES = \
-I$(topsrcdir)/dom/base \
$(NULL)
diff --git a/content/media/mediasource/nsDOMMediaSource.cpp b/content/media/mediasource/nsDOMMediaSource.cpp
new file mode 100644
--- /dev/null
+++ b/content/media/mediasource/nsDOMMediaSource.cpp
@@ -0,0 +1,70 @@
+/* -- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 --/
+/ This Source Code Form is subject to the terms of the Mozilla Public
- License, v. 2.0. If a copy of the MPL was not distributed with this file,
- You can obtain one at http://mozilla.org/MPL/2.0/. */
+#include "nsContentUtils.h"
+#include "nsDOMClassInfoID.h"
+#include "nsDOMMediaSource.h"
+#include "nsDOMSourceBuffer.h"
+#include "nsDOMSourceBufferList.h"+using namespace mozilla;
+
+#if 0
+DOMCI_DATA(MediaSource, nsDOMMediaSource)
+#endif
+
+NS_IMPL_CYCLE_COLLECTION_WRAPPERCACHE_1(nsDOMMediaSource, mGlobal)
+NS_IMPL_CYCLE_COLLECTING_ADDREF(nsDOMMediaSource)
+NS_IMPL_CYCLE_COLLECTING_RELEASE(nsDOMMediaSource)
+
+NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION(nsDOMMediaSource)
- NS_WRAPPERCACHE_INTERFACE_MAP_ENTRY
- NS_INTERFACE_MAP_ENTRY(nsISupports)
+NS_INTERFACE_MAP_END+/static/ already_AddRefed<nsDOMMediaSource>
+nsDOMMediaSource::Constructor(nsISupports* aGlobal, ErrorResult& aRv)
+{
- nsDOMMediaSource* mediaSource = new nsDOMMediaSource(aGlobal);
- NS_ADDREF(mediaSource);
- return mediaSource;
+}+already_AddRefed<nsDOMSourceBufferList>
+nsDOMMediaSource::GetSourceBuffers(ErrorResult& aRv)
+{
- nsDOMSourceBufferList* sourceBuffers = new nsDOMSourceBufferList(this);
- NS_ADDREF(sourceBuffers);
- return sourceBuffers;
+}+already_AddRefed<nsDOMSourceBufferList>
+nsDOMMediaSource::GetActiveSourceBuffers(ErrorResult& aRv)
+{
- nsDOMSourceBufferList* activeSourceBuffers = new nsDOMSourceBufferList(this);
- NS_ADDREF(activeSourceBuffers);
- return activeSourceBuffers;
+}+already_AddRefed<nsDOMSourceBuffer>
+nsDOMMediaSource::AddSourceBuffer(const nsAString& aType, ErrorResult& aRv)
+{
- return nullptr;
+}+void
+nsDOMMediaSource::RemoveSourceBuffer(dom::NonNull<nsDOMSourceBuffer> aSourceBuffer, ErrorResult& aRv)
+{
+}
+
+dom::State
+nsDOMMediaSource::GetReadyState(ErrorResult& aRv)
+{
- return dom::StateValues::Closed;
+}+void
+nsDOMMediaSource::EndOfStream(const dom::Optional<dom::EndOfStreamError>& aError, ErrorResult& aRv)
+{
+}
diff --git a/content/media/mediasource/nsDOMMediaSource.h b/content/media/mediasource/nsDOMMediaSource.h
new file mode 100644
--- /dev/null
+++ b/content/media/mediasource/nsDOMMediaSource.h
@@ -0,0 +1,54 @@
+/* -- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 --/
+/ This Source Code Form is subject to the terms of the Mozilla Public
- License, v. 2.0. If a copy of the MPL was not distributed with this file,
- You can obtain one at http://mozilla.org/MPL/2.0/. */
+#ifndef MOZILLA_MEDIASOURCE_H_
+#define MOZILLA_MEDIASOURCE_H_+#include "nscore.h"
+#include "nsCOMPtr.h"
+#include "mozilla/Attributes.h"
+#include "nsWrapperCache.h"
+#include "mozilla/dom/MediaSourceBinding.h"
+#include "nsCycleCollectionParticipant.h"
+
+class nsDOMSourceBufferList;
+class nsDOMSourceBuffer;
+
+class nsDOMMediaSource MOZ_FINAL : public nsISupports, public nsWrapperCache
+{
+public:
- NS_DECL_CYCLE_COLLECTING_ISUPPORTS
- NS_DECL_CYCLE_COLLECTION_SCRIPT_HOLDER_CLASS(nsDOMMediaSource)
- nsISupports* GetParentObject() const {
- return mGlobal;
- }
- JSObject* WrapObject(JSContext *cx, JSObject *scope, bool *triedToWrap) {
- return mozilla::dom::MediaSourceBinding::Wrap(cx, scope, this, triedToWrap);
- }
- static already_AddRefed<nsDOMMediaSource> Constructor(nsISupports* aGlobal, mozilla::ErrorResult& aRv);
- already_AddRefed<nsDOMSourceBufferList> GetSourceBuffers(mozilla::ErrorResult& aRv);
- already_AddRefed<nsDOMSourceBufferList> GetActiveSourceBuffers(mozilla::ErrorResult& aRv);
- already_AddRefed<nsDOMSourceBuffer> AddSourceBuffer(const nsAString& aType, mozilla::ErrorResult& aRv);
- void RemoveSourceBuffer(mozilla::dom::NonNull<nsDOMSourceBuffer> aSourceBuffer, mozilla::ErrorResult& aRv);
- mozilla::dom::State GetReadyState(mozilla::ErrorResult& aRv);
- void EndOfStream(const mozilla::dom::Optional<mozilla::dom::EndOfStreamError>& aError, mozilla::ErrorResult& aRv);
+private:
- nsDOMMediaSource(nsISupports* aGlobal)
- : mGlobal(aGlobal)
- {
- SetIsDOMBinding();
- }
- nsCOMPtr<nsISupports> mGlobal;
+};+#endif /* MOZILLA_MEDIASOURCE_H_ /
diff --git a/content/media/mediasource/nsDOMSourceBuffer.cpp b/content/media/mediasource/nsDOMSourceBuffer.cpp
new file mode 100644
--- /dev/null
+++ b/content/media/mediasource/nsDOMSourceBuffer.cpp
@@ -0,0 +1,38 @@
+/ -- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 --/
+/ This Source Code Form is subject to the terms of the Mozilla Public
- License, v. 2.0. If a copy of the MPL was not distributed with this file,
- You can obtain one at http://mozilla.org/MPL/2.0/. */
+#include "nsContentUtils.h"
+#include "nsDOMClassInfoID.h"
+#include "nsDOMSourceBuffer.h"+using namespace mozilla;
+
+#if 0
+DOMCI_DATA(SourceBuffer, nsDOMSourceBuffer)
+#endif
+
+NS_IMPL_CYCLE_COLLECTION_WRAPPERCACHE_1(nsDOMSourceBuffer, mParent)
+NS_IMPL_CYCLE_COLLECTING_ADDREF(nsDOMSourceBuffer)
+NS_IMPL_CYCLE_COLLECTING_RELEASE(nsDOMSourceBuffer)
+
+NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION(nsDOMSourceBuffer)
- NS_WRAPPERCACHE_INTERFACE_MAP_ENTRY
- NS_INTERFACE_MAP_ENTRY(nsISupports)
+NS_INTERFACE_MAP_END+already_AddRefed<nsTimeRanges>
+nsDOMSourceBuffer::GetBuffered(ErrorResult& aRv)
+{
- return nullptr;
+}+void
+nsDOMSourceBuffer::Append(dom::Uint8Array& aData, ErrorResult& aRv)
+{
+}
+
+void
+nsDOMSourceBuffer::Abort(ErrorResult& aRv)
+{
+}
diff --git a/content/media/mediasource/nsDOMSourceBuffer.h b/content/media/mediasource/nsDOMSourceBuffer.h
new file mode 100644
--- /dev/null
+++ b/content/media/mediasource/nsDOMSourceBuffer.h
@@ -0,0 +1,48 @@
+/* -- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 --/
+/ This Source Code Form is subject to the terms of the Mozilla Public
- License, v. 2.0. If a copy of the MPL was not distributed with this file,
- You can obtain one at http://mozilla.org/MPL/2.0/. */
+#ifndef MOZILLA_SOURCEBUFFER_H_
+#define MOZILLA_SOURCEBUFFER_H_+#include "nscore.h"
+#include "nsCOMPtr.h"
+#include "nsWrapperCache.h"
+#include "mozilla/Attributes.h"
+#include "mozilla/dom/TypedArray.h"
+#include "mozilla/ErrorResult.h"
+#include "nsTimeRanges.h"
+#include "mozilla/dom/SourceBufferBinding.h"
+#include "nsCycleCollectionParticipant.h"
+
+class nsDOMSourceBuffer MOZ_FINAL : public nsISupports, public nsWrapperCache
+{
+public:
- NS_DECL_CYCLE_COLLECTING_ISUPPORTS
- NS_DECL_CYCLE_COLLECTION_SCRIPT_HOLDER_CLASS(nsDOMSourceBuffer)
- nsDOMSourceBuffer(nsISupports* aParent)
- : mParent(aParent)
- {
- SetIsDOMBinding();
- }
- nsISupports* GetParentObject() const {
- return mParent;
- }
- JSObject* WrapObject(JSContext *cx, JSObject *scope, bool *triedToWrap) {
- return mozilla::dom::SourceBufferBinding::Wrap(cx, scope, this, triedToWrap);
- }
- already_AddRefed<nsTimeRanges> GetBuffered(mozilla::ErrorResult& aRv);
- void Append(mozilla::dom::Uint8Array& aData, mozilla::ErrorResult& aRv);
- void Abort(mozilla::ErrorResult& aRv);
+private:
- nsCOMPtr<nsISupports> mParent;
+};+#endif /* MOZILLA_SOURCEBUFFER_H_ /
diff --git a/content/media/mediasource/nsDOMSourceBufferList.cpp b/content/media/mediasource/nsDOMSourceBufferList.cpp
new file mode 100644
--- /dev/null
+++ b/content/media/mediasource/nsDOMSourceBufferList.cpp
@@ -0,0 +1,34 @@
+/ -- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 --/
+/ This Source Code Form is subject to the terms of the Mozilla Public
- License, v. 2.0. If a copy of the MPL was not distributed with this file,
- You can obtain one at http://mozilla.org/MPL/2.0/. */
+#include "nsContentUtils.h"
+#include "nsDOMClassInfoID.h"
+#include "nsDOMSourceBufferList.h"+using namespace mozilla;
+
+#if 0
+DOMCI_DATA(SourceBufferList, nsDOMSourceBufferList)
+#endif
+
+NS_IMPL_CYCLE_COLLECTION_WRAPPERCACHE_1(nsDOMSourceBufferList, mParent)
+NS_IMPL_CYCLE_COLLECTING_ADDREF(nsDOMSourceBufferList)
+NS_IMPL_CYCLE_COLLECTING_RELEASE(nsDOMSourceBufferList)
+
+NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION(nsDOMSourceBufferList)
- NS_WRAPPERCACHE_INTERFACE_MAP_ENTRY
- NS_INTERFACE_MAP_ENTRY(nsISupports)
+NS_INTERFACE_MAP_END+already_AddRefed<nsDOMSourceBuffer>
+nsDOMSourceBufferList::__indexedgetter(uint32_t aIndex, ErrorResult& aRv)
+{
- return nullptr;
+}+uint32_t
+nsDOMSourceBufferList::GetLength(ErrorResult& aRv)
+{
- return 0;
+}
diff --git a/content/media/mediasource/nsDOMSourceBufferList.h b/content/media/mediasource/nsDOMSourceBufferList.h
new file mode 100644
--- /dev/null
+++ b/content/media/mediasource/nsDOMSourceBufferList.h
@@ -0,0 +1,46 @@
+/* -- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 --/
+/ This Source Code Form is subject to the terms of the Mozilla Public
- License, v. 2.0. If a copy of the MPL was not distributed with this file,
- You can obtain one at http://mozilla.org/MPL/2.0/. */
+#ifndef MOZILLA_SOURCEBUFFERLIST_H_
+#define MOZILLA_SOURCEBUFFERLIST_H_+#include "nscore.h"
+#include "nsCOMPtr.h"
+#include "mozilla/Attributes.h"
+#include "nsWrapperCache.h"
+#include "nsDOMSourceBuffer.h"
+#include "mozilla/dom/SourceBufferListBinding.h"
+#include "nsCycleCollectionParticipant.h"
+
+class nsDOMMediaSource;
+
+class nsDOMSourceBufferList MOZ_FINAL : public nsISupports, public nsWrapperCache
+{
+public:
- NS_DECL_CYCLE_COLLECTING_ISUPPORTS
- NS_DECL_CYCLE_COLLECTION_SCRIPT_HOLDER_CLASS(nsDOMSourceBufferList)
- nsDOMSourceBufferList(nsISupports* aParent)
- : mParent(aParent)
- {
- SetIsDOMBinding();
- }
- nsISupports* GetParentObject() const {
- return mParent;
- }
- JSObject* WrapObject(JSContext *cx, JSObject *scope, bool *triedToWrap) {
- return mozilla::dom::SourceBufferListBinding::Wrap(cx, scope, this, triedToWrap);
- }
- already_AddRefed<nsDOMSourceBuffer> __indexedgetter(uint32_t aIndex, mozilla::ErrorResult& aRv);
- uint32_t GetLength(mozilla::ErrorResult& aRv);
+private:
- nsCOMPtr<nsISupports> mParent;
+};+#endif /* MOZILLA_SOURCEBUFFERLIST_H_ */
diff --git a/dom/bindings/Bindings.conf b/dom/bindings/Bindings.conf
--- a/dom/bindings/Bindings.conf
+++ b/dom/bindings/Bindings.conf
@@ -239,6 +239,18 @@ DOMInterfaces = {
'headerFile': 'mozilla/dom/workers/bindings/XMLHttpRequestUpload.h'
}],+'MediaSource': {
- 'nativeType': 'nsDOMMediaSource',
+},+'SourceBuffer': {
- 'nativeType': 'nsDOMSourceBuffer',
+},+'SourceBufferList': {
- 'nativeType': 'nsDOMSourceBufferList',
+},####################################
Test Interfaces of various sorts
####################################
@@ -318,6 +330,8 @@ def addExternalHTMLElement(element):
addExternalHTMLElement('HTMLCanvasElement')
addExternalHTMLElement('HTMLImageElement')
addExternalHTMLElement('HTMLVideoElement')
+addExternalHTMLElement('HTMLVideoElement')
+addExternalHTMLElement('TimeRanges')
addExternalIface('CanvasGradient', headerFile='nsIDOMCanvasRenderingContext2D.h')
addExternalIface('CanvasPattern', headerFile='nsIDOMCanvasRenderingContext2D.h')
addExternalIface('HitRegionOptions', nativeType='nsISupports')
diff --git a/dom/webidl/MediaSource.webidl b/dom/webidl/MediaSource.webidl
new file mode 100644
--- /dev/null
+++ b/dom/webidl/MediaSource.webidl
@@ -0,0 +1,28 @@
+/* -- Mode: IDL; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -- /
+/ This Source Code Form is subject to the terms of the Mozilla Public
- License, v. 2.0. If a copy of the MPL was not distributed with this file,
- You can obtain one at http://mozilla.org/MPL/2.0/.
- The origin of this IDL file is
- Copyright © 2012 W3C® (MIT, ERCIM, Keio), All Rights Reserved. W3C
- liability, trademark and document use rules apply.
- */
+enum State {"closed", "open", "ended"};
+
+enum EndOfStreamError {"network", "decode"};
+
+[Constructor]
+interface MediaSource : EventTarget {
- readonly attribute SourceBufferList sourceBuffers;
- readonly attribute SourceBufferList activeSourceBuffers;
- SourceBuffer addSourceBuffer(DOMString type);
- void removeSourceBuffer(SourceBuffer sourceBuffer);
- readonly attribute State readyState;
- void endOfStream(optional EndOfStreamError error);
+};
diff --git a/dom/webidl/SourceBuffer.webidl b/dom/webidl/SourceBuffer.webidl
new file mode 100644
--- /dev/null
+++ b/dom/webidl/SourceBuffer.webidl
@@ -0,0 +1,21 @@
+/* -- Mode: IDL; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -- /
+/ This Source Code Form is subject to the terms of the Mozilla Public
- License, v. 2.0. If a copy of the MPL was not distributed with this file,
- You can obtain one at http://mozilla.org/MPL/2.0/.
- The origin of this IDL file is
- Copyright © 2012 W3C® (MIT, ERCIM, Keio), All Rights Reserved. W3C
- liability, trademark and document use rules apply.
- */
+interface TimeRanges;
+
+interface SourceBuffer : EventTarget {
- readonly attribute TimeRanges buffered;
- void append(Uint8Array data);
- void abort();
+};
diff --git a/dom/webidl/SourceBufferList.webidl b/dom/webidl/SourceBufferList.webidl
new file mode 100644
--- /dev/null
+++ b/dom/webidl/SourceBufferList.webidl
@@ -0,0 +1,16 @@
+/* -- Mode: IDL; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -- /
+/ This Source Code Form is subject to the terms of the Mozilla Public
- License, v. 2.0. If a copy of the MPL was not distributed with this file,
- You can obtain one at http://mozilla.org/MPL/2.0/.
- The origin of this IDL file is
- Copyright © 2012 W3C® (MIT, ERCIM, Keio), All Rights Reserved. W3C
- liability, trademark and document use rules apply.
- */
+interface SourceBufferList : EventTarget {
- readonly attribute unsigned long length;
- getter SourceBuffer? (unsigned long index);
+};
diff --git a/dom/webidl/WebIDL.mk b/dom/webidl/WebIDL.mk
--- a/dom/webidl/WebIDL.mk
+++ b/dom/webidl/WebIDL.mk
@@ -15,6 +15,9 @@ webidl_files =
XMLHttpRequest.webidl
XMLHttpRequestEventTarget.webidl
XMLHttpRequestUpload.webidl \- MediaSource.webidl \
- SourceBuffer.webidl \
- SourceBufferList.webidl
$(NULL)ifdef MOZ_WEBGL
diff --git a/layout/build/Makefile.in b/layout/build/Makefile.in
--- a/layout/build/Makefile.in
+++ b/layout/build/Makefile.in
@@ -171,6 +171,10 @@ SHARED_LIBRARY_LIBS +=
$(NULL)
endif+SHARED_LIBRARY_LIBS += \
- $(DEPTH)/content/media/mediasource/$(LIB_PREFIX)gkconmediasource_s.$(LIB_SUFFIX) \
- $(NULL)
ifdef NS_PRINTING
SHARED_LIBRARY_LIBS +=
../printing/$(LIB_PREFIX)gkprinting_s.$(LIB_SUFFIX) \
Updated•2 years ago
|
Comment hidden (spam) |
Updated•21 days ago
|
Description
•