Joe Maller.com

Links for May 5, 2005


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:

Links for May 4, 2005


Links for May 3, 2005


Moving CVS to OS X 10.4 Tiger

There were a ton of things I forgot to do before updating to Tiger. Since I chose Archive & Install, a lot of UNIXy things didn’t transfer over. Thankfully I created a full, bootable backup of my 10.3 disk before installing, so recovering the missing parts hasn’t been too difficult.

A long, long time ago, when computers had to be restarted every 10 minutes, I’d learn how to do things by constantly doing them again and again. Here in the future, I set up CVS once after WWDC last year, and it’s worked ever since.

Steps to rebuild my CVS repository:

  1. Initialize the CVSROOT variable using the instructions on Apple’s Version Control with CVS on Mac OS X page.
  2. Copy over all the files from the old disk into the newly initalized CVS repository (using cp in the terminal).
  3. Run sudo chmod -R g+w on the CVS repository to set all the files to the correct permissions.

Everything seems to be working, file revision histories are intact and I can forget about all of this for another 18-24 months until 10.5 comes out.

Update: WordPress or my server was barfing on this post, so I’m editing it to refresh the database

Share |

link: May 03, 2005 9:00 pm
posted in: Mac OS X

Links for May 2, 2005


Hacking Mail.app (First bummer of 10.4)

In 10.3, I had hacked Mail.app to display a widescreen view. It really helped me get close to having a handle on my mail, and was a far better use of my PowerBook’s widescreen than the standard stacked three-view. No luck so far in 10.4. Something about Tiger Mail’s custom ‘ExpandingSplitView’ keeps expanding the splitter to fill most of the window when it’s switched to a vertical split.

update: Still not working, but I’ve found that the width of the splitter bar is tied to the height of the window.

Small Splitter (short window):
Hacking Mail Small Splitter
Huge Splitter (regular sized window):
Hacking Mail Small Splitter

update: I’m putting this away for a while. No luck and I’m suspecting the splitter is somehow glued into the application code. If so, it’s probably never going to work from an Interface Builder hack, short of re-building the whole nib (no, I will not try to rebuild the whole nib anytime soon, no no no…)

Final update There’s now a widescreen addon for mail.



« Previous PageNext Page »