[squeak-dev] Quicktime
Bert Freudenberg
bert at freudenbergs.de
Thu Aug 26 09:47:14 UTC 2010
So if there is a QuickTimePlugin, what do you need FFI for?
- Bert -
On 26.08.2010, at 05:52, John M McIntosh wrote:
> If someone wants to drag that Sophie source code into the squeak or Pharo mainstream I'll help from the side lines. we did re-write the code *MANY* times so it's I think fairly easy to port.
>
> The concept is there is an abstraction that plays audio & video, which concrete classes are used is dependent on the media & what's on the platform, so when a URI is supplied,
> I note everything in Sophie referring to a media object was a URI (memory pointer, file pointer, internet pointer), then it's passed to either quicktime which likes many flavours of URI or
> resolved to a file path for URI friendly codecs.
>
> Some of this was tied to tweak, but the concept was a heartbeat timer either polled every N seconds and then invalidate the form area, which later caused tweak to redraw the form, or tied to
> the quicktime plugin which had the responsibility to fire a semaphore when a movie frame changed so that we didn't have to run a polling cycle.
>
> Some people might be offended by having to use quicktime, but we realized at the time that quicktime actually *is* everywhere because people for some reason install iTunes on all their computers
> so they can listen to music or watch video.... As for the linux folks (*cough*) well there are frameworks that pretend to offer up the quicktime api, so just compile those up as a solution or provide some api to some other codec solution.
>
> So take a look at the class hierarchy at SophieMovie
>
>
> So some porting thoughts
> resource is of course the sophie resource that wraps the media object, it contains meta-data.
> So for example
> bounds
> self resource ifNil:[^self rectangle].
> ^(self naturalRectangle scaleBy: (self resource applyTransformationsAgainst: 1 at 1)) rounded
>
> The applyTransformationsAgainst: runs a sequence of steps to turn the 1 at 1 into a float between 0-1 that is applied against the natural scale of a movie.
> This allowed the Sophie book creator to manipulate the size & orientation of the media resource as a set of steps.
> No doubt you can just return the size of the movie to simplify things where it's used to set the rectangle size for the frame via openMovieFromURI:
>
> openMovieFromURI: foo
> self setupOffscreen.
> self rectangle: self bounds.
> self time:0. "This should likely go into a separate API, but it is needed to ensure clips start at the proper time 0, not the natural media's time 0"
>
>
>
> On 2010-08-25, at 7:27 PM, Chris Cunnington wrote:
>
>> I found the Sophie dev image ( http://dev.opensophie.org/HomePage ) and the gang's all there: MPEG; Ogg; Vorbis; Quicktime; etc.
>>
>> Sophie is built on a Squeak3.8.2a image and it has functionality that people want to have in 4.1. I can watch three versions of Macbeth in Sophie. I want to do that in 4.1. I imagine the Documentation team would like that too. They could have links in the HelpSystem open movies from all over the Internet and have them play in the image.
>>
>> The files are available at http://source.opensophie.org/Sophie/. This file looks promising: Sophie-Quicktime-JMM.28.mcz. When I drag it onto the World I get an error that I think is telling me I need FFI installed.
>>
>> John, on a scale of 1 to 10 how hard would it be for people not you to play around with your code and install a video player in 4.1?
>>
>> Chris
>>
>>
>>
>
> --
> ===========================================================================
> John M. McIntosh <johnmci at smalltalkconsulting.com> Twitter: squeaker68882
> Corporate Smalltalk Consulting Ltd. http://www.smalltalkconsulting.com
> ===========================================================================
>
>
>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.squeakfoundation.org/pipermail/squeak-dev/attachments/20100826/f947cbec/attachment.htm
More information about the Squeak-dev
mailing list
|