From b0ab3601abe8240c6c8f6e4c3c64ee3f57adc889 Mon Sep 17 00:00:00 2001 From: j-b-m Date: Thu, 13 Nov 2008 22:45:44 +0000 Subject: [PATCH] filter_freeze.c: update frozen frame if freeze position is changed on the fly git-svn-id: https://mlt.svn.sourceforge.net/svnroot/mlt/trunk/mlt@1236 d19143bc-622f-0410-bfdd-b5b2a6649095 --- src/modules/kdenlive/filter_freeze.c | 3 ++- 1 files changed, 2 insertions(+), 1 deletions(-) diff --git a/src/modules/kdenlive/filter_freeze.c b/src/modules/kdenlive/filter_freeze.c index a389e01..c286499 100644 --- a/src/modules/kdenlive/filter_freeze.c +++ b/src/modules/kdenlive/filter_freeze.c @@ -51,7 +51,7 @@ static int filter_get_image( mlt_frame this, uint8_t **image, mlt_image_format * if (do_freeze == 1) { freeze_frame = mlt_properties_get_data( properties, "freeze_frame", NULL ); - if( freeze_frame == NULL) + if( freeze_frame == NULL || mlt_properties_get_position( properties, "_frame" ) != pos ) { // freeze_frame has not been fetched yet, so fetch it and cache it. mlt_producer producer = mlt_frame_get_original_producer(this); @@ -68,6 +68,7 @@ static int filter_get_image( mlt_frame this, uint8_t **image, mlt_image_format * mlt_properties_set_int( freeze_properties, "progressive", mlt_properties_get_int( props, "progressive" ) ); mlt_properties_set_data( properties, "freeze_frame", freeze_frame, 0, NULL, NULL ); + mlt_properties_set_position( properties, "_frame", pos ); } int error = mlt_frame_get_image( freeze_frame, image, format, width, height, 1 ); return error; -- 1.7.4.4