X-Git-Url: http://research.m1stereo.tv/gitweb?a=blobdiff_plain;f=src%2Fmodules%2Favformat%2Fproducer_avformat.c;h=7febf47113396267586d186804e0e7cb47e585c5;hb=4fc3fa1bf4116848c423837437d75f103cdd0154;hp=4ddec9aa47dcf84fb032a2493b636f01d3066c6a;hpb=abc7d71a839a7450280f44a278ab90238a7abb36;p=melted diff --git a/src/modules/avformat/producer_avformat.c b/src/modules/avformat/producer_avformat.c index 4ddec9a..7febf47 100644 --- a/src/modules/avformat/producer_avformat.c +++ b/src/modules/avformat/producer_avformat.c @@ -22,6 +22,7 @@ // MLT Header files #include #include +#include // ffmpeg Header files #include @@ -39,6 +40,10 @@ #include #include +#if LIBAVUTIL_VERSION_INT < (50<<16) +#define PIX_FMT_YUYV422 PIX_FMT_YUV422 +#endif + void avformat_lock( ); void avformat_unlock( ); @@ -51,6 +56,41 @@ static int producer_get_frame( mlt_producer this, mlt_frame_ptr frame, int index mlt_producer producer_avformat_init( mlt_profile profile, char *file ) { + int error = 0; + + // Report information about available demuxers and codecs as YAML Tiny + if ( file && strstr( file, "f-list" ) ) + { + fprintf( stderr, "---\nformats:\n" ); + AVInputFormat *format = NULL; + while ( ( format = av_iformat_next( format ) ) ) + fprintf( stderr, " - %s\n", format->name ); + fprintf( stderr, "...\n" ); + error = 1; + } + if ( file && strstr( file, "acodec-list" ) ) + { + fprintf( stderr, "---\naudio_codecs:\n" ); + AVCodec *codec = NULL; + while ( ( codec = av_codec_next( codec ) ) ) + if ( codec->decode && codec->type == CODEC_TYPE_AUDIO ) + fprintf( stderr, " - %s\n", codec->name ); + fprintf( stderr, "...\n" ); + error = 1; + } + if ( file && strstr( file, "vcodec-list" ) ) + { + fprintf( stderr, "---\nvideo_codecs:\n" ); + AVCodec *codec = NULL; + while ( ( codec = av_codec_next( codec ) ) ) + if ( codec->decode && codec->type == CODEC_TYPE_VIDEO ) + fprintf( stderr, " - %s\n", codec->name ); + fprintf( stderr, "...\n" ); + error = 1; + } + if ( error ) + return NULL; + mlt_producer this = NULL; // Check that we have a non-NULL argument @@ -156,8 +196,10 @@ static mlt_properties find_default_streams( mlt_properties meta_media, AVFormatC // mlt_properties_set_double( meta_media, key, av_q2d( context->streams[ i ]->time_base ) ); snprintf( key, sizeof(key), "meta.media.%d.codec.name", i ); mlt_properties_set( meta_media, key, codec->name ); +#if (LIBAVCODEC_VERSION_INT >= ((51<<16)+(55<<8)+0)) snprintf( key, sizeof(key), "meta.media.%d.codec.long_name", i ); mlt_properties_set( meta_media, key, codec->long_name ); +#endif snprintf( key, sizeof(key), "meta.media.%d.codec.bit_rate", i ); mlt_properties_set_int( meta_media, key, codec_context->bit_rate ); // snprintf( key, sizeof(key), "meta.media.%d.codec.time_base", i );