I was testing some MPEG4-AVC playback code the other day and ran into a Flash Player runtime exception I hadn’t ever seen before:

Hmph. An onXMPData callback–that piqued my interest. I’ve long been a fan of metadata and XMP in particular (it takes a special type of nerd to have the meta love), so when I saw this error the wheels began to turn immediately. I had been testing a lot of video files lately, but this particular piece of content was created with After Effects CS4. This made me think that the long and slow roll out of XMP into the Adobe suite was finally here and I wanted to know what exactly they were doing.
I’ve done quite a bit of research on MPEG4-AVC / h.264 over the last year, but one thing that always seemed to bug me was that I couldn’t seem to find a freely available version of the spec anywhere. I’d hoped to find something on the ISO site, and I did, but it they’re charging for the pdf. Now in my book paying cash to read a spec stinks, seems contrary to the purpose of a standard and, well, just isn’t something I’m going to do, so I just slid by soaking up crumbs where I could find them.
To be fair there’s little chance I’ll actually understand the spec, so crumbs are probably appropriate. Reading level aside, I thought I was SOL until stumbling onto a link to the spec at the ITU-T site. For those who aren’t aware the MPEG4-AVC (ISO) / h.264 (ITU-T) spec was jointly developed by the ITU-T and ISO/IEC Moving Picture Experts Group. The result is the exact same spec with different names (MPEG4 Part 10 / AVC vs. h.264) and, it turns out, completely different policies on whether to charge for the spec.
Now that we’ve cleared that up, I can get back to blankly staring at the spec until sleep or ADD overwhelms me.
Like most video nerds I’ve been working with MPEG-4 AVC (h.264) in Flash Player, but the release of Flash Player 10 has introduced some challenges. For example, there’s a Flash Player bug which causes Internet Explorer 6 / 7 to crash when seeking between the first two indexed keyframes in an MPEG-4 AVC encoded file (see the submitted bug on Jira). That’s a pretty nasty bug and something which wasn’t happening in Flash Player 9.0.115, but like all things there’s a silver lining. I started looking at how I might be able to write my NetStream seeking algorithm so that it eliminated, or at least mitigated the crashing.
Maybe its just my contrarian nature resisting stack overflow, but I think I’m going to kick it old school for the time being and stick to posting my stupid programming questions and pathetic hacks on my own personal blog. After all I’ve got like 3 readers and I don’t work in some swank NYC development shop so I’m pretty sure these people aren’t reading because of some cult of personality (read: do you really need my readership too Spolsky–come on).
Warning Nerd Post–disregard if you’re not an AIRhead. I’ve been working on a little AIR app and had a helluva time trying to get a NativeMenuItem keyboard shortcut set up for “Save As” functionality. The thing is I wasn’t trying to do anything difficult. I was setting the keyboardEquivalent to lower case “s” and then explicitly setting the keyEquivalentModifiers to COMMAND + SHIFT on OS X or CONTROL + SHIFT on Windows. Things were peachy on OS X, but not so great on Windows (XP is all I tested). On Windows the caps lock must be on (despite the lowercase key equivalent). So after dropping the f-bomb a handful of times, debating whether to gouge my own eyeballs out and tweeting my rage I seriously dug into the documentation looking for an answer.