#include <string.h>
int process_frei0r_item( mlt_service_type type, double position , mlt_properties prop , mlt_frame this, uint8_t **image, mlt_image_format *format, int *width, int *height, int writable ){
-
+
int i=0;
f0r_instance_t ( *f0r_construct ) ( unsigned int , unsigned int ) = mlt_properties_get_data( prop , "f0r_construct" ,NULL);
void (*f0r_update)(f0r_instance_t instance, double time, const uint32_t* inframe, uint32_t* outframe)=mlt_properties_get_data( prop , "f0r_update" ,NULL);
mlt_convert_yuv422_to_rgb24a ( image[0] , (uint8_t *)img_a , video_area );
mlt_convert_yuv422_to_rgb24a ( image[1] , (uint8_t *)img_b , video_area );
- uint8_t* yuv = mlt_pool_alloc( video_area * 3 );
f0r_update2 ( inst , position , img_a , img_b , NULL , result );
- mlt_convert_rgb24a_to_yuv422((uint8_t *)result, *width, *height, *width * sizeof(uint32_t),
- yuv, NULL );
- image[2]=yuv;
+
+ uint8_t * image_ptr=mlt_properties_get_data(MLT_FRAME_PROPERTIES(this), "image", NULL );
+ if (image_ptr)
+ mlt_convert_rgb24a_to_yuv422((uint8_t *)result, *width, *height, *width * sizeof(uint32_t), image_ptr , NULL );
+
+ mlt_pool_release(result);
}
mlt_pool_release(img_a);
mlt_pool_release(img_b);