[opensource-dev] Replacement for QuickTime media plugin - a straw man proposal

Callum Prentice (Callum) callum at lindenlab.com
Mon May 16 13:41:15 PDT 2016


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/>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.secondlife.com/pipermail/opensource-dev/attachments/20160516/7e6dafce/attachment.htm 


More information about the opensource-dev mailing list