« Chirb, April 2007 | Main | PSIG 103 | PackageMaker »

PSIG 102 | QTKit: 1990s Multimedia Wrapped in 1980s Objects

Monday, April 9, 2007

(What is PSIG? | PSIG 102 announcement)

PSIG last week! I stayed for the whole thing this time, which means I was there till hotel security kicked us all out around 2 AM :). I've decided life is way too short to worry about leaving PSIG at a sane hour. It's just that good of a group.

Books, demos, notable tidbits
Iden.tify.us
Tom gave a great presentation on his Crazy New Web 2.0 Startup Site, iden.tify.us. It's a community site where users can upload music files or add video links and get their songs identified by other users. By Web 2.0, we're talking features like an embedded player for your site, tag clouds, RSS feeds with podcast enclosures, and "no business model. (YET!)" Looks promising :).

QTKit: 1990s Multimedia Wrapped in 1980s Objects

Wolf gave an very informative talk on QTKit, the Cocoa framework for QuickTime. He walked us through QuickTime's history and explained the .MOV file format. Basically, QuickTime files are organized in hierarchically nesting data units called atoms. There are classic atoms as well as the more powerful QuickTime atoms, which can tell you whether or not they contain other atoms. This container format has been made a digital media standard, and is the basis for formats like MPEG-4. You can use Apple's Dumpster tool to examine and edit atoms.

You can also examine the different tracks on unmuxed video files using QuickTime Pro. Besides the audio and image tracks, we find that Cocoacast episodes include a disabled text track which contains all the chapter titles, and another text track which holds the hyperlinks.

Apple's first attempt to provide a QuickTime interface was in the easy to use but very basic NSMovie and NSMovieView, members of the AppKit framework. These were deprecated in OS X 10.3 with the arrival of QTKit, which replaced them with QTMovie and QTMovieView. QTKit also comes with support for user media editing -- the same stuff that makes up QuickTime Pro 7. QTKit provides read-access to slight majority of the data model, but much has not been Cocoa-fied yet.

In addition to QTMovie (subclass of NSObject) and QTMovieView (subclass of NSView), QTKit provides 3 other NSObject subclasses: QTTrack, QTMedia, and QTDataReference. There are also two data structures: QTTime and QTTimeRange.

A warning: Apple's website contains a lot of old QuickTime information that doesn't apply anymore, and unfortunately, a lot of the new stuff isn't documented anywhere. The nice thing about the "language barrier" between old C and Obj-C is that you can tell it's the new stuff if it's in Obj-C. (I've also noticed that the old pages are styled differently, with Apple's old serif font for the title and smaller body text which shows up non-anti-aliased on my box. Of course, when you have screenshots like what you find on this page, that's a good clue as well ^^.)

See Apple's QTKitPlayer sample code for a demonstration of QTKit's capabilities. It comes with basic control graphics, but you can totally poach the big shiny QuickTime buttons from your Mac using Spotlight. An important point is that QTKit does not show up by default in Interface Builder. It's an optional palette which you have to enable in IB preferences. All of the optional palettes are located at /Developer/Extra/Palettes/.

Hopefully, says Wolf, the QTKit API will be fleshed out soon. The FAQ for QTKit seems to suggest that some of this will happen in OS X 10.5.

11:56 AM

Comments

Thanx for the mention, and it was great to see you again!

As for the exploit, we'll have to wait for the MOAB assholes to resurface to determine if it poses any "real" threat. If you wanna have some fun, try baiting the rixstep guy(s) with that info :)

Cheers, see you next month.

Posted by Blake C. at April 11, 2007 1:28 AM

(cont. from Chirb, April 2007)
"Yeah? What about her?" I asked, finally looking him full on again. He writhed a little under the radiation of my pinched thin, Norman-Rockwell smile. I felt him summon some courage under his breath, or maybe he was formulating his response and... ah, there. I could tell from the way he would look away, and then slightly into the sky, that just thinking about her--"this girl"--deactivated all advanced cerebral function.

Truth is, I'd been working on him for some time now; it's like... that's my job as his big sister, right? I mean, sometimes I pity any poor paramour--ahaha--who, male, lacks an older sibling, female. Seriously, how's he going to figure it out, trial and error? It's like the time I was sitting in the cafeteria (doing math homework; not, of course, gorging myself on snack foods and killing time doodling). The table just across the way hosted a couple, but the main event was the... guy. A guy and a girl, but it was the guy who... oh man. Let's just say that I got an urge to hurry home and read some serious Jane Austen in a belated effort to nurse my IQ back to health; that kid had some profundity issues. It reminded me of that one ancient philosopher dude, whatsisname, Vladismar, who was famous for this one theory about babies and their interlinkings to adults:

"You-and-me-morphic parrots, really, when yous comes down to it, wazza? Like, yas think they're learning from yous, like, really gaining intelligences and all those greatnesses, but that's only if yous not really paying attention, wazza? A closer look shows you how really incapablers theys is, socially... truth udda fact is, theys not so great at learning as theys is mimicking, which yous can see when yas really pays attention and sees that the specialty of em all is the musicality of it, wazza? A babbie--like your average no-brainer wossname--can mimick tones of voice much better than the words themselves, and therein lies the rub."
Opening remarks from the Uncharacteristically Colloquial Treatise on Infant Sociology by Zephyr Vladismar

Which brings us full circle, of course. I looked at my brother as his sharp intake of breath cued that he was finally going to say something. He wiped his hands on himself and turned to face me.

"I don't know. She's really pretty... cool."

Inside, I slapped one hand on my face. My word, had he learned nothing?

Incidentally, isn't it kind of funny when you pronounce "OMG" like "homage"? Like, "I'm paying OMG to such and such old president." Serve me to the lobsters, that's funny stuff.

Posted by Crack me up and... at April 17, 2007 2:10 PM

hey there!

I don't really know what you were talking about in this post, but i just wanted to let you know that I really really really miss you! i hope to see you soon! love...

Posted by PJ at May 17, 2007 2:31 AM

So I'd be sitting there and then I'd suddenly say to my self, "Hit the DECK, Wang!" And I'd get down there in pushup position and knock out something audacious, like ten.

Posted by Weien at May 31, 2007 8:00 AM

Hey Victoria, I have been meaning to say thanks for including me in this write up and sending some traffic my way.

P.S. where are those show notes from PSIG, i already forgot what happened last time.

Posted by Thomas Swift at May 31, 2007 11:51 PM

Victoria! Oh my god, I so wanted to comment on your realistic piece because, good lord, the SHADOWS. THE REALISM. It's beautiful and alas, I wasn't allowed to splurge there. But thus, the flailage here. :D

Hey hon! Long time no communicate? Was wondering if you ever got my letter... I did try to send it out ASAP after coming back from WashU. Anyway, just checking up on you and I must say, seeing all your doodles gives me a very warm and fuzzy feeling. Probably a combo of the fact that you're a great artist and there's just so much you've been doing.

Hope to talk to you soon, yeah?

Posted by Cyn at June 16, 2007 4:30 PM