producer->get_frame = producer_get_frame;
// If we have mov or dv, then we'll use an alternative producer
- if ( strncasecmp( strrchr( filename, '.' ), ".avi", 4 ) == 0 ||
- strncasecmp( strrchr( filename, '.' ), ".dv", 3 ) == 0 ||
- strncasecmp( strrchr( filename, '.' ), ".mov", 4 ) == 0 )
+ if ( strchr( filename, '.' ) != NULL && (
+ strncasecmp( strrchr( filename, '.' ), ".avi", 4 ) == 0 ||
+ strncasecmp( strrchr( filename, '.' ), ".mov", 4 ) == 0 ) )
{
// Load via an alternative mechanism
this->alternative = mlt_factory_producer( "kino", filename );
// 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 )