X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=src%2Fmodules%2Fvmfx%2Fproducer_pgm.c;h=c0b342c2920623c9907ed34dd949ae12e108e77b;hb=facc6328e46eb0c973c6293390a14258abf071d4;hp=e9d333be4b0d8cd97c02cefb402024ec72d095e8;hpb=66ee48cf0b9448e670cfa19dfbbdc06193288181;p=mlt diff --git a/src/modules/vmfx/producer_pgm.c b/src/modules/vmfx/producer_pgm.c index e9d333be..c0b342c2 100644 --- a/src/modules/vmfx/producer_pgm.c +++ b/src/modules/vmfx/producer_pgm.c @@ -18,7 +18,7 @@ * Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -#include "producer_pgm.h" +#include #include #include #include @@ -27,7 +27,7 @@ static int read_pgm( char *name, uint8_t **image, int *width, int *height, int * static int producer_get_frame( mlt_producer producer, mlt_frame_ptr frame, int index ); static void producer_close( mlt_producer parent ); -mlt_producer producer_pgm_init( void *resource ) +mlt_producer producer_pgm_init( mlt_profile profile, mlt_service_type type, const char *id, char *resource ) { mlt_producer this = NULL; uint8_t *image = NULL; @@ -45,8 +45,8 @@ mlt_producer producer_pgm_init( void *resource ) this->close = ( mlt_destructor )producer_close; mlt_properties_set( properties, "resource", resource ); mlt_properties_set_data( properties, "image", image, 0, mlt_pool_release, NULL ); - mlt_properties_set_int( properties, "real_width", width ); - mlt_properties_set_int( properties, "real_height", height ); + mlt_properties_set_int( properties, "meta.media.width", width ); + mlt_properties_set_int( properties, "meta.media.height", height ); } else { @@ -66,7 +66,7 @@ static int read_pgm( char *name, uint8_t **image, int *width, int *height, int * { uint8_t *input = NULL; int error = 0; - FILE *f = fopen( name, "r" ); + FILE *f = fopen( name, "rb" ); char data[ 512 ]; // Initialise @@ -155,13 +155,13 @@ static int read_pgm( char *name, uint8_t **image, int *width, int *height, int * static int producer_get_image( mlt_frame this, uint8_t **buffer, mlt_image_format *format, int *width, int *height, int writable ) { mlt_producer producer = mlt_frame_pop_service( this ); - int real_width = mlt_properties_get_int( MLT_FRAME_PROPERTIES( this ), "real_width" ); - int real_height = mlt_properties_get_int( MLT_FRAME_PROPERTIES( this ), "real_height" ); + int real_width = mlt_properties_get_int( MLT_FRAME_PROPERTIES( this ), "meta.media.width" ); + int real_height = mlt_properties_get_int( MLT_FRAME_PROPERTIES( this ), "meta.media.height" ); int size = real_width * real_height; uint8_t *image = mlt_pool_alloc( size * 2 ); uint8_t *source = mlt_properties_get_data( MLT_PRODUCER_PROPERTIES( producer ), "image", NULL ); - mlt_properties_set_data( MLT_FRAME_PROPERTIES( this ), "image", image, size * 2, mlt_pool_release, NULL ); + mlt_frame_set_image( this, image, size * 2, mlt_pool_release ); *width = real_width; *height = real_height; @@ -177,13 +177,12 @@ static int producer_get_image( mlt_frame this, uint8_t **buffer, mlt_image_forma static int producer_get_frame( mlt_producer producer, mlt_frame_ptr frame, int index ) { // Construct a test frame - *frame = mlt_frame_init( ); + *frame = mlt_frame_init( MLT_PRODUCER_SERVICE( producer ) ); // Get the frames properties mlt_properties properties = MLT_FRAME_PROPERTIES( *frame ); // Pass the data on the frame properties - mlt_properties_pass_list( properties, MLT_PRODUCER_PROPERTIES( producer ), "real_width,real_height" ); mlt_properties_set_int( properties, "has_image", 1 ); mlt_properties_set_int( properties, "progressive", 1 ); mlt_properties_set_double( properties, "aspect_ratio", 1 );