// Parse the header for meta info
dv_parse_header( decoder, dv_data );
- // Assign width and height from properties
- *width = mlt_properties_get_int( properties, "width" );
- *height = mlt_properties_get_int( properties, "height" );
+ // Assign width and height according to the frame
+ *width = 720;
+ *height = dv_data[ 3 ] & 0x80 ? 576 : 480;
// Extract an image of the format requested
- if ( *format == mlt_image_yuv422 )
+ if ( *format == mlt_image_yuv422 || *format == mlt_image_yuv420p )
{
// Allocate an image
uint8_t *image = mlt_pool_alloc( *width * ( *height + 1 ) * 2 );
// Assign result
*buffer = image;
+ *format = mlt_image_yuv422;
}
- else if ( *format == mlt_image_rgb24 )
+ else
{
// Allocate an image
uint8_t *image = mlt_pool_alloc( *width * ( *height + 1 ) * 3 );
// Assign result
*buffer = image;
+ *format = mlt_image_rgb24;
}
// Return the decoder