Official VM missing MPEGPlugin

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
10 messages Options
Reply | Threaded
Open this post in threaded view
|

Official VM missing MPEGPlugin

Tapple Gao
 
Cog VM includes the MPEGPlugin, but the interpreter VM from
http://ftp.squeak.org/4.1/
does not. It's needed by Cobalt. To test:

- Load up Movies-Kernel and Movies-Player from
  http://www.squeaksource.com/MultiMedia.html
  (aside: anyone know of a more official location for multimedia
  stuff?)
- Get out an MPEGPlayerMorph (World > objects > Multimedia >
  MPEGPlayer)
- press the load button and find your favorite mpeg file. I
  threw up the one we ship with cobalt in case you don't have
  one on hand (3.1 MB):
  http://cobalt.cs.duke.edu/pub/alien.mpeg
- official VM will get a primitive failure at this point
- Cog will show the first frame of the video and you can watch
  it by pressing play

--
Matthew Fulmer (a.k.a. Tapple)
Reply | Threaded
Open this post in threaded view
|

Re: Official VM missing MPEGPlugin

David T. Lewis
 
On Fri, Jan 14, 2011 at 11:59:47AM -0500, Matthew Fulmer wrote:

>  
> Cog VM includes the MPEGPlugin, but the interpreter VM from
> http://ftp.squeak.org/4.1/
> does not. It's needed by Cobalt. To test:
>
> - Load up Movies-Kernel and Movies-Player from
>   http://www.squeaksource.com/MultiMedia.html
>   (aside: anyone know of a more official location for multimedia
>   stuff?)
> - Get out an MPEGPlayerMorph (World > objects > Multimedia >
>   MPEGPlayer)
> - press the load button and find your favorite mpeg file. I
>   threw up the one we ship with cobalt in case you don't have
>   one on hand (3.1 MB):
>   http://cobalt.cs.duke.edu/pub/alien.mpeg
> - official VM will get a primitive failure at this point
> - Cog will show the first frame of the video and you can watch
>   it by pressing play

The unix VM includes MPEGPlugin. I'm not sure about the Mac and
Windows VMs, although I would have expected it to be there also.
I am away from Squeak for a couple of days so I can't reproduce
your test right now. Can you clarify which platform this is,
and is the MPEGPlugin missing entirely, or is it present but
not working correctly?

Thanks!
Dave

Reply | Threaded
Open this post in threaded view
|

Re: Official VM missing MPEGPlugin

David T. Lewis
In reply to this post by Tapple Gao
 
On Fri, Jan 14, 2011 at 11:59:47AM -0500, Matthew Fulmer wrote:
>  
> Cog VM includes the MPEGPlugin, but the interpreter VM from
> http://ftp.squeak.org/4.1/
> does not. It's needed by Cobalt.

Well I'm stumped. The plugin exists and is installed in the normal
place. But it is not being loaded when called from #primFileValidMPEG:.
There are no errors (e.g. unresolved symbols etc) and no problems
compiling, we are just not finding the plugin at runtime.

I'm sure I'm missing something obvious, but I can't spot it.

> To test:
>
> - Load up Movies-Kernel and Movies-Player from
>   http://www.squeaksource.com/MultiMedia.html
>   (aside: anyone know of a more official location for multimedia
>   stuff?)
> - Get out an MPEGPlayerMorph (World > objects > Multimedia >
>   MPEGPlayer)
> - press the load button and find your favorite mpeg file. I
>   threw up the one we ship with cobalt in case you don't have
>   one on hand (3.1 MB):
>   http://cobalt.cs.duke.edu/pub/alien.mpeg

FYI, access is denied to this file:

  Forbidden
 
  You don't have permission to access /pub/alien.mpeg on this server.
  Apache/2.2.14 (Ubuntu) Server at cobalt.cs.duke.edu Port 80

> - official VM will get a primitive failure at this point
> - Cog will show the first frame of the video and you can watch
>   it by pressing play
>
> --
> Matthew Fulmer (a.k.a. Tapple)
Reply | Threaded
Open this post in threaded view
|

Re: Official VM missing MPEGPlugin

Eliot Miranda-2
 


On Sat, Jan 15, 2011 at 9:14 AM, David T. Lewis <[hidden email]> wrote:

On Fri, Jan 14, 2011 at 11:59:47AM -0500, Matthew Fulmer wrote:
>
> Cog VM includes the MPEGPlugin, but the interpreter VM from
> http://ftp.squeak.org/4.1/
> does not. It's needed by Cobalt.

Well I'm stumped. The plugin exists and is installed in the normal
place. But it is not being loaded when called from #primFileValidMPEG:.
There are no errors (e.g. unresolved symbols etc) and no problems
compiling, we are just not finding the plugin at runtime.

I'm sure I'm missing something obvious, but I can't spot it.

I suspect it's not obvious and I'd be willing to bet there /is/ an undefined symbol in the plugin.  It won't show on the compiler command line unless you compile carefully, since the compiler does allow undefined symbols, a side-efeft of the default global namespace.  If the program into which a shared library is loaded has already loaded some other shared library that defines undefined in that first shared library the first shared library will get its definition from the other.  So remake the plugin, capturing the link step, and then manually repeat the link step supplying "-Wl,--warn-unresolved-symbols -Wl,--no-allow-shlib-undefined" and hopefully you'll be informed of the undefined symbols.

HTH
Eliot


> To test:
>
> - Load up Movies-Kernel and Movies-Player from
>   http://www.squeaksource.com/MultiMedia.html
>   (aside: anyone know of a more official location for multimedia
>   stuff?)
> - Get out an MPEGPlayerMorph (World > objects > Multimedia >
>   MPEGPlayer)
> - press the load button and find your favorite mpeg file. I
>   threw up the one we ship with cobalt in case you don't have
>   one on hand (3.1 MB):
>   http://cobalt.cs.duke.edu/pub/alien.mpeg

FYI, access is denied to this file:

 Forbidden

 You don't have permission to access /pub/alien.mpeg on this server.
 Apache/2.2.14 (Ubuntu) Server at cobalt.cs.duke.edu Port 80

> - official VM will get a primitive failure at this point
> - Cog will show the first frame of the video and you can watch
>   it by pressing play
>
> --
> Matthew Fulmer (a.k.a. Tapple)

Reply | Threaded
Open this post in threaded view
|

Re: Official VM missing MPEGPlugin

David T. Lewis
 
On Sat, Jan 15, 2011 at 10:11:25AM -0800, Eliot Miranda wrote:

>  
> On Sat, Jan 15, 2011 at 9:14 AM, David T. Lewis <[hidden email]> wrote:
>
> >
> > On Fri, Jan 14, 2011 at 11:59:47AM -0500, Matthew Fulmer wrote:
> > >
> > > Cog VM includes the MPEGPlugin, but the interpreter VM from
> > > http://ftp.squeak.org/4.1/
> > > does not. It's needed by Cobalt.
> >
> > Well I'm stumped. The plugin exists and is installed in the normal
> > place. But it is not being loaded when called from #primFileValidMPEG:.
> > There are no errors (e.g. unresolved symbols etc) and no problems
> > compiling, we are just not finding the plugin at runtime.
> >
> > I'm sure I'm missing something obvious, but I can't spot it.
> >
>
> I suspect it's not obvious and I'd be willing to bet there /is/ an undefined
> symbol in the plugin.  It won't show on the compiler command line unless you
> compile carefully, since the compiler does allow undefined symbols, a
> side-efeft of the default global namespace.  If the program into which a
> shared library is loaded has already loaded some other shared library that
> defines undefined in that first shared library the first shared library will
> get its definition from the other.  So remake the plugin, capturing the link
> step, and then manually repeat the link step supplying
> "-Wl,--warn-unresolved-symbols -Wl,--no-allow-shlib-undefined" and hopefully
> you'll be informed of the undefined symbols.

Thanks Eliot,

It's definitely a missing symbol issue, which is what might be expected
if the entire Mpeg3Plugin.c file was being omitted from the build ;)

This is a CMake configuration problem, so I'll see if I can fumble my
way through to a find a fix.

Thanks,
Dave

Reply | Threaded
Open this post in threaded view
|

Re: Official VM missing MPEGPlugin

Tapple Gao
In reply to this post by David T. Lewis
 
On Sat, Jan 15, 2011 at 12:14:56PM -0500, David T. Lewis wrote:
> >   http://cobalt.cs.duke.edu/pub/alien.mpeg
>
> FYI, access is denied to this file:
>
>   Forbidden
>  
>   You don't have permission to access /pub/alien.mpeg on this server.
>   Apache/2.2.14 (Ubuntu) Server at cobalt.cs.duke.edu Port 80

fixed

--
Matthew Fulmer (a.k.a. Tapple)
Reply | Threaded
Open this post in threaded view
|

Re: Official VM missing MPEGPlugin

David T. Lewis
 
On Mon, Jan 17, 2011 at 01:40:15PM -0500, Matthew Fulmer wrote:

>  
> On Sat, Jan 15, 2011 at 12:14:56PM -0500, David T. Lewis wrote:
> > >   http://cobalt.cs.duke.edu/pub/alien.mpeg
> >
> > FYI, access is denied to this file:
> >
> >   Forbidden
> >  
> >   You don't have permission to access /pub/alien.mpeg on this server.
> >   Apache/2.2.14 (Ubuntu) Server at cobalt.cs.duke.edu Port 80
>
> fixed
>
> --
> Matthew Fulmer (a.k.a. Tapple)

Thanks.

To follow up on the original question: I looked into the issue on
the unix VM, and it turns out there are problems in the CMake
configuration script, which is excluding the actual Mpeg3Plugin.c
file from the build (hence the plugin "loads" but no actual
primitives are present), and which also enables pthreads in the
plugin (which leads to crashes for reasons that as far as I know
have never been diagnosed).

I sent a patch for the configuration to Ian, but it's enough
of a hack that I won't embarrass myself further by posting it
here. Turns out Ian is in Kyoto at the moment, so he'll probably
have a look at it in a week or so.

Meanwhile, a question for Bert concerning the MPEG plugin:

Ian mentioned that "the MPEG plugin was removed from the standard
Linux distribution because of licensing issues.  OLPC/RedHat would
not take the VM with it included."

So - is it OK to include the MPEG plugin as an external plugin in
the standard binary VM distributions?

Thanks,
Dave

Reply | Threaded
Open this post in threaded view
|

Re: Official VM missing MPEGPlugin

Bert Freudenberg


On 17.01.2011, at 21:10, David T. Lewis wrote:

>
> On Mon, Jan 17, 2011 at 01:40:15PM -0500, Matthew Fulmer wrote:
>>
>> On Sat, Jan 15, 2011 at 12:14:56PM -0500, David T. Lewis wrote:
>>>>  http://cobalt.cs.duke.edu/pub/alien.mpeg
>>>
>>> FYI, access is denied to this file:
>>>
>>>  Forbidden
>>>
>>>  You don't have permission to access /pub/alien.mpeg on this server.
>>>  Apache/2.2.14 (Ubuntu) Server at cobalt.cs.duke.edu Port 80
>>
>> fixed
>>
>> --
>> Matthew Fulmer (a.k.a. Tapple)
>
> Thanks.
>
> To follow up on the original question: I looked into the issue on
> the unix VM, and it turns out there are problems in the CMake
> configuration script, which is excluding the actual Mpeg3Plugin.c
> file from the build (hence the plugin "loads" but no actual
> primitives are present), and which also enables pthreads in the
> plugin (which leads to crashes for reasons that as far as I know
> have never been diagnosed).
>
> I sent a patch for the configuration to Ian, but it's enough
> of a hack that I won't embarrass myself further by posting it
> here. Turns out Ian is in Kyoto at the moment, so he'll probably
> have a look at it in a week or so.
>
> Meanwhile, a question for Bert concerning the MPEG plugin:
>
> Ian mentioned that "the MPEG plugin was removed from the standard
> Linux distribution because of licensing issues.  OLPC/RedHat would
> not take the VM with it included."
>
> So - is it OK to include the MPEG plugin as an external plugin in
> the standard binary VM distributions?

Squeak.org VMs have always included it and nobody ever complained about that. Until someone does I don't see a problem.

AFAIU hardware vendors like OLPC may have to pay royalties if they sell mp3-capable machines.

- Bert -


Reply | Threaded
Open this post in threaded view
|

Re: Official VM missing MPEGPlugin

johnmci
In reply to this post by David T. Lewis

Well the mpeg code is licensed GPL and re-licensed for us as LGPL and Squeak-L

However the issue likely is that no-one wants to see if the  Mpeg LA guys http://www.mpegla.com/main/programs/M2S/Pages/Intro.aspx view the code base as an infringement on their patents.  The answer to this likely would be yes, as they can pay the lawyers to hash out the actual yes/no.

Personally the linux guys should work with the gstreamer plugin, and over on the windows/macintosh side play with the quicktime logic .

Although you can in theory install gstreamer on windows, the installation on os-x in non-trival and I doubt anyone who doesn't work with MacPorts is willing to install
the massive amount of software needed to support it when the Quicktime logic just works...

Therefore I'd suggest end-of-life for the mpeg plugin and work the alternate choices.


On 2011-01-17, at 12:10 PM, David T. Lewis wrote:

>
> On Mon, Jan 17, 2011 at 01:40:15PM -0500, Matthew Fulmer wrote:
>>
>> On Sat, Jan 15, 2011 at 12:14:56PM -0500, David T. Lewis wrote:
>>>>  http://cobalt.cs.duke.edu/pub/alien.mpeg
>>>
>>> FYI, access is denied to this file:
>>>
>>>  Forbidden
>>>
>>>  You don't have permission to access /pub/alien.mpeg on this server.
>>>  Apache/2.2.14 (Ubuntu) Server at cobalt.cs.duke.edu Port 80
>>
>> fixed
>>
>> --
>> Matthew Fulmer (a.k.a. Tapple)
>
> Thanks.
>
> To follow up on the original question: I looked into the issue on
> the unix VM, and it turns out there are problems in the CMake
> configuration script, which is excluding the actual Mpeg3Plugin.c
> file from the build (hence the plugin "loads" but no actual
> primitives are present), and which also enables pthreads in the
> plugin (which leads to crashes for reasons that as far as I know
> have never been diagnosed).
>
> I sent a patch for the configuration to Ian, but it's enough
> of a hack that I won't embarrass myself further by posting it
> here. Turns out Ian is in Kyoto at the moment, so he'll probably
> have a look at it in a week or so.
>
> Meanwhile, a question for Bert concerning the MPEG plugin:
>
> Ian mentioned that "the MPEG plugin was removed from the standard
> Linux distribution because of licensing issues.  OLPC/RedHat would
> not take the VM with it included."
>
> So - is it OK to include the MPEG plugin as an external plugin in
> the standard binary VM distributions?
>
> Thanks,
> Dave
>

--
===========================================================================
John M. McIntosh <[hidden email]>   Twitter:  squeaker68882
Corporate Smalltalk Consulting Ltd.  http://www.smalltalkconsulting.com
===========================================================================




Reply | Threaded
Open this post in threaded view
|

Re: Official VM missing MPEGPlugin

David T. Lewis
 
On Mon, Jan 17, 2011 at 09:28:20PM +0100, Bert Freudenberg wrote:
>
> On 17.01.2011, at 21:10, David T. Lewis wrote:
> >
> > So - is it OK to include the MPEG plugin as an external plugin in
> > the standard binary VM distributions?
>
> Squeak.org VMs have always included it and nobody ever complained about that. Until someone does I don't see a problem.
>
> AFAIU hardware vendors like OLPC may have to pay royalties if they sell mp3-capable machines.

Fine, we'll assume it is OK until someone says otherwise.


On Mon, Jan 17, 2011 at 12:28:55PM -0800, John M McIntosh wrote:
>
> Well the mpeg code is licensed GPL and re-licensed for us as LGPL and Squeak-L
>
> However the issue likely is that no-one wants to see if the  Mpeg LA
> guys http://www.mpegla.com/main/programs/M2S/Pages/Intro.aspx view
> the code base as an infringement on their patents.  The answer to this
> likely would be yes, as they can pay the lawyers to hash out the actual yes/no.

Thanks John, I think this was the concern that Ian was thinking about.
I guess if any patent attorneys decide to open the discussion, we can
delete the old plugin and be done with it.


> Personally the linux guys should work with the gstreamer plugin, and over on the windows/macintosh side play with the quicktime logic .
>
> Although you can in theory install gstreamer on windows, the installation on os-x in non-trival and I doubt anyone who doesn't work with MacPorts is willing to install
> the massive amount of software needed to support it when the Quicktime logic just works...
>
> Therefore I'd suggest end-of-life for the mpeg plugin and work the alternate choices.

Good advice.

Thanks,
Dave