This is what I propose for moving forward with the "Remove QuickTime from the viewer" work:
(TLDR; Replace QuickTime plugin with one based on LibVLC and use it to play MPEG-4 and MP3 media URLS plus anything else we get for free. Additionally, turn on flags in Chromium->CEF->CEF-bin->LLCEFLib->media_plugin_cef builds that enable embedded media support.) - Remove QuickTime entirely from the viewer. - Replace it with a new plugin: - Version for Windows (32 bit) using LibVLC - Version for OS X (32 bit) using LibVLC - Ask for help from open source developer community to create a version for Linux using LibVLC - Update mime_types.xml (etc) to point old QuickTime handled media at new version (plus any others we think should not go to the default, CEF plugin) - Ask for help from the open source developer community to flip Linux GStreamer output since we flipped the prim media texture coordinates - I hope this is possible - reason it was done is that both CEF and LibVLC need to be flipped so it seems foolish to flip everything twice. - Inhibit the "This file needs to be downloaded" message in CEF for media types we are unable to handle - replace with Alert? Then as a separate task maybe since it's more of a feature vs. a replace QuickTime issue: - Assuming legal gives us the go ahead to turn on the CEF embedded media support, go ahead and update the Windows/OS X 32 bit CEF media plugins accordingly. Then, once this is finished and we resume the 64 bit conversion work: - Create 64 bit versions of the LibVLC plugin for Windows and OS X - Create 64 bit versions of the media-enabled CEF plugin for Windows and OS X Unless anyone has any significant objections, I'll go ahead and clean up the existing LibVLC plugin, get it working on OS X and make a version of the CEF plugin with embedded media. I have no ability to do anything for the Linux side of things so would appreciate help from someone with a contributor agreement. Cheers! On Mon, May 16, 2016 at 1:41 PM, Callum Prentice (Callum) < cal...@lindenlab.com> wrote: > As many of you know, support for playing media in Second Life using > QuickTime is being removed after Apple announced in April 2016 that they > have no further plans to provide security updates for QuickTime for > Windows. This email is intended to be a solicitation for feedback and > review of a proposed replacement and hopefully some discussion around its' > merits, inadequacies and possible alternatives. > > A replacement media plugin for QuickTime needs to be created based on an > existing media playback SDK and mime_types.xml (etc.) updated to direct > appropriate media types (MPEG-4, MPG, MP3) at this new plugin. > > The two technologies that seemed like they might work were identified as > GStreamer and LibVLC. The former was an attractive option since that was > already used in the Linux viewer. The existing GStreamer media plugin code > was somewhat complex and unknown to me whereas playback of a stream in > LibVLC seemed very straightforward and I had toyed with it in the past. > > In order to get something working and provide something to base discussion > on, I forked viewer-release and made a new viewer that had QuickTime > removed and a new media plugin based on LibVLC here > <https://bitbucket.org/callum_linden/viewer-release-vlc>. Only the Win32 > implementation is filled out currently until we can collectively decide if > this is the right approach. > > I made a Linden autobuild VLC binary package that the new media code > (media_plugin_libvlc.cpp) consumes - currently using the latest version > (2.2.3). > > The limitations with this solution are: > > - I don't know how to resize the playback buffer once a stream starts > playing so if a media plugin resize message come in, I restart the stream > from the beginning. It is regrettable but not as big a concern as it would > be for say, web media where resizing is much more common. > - It doesn't appear to play back the QuickTime MOV files I have tried. > I'm still investigating whether that is expected behavior or not. > - If you click on a (say) link to an MPEG-4 movie from a web page that > is rendered using the CEF plugin, the media system is (currently) not able > to switch out the plugin implementation and play it - at the moment I think > the CEF plugin reports that this type of file must be downloaded. As far as > I know, this wasn't possible before though (clicking on link to QuickTime > movie would play in same media instance). > > Our legal department have given us clearance to use either GStreamer or > LibVLC as we see fit so that is not a concern. > > So what do we all think? Given the limited resources we have to throw at > this, is this approach good enough? If not, what are are the alternatives, > what are their advantages versus this one and how complex will they be to > implement? > > Many thanks in advance. > > -- > > CALLUM PRENTICE | Software Engineer > > LINDEN LAB | Create Virtual Experiences <http://www.lindenlab.com/> > -- CALLUM PRENTICE | Software Engineer LINDEN LAB | Create Virtual Experiences <http://www.lindenlab.com/>
_______________________________________________ Policies and (un)subscribe information available here: http://wiki.secondlife.com/wiki/OpenSource-Dev Please read the policies before posting to keep unmoderated posting privileges