X-Git-Url: http://research.m1stereo.tv/gitweb?a=blobdiff_plain;f=src%2Fmodules%2Ffrei0r%2Ffrei0r_helper.c;h=cd309baef085582d5f4e93da30bc4164f59d4016;hb=f55cf6833f65f7677708c5f6e0573a280a9b7307;hp=4bcaf305ec6d29a2d9eb356421f51bfea0387e2d;hpb=c079de116b132025ee09e8766d773424f17605e9;p=melted diff --git a/src/modules/frei0r/frei0r_helper.c b/src/modules/frei0r/frei0r_helper.c index 4bcaf30..cd309ba 100644 --- a/src/modules/frei0r/frei0r_helper.c +++ b/src/modules/frei0r/frei0r_helper.c @@ -21,7 +21,7 @@ #include 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); @@ -85,11 +85,13 @@ 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);