* \brief interface for all frame classes
* \see mlt_frame_s
*
- * Copyright (C) 2003-2009 Ushodaya Enterprises Limited
+ * Copyright (C) 2003-2013 Ushodaya Enterprises Limited
* \author Charles Yates <charles.yates@pandora.be>
+ * \author Dan Dennedy <dan@dennedy.org>
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
*
* \public \memberof mlt_frame_s
* \param self a frame
- * \param the get_image callback
+ * \param get_image the get_image callback
* \return true if error
*/
mlt_properties_set_data( properties, "test_card_frame", test_frame, 0, ( mlt_destructor )mlt_frame_close, NULL );
mlt_properties_set( test_properties, "rescale.interp", mlt_properties_get( properties, "rescale.interp" ) );
error = mlt_frame_get_image( test_frame, buffer, format, width, height, writable );
- if ( !error && *buffer )
+ if ( !error && buffer && *buffer )
{
mlt_properties_set_double( properties, "aspect_ratio", mlt_frame_get_aspect_ratio( test_frame ) );
mlt_properties_set_int( properties, "width", *width );
mlt_properties_set_int( properties, "height", *height );
- if ( test_frame->convert_image && *buffer && requested_format != mlt_image_none )
+ if ( test_frame->convert_image && requested_format != mlt_image_none )
test_frame->convert_image( test_frame, buffer, format, requested_format );
mlt_properties_set_int( properties, "format", *format );
}
mlt_properties_set_data( properties, "test_card_producer", NULL, 0, NULL, NULL );
}
}
- if ( error && *buffer && *format != mlt_image_none )
+ if ( error && buffer && *format != mlt_image_none )
{
int size = 0;
{
mlt_properties_set_int( properties, "image_count", mlt_properties_get_int( properties, "image_count" ) - 1 );
error = get_image( self, buffer, format, width, height, writable );
- if ( !error && *buffer )
+ if ( !error && buffer && *buffer )
{
mlt_properties_set_int( properties, "width", *width );
mlt_properties_set_int( properties, "height", *height );
- if ( self->convert_image && *buffer && requested_format != mlt_image_none )
+ if ( self->convert_image && requested_format != mlt_image_none )
self->convert_image( self, buffer, format, requested_format );
mlt_properties_set_int( properties, "format", *format );
}
error = generate_test_image( properties, buffer, format, width, height, writable );
}
}
- else if ( mlt_properties_get_data( properties, "image", NULL ) )
+ else if ( mlt_properties_get_data( properties, "image", NULL ) && buffer )
{
*format = mlt_properties_get_int( properties, "format" );
*buffer = mlt_properties_get_data( properties, "image", NULL );
FILE *file;
char filename[16];
- sprintf( filename, "frame-%05d.ppm", mlt_frame_get_position( frame ) );
+ sprintf( filename, "frame-%05d.ppm", (int)mlt_frame_get_position( frame ) );
file = fopen( filename, "wb" );
if ( !file )
return;
data = mlt_properties_get_data( properties, "image", &size );
if ( data )
{
+ int width = mlt_properties_get_int( properties, "width" );
+ int height = mlt_properties_get_int( properties, "height" );
+
if ( ! size )
size = mlt_image_format_size( mlt_properties_get_int( properties, "format" ),
- mlt_properties_get_int( properties, "width" ),
- mlt_properties_get_int( properties, "height" ), NULL );
+ width, height, NULL );
copy = mlt_pool_alloc( size );
memcpy( copy, data, size );
mlt_properties_set_data( new_props, "image", copy, size, mlt_pool_release, NULL );
if ( data )
{
if ( ! size )
- size = mlt_properties_get_int( properties, "width" ) *
- mlt_properties_get_int( properties, "height" );
+ size = width * height;
copy = mlt_pool_alloc( size );
memcpy( copy, data, size );
mlt_properties_set_data( new_props, "alpha", copy, size, mlt_pool_release, NULL );