return start;
}
+static inline void inline_memcpy( uint8_t *dest, uint8_t *src, int length )
+{
+ uint8_t *end = src + length;
+ while ( src < end )
+ {
+ *dest ++ = *src ++;
+ *dest ++ = *src ++;
+ }
+}
+
mlt_frame composite_copy_region( mlt_transition this, mlt_frame a_frame, mlt_position frame_position )
{
// Create a frame to return
w = result.w * width / result.nw;
h = result.h * height / result.nh;
+ if ( y < 0 )
+ {
+ h = h + y;
+ y = 0;
+ }
+
+ if ( y + h > height )
+ h = height - y;
+
x &= 0xfffffffe;
w &= 0xfffffffe;
while ( q < r )
{
- memcpy( q, p, w * 2 );
+ inline_memcpy( q, p, w * 2 );
q += w * 2;
p += width * 2;
}