[Sugar-devel] Etoys mp3 files
Ajay Garg
ajay at activitycentral.com
Wed May 30 06:49:44 EDT 2012
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
>
> 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/0feabd21/attachment-0001.html>
More information about the Sugar-devel
mailing list