Joe Maller.com

New FCP/FXScript bug with 10.4 Tiger

I installed Tiger on April 29. My existing 10.3.9 installation was fully backed up to a bootable Firewire drive, so I wasn’t worried about losing anything or reverting. Despite having developer access to 10.4 for almost a year, I didn’t run it on anything but a beaten-down iBook, and really didn’t spend much time with that either. If I were only doing FXScript, I probably should have waited until FCP 5 shipped before moving up, but I need to know about 10.4 in I can answer questions and eventually upgrade the machines at IOP. Mostly though my curiosity had me installing Tiger right away.

The first thing I noticed when I opened FCP4.5 in 10.4 was the wrong color debugging text in the filter I’ve been working on for the past few weeks. What should have been white was yellow, with chunky pixelated edges. This caused a small amount of panic while thinking all my text-drawing routines would be broken. (they weren’t)

What I’ve found is that DrawString and DrawStringPlain break when applied to an FXScript image buffer which has been affected by several FXScript image processing functions, this one used LevelMap. It doesn’t make any difference whether the levelmap changes anything or is a clean linearRamp passthrough. The problem only happens in ‘naive’ color space, that pseudo-RGB space FXScript uses when YUVaware isn’t declared at the beginning.

Here’s what the text looks like in FCP4.5 running under 10.3.9 with QT6.x:
FCP4.5, QT6, 10.3.9 - correct

And here’s the same text in FCP4.5 running under 10.4 with QT 7:
FCP4.5, QT6, 10.3.9 - wrong

There’s one other wrinkle, enabling transparency with exposedbackground=1; causes several of DrawString’s outputs to disappear while DrawStringPlain’s results punch out to transparent.

It’s not just white that’s affected. Here’s a quick chart of what happens to the various color constants:

Color DrawString DrawStringPlain
kBlack invisible blue*
kWhite yellow w/ white edges white
kGray dark yellow w/ gray edges pale bluish violet
kred black w/ blue edges blue
kGreen invisible magenta*
kBlue invisible Cyan*
kCyan invisible white*
kMagenta green w/ cyan edges cyan
kYellow red w/ magenta edges magenta

* transparent
semi-transparent

I tried a bunch of other generative functions; FillPoly, DrawSoftDot and BlitRect, but none of those showed any adverse effect. Other processing functions did produce similar results. Several Convolve kernels caused problems, but it was hard to pin down when they’d break.

So the solution is to just set the effect to be YUVaware. The good side of all of this is that working in YUVaware generally gives effects a measurable speed increase. Still, this problem does cascade through subsequent effects, so it’s something to watch out for.

FXScript Text Icon Download the simple filter I used to isolate the problem: LevelMap & DrawString Color Bugs.fxscript (1k) Please let me know what you see if you try it out.

Disclaimer: This effect simply demonstrates a visual problem with FCP 4.5HD and MacOSX 10.4 Tiger. It can’t damage your computer. Still, this is offered as-is, with no warranty of any kind, implied or otherwise.

Share |
2 Comments so far
link: May 05, 2005 6:48 pm
posted in: Uncategorized
Tags:

  • simon

    Hey Man,

    A real head scratcher here, I’m running two FCP 4.5 suites togther with an X-Raid. One deck shared between them. DSR-1500AP. Until a month ago both Macs were on 10.3.9. then upgraded Edit 2 to Tiger with no problems FCP working fine. Yesterday Aug 4th upgraded Edit 1 to Tiger and have lost comm with the deck but not completly, get this. iMovie no probs, system profiler finds the deck, On start up of the app. FCP can not see the deck at all, click continue at this point, open capture window and I have control of the deck with no video, all that is captured is an FCP app.doc 4K in size(I guess this must be a ref.file to the clip that doesn’t exist) In the settings there is no option anywhere, that I can see, to find my deck. Even iMovie and the other suite has no trouble.

    Any ideas, no worries if not, I feel an FCP 5 upgrade coming.

  • Joe

    First, there’s this Apple article: Restoring a DV device connection in QuickTime 7 Which specifies a few files to delete before reinstalling QT7.

    Second, make sure FCP’s codecs are correctly installed. See Joel Moskowitz’ comment here

    I found that after doing an archive and install for Tiger, some of the QuickTime codecs installed by iMovie HD and Final Cut Pro do not get installed in the new system Specifically, the intermediate codec for iMovie HD that allows transcoding of HDV and all the Final cut Pro HD codecs. You can find these codecs in Previous system/Library/QuickTime. Transfer them manually and full function is restored.

    I’ve never tried networking Firewire devices, hope that helps