- this->image_idx = image_idx;
- mlt_properties cached_props = MLT_FRAME_PROPERTIES( cached );
- this->width = mlt_properties_get_int( cached_props, "width" );
- this->height = mlt_properties_get_int( cached_props, "height" );
- mlt_properties_set_int( producer_props, "_real_width", mlt_properties_get_int( cached_props, "real_width" ) );
- mlt_properties_set_int( producer_props, "_real_height", mlt_properties_get_int( cached_props, "real_height" ) );
- this->image = mlt_properties_get_data( cached_props, "image", NULL );
- this->alpha = mlt_properties_get_data( cached_props, "alpha", NULL );
-
- if ( width != 0 && ( width != this->width || height != this->height ) )
- this->image = NULL;
- }
- }
-
- // optimization for subsequent iterations on single picture
- if ( width != 0 && ( image_idx != this->image_idx || width != this->width || height != this->height ) )
- this->image = NULL;
- if ( image_idx != this->pixbuf_idx )
- pixbuf = NULL;
- mlt_log_debug( MLT_PRODUCER_SERVICE( producer ), "image %p pixbuf %p idx %d image_idx %d pixbuf_idx %d width %d\n",
- this->image, pixbuf, image_idx, this->image_idx, this->pixbuf_idx, width );
- if ( !pixbuf && !this->image )
- {
- this->image = NULL;
- pixbuf = gdk_pixbuf_new_from_file( mlt_properties_get_value( this->filenames, image_idx ), &error );