On Fri, Jan 17, 2020 at 12:59 AM jb <j...@kdenlive.org> wrote:

> Hi Dan, all,
>
> First, thanks a lot for implementing the much anticipated consumer scaling
> feature! Nice way to do it! While testing it, I noticed a problem with
> transitions.
>
> It seems like the "consumer_scale" property is not always properly
> propagated
> to the frames. Because of this, transitions sometimes produce a "full
> size"
> image instead of a correctly scaled result.
>
> Issue is reproducible at least with the "composite", "affine" and
> "qtblend"
> transitions. It seems like the "consumer_scale" value is correct on the
> a_frame but not on the b_frame.
>
> Changing this line (in the mentionned transition code) :
> double resolution_scale = mlt_frame_resolution_scale(b_frame);
>
> to:
> double resolution_scale = mlt_frame_resolution_scale(a_frame);
>
> fixes the issue.


You are correct. I fixed it in qtblend and affine. However, composite has
not been updated to use mlt_frame_resolution_scale(). When I looked into
that today, I noticed it that it is already working by simply taking a
ratio of the get_image() width and height arguments over the profile width
and height. This rule was also in transition affine as`(double) *width /
normalised_width;`. Thus, I am thinking about removing
mlt_frame_resolution_scale(), the consumer scale property, and simply
applying this technique everywhere.  Moreover, this can be done separately
for width and height to make it slightly more accurate when one dimensions
needs to change slightly more or less than the other in order to enforce a
multiple of 2 or more. What do you think? Is there a situation where this
is not desirable and an explicit scale is necessary?

Dan
_______________________________________________
Mlt-devel mailing list
Mlt-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mlt-devel

Reply via email to