[Sugar-devel] Etoys mp3 files

Ajay Garg ajay at activitycentral.com
Wed May 30 07:55:50 EDT 2012


Same result.

Following are the locations of candidate files :::

################################################################################

[ajay at localhost ~]$ ls -l /usr/lib/squeak/
total 1984
drwxr-xr-x. 2 root root   4096 May 30 17:20 3.10-5
-rwxr-xr-x. 1 root root 674862 May 30 17:20 libMpeg3Plugin.so
-rwxr-xr-x. 1 root root 674862 May 30 17:23 Mpeg3Plugin
-rwxr-xr-x. 1 root root 674862 May 30 17:20 Mpeg3Plugin.so



[ajay at localhost ~]$ ls -l /usr/lib/squeak/3.10-5/
total 3268
-rwxr-xr-x. 1 root root   5672 Jun 22  2010 AioPlugin
-rwxr-xr-x. 1 root root  52660 Jun 22  2010 B3DAcceleratorPlugin
-rwxr-xr-x. 1 root root   5672 Jun 22  2010 ClipboardExtendedPlugin
-rwxr-xr-x. 1 root root  22436 Jun 22  2010 DBusPlugin
-rwxr-xr-x. 1 root root   4288 Jun 22  2010 FileCopyPlugin
-rwxr-xr-x. 1 root root  51128 Jun 22  2010 GStreamerPlugin
-rwxr-xr-x. 1 root root   6964 Jun 22  2010 HostWindowPlugin
-rwxr-xr-x. 1 root root   8240 Jun 22  2010 ImmX11Plugin
-rwxr-xr-x. 1 root root  26088 Jun 22  2010 KedamaPlugin
-rwxr-xr-x. 1 root root  43588 Jun 22  2010 KedamaPlugin2
-rwxr-xr-x. 1 root root 674862 May 30 17:20 libMpeg3Plugin.so
-rwxr-xr-x. 1 root root  10896 Jun 22  2010 MIDIPlugin
-rwxr-xr-x. 1 root root 674862 May 30 17:24 Mpeg3Plugin
-rwxr-xr-x. 1 root root 674862 May 30 17:20 Mpeg3Plugin.so
-rwxr-xr-x. 1 root root  17304 Jun 22  2010 npsqueak.so
-rwxr-xr-x. 1 root root  22416 Jun 22  2010 OggPlugin
-rwxr-xr-x. 1 root root   7980 Jun 22  2010 PseudoTTYPlugin
-rwxr-xr-x. 1 root root  48144 Jun 22  2010 RomePlugin
-rwxr-xr-x. 1 root root 610600 Jun 22  2010 squeak
-rwxr-xr-x. 1 root root  52956 Jun 22  2010 Squeak3D
-rwxr-xr-x. 1 root root  20972 Jun 22  2010 SqueakFFIPrims
lrwxrwxrwx. 1 root root     47 May 29 23:36 SqueakV39.sources ->
../../../..//usr/share/squeak/SqueakV39.sources
lrwxrwxrwx. 1 root root     46 May 29 23:36 SqueakV3.sources ->
../../../..//usr/share/squeak/SqueakV3.sources
-rwxr-xr-x. 1 root root  32104 Jun 22  2010 UnixOSProcessPlugin
-rwxr-xr-x. 1 root root   3692 Jun 22  2010 UUIDPlugin
-rwxr-xr-x. 1 root root  30812 Jun 22  2010 VideoForLinuxPlugin
-rwxr-xr-x. 1 root root  35048 Jun 22  2010 vm-display-fbdev
-rwxr-xr-x. 1 root root   5136 Jun 22  2010 vm-display-null
-rwxr-xr-x. 1 root root  93836 Jun 22  2010 vm-display-X11
-rwxr-xr-x. 1 root root  18340 Jun 22  2010 vm-sound-ALSA
-rwxr-xr-x. 1 root root   3876 Jun 22  2010 vm-sound-null
-rwxr-xr-x. 1 root root  19076 Jun 22  2010 vm-sound-OSS
-rwxr-xr-x. 1 root root   6072 Jun 22  2010 XDisplayControlPlugin

################################################################################


Regards,
Ajay

On Wed, May 30, 2012 at 4:27 PM, Bert Freudenberg <bert at freudenbergs.de>wrote:

>
> On 30.05.2012, at 12:49, Ajay Garg wrote:
>
>
>
> On Wed, May 30, 2012 at 4:09 PM, Bert Freudenberg <bert at freudenbergs.de>wrote:
>
>> Did you move the plugin to where the other plugins are, and possibly
>> renamed it to match the other plugins name scheme?
>>
>
> Yes, tried the following variants ::
>
> * /usr/local/lib/libMpeg3Plugin.so
> * /usr/local/lib/Mpeg3Plugin.so
> * /usr/lib/libMpeg3Plugin.so
> * /usr/lib/Mpeg3Plugin.so
>
>
> Put it in the squeak plugins folder /usr/lib/squeak/...
>
> - Bert -
>
>
>
>>
>> Also, are you sure that "DELTA.MPG" actually is an mp3 file?
>>
>
> No, this is a MPEG file.
> The same happens with a true mp3 file as well.
>
>
> Regards,
> Ajay
>
>>
>> - Bert -
>>
>> On 30.05.2012, at 10:53, Ajay Garg wrote:
>>
>> For brevity, here is the complete stacktrace (picked from shell command
>> line) ::
>>
>>
>>
>> ##################################################################################################
>> =========== SqueakDebug.log START ==========
>> Error: a primitive has failed
>> 30 May 2012 2:21 pm
>>
>> VM: unix - a SmalltalkImage
>> Image: etoys4.1 [latest update: #2390]
>>
>> SecurityManager state:
>> Restricted: false
>> FileAccess: true
>> SocketAccess: true
>> Working Dir /home/ajay/Etoys
>> Trusted Dir /home/ajay/.etoys/private
>> Untrusted Dir /home/ajay/Etoys
>>
>> MPEGFile class(Object)>>error:
>>     Receiver: MPEGFile
>>     Arguments and temporary variables:
>>         aString:     'a primitive has failed'
>>     Receiver's instance variables:
>>         superclass:     Object
>>         methodDict:     a MethodDictionary(#audioChannels:->a
>> CompiledMethod (1113) #audioG...etc...
>>         format:     138
>>         instanceVariables:     #('pathToFile' 'fileBits' 'fileIndex'
>> 'endianness')
>>         organization:     ('access' endianness fileHandle fileName
>> getPercentage getTOC:doS...etc...
>>         subclasses:     nil
>>         name:     #MPEGFile
>>         classPool:     a Dictionary(#Registry->nil )
>>         sharedPools:     nil
>>         environment:     a SystemDictionary(lots of globals)
>>         category:     nil
>>
>> MPEGFile class(Object)>>primitiveFailed
>>     Receiver: MPEGFile
>>     Arguments and temporary variables:
>>
>>     Receiver's instance variables:
>>         superclass:     Object
>>         methodDict:     a MethodDictionary(#audioChannels:->a
>> CompiledMethod (1113) #audioG...etc...
>>         format:     138
>>         instanceVariables:     #('pathToFile' 'fileBits' 'fileIndex'
>> 'endianness')
>>         organization:     ('access' endianness fileHandle fileName
>> getPercentage getTOC:doS...etc...
>>         subclasses:     nil
>>         name:     #MPEGFile
>>         classPool:     a Dictionary(#Registry->nil )
>>         sharedPools:     nil
>>         environment:     a SystemDictionary(lots of globals)
>>         category:     nil
>>
>> MPEGFile class>>primFileValidMPEG:
>>     Receiver: MPEGFile
>>     Arguments and temporary variables:
>>         aPath:     '/home/ajay/Desktop/DELTA.MPG'
>>     Receiver's instance variables:
>>         superclass:     Object
>>         methodDict:     a MethodDictionary(#audioChannels:->a
>> CompiledMethod (1113) #audioG...etc...
>>         format:     138
>>         instanceVariables:     #('pathToFile' 'fileBits' 'fileIndex'
>> 'endianness')
>>         organization:     ('access' endianness fileHandle fileName
>> getPercentage getTOC:doS...etc...
>>         subclasses:     nil
>>         name:     #MPEGFile
>>         classPool:     a Dictionary(#Registry->nil )
>>         sharedPools:     nil
>>         environment:     a SystemDictionary(lots of globals)
>>         category:     nil
>>
>> MPEGFile class>>isFileValidMPEG:
>>     Receiver: MPEGFile
>>     Arguments and temporary variables:
>>         path:     '/home/ajay/Desktop/DELTA.MPG'
>>     Receiver's instance variables:
>>         superclass:     Object
>>         methodDict:     a MethodDictionary(#audioChannels:->a
>> CompiledMethod (1113) #audioG...etc...
>>         format:     138
>>         instanceVariables:     #('pathToFile' 'fileBits' 'fileIndex'
>> 'endianness')
>>         organization:     ('access' endianness fileHandle fileName
>> getPercentage getTOC:doS...etc...
>>         subclasses:     nil
>>         name:     #MPEGFile
>>         classPool:     a Dictionary(#Registry->nil )
>>         sharedPools:     nil
>>         environment:     a SystemDictionary(lots of globals)
>>         category:     nil
>>
>>
>> --- The full stack ---
>> MPEGFile class(Object)>>error:
>> MPEGFile class(Object)>>primitiveFailed
>> MPEGFile class>>primFileValidMPEG:
>> MPEGFile class>>isFileValidMPEG:
>>  - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
>> MPEGDisplayMorph>>openFileNamed:
>> MPEGDisplayMorph>>openMPEGFile
>> SimpleButtonMorph>>doButtonAction
>> SimpleButtonMorph>>mouseUp:
>> SimpleButtonMorph(Morph)>>handleMouseUp:
>> MouseButtonEvent>>sentTo:
>> SimpleButtonMorph(Morph)>>handleEvent:
>> SimpleButtonMorph(Morph)>>handleFocusEvent:
>> [] in HandMorph>>sendFocusEvent:to:clear: {[ActiveHand := self.
>> ActiveEvent := anEvent.  result := focusHolder     han...]}
>> [] in PasteUpMorph>>becomeActiveDuring: {[aBlock value]}
>> BlockContext>>on:do:
>> PasteUpMorph>>becomeActiveDuring:
>> HandMorph>>sendFocusEvent:to:clear:
>> HandMorph>>sendEvent:focus:clear:
>> HandMorph>>sendMouseEvent:
>> HandMorph>>handleEvent:
>> HandMorph>>processEvents
>> [] in WorldState>>doOneCycleNowFor: {[:h |  ActiveHand := h.  h
>> processEvents.  capturingGesture := capturingGest...]}
>> Array(SequenceableCollection)>>do:
>> WorldState>>handsDo:
>> WorldState>>doOneCycleNowFor:
>> WorldState>>doOneCycleFor:
>> PasteUpMorph>>doOneCycle
>> [] in Project class>>spawnNewProcess {[[World doOneCycle.  Processor
>> yield.  false] whileFalse.  nil]}
>> [] in BlockContext>>newProcess {[self value.  Processor terminateActive]}
>>
>> ##################################################################################################
>>
>> On Wed, May 30, 2012 at 10:59 AM, Ajay Garg <ajay at activitycentral.com>wrote:
>>
>>> Thanks Bert for the reply.
>>>
>>> I downloaded the source from
>>> http://www.squeakvm.org/unix/release/Squeak-4.4.7.2357-src.tar.gz, did
>>> "make" and "sudo make install".
>>>
>>> It seemed to work, but there was no improvement while playing "Supplies"
>>> -> "Object Catalogue" -> "Multimedia" -> "MPEGPlayer" ->''DELTA.MPG".
>>>
>>> One thing I noted that all plugins file are of form "so.*", whereas I
>>> believe that in unix they should be of the form "*.so". For example, the
>>> generated Mpeg3Plugin file is "so.Mpeg3Plugin", and not "Mpeg3Plugin.so" -
>>> something which is expected for shared-object files in the unix world.
>>>
>>> Am I missing something?
>>>
>>>
>>> Thanks and Regards,
>>> Ajay
>>>
>>>
>>> On Wed, May 30, 2012 at 2:25 AM, Bert Freudenberg <bert at freudenbergs.de>wrote:
>>>
>>>> So problem a) is Sugar, problem b) squeak. I'll ignore a). For b):
>>>>
>>>> You do not need gstreamer, but rather Squeak's Mpeg3Plugin which has
>>>> its own decoder. This is not shipped in Fedora due to mp3 licensing
>>>> concerns. You need to copy it from an old UY bundle (there might be a x86
>>>> copy in some tracker ticket on d.l.o). If need be you can also compile it
>>>> from a Squeak VM source tar ball (likely needed for ARM).
>>>>
>>>> - Bert -
>>>>
>>>> On 29.05.2012, at 22:26, Ajay Garg <ajay at activitycentral.com> wrote:
>>>>
>>>> Well, there are two different issues ::
>>>>
>>>> a)
>>>> First is the data-store issue.
>>>>
>>>> As seen from the logs, the (mp3) file that was opened, was present in a
>>>> USB pen drive.
>>>> ANY ENTRY, when accessed via USB-pen-drive, will give this error (i.e.
>>>> mp3, jpeg, png - any file).
>>>>
>>>> CAUSE ::
>>>> =======
>>>>
>>>> The code in "carquinol" package, presumes the data-to-be-accessed
>>>> coming from the journal.
>>>>
>>>>
>>>>
>>>> SOLUTION ::
>>>> ==========
>>>>
>>>> As happens with all entries that are accessed from USB pen-drives,
>>>> these entries too need to be copied first to the journal, to maintain
>>>> compatability.
>>>>
>>>>
>>>>
>>>> SOLUTION-IMPLEMENTATION-REQUIREMENT ::
>>>> =====================================
>>>>
>>>> The "etoys-sugar-code" is needed, wherein a flag may be passed to
>>>> objectchooser, to copy the file to the journal if invoked from etoys; and
>>>> subsequently access the journal-entry thereafter.
>>>>
>>>> Bert, we will be grateful if you could provide the code-location for
>>>> this.
>>>>
>>>>
>>>>
>>>>
>>>>
>>>> b)
>>>> The second issue is the sound not playing.
>>>>
>>>> I ensured that the following packages were installed on my non-XO
>>>> laptop (Dell-F14-laptop) ::
>>>>
>>>> * gstreamer-plugins-bad
>>>> * gstreamer-plugins-ugly
>>>> * gstreamer-ffmpeg
>>>> * etoys
>>>> * squeak-vm
>>>> * squeak-vm-nonXOplugins
>>>>
>>>> Thereafter, I downloaded the following MPEG file ::
>>>>
>>>> http://samples.fileformat.info/format/mpeg/sample/567fd6a0e0da4a8e81bdeb870de3b19c/DELTA.MPG?AWSAccessKeyId=0V91BEFA7GM093MEVMG2&Signature=zvF6p5NE3Jz3oSKtyw2obyPosDQ%3D&Expires=1338322225
>>>>
>>>>
>>>> and tried playing via "Supplies" -> "Object Catalogue" -> "Multimedia"
>>>> -> "MPEGPlayer". However, I got the same "abandon" error, with the
>>>> second-last, and third-last stack-point error as follows ::
>>>>
>>>> #####################################################################
>>>> primitiveFailed
>>>>     "Announce that a primitive has failed and there is no appropriate
>>>>     Smalltalk code to run."
>>>>
>>>>     self error: 'a primitive has failed'
>>>>
>>>>
>>>> primFileValidMPEG: aPath
>>>>     "Check to see if the file is valid"
>>>>     <primitive: 'primitiveMPEG3CheckSig' module: 'Mpeg3Plugin'>
>>>>     self primitiveFailed
>>>> #####################################################################
>>>>
>>>>
>>>>
>>>> SOLUTION ::
>>>> =========
>>>>
>>>> I guess there is still some plugin missing on my Dell laptop.
>>>> But I have gone out of ideas to try.
>>>>
>>>> Bert, we will again be grateful :)
>>>>
>>>>
>>>>
>>>>
>>>> Thanks and Regards,
>>>> Ajay
>>>>
>>>>
>>>> On Sun, May 27, 2012 at 2:10 AM, Rafael Ortiz <
>>>> rafael at activitycentral.com> wrote:
>>>>
>>>>>
>>>>>
>>>>> On Sat, May 26, 2012 at 12:13 PM, Rafael Ortiz <
>>>>> rafael at activitycentral.com> wrote:
>>>>>
>>>>>>
>>>>>>
>>>>>> On Sat, May 26, 2012 at 7:47 AM, Peter Robinson <pbrobinson at gmail.com
>>>>>> > wrote:
>>>>>>
>>>>>>> On Sat, May 26, 2012 at 12:54 PM, Bert Freudenberg <
>>>>>>> bert at freudenbergs.de> wrote:
>>>>>>> >
>>>>>>> > On 25.05.2012, at 22:21, Rafael Ortiz wrote:
>>>>>>> >
>>>>>>> >
>>>>>>> >
>>>>>>> > On Thu, May 24, 2012 at 11:34 AM, Rafael Ortiz <
>>>>>>> rafael at activitycentral.com>
>>>>>>> > wrote:
>>>>>>> >>
>>>>>>> >> Hi
>>>>>>> >>
>>>>>>> >> While trying to add a journal entry (mp3 file) from etoys-113,
>>>>>>> i'm getting
>>>>>>> >> ."An error has occurred; you should probably just hit abandon.
>>>>>>> Sorry"
>>>>>>> >>
>>>>>>> >> Is this known?
>>>>>>> >>
>>>>>>> >> Log attached
>>>>>>> >>
>>>>>>> >
>>>>>>> > A clue on what this might be happening and how to solve it,
>>>>>>> appreciated.
>>>>>>> >
>>>>>>> > Thanks :)
>>>>>>> >
>>>>>>> >
>>>>>>> > Well, the relevant lines in the error log seem to be these:
>>>>>>> >
>>>>>>> > DBusError: Traceback (most recent call last):
>>>>>>> >   File "/usr/lib/python2.7/site-packages/dbus/service.py", line
>>>>>>> 702, in
>>>>>>> > _message_cb
>>>>>>> >     retval = candidate_method(self, *args, **keywords)
>>>>>>> >   File "/usr/lib/python2.7/site-packages/carquinyol/datastore.py",
>>>>>>> line 355,
>>>>>>> > in get_properties
>>>>>>> >     metadata = self._metadata_store.retrieve(uid)
>>>>>>> >   File
>>>>>>> "/usr/lib/python2.7/site-packages/carquinyol/metadatastore.py", line
>>>>>>> > 41, in retrieve
>>>>>>> >     return metadatareader.retrieve(metadata_path, properties)
>>>>>>> > IOError: Couldn't open metadata directory
>>>>>>> > /home/olpc/.sugar/default/datastore//m//media/Philips/Buenos
>>>>>>> Muchachos/Se
>>>>>>> > Pule La Colmena/2-06 Corazonoro.mp3/metadata
>>>>>>> >
>>>>>>> > So apparently Etoys tries to access the metadata for the MP3 but
>>>>>>> the
>>>>>>> > datastore fails to find it. Etoys does not handle that case, it
>>>>>>> relies on
>>>>>>> > get_properties() succeeding. Is that wrong?
>>>>>>>
>>>>>>> Being a mp3 do we even have the correct bits installed to be able to
>>>>>>> retrieve that information?
>>>>>>
>>>>>>
>>>>>>
>>>>>> In this case what would be the proper bits ?
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>> Our default builds don't come with the
>>>>>>> ability to play mp3 files so I'm not sure if we can even read the
>>>>>>> metadata.
>>>>>>>
>>>>>>>
>>>>> Also realized that the same problem is happening on
>>>>> ogg files, so doesn't seem related to codecs.
>>>>>
>>>>>
>>>>>
>>>>>>  Peter
>>>>>>> _______________________________________________
>>>>>>> Sugar-devel mailing list
>>>>>>> Sugar-devel at lists.sugarlabs.org
>>>>>>> http://lists.sugarlabs.org/listinfo/sugar-devel
>>>>>>>
>>>>>>
>>>>>>
>>>>>
>>>>> _______________________________________________
>>>>> Sugar-devel mailing list
>>>>> Sugar-devel at lists.sugarlabs.org
>>>>> http://lists.sugarlabs.org/listinfo/sugar-devel
>>>>>
>>>>>
>>>>
>>>
>>
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.sugarlabs.org/archive/sugar-devel/attachments/20120530/4c38a911/attachment-0001.html>


More information about the Sugar-devel mailing list