I was working on a project where I had a crossfade between two clips with transparency, and the track underneath was bleeding through everywhere, not just in the spots that had alpha. Here’s a minimal example of the behavior:
Take red with a tiny bit of transparency, color = #FEFF0000, and make a crossfade dissolve to itself. It should remain the same color and alpha throughout, but instead alpha drops to 75% at the halfway point.
Take red with a tiny bit of transparency, and make a crossfade dissolve to green. In addition to the alpha behavior as in the last example, it should also be 1/2 red and 1/2 green at the halfway point, but instead it’s 1/3 red and 2/3 green.
alpha-dissolve.mlt (12.1 KB)
(I’ve attached an mlt file, you can turn on the “video histogram” scope to see the color values, and you can turn on the second track’s “alpha channel: view” filter to better see what’s going on with alpha rather than inferring from the blue bleeding through. The first half shows the two transitions with alpha 254 and the second half shows them with alpha 255.)
I can’t imagine this is the expected behavior, but I looked through the source code, and I think I see in transition_luma.c where the 75% and 1/3-2/3 come out of the “mix2” section. So I guess my questions are (1) is this a bug or the expected behavior, and (2) is there a way to change the “mix2” section to fix the two examples?