From 48108cd68c26e70ac3507a10472c7c83722101f7 Mon Sep 17 00:00:00 2001 From: j-b-m Date: Mon, 12 May 2008 19:03:12 +0000 Subject: [PATCH] Correctly update the luma file if the resource was modified git-svn-id: https://mlt.svn.sourceforge.net/svnroot/mlt/trunk/mlt@1125 d19143bc-622f-0410-bfdd-b5b2a6649095 --- src/modules/core/transition_luma.c | 11 ++++++++++- 1 files changed, 10 insertions(+), 1 deletions(-) diff --git a/src/modules/core/transition_luma.c b/src/modules/core/transition_luma.c index 55e9e3e..258eefa 100644 --- a/src/modules/core/transition_luma.c +++ b/src/modules/core/transition_luma.c @@ -378,6 +378,7 @@ static int transition_get_image( mlt_frame a_frame, uint8_t **image, mlt_image_f int luma_width = mlt_properties_get_int( properties, "width" ); int luma_height = mlt_properties_get_int( properties, "height" ); uint16_t *luma_bitmap = mlt_properties_get_data( properties, "bitmap", NULL ); + char *current_resource = mlt_properties_get( properties, "_resource" ); // If the filename property changed, reload the map char *resource = mlt_properties_get( properties, "resource" ); @@ -389,7 +390,7 @@ static int transition_get_image( mlt_frame a_frame, uint8_t **image, mlt_image_f luma_height = mlt_properties_get_int( a_props, "height" ); } - if ( luma_bitmap == NULL && resource != NULL ) + if ( resource != current_resource ) { char temp[ 512 ]; char *extension = strrchr( resource, '.' ); @@ -421,9 +422,16 @@ static int transition_get_image( mlt_frame a_frame, uint8_t **image, mlt_image_f // Set the transition properties mlt_properties_set_int( properties, "width", luma_width ); mlt_properties_set_int( properties, "height", luma_height ); + mlt_properties_set( properties, "_resource", resource ); mlt_properties_set_data( properties, "bitmap", luma_bitmap, luma_width * luma_height * 2, mlt_pool_release, NULL ); } } + else if (!*resource) + { + luma_bitmap = NULL; + mlt_properties_set( properties, "_resource", NULL ); + mlt_properties_set_data( properties, "bitmap", luma_bitmap, 0, mlt_pool_release, NULL ); + } else { // Get the factory producer service @@ -468,6 +476,7 @@ static int transition_get_image( mlt_frame a_frame, uint8_t **image, mlt_image_f // Set the transition properties mlt_properties_set_int( properties, "width", luma_width ); mlt_properties_set_int( properties, "height", luma_height ); + mlt_properties_set( properties, "_resource", resource); mlt_properties_set_data( properties, "bitmap", luma_bitmap, luma_width * luma_height * 2, mlt_pool_release, NULL ); // Cleanup the luma frame -- 1.7.4.4