}
// Now attempt to open the file
- error = av_open_input_file( &context, file, format, 0, params );
- error = error < 0;
+ error = av_open_input_file( &context, file, format, 0, params ) < 0;
// Cleanup AVFormatParameters
free( standard );
if ( !strcmp( codec_context->codec->name, "mjpeg" ) )
must_decode = 0;
- memset( &pkt, 0, sizeof( pkt ) );
+ av_init_packet( &pkt );
// Construct an AVFrame for YUV422 conversion
if ( av_frame == NULL )
{
- av_frame = calloc( 1, sizeof( AVFrame ) );
- mlt_properties_set_data( properties, "av_frame", av_frame, 0, free, NULL );
+ av_frame = avcodec_alloc_frame( );
+ mlt_properties_set_data( properties, "av_frame", av_frame, 0, av_free, NULL );
}
while( ret >= 0 && !got_picture )
}
}
- // We're finished with this packet regardless
- av_free_packet( &pkt );
- }
-
- // Now handle the picture if we have one
- if ( got_picture )
- {
- mlt_properties_set_int( frame_properties, "progressive", !av_frame->interlaced_frame );
- mlt_properties_set_int( frame_properties, "top_field_first", av_frame->top_field_first );
+ // Now handle the picture if we have one
+ if ( got_picture )
+ {
+ mlt_properties_set_int( frame_properties, "progressive", !av_frame->interlaced_frame );
+ mlt_properties_set_int( frame_properties, "top_field_first", av_frame->top_field_first );
- convert_image( av_frame, *buffer, codec_context->pix_fmt, *format, *width, *height );
+ convert_image( av_frame, *buffer, codec_context->pix_fmt, *format, *width, *height );
- mlt_properties_set_data( frame_properties, "image", *buffer, size, (mlt_destructor)mlt_pool_release, NULL );
+ mlt_properties_set_data( frame_properties, "image", *buffer, size, (mlt_destructor)mlt_pool_release, NULL );
- if ( current_time == 0 && source_fps != 0 )
- {
- double fps = mlt_properties_get_double( properties, "fps" );
- current_time = ceil( source_fps * ( double )position / fps ) * ( 1 / source_fps );
- mlt_properties_set_double( properties, "_current_time", current_time );
- }
- else
- {
- mlt_properties_set_double( properties, "_current_time", current_time );
+ if ( current_time == 0 && source_fps != 0 )
+ {
+ double fps = mlt_properties_get_double( properties, "fps" );
+ current_time = ceil( source_fps * ( double )position / fps ) * ( 1 / source_fps );
+ mlt_properties_set_double( properties, "_current_time", current_time );
+ }
+ else
+ {
+ mlt_properties_set_double( properties, "_current_time", current_time );
+ }
}
+
+ // We're finished with this packet regardless
+ av_free_packet( &pkt );
}
}
int got_audio = 0;
int16_t *temp = mlt_pool_alloc( sizeof( int16_t ) * AVCODEC_MAX_AUDIO_FRAME_SIZE );
- memset( &pkt, 0, sizeof( pkt ) );
+ av_init_packet( &pkt );
while( ret >= 0 && !got_audio )
{