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

2016-05-16 Thread Callum Prentice (Callum)
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
. 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 
___
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

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

2016-05-16 Thread Dax Dupont
​Hello,
My knowledge about libVLC is rather outdated I would say, however it should
be able to play quicktime/MOV files so I'm pretty sure it's a bug somewhere.
No experience with gstreamer but if i remember when we were arguing for
replacements a while back that there was a concern about licensing codecs
wise. If legal cleared it then it should in theory be fine though. Building
it for windows might be atrocious though.

-- 
*Have a safe and productive day​,*
*Dax Dupont/Ghost Menjou​*
___
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

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

2016-05-16 Thread Cinder Roxley
Gstreamer is probably your best bet just based on the friendliness of the 
developer community when asking questions and gstreamer being somewhat more 
focused on being an intuitive framework to integrate into an application. 
However, libvlc has a much simpler api which makes it faster to integrate, and 
you don’t need to worry about plugins as much, as only the codecs are modular 
(which has benefits and drawbacks, of course.) As Henri pointed out though, 
getting a functional framework to link against is a job that only happens once 
(or once every library update anyway.)

If licensing isn’t an issue, I’d go with gstreamer.
 
 
-- 
Cinder Roxley
Sent with Airmail
 

On May 16, 2016 at 2:41:20 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 LibVLChere. 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  


___
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


___
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

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

2016-05-16 Thread Callum Prentice (Callum)
>
>
> ​​
> My knowledge about libVLC is rather outdated I would say, however it
> should be able to play quicktime/MOV files so I'm pretty sure it's a bug
> somewhere.
>

​
​Investigating now - the source of test material when I wrote the original
QuickTime plugin was the Apple movie trailers site but they all seem to be
in Apple's own m4v​ format which doesn't play in SL on my system with the
latest version of QuickTime for windows installed.
​


> No experience with gstreamer but if i remember when we were arguing for
> replacements a while back that there was a concern about licensing codecs
> wise. If legal cleared it then it should in theory be fine though. Building
> it for windows might be atrocious though.
>

​
​That was my experience a long time ago when we briefly discussed using
GStreamer everywhere. However, I see now there is a page ​-
https://gstreamer.freedesktop.org/download/​ - with binary downloads for
all platforms.
​
___
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

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

2016-05-16 Thread Callum Prentice (Callum)
>
>
> Gstreamer is probably your best bet just based on the friendliness of the
> developer community when asking questions and gstreamer being somewhat more
> focused on being an intuitive framework to integrate into an application.
> However, libvlc has a much simpler api which makes it faster to integrate,
> and you don’t need to worry about plugins as much, as only the codecs are
> modular (which has benefits and drawbacks, of course.) As Henri pointed out
> though, getting a functional framework to link against is a job that only
> happens once (or once every library update anyway.)
>

​Understood and thanks for the insight.  Does the GStreamer plugin in the
LL viewer-release branch still build?  Do you know if anyone has made a
Windows or OS X version of it ?
​
___
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

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

2016-05-16 Thread Cinder Roxley
On May 16, 2016 at 3:39:53 PM, Callum Prentice (Callum) (cal...@lindenlab.com 
 ) wrote:
 

​​

 My knowledge about libVLC is rather outdated I would say, however it should be 
able to play quicktime/MOV files so I'm pretty sure it's a bug somewhere.

​
 ​Investigating now - the source of test material when I wrote the original 
QuickTime plugin was the Apple movie trailers site but they all seem to be in 
Apple's own m4v​ format which doesn't play in SL on my system with the latest 
version of QuickTime for windows installed.
M4v is like the video container version of mp4. Here are the official quicktime 
sample files:

https://support.apple.com/en-gw/HT201549

​
  No experience with gstreamer but if i remember when we were arguing for 
replacements a while back that there was a concern about licensing codecs wise. 
If legal cleared it then it should in theory be fine though. Building it for 
windows might be atrocious though.
 ​
 ​That was my experience a long time ago when we briefly discussed using 
GStreamer everywhere. However, I see now there is a page ​- 
 https://gstreamer.freedesktop.org/download/​ - with binary downloads for all 
platforms.
 ​
  Windows building support has come a long way as long as you’re using 
gstreamer 1.x (no more nasty mingw/msys) They claim that it builds with 
Microsoft compilers now.


-- 
Cinder Roxley
Sent with Airmail
___
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

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

2016-05-16 Thread Cinder Roxley
On May 16, 2016 at 3:41:47 PM, Callum Prentice (Callum) (cal...@lindenlab.com 
 ) wrote:
 

Gstreamer is probably your best bet just based on the friendliness of the 
developer community when asking questions and gstreamer being somewhat more 
focused on being an intuitive framework to integrate into an application. 
However, libvlc has a much simpler api which makes it faster to integrate, and 
you don’t need to worry about plugins as much, as only the codecs are modular 
(which has benefits and drawbacks, of course.) As Henri pointed out though, 
getting a functional framework to link against is a job that only happens once 
(or once every library update anyway.)

​Understood and thanks for the insight.  Does the GStreamer plugin in the LL 
viewer-release branch still build?
I’m not sure. You’d definitely want to update to gstreamer 1.x though and 
probably ditch the old repo and build with Cerbero.

  Do you know if anyone has made a Windows or OS X version of it ?
​
  I made an attempt three years ago, got it working on OS X. Got frustrated 
with mingw and moved on to something else. I know the Imprudence team had some 
success with replacing both FMOD and Quicktime with gstreamer earlier than 
that, but this issue from their tracker shows that they then debated moving to 
FFMpeg or libvlc instead: 
https://sourceforge.net/p/team-purple/imprudence/tickets/340/

-- 
Cinder Roxley
Sent with Airmail
___
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

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

2016-05-16 Thread Callum Prentice (Callum)
>
>   Do you know if anyone has made a Windows or OS X version of it ?
> ​
>
>
> I made an attempt three years ago, got it working on OS X. Got frustrated
> with mingw and moved on to something else. I know the Imprudence team had
> some success with replacing both FMOD and Quicktime with gstreamer earlier
> than that, but this issue from their tracker shows that they then debated
> moving to FFMpeg or libvlc instead:
> https://sourceforge.net/p/team-purple/imprudence/tickets/340/
> ​
>
>
Good info - I'll go take a look - thanks Cinder.​
​
___
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

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

2016-05-16 Thread Cinder Roxley
On May 16, 2016 at 4:03:29 PM, Callum Prentice (Callum) (cal...@lindenlab.com 
 ) wrote:
 
  Do you know if anyone has made a Windows or OS X version of it ?
​
   I made an attempt three years ago, got it working on OS X. Got frustrated 
with mingw and moved on to something else. I know the Imprudence team had some 
success with replacing both FMOD and Quicktime with gstreamer earlier than 
that, but this issue from their tracker shows that they then debated moving to 
FFMpeg or libvlc instead: 
https://sourceforge.net/p/team-purple/imprudence/tickets/340/

​

Good info - I'll go take a look - thanks Cinder.​
 ​
Looks like this is the last efforts on gstreamer for the viewer from Inworldz. 
Autobuild 3p for building gstreamer 1.0 win32: 
https://bitbucket.org/mccabe/3p-gstreamer-sdk-x86-iw

-- 
Cinder Roxley
Sent with Airmail
___
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

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

2016-05-16 Thread Nicky Perian
https://jira.secondlife.com/browse/OPEN-151
Dated from when fmod went to fmodex
Kokua used gstreamer for streaming for windows, but went to fmodex because
of code being out of date with plugins.
Specfic to this was not playing some stream rates.

I could set Kokua back to gstreamer but would need to autobuild1.0 the
archives.

There is an overhead of the gstreamer plugins dll's. iirc it was about 25
MB.

Kokua still uses gstreamer for linux as a lot of the linux users want as
much opensource as possible.

Linux version relies on distro packages for the plugins.


On Mon, May 16, 2016 at 5:09 PM, Cinder Roxley 
wrote:

> On May 16, 2016 at 4:03:29 PM, Callum Prentice (Callum) (
> cal...@lindenlab.com) wrote:
>
>   Do you know if anyone has made a Windows or OS X version of it ?
>> ​
>>
>>
>> I made an attempt three years ago, got it working on OS X. Got frustrated
>> with mingw and moved on to something else. I know the Imprudence team had
>> some success with replacing both FMOD and Quicktime with gstreamer earlier
>> than that, but this issue from their tracker shows that they then debated
>> moving to FFMpeg or libvlc instead:
>> https://sourceforge.net/p/team-purple/imprudence/tickets/340/
>> ​
>>
>
> Good info - I'll go take a look - thanks Cinder.​
>  ​
>
> Looks like this is the last efforts on gstreamer for the viewer from
> Inworldz. Autobuild 3p for building gstreamer 1.0 win32:
> https://bitbucket.org/mccabe/3p-gstreamer-sdk-x86-iw
> --
> Cinder Roxley
> Sent with Airmail
>
>
> ___
> 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
>
___
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

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

2016-05-16 Thread Callum Prentice (Callum)
Thanks Nicky - lots of info there for me to look at.

On Mon, May 16, 2016 at 4:39 PM, Nicky Perian  wrote:

> https://jira.secondlife.com/browse/OPEN-151
> Dated from when fmod went to fmodex
> Kokua used gstreamer for streaming for windows, but went to fmodex because
> of code being out of date with plugins.
> Specfic to this was not playing some stream rates.
>
> I could set Kokua back to gstreamer but would need to autobuild1.0 the
> archives.
>
> There is an overhead of the gstreamer plugins dll's. iirc it was about 25
> MB.
>
> Kokua still uses gstreamer for linux as a lot of the linux users want as
> much opensource as possible.
>
> Linux version relies on distro packages for the plugins.
>
>
> On Mon, May 16, 2016 at 5:09 PM, Cinder Roxley 
> wrote:
>
>> On May 16, 2016 at 4:03:29 PM, Callum Prentice (Callum) (
>> cal...@lindenlab.com) wrote:
>>
>>   Do you know if anyone has made a Windows or OS X version of it ?
>>> ​
>>>
>>>
>>> I made an attempt three years ago, got it working on OS X. Got
>>> frustrated with mingw and moved on to something else. I know the Imprudence
>>> team had some success with replacing both FMOD and Quicktime with gstreamer
>>> earlier than that, but this issue from their tracker shows that they then
>>> debated moving to FFMpeg or libvlc instead:
>>> https://sourceforge.net/p/team-purple/imprudence/tickets/340/
>>> ​
>>>
>>
>> Good info - I'll go take a look - thanks Cinder.​
>>  ​
>>
>> Looks like this is the last efforts on gstreamer for the viewer from
>> Inworldz. Autobuild 3p for building gstreamer 1.0 win32:
>> https://bitbucket.org/mccabe/3p-gstreamer-sdk-x86-iw
>> --
>> Cinder Roxley
>> Sent with Airmail
>>
>>
>> ___
>> 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
>>
>
>


-- 

CALLUM PRENTICE | Software Engineer

LINDEN LAB | Create Virtual Experiences 
___
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