]> git.sesse.net Git - mlt/blobdiff - src/modules/vmfx/producer_pgm.c
Fix reading binary files on Windows.
[mlt] / src / modules / vmfx / producer_pgm.c
index 6713317cff4a1de08aac8922c40f1f9cb0a75abe..c0b342c2920623c9907ed34dd949ae12e108e77b 100644 (file)
@@ -45,8 +45,8 @@ mlt_producer producer_pgm_init( mlt_profile profile, mlt_service_type type, cons
                        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;
@@ -183,7 +183,6 @@ static int producer_get_frame( mlt_producer producer, mlt_frame_ptr frame, int i
        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 );