Comment 6 for bug 507872

Revision history for this message
Jonathan Thomas (jonoomph) wrote :

Dan has located the bug in MLT, and here is his response:
------------------
I located the source of this problem - line 564 of
src/modules/core/transition_composite.c:
               width_src -= 2;

This is within a code block with the comment:
       // Align chroma of source and destination

Basically, the compositor is doing non-interpolated compositing in
packed YUYV 4:2:2 image format. This is a legacy choice based on the
requirements of the original contract under which mlt was developed
(realtime non-animated compositing for a 4:2:2 SDI output device in
2004).

Essentially, this means chroma has half the resolution of the luma
channel and when blending I must keep the chroma channels aligned -
can not blend U with V. So, there are constraints put into place to
adhere to these rules. If I remove the width_src line above, I resolve
the issue for this example, but other tests show an artifact. In the
attached image, there is an additional column on the right-hand side
that goes away when I retain this line.

The only real resolution is to overhaul the composite transition as I
recently did for the affine transition. I plan to do that by the end
of the year. In the meantime, you might be able to use affine
filter/transition for some of your effects - it too takes a
keyframable geometry property, but its behavior is somewhat different.