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

Reply via email to