QTX compatibility fix + API tour

13 views
Skip to first unread message

Alexander Strange

unread,
Aug 30, 2009, 1:19:57 AM8/30/09
to perian discussion
If you're looking for Perian and QT Player 10:
http://forums.cocoaforge.com/viewtopic.php?f=25&t=20827

QT X has no API, so we can't make components for it, but there are
some other post-10.4 things we could do.

Note that QTX is still using a buggy H264 decoder (it fails on some
High Profile files) but it's much faster and might be frame-
multithreaded. A 64-bit ffmpeg-mt would be faster again, though.

Audio:
- Audio components can be 64-bit, and H264 + 64-bit audio components
should be able to play through the QTX path.
This would need a third ffmpeg build, but we could disable video
codecs for it.
- ACPublic was updated in 10.6 and moved to /Developer/Extras/
CoreAudio/AudioCodecs/ACPublic. No idea what changed.
- We could provide an AudioFile component with the ffmpeg importers,
but I'm not sure anything actually uses that.

FFusion:
- QTX is color-corrected even for QT7 components. We aren't tagging
colorspaces - this involves adding colr/nclc/gama(?) atoms in the
importer (and maybe in ffusion too), and then maybe implementing
ImageCodecGetSourceDataGammaLevel and ImageCodecRequestGammaLevel too.
Color-correct playback is actually pretty bad for consumers; it makes
blocking artifacts really obvious, especially in dark areas, even when
they weren't visible before.

Subtitles:
- I use some old sample code to find an sRGB ColorSync profile (...not
that I have a real reason to, it does seem to look good though) which
seems to have some memory leaks by design. 10.5 added an easier way to
get it.
- ATSUI is deprecated; technically we should switch to CoreText, but I
don't see a reason yet. It's sparsely documented and missing some
features (the most obvious being synthesized fonts).

And we might as well switch to the 10.5 SDK so we can use gcc 4.2.
AFAIK it should just weak-link 10.5+ symbols so it should still work
fine on 10.4.

Alexander Strange

unread,
Aug 30, 2009, 2:41:48 AM8/30/09
to perian discussion


On Aug 30, 1:19 am, Alexander Strange <astra...@gmail.com> wrote:
> If you're looking for Perian and QT Player 10:http://forums.cocoaforge.com/viewtopic.php?f=25&t=20827
>
> QT X has no API, so we can't make components for it, but there are
> some other post-10.4 things we could do.

I forgot:
- QTX supports HE-AAC (AAC+SBR, don't know about PS); some Japanese TV
streams have 48khz AAC + 96khz SBR, which makes it play silence or
loud garbage. Fixed in SVN by importing them as LC-AAC.
- QTX supports MPEG-TS(!) but only H.264 and AAC (and I'm not even
sure about AAC). Don't know if a 64-bit AC3 codec would extend this.
- QTX Player doesn't support track enabling/disabling, but does still
have the Languages/Subtitles menu. It's worth figuring out how to get
stuff in there, though it might not be possible.
- 10.6's font import is stricter again and some of my subtitle fonts
are being rejected. There's also a bug where font substitution isn't
working for this, so the subtitles are missing too. Nobody but me will
notice this one, it's pretty rare.
Reply all
Reply to author
Forward
0 new messages