]> git.sesse.net Git - mlt/commitdiff
Add support for short-hand vpre to avformat consumer.
authorDan Dennedy <dan@dennedy.org>
Tue, 5 Oct 2010 06:58:15 +0000 (23:58 -0700)
committerDan Dennedy <dan@dennedy.org>
Tue, 5 Oct 2010 06:58:15 +0000 (23:58 -0700)
For example, when vcodec=libx264, you can use vpre=medium as shorthand
for $prefix/share/ffmpeg/libx264-medium.ffpreset.

src/modules/avformat/configure
src/modules/avformat/consumer_avformat.c

index 6fceab57dd1e8bbb8052b4c575a4de38870fd383..838c38173afc0ab83c299409f5107989603fd389 100755 (executable)
@@ -108,6 +108,7 @@ else
                [ "$devices" = "false" ] && disable_devices="--disable-devices"
                [ -d "ffmpeg" ] && ( cd ffmpeg ; ./configure $enable_gpl $disable_devices $enable_swscale $svn_ffmpeg_extra --extra-cflags=-fPIC )
                #[ ! -f "ffmpeg/ffmpeg.patch" ] && ( cd ffmpeg ; cp ../ffmpeg.patch . ; patch -p0 < ffmpeg.patch )
+               echo "CFLAGS+=-DAVDATADIR=\\\"${prefix}/share/ffmpeg/\\\"" >> config.mak
                echo "CFLAGS+=-I`pwd`/ffmpeg" >> config.mak
                echo "LDFLAGS+=-L`pwd`/ffmpeg/libavformat -L`pwd`/ffmpeg/libavcodec -L`pwd`/ffmpeg/libavutil" >> config.mak
                if [ "$swscale" != "" ] || [ "$svn_rev" = "HEAD" ] || [ "$svn_rev" = "0.6" ] || [ "$svn_rev" = "0.5" ]
@@ -131,6 +132,7 @@ else
        then 
                if [ -d "$static_ffmpeg" ]
                then
+                       echo "CFLAGS+=-DAVDATADIR=\\\"${static_ffmpeg}/ffpresets/\\\"" >> config.mak
                        echo "CFLAGS+=-I$static_ffmpeg" >> config.mak
                        echo "LDFLAGS+=-L$static_ffmpeg/libavformat -L$static_ffmpeg/libavcodec -L$static_ffmpeg/libavutil" >> config.mak
                        [ $targetos = "Darwin" ] &&
@@ -157,6 +159,7 @@ else
        elif [ "$shared_ffmpeg" != "" ]
        then
                echo "PREFIX=$shared_ffmpeg" >> config.mak
+               echo "CFLAGS+=-DAVDATADIR=\\\"${shared_ffmpeg}/share/ffmpeg/\\\"" >> config.mak
                echo "CFLAGS+=$(pkg-config --cflags libavformat)" >> config.mak
                echo "LDFLAGS+=$(pkg-config --libs-only-L libavformat)" >> config.mak
                if [ "$devices" = "true" ]
index da7719efc9b7a14568dd456bb23d91611221fa14..a10ad6b2356757fce10608b11bfc335368407b84 100644 (file)
@@ -542,6 +542,30 @@ static AVStream *add_video_stream( mlt_consumer this, AVFormatContext *oc, int c
                if ( vpre )
                {
                        mlt_properties p = mlt_properties_load( vpre );
+#ifdef AVDATADIR
+                       if ( mlt_properties_count( p ) < 1 )
+                       {
+                               AVCodec *codec = avcodec_find_encoder( c->codec_id );
+                               if ( codec )
+                               {
+                                       char *path = malloc( strlen(AVDATADIR) + strlen(codec->name) + strlen(vpre) + strlen(".ffpreset") + 2 );
+                                       strcpy( path, AVDATADIR );
+                                       strcat( path, codec->name );
+                                       strcat( path, "-" );
+                                       strcat( path, vpre );
+                                       strcat( path, ".ffpreset" );
+                                       
+                                       mlt_properties_close( p );
+                                       p = mlt_properties_load( path );
+                                       mlt_properties_debug( p, path, stderr );
+                                       free( path );   
+                               }
+                       }
+                       else
+                       {
+                               mlt_properties_debug( p, vpre, stderr );                        
+                       }
+#endif
                        apply_properties( c, p, AV_OPT_FLAG_VIDEO_PARAM | AV_OPT_FLAG_ENCODING_PARAM, 1 );
                        mlt_properties_close( p );
                }