Producer filter attach/detach methods; major rework on westley consumer, minor on...
[melted] / src / modules / core / filter_resize.c
index 7a1f5dd..dcaa2d0 100644 (file)
@@ -78,7 +78,7 @@ static int filter_get_image( mlt_frame this, uint8_t **image, mlt_image_format *
                oheight = scaled_height * oheight / normalised_height;
 
                // Tell frame we have conformed the aspect to the consumer
-               mlt_frame_set_aspect_ratio( this, output_ar );
+               mlt_frame_set_aspect_ratio( this, mlt_properties_get_double( properties, "consumer_aspect_ratio" ) );
        }
 
        // Now pass on the calculations down the line
@@ -104,10 +104,13 @@ static int filter_get_image( mlt_frame this, uint8_t **image, mlt_image_format *
                        // Keep the original image around to be destroyed on frame close
                        mlt_properties_rename( properties, "image", "original_image" );
 
+                       // Duplicate the last line in the field to avoid artifact
+                       memcpy( image + oheight * owidth * 2, image + oheight * owidth * 2 - owidth * 4, owidth * 2 );
+
                        // Offset the image pointer by one line
                        image += owidth * 2;
                        size -= owidth * 2;
-
+                       
                        // Set the new image pointer with no destructor
                        mlt_properties_set_data( properties, "image", image, size, NULL, NULL );
 
@@ -130,7 +133,7 @@ static int filter_get_image( mlt_frame this, uint8_t **image, mlt_image_format *
                }
        }
 
-       return 0;
+       return error;
 }
 
 /** Filter processing.