I'm eager to try the Movie-JPEG format, but I can't get any MPEGs converted to Movie-JPEG. The problem isn't the JPEG plugin -- I can't open any MPEGs! I know that I used to be able to, but in a completely-updated 3.2 image, running the 3.1.1 Mac VM (not OS X), every MPEG or MP3 file I try comes back as being invalid MPEG. These are files that I can successfully play in QT Movie Player and in iTunes.
I've been wondering if I even have the MPEG plugin -- maybe the primitive is bombing because the module can't be found. I've tried downloading the MPEG plugin from www.squeak.org in the 3.0/mac/extra_files directory, but with the same result.
Some questions: - Is there a more recent MPEG plugin somewhere? - Is the MPEG plugin built in to the Mac VM? How can I find out? I know that there's a way of getting an array of all the available plugins, but I can't find it anywhere in the image. - Are there specific MPEG versions that work or don't work? - Can anyone point me to valid MPEG files that Squeak can read that I can try this?
Thanks! Mark -------------------------- Mark Guzdial : Georgia Tech : College of Computing : Atlanta, GA 30332-0280 Associate Professor - Learning Sciences & Technologies. Collaborative Software Lab - http://coweb.cc.gatech.edu/csl/ (404) 894-5618 : Fax (404) 894-0673 : guzdial@cc.gatech.edu http://www.cc.gatech.edu/gvu/people/Faculty/Mark.Guzdial.html
I'm eager to try the Movie-JPEG format, but I can't get any MPEGs converted to Movie-JPEG. The problem isn't the JPEG plugin -- I can't open any MPEGs! I know that I used to be able to, but in a completely-updated 3.2 image, running the 3.1.1 Mac VM (not OS X), every MPEG or MP3 file I try comes back as being invalid MPEG. These are files that I can successfully play in QT Movie Player and in iTunes.
I've been wondering if I even have the MPEG plugin -- maybe the primitive is bombing because the module can't be found. I've tried downloading the MPEG plugin from www.squeak.org in the 3.0/mac/extra_files directory, but with the same result.
Some questions:
- Is there a more recent MPEG plugin somewhere?
- Is the MPEG plugin built in to the Mac VM? How can I find out? I
know that there's a way of getting an array of all the available plugins, but I can't find it anywhere in the image.
- Are there specific MPEG versions that work or don't work?
- Can anyone point me to valid MPEG files that Squeak can read that
I can try this?
Thanks! Mark
Mark Guzdial : Georgia Tech : College of Computing : Atlanta, GA 30332-0280 Associate Professor - Learning Sciences & Technologies. Collaborative Software Lab - http://coweb.cc.gatech.edu/csl/ (404) 894-5618 : Fax (404) 894-0673 : guzdial@cc.gatech.edu http://www.cc.gatech.edu/gvu/people/Faculty/Mark.Guzdial.html
Mpeg3PluginV1.1.sit is the latest mac version. I do also have a carbon version.
The MPEG plugin isn't built into the VM, it's a plugin, but you could build it in if you want using VMMaker.
V1.1 of the plugin contains some optimizations that make some major improvements in performance, otherwise the code base to 1.0 is the same.
I think the problem you are having is due to a careless coding issue I introduced when porting. It seems the compare for valid mpeg files is case sensitive!
/* Test file extension. */ if(strncasecmp(ext, ".mp2", 4) && strncasecmp(ext, ".mp3", 4) && strncasecmp(ext, ".m1v", 4) && strncasecmp(ext, ".m2v", 4) && strncasecmp(ext, ".m2s", 4) && strncasecmp(ext, ".mpg", 4) && strncasecmp(ext, ".vob", 4) && strncasecmp(ext, ".mpeg", 4) /* JMM && strncasecmp(ext, ".ac3", 4) */) result = 0; }
The strncasecmp that was coded up actually is case sensitive. Therefore a file foo.MP3 wouldn't be considered as valid, but foo.mp3 would. I'm considering dropping this check in the C code. It should be made in Smalltalk and besides the C code also does magic number checks to see if the file appears to be a mp3 file so it's really redundant to also check the extension.
Mark Guzdial wrote:
I'm eager to try the Movie-JPEG format, but I can't get any MPEGs converted to Movie-JPEG. The problem isn't the JPEG plugin -- I can't open any MPEGs! I know that I used to be able to, but in a completely-updated 3.2 image, running the 3.1.1 Mac VM (not OS X), every MPEG or MP3 file I try comes back as being invalid MPEG. These are files that I can successfully play in QT Movie Player and in iTunes.
Can't help with Mac problems, but it's not uncommon to find mpegs which will run OK on commercial software and not on Squeak/Gnu stuff.
I've been wondering if I even have the MPEG plugin -- maybe the primitive is bombing because the module can't be found. I've tried downloading the MPEG plugin from www.squeak.org in the 3.0/mac/extra_files directory, but with the same result.
Some questions:
- Is there a more recent MPEG plugin somewhere?
- Is the MPEG plugin built in to the Mac VM? How can I find out? I
know that there's a way of getting an array of all the available plugins, but I can't find it anywhere in the image.
Try loading the plugin (by opening an mpeg -- I'd use the blue player, rather than the orange one, which has always been a bit buggy for me) and doing a "print it" on Smalltalk listLoadedModules. The plugin should show up. Note that (I've never understood the "why" to this) the Mpeg plugin is loaded dynamically, on need. This doesn't necessarily help diagnosis!
- Are there specific MPEG versions that work or don't work?
- Can anyone point me to valid MPEG files that Squeak can read that I
can try this?
Try http://coweb.cc.gatech.edu:8888/cs2340/uploads/AlienSong.mpg ;-)
which seems to work on just about anything. Otherwise, there are a pile of mpegs in one of the directories under
ftp://mm-ftp.cs.berkeley.edu/pub/multimedia/mpeg/
*most* of which should work (my guess is that they use pretty early codecs).
HTH
Cheers
John
Try loading the plugin (by opening an mpeg -- I'd use the blue player, rather than the orange one, which has always been a bit buggy for me) and doing a "print it" on Smalltalk listLoadedModules. The plugin should show up. Note that (I've never understood the "why" to this) the Mpeg plugin is loaded dynamically, on need. This doesn't necessarily help diagnosis!
Thanks, John -- that helps alot. I now know for certain that the MPEG plugin is *NOT* loading, even after opening the 'blue' player and trying to open a file. Anyone know how to force it to load?
Thanks! Mark
-------------------------- Mark Guzdial : Georgia Tech : College of Computing : Atlanta, GA 30332-0280 Associate Professor - Learning Sciences & Technologies. Collaborative Software Lab - http://coweb.cc.gatech.edu/csl/ (404) 894-5618 : Fax (404) 894-0673 : guzdial@cc.gatech.edu http://www.cc.gatech.edu/gvu/people/Faculty/Mark.Guzdial.html
Mark,
I've already sent you the MPEG plugin that I use. Here is a small MPEG movie (pretty funny, by the way) you can use for testing. Try this:
MPEGFile primFileValidMPEG: 'chimp.mpg'
If this returns true, then the module has loaded successfully. Remember, the MPEG plugin must be in the same folder as whatever VM you are running.
To be certain that you are running a particular VM (if you have a lot of VM's on your disk, as I do), you can create an alias for the VM and start Squeak by dropping the image file onto that alias.
If the module is loaded, then:
Smalltalk listLoadedModules
should return a list than includes:
'Mpeg3Plugin 9 November 2000 (e)'
It's remotely possible that the module is not loading due to insufficient C heap space. To reserve extra heap space, you can execute:
Smalltalk extraVMMemory: 100000
then *save that image* and restart it. You have to restart because the C memory reservation is done at image startup time, before the memory has been given to Squeak.
And, in case you missed John Mac's message, note that the plugin is sensitive to the case of the file name extension. It will reject a valid MPEG file named "foo.MPG" but accept one named "foo.mpg".
If none of this works, please let us know what version of the Squeak VM and of Mac OS you are using. But I'm hoping that the plugin was simply not in the VM folder.
One more thing to try--can you load other external plugins, such as the JPEG plugin?
-- John
squeak-dev@lists.squeakfoundation.org