Merge ../mlt
[melted] / src / modules / plus / transition_affine.c
index aaca097..7197056 100644 (file)
@@ -18,7 +18,7 @@
  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
  */
 
-#include "transition_affine.h"
+#include <framework/mlt_transition.h>
 #include <framework/mlt.h>
 
 #include <stdio.h>
@@ -30,7 +30,7 @@
 /** Calculate real geometry.
 */
 
-static void geometry_calculate( mlt_transition this, char *store, struct mlt_geometry_item_s *output, float position )
+static void geometry_calculate( mlt_transition this, const char *store, struct mlt_geometry_item_s *output, float position )
 {
        mlt_properties properties = MLT_TRANSITION_PROPERTIES( this );
        mlt_geometry geometry = mlt_properties_get_data( properties, store, NULL );
@@ -52,7 +52,7 @@ static void geometry_calculate( mlt_transition this, char *store, struct mlt_geo
 }
 
 
-static mlt_geometry transition_parse_keys( mlt_transition this, char *name, char *store, int normalised_width, int normalised_height )
+static mlt_geometry transition_parse_keys( mlt_transition this, const char *name, const char *store, int normalised_width, int normalised_height )
 {
        // Get the properties of the transition
        mlt_properties properties = MLT_TRANSITION_PROPERTIES( this );
@@ -108,7 +108,7 @@ static mlt_geometry composite_calculate( mlt_transition this, struct mlt_geometr
        return start;
 }
 
-static inline float composite_calculate_key( mlt_transition this, char *name, char *store, int norm, float position )
+static inline float composite_calculate_key( mlt_transition this, const char *name, const char *store, int norm, float position )
 {
        // Struct for the result
        struct mlt_geometry_item_s result;
@@ -122,7 +122,7 @@ static inline float composite_calculate_key( mlt_transition this, char *name, ch
        return result.x;
 }
 
-typedef struct 
+typedef struct
 {
        float matrix[3][3];
 }
@@ -330,8 +330,8 @@ static inline void get_affine( affine_t *affine, mlt_transition this, float posi
                affine_rotate_x( affine->matrix, fix_rotate_x + rotate_x * position );
                affine_rotate_y( affine->matrix, fix_rotate_y + rotate_y * position );
                affine_rotate_z( affine->matrix, fix_rotate_z + rotate_z * position );
-               affine_shear( affine->matrix, 
-                                         fix_shear_x + shear_x * position, 
+               affine_shear( affine->matrix,
+                                         fix_shear_x + shear_x * position,
                                          fix_shear_y + shear_y * position,
                                          fix_shear_z + shear_z * position );
                affine_offset( affine->matrix, ox, oy );
@@ -453,7 +453,8 @@ static int transition_get_image( mlt_frame a_frame, uint8_t **image, mlt_image_f
 
                int cx = result.x + ( b_width >> 1 );
                int cy = result.y + ( b_height >> 1 );
-       
+               cx -= cx % 2;
+
                int lower_x = 0 - cx;
                int upper_x = *width - cx;
                int lower_y = 0 - cy;
@@ -510,7 +511,7 @@ static int transition_get_image( mlt_frame a_frame, uint8_t **image, mlt_image_f
 
                                        if ( dx >= 0 && dx < b_width && dy >=0 && dy < b_height )
                                        {
-                                               *pmask ++;
+                                               pmask ++;
                                                dx -= dx & 1;
                                                *p ++ = *( b_image + dy * b_stride + ( dx << 1 ) );
                                                *p ++ = *( b_image + dy * b_stride + ( dx << 1 ) + ( ( x & 1 ) << 1 ) + 1 );
@@ -592,7 +593,7 @@ static mlt_frame transition_process( mlt_transition transition, mlt_frame a_fram
 /** Constructor for the filter.
 */
 
-mlt_transition transition_affine_init( char *arg )
+mlt_transition transition_affine_init( mlt_profile profile, mlt_service_type type, const char *id, char *arg )
 {
        mlt_transition transition = mlt_transition_new( );
        if ( transition != NULL )