Thread: [Mlt-devel] SF.net SVN: mlt:[1181] trunk/mlt/src/modules/avformat/consumer_avformat.c
Brought to you by:
ddennedy,
lilo_booter
From: <dde...@us...> - 2008-09-12 16:51:32
|
Revision: 1181 http://mlt.svn.sourceforge.net/mlt/?rev=1181&view=rev Author: ddennedy Date: 2008-09-12 16:51:29 +0000 (Fri, 12 Sep 2008) Log Message: ----------- consumer_avformat.c: bugfix (2106941) compilation against recent ffmpeg changes Modified Paths: -------------- trunk/mlt/src/modules/avformat/consumer_avformat.c Modified: trunk/mlt/src/modules/avformat/consumer_avformat.c =================================================================== --- trunk/mlt/src/modules/avformat/consumer_avformat.c 2008-09-07 16:28:51 UTC (rev 1180) +++ trunk/mlt/src/modules/avformat/consumer_avformat.c 2008-09-12 16:51:29 UTC (rev 1181) @@ -799,13 +799,7 @@ // Check for audio codec overides if ( acodec != NULL ) { - AVCodec *p = first_avcodec; - while( p != NULL ) - { - if ( !strcmp( p->name, acodec ) && p->type == CODEC_TYPE_AUDIO ) - break; - p = p->next; - } + AVCodec *p = avcodec_find_encoder_by_name( acodec ); if ( p != NULL ) audio_codec_id = p->id; else @@ -815,13 +809,7 @@ // Check for video codec overides if ( vcodec != NULL ) { - AVCodec *p = first_avcodec; - while( p != NULL ) - { - if ( !strcmp( p->name, vcodec ) && p->type == CODEC_TYPE_VIDEO ) - break; - p = p->next; - } + AVCodec *p = avcodec_find_encoder_by_name( vcodec ); if ( p != NULL ) video_codec_id = p->id; else This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <j-...@us...> - 2008-10-08 09:49:25
|
Revision: 1184 http://mlt.svn.sourceforge.net/mlt/?rev=1184&view=rev Author: j-b-m Date: 2008-10-08 09:45:03 +0000 (Wed, 08 Oct 2008) Log Message: ----------- consumer_avformat.c: Fix crash introduced by FFmpeg revision 15367 (check that muxer and encoder have same aspect ratio) Revision Links: -------------- http://mlt.svn.sourceforge.net/mlt/?rev=15367&view=rev Modified Paths: -------------- trunk/mlt/src/modules/avformat/consumer_avformat.c Modified: trunk/mlt/src/modules/avformat/consumer_avformat.c =================================================================== --- trunk/mlt/src/modules/avformat/consumer_avformat.c 2008-10-02 04:49:20 UTC (rev 1183) +++ trunk/mlt/src/modules/avformat/consumer_avformat.c 2008-10-08 09:45:03 UTC (rev 1184) @@ -467,32 +467,43 @@ { c->sample_aspect_ratio.num = 10; c->sample_aspect_ratio.den = 11; + st->sample_aspect_ratio.num = 10; + st->sample_aspect_ratio.den = 11; } else if ( ar == 16.0/15.0 ) // 4:3 PAL { c->sample_aspect_ratio.num = 159; c->sample_aspect_ratio.den = 54; + st->sample_aspect_ratio.num = 159; + st->sample_aspect_ratio.den = 54; } else if ( ar == 32.0/27.0 ) // 16:9 NTSC { c->sample_aspect_ratio.num = 40; c->sample_aspect_ratio.den = 33; + st->sample_aspect_ratio.num = 40; + st->sample_aspect_ratio.den = 33; } else // 16:9 PAL { c->sample_aspect_ratio.num = 118; c->sample_aspect_ratio.den = 81; + st->sample_aspect_ratio.num = 118; + st->sample_aspect_ratio.den = 81; } } else if ( mlt_properties_get( properties, "aspect" ) ) { double ar = mlt_properties_get_double( properties, "aspect" ); c->sample_aspect_ratio = av_d2q( ar * c->height / c->width , 255); + st->sample_aspect_ratio = av_d2q( ar * c->height / c->width , 255); } else { c->sample_aspect_ratio.num = mlt_properties_get_int( properties, "sample_aspect_num" ); c->sample_aspect_ratio.den = mlt_properties_get_int( properties, "sample_aspect_den" ); + st->sample_aspect_ratio.num = mlt_properties_get_int( properties, "sample_aspect_num" ); + st->sample_aspect_ratio.den = mlt_properties_get_int( properties, "sample_aspect_den" ); } if ( mlt_properties_get_double( properties, "qscale" ) > 0 ) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <dde...@us...> - 2008-10-21 20:54:46
|
Revision: 1189 http://mlt.svn.sourceforge.net/mlt/?rev=1189&view=rev Author: ddennedy Date: 2008-10-21 20:54:36 +0000 (Tue, 21 Oct 2008) Log Message: ----------- consumer_avformat.c: fix build on older libavformat versions Modified Paths: -------------- trunk/mlt/src/modules/avformat/consumer_avformat.c Modified: trunk/mlt/src/modules/avformat/consumer_avformat.c =================================================================== --- trunk/mlt/src/modules/avformat/consumer_avformat.c 2008-10-20 23:26:39 UTC (rev 1188) +++ trunk/mlt/src/modules/avformat/consumer_avformat.c 2008-10-21 20:54:36 UTC (rev 1189) @@ -467,43 +467,55 @@ { c->sample_aspect_ratio.num = 10; c->sample_aspect_ratio.den = 11; +#if LIBAVFORMAT_VERSION_INT >= ((52<<16)+(21<<8)+0) st->sample_aspect_ratio.num = 10; st->sample_aspect_ratio.den = 11; +#endif } else if ( ar == 16.0/15.0 ) // 4:3 PAL { c->sample_aspect_ratio.num = 159; c->sample_aspect_ratio.den = 54; +#if LIBAVFORMAT_VERSION_INT >= ((52<<16)+(21<<8)+0) st->sample_aspect_ratio.num = 159; st->sample_aspect_ratio.den = 54; +#endif } else if ( ar == 32.0/27.0 ) // 16:9 NTSC { c->sample_aspect_ratio.num = 40; c->sample_aspect_ratio.den = 33; +#if LIBAVFORMAT_VERSION_INT >= ((52<<16)+(21<<8)+0) st->sample_aspect_ratio.num = 40; st->sample_aspect_ratio.den = 33; +#endif } else // 16:9 PAL { c->sample_aspect_ratio.num = 118; c->sample_aspect_ratio.den = 81; +#if LIBAVFORMAT_VERSION_INT >= ((52<<16)+(21<<8)+0) st->sample_aspect_ratio.num = 118; st->sample_aspect_ratio.den = 81; +#endif } } else if ( mlt_properties_get( properties, "aspect" ) ) { double ar = mlt_properties_get_double( properties, "aspect" ); c->sample_aspect_ratio = av_d2q( ar * c->height / c->width , 255); +#if LIBAVFORMAT_VERSION_INT >= ((52<<16)+(21<<8)+0) st->sample_aspect_ratio = av_d2q( ar * c->height / c->width , 255); +#endif } else { c->sample_aspect_ratio.num = mlt_properties_get_int( properties, "sample_aspect_num" ); c->sample_aspect_ratio.den = mlt_properties_get_int( properties, "sample_aspect_den" ); +#if LIBAVFORMAT_VERSION_INT >= ((52<<16)+(21<<8)+0) st->sample_aspect_ratio.num = mlt_properties_get_int( properties, "sample_aspect_num" ); st->sample_aspect_ratio.den = mlt_properties_get_int( properties, "sample_aspect_den" ); +#endif } if ( mlt_properties_get_double( properties, "qscale" ) > 0 ) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <dde...@us...> - 2008-10-21 21:03:59
|
Revision: 1190 http://mlt.svn.sourceforge.net/mlt/?rev=1190&view=rev Author: ddennedy Date: 2008-10-21 21:03:54 +0000 (Tue, 21 Oct 2008) Log Message: ----------- consumer_avformat.c: fix deprecated warning on av_set_string Modified Paths: -------------- trunk/mlt/src/modules/avformat/consumer_avformat.c Modified: trunk/mlt/src/modules/avformat/consumer_avformat.c =================================================================== --- trunk/mlt/src/modules/avformat/consumer_avformat.c 2008-10-21 20:54:36 UTC (rev 1189) +++ trunk/mlt/src/modules/avformat/consumer_avformat.c 2008-10-21 21:03:54 UTC (rev 1190) @@ -288,7 +288,11 @@ const char *opt_name = mlt_properties_get_name( properties, i ); const AVOption *opt = av_find_opt( obj, opt_name, NULL, flags, flags ); if ( opt != NULL ) +#if LIBAVCODEC_VERSION_INT >= ((51<<16)+(59<<8)+0) + av_set_string2( obj, opt_name, mlt_properties_get( properties, opt_name), 0 ); +#else av_set_string( obj, opt_name, mlt_properties_get( properties, opt_name) ); +#endif } } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <dde...@us...> - 2008-10-22 04:30:06
|
Revision: 1191 http://mlt.svn.sourceforge.net/mlt/?rev=1191&view=rev Author: ddennedy Date: 2008-10-22 04:30:04 +0000 (Wed, 22 Oct 2008) Log Message: ----------- consumer_avformat.c: - bugfix the handling of ffmpeg command line option aliases (-s and -aspect) so that they apply their results to the current profile as well. - added handling for ffmpeg command line option -r (frame rate) - cleanup previous commits for setting sample_aspect_ratio on AVStream Modified Paths: -------------- trunk/mlt/src/modules/avformat/consumer_avformat.c Modified: trunk/mlt/src/modules/avformat/consumer_avformat.c =================================================================== --- trunk/mlt/src/modules/avformat/consumer_avformat.c 2008-10-21 21:03:54 UTC (rev 1190) +++ trunk/mlt/src/modules/avformat/consumer_avformat.c 2008-10-22 04:30:04 UTC (rev 1191) @@ -221,8 +221,34 @@ } // Now ensure we honour the multiple of two requested by libavformat - mlt_properties_set_int( properties, "width", ( width / 2 ) * 2 ); - mlt_properties_set_int( properties, "height", ( height / 2 ) * 2 ); + width = ( width / 2 ) * 2; + height = ( height / 2 ) * 2; + mlt_properties_set_int( properties, "width", width ); + mlt_properties_set_int( properties, "height", height ); + + // We need to set these on the profile as well because the s property is + // an alias to mlt properties that correspond to profile settings. + mlt_profile profile = mlt_service_profile( MLT_CONSUMER_SERVICE( this ) ); + if ( profile ) + { + profile->width = width; + profile->height = height; + } + + // Handle the ffmpeg command line "-r" property for frame rate + if ( mlt_properties_get( properties, "r" ) ) + { + double frame_rate = mlt_properties_get_double( properties, "r" ); + AVRational rational = av_d2q( frame_rate, 255 ); + mlt_properties_set_int( properties, "frame_rate_num", rational.num ); + mlt_properties_set_int( properties, "frame_rate_den", rational.den ); + if ( profile ) + { + profile->frame_rate_num = rational.num; + profile->frame_rate_den = rational.den; + mlt_properties_set_double( properties, "fps", mlt_profile_fps( profile ) ); + } + } // Apply AVOptions that are synonyms for standard mlt_consumer options if ( mlt_properties_get( properties, "ac" ) ) @@ -288,7 +314,7 @@ const char *opt_name = mlt_properties_get_name( properties, i ); const AVOption *opt = av_find_opt( obj, opt_name, NULL, flags, flags ); if ( opt != NULL ) -#if LIBAVCODEC_VERSION_INT >= ((51<<16)+(59<<8)+0) +#if LIBAVCODEC_VERSION_INT >= ((51<<16)+(59<<8)+0) av_set_string2( obj, opt_name, mlt_properties_get( properties, opt_name), 0 ); #else av_set_string( obj, opt_name, mlt_properties_get( properties, opt_name) ); @@ -471,54 +497,77 @@ { c->sample_aspect_ratio.num = 10; c->sample_aspect_ratio.den = 11; -#if LIBAVFORMAT_VERSION_INT >= ((52<<16)+(21<<8)+0) - st->sample_aspect_ratio.num = 10; - st->sample_aspect_ratio.den = 11; +#if LIBAVFORMAT_VERSION_INT >= ((52<<16)+(21<<8)+0) + st->sample_aspect_ratio = c->sample_aspect_ratio; #endif } else if ( ar == 16.0/15.0 ) // 4:3 PAL { c->sample_aspect_ratio.num = 159; c->sample_aspect_ratio.den = 54; -#if LIBAVFORMAT_VERSION_INT >= ((52<<16)+(21<<8)+0) - st->sample_aspect_ratio.num = 159; - st->sample_aspect_ratio.den = 54; +#if LIBAVFORMAT_VERSION_INT >= ((52<<16)+(21<<8)+0) + st->sample_aspect_ratio = c->sample_aspect_ratio; #endif } else if ( ar == 32.0/27.0 ) // 16:9 NTSC { c->sample_aspect_ratio.num = 40; c->sample_aspect_ratio.den = 33; -#if LIBAVFORMAT_VERSION_INT >= ((52<<16)+(21<<8)+0) - st->sample_aspect_ratio.num = 40; - st->sample_aspect_ratio.den = 33; +#if LIBAVFORMAT_VERSION_INT >= ((52<<16)+(21<<8)+0) + st->sample_aspect_ratio = c->sample_aspect_ratio; #endif } else // 16:9 PAL { c->sample_aspect_ratio.num = 118; c->sample_aspect_ratio.den = 81; -#if LIBAVFORMAT_VERSION_INT >= ((52<<16)+(21<<8)+0) - st->sample_aspect_ratio.num = 118; - st->sample_aspect_ratio.den = 81; +#if LIBAVFORMAT_VERSION_INT >= ((52<<16)+(21<<8)+0) + st->sample_aspect_ratio = c->sample_aspect_ratio; #endif } } else if ( mlt_properties_get( properties, "aspect" ) ) { + // "-aspect" on ffmpeg command line is display aspect ratio double ar = mlt_properties_get_double( properties, "aspect" ); - c->sample_aspect_ratio = av_d2q( ar * c->height / c->width , 255); -#if LIBAVFORMAT_VERSION_INT >= ((52<<16)+(21<<8)+0) - st->sample_aspect_ratio = av_d2q( ar * c->height / c->width , 255); + AVRational rational = av_d2q( ar, 255 ); + + // Update the profile and properties as well since this is an alias + // for mlt properties that correspond to profile settings + mlt_properties_set_int( properties, "display_aspect_num", rational.num ); + mlt_properties_set_int( properties, "display_aspect_den", rational.den ); + mlt_profile profile = mlt_service_profile( MLT_CONSUMER_SERVICE( this ) ); + if ( profile ) + { + profile->display_aspect_num = rational.num; + profile->display_aspect_den = rational.den; + mlt_properties_set_double( properties, "display_ratio", mlt_profile_dar( profile ) ); + } + + // Now compute the sample aspect ratio + rational = av_d2q( ar * c->height / c->width, 255 ); + c->sample_aspect_ratio = rational; +#if LIBAVFORMAT_VERSION_INT >= ((52<<16)+(21<<8)+0) + st->sample_aspect_ratio = c->sample_aspect_ratio; #endif + // Update the profile and properties as well since this is an alias + // for mlt properties that correspond to profile settings + mlt_properties_set_int( properties, "sample_aspect_num", rational.num ); + mlt_properties_set_int( properties, "sample_aspect_den", rational.den ); + if ( profile ) + { + profile->sample_aspect_num = rational.num; + profile->sample_aspect_den = rational.den; + mlt_properties_set_double( properties, "aspect_ratio", mlt_profile_sar( profile ) ); + } + } else { c->sample_aspect_ratio.num = mlt_properties_get_int( properties, "sample_aspect_num" ); c->sample_aspect_ratio.den = mlt_properties_get_int( properties, "sample_aspect_den" ); -#if LIBAVFORMAT_VERSION_INT >= ((52<<16)+(21<<8)+0) - st->sample_aspect_ratio.num = mlt_properties_get_int( properties, "sample_aspect_num" ); - st->sample_aspect_ratio.den = mlt_properties_get_int( properties, "sample_aspect_den" ); +#if LIBAVFORMAT_VERSION_INT >= ((52<<16)+(21<<8)+0) + st->sample_aspect_ratio = c->sample_aspect_ratio; #endif } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <dde...@us...> - 2008-10-28 19:18:51
|
Revision: 1209 http://mlt.svn.sourceforge.net/mlt/?rev=1209&view=rev Author: ddennedy Date: 2008-10-28 19:18:47 +0000 (Tue, 28 Oct 2008) Log Message: ----------- producer_avformat.c: simplify recent commit to conform stream aspect to codec aspect and conform stream frame rate to codec frame rate Modified Paths: -------------- trunk/mlt/src/modules/avformat/consumer_avformat.c Modified: trunk/mlt/src/modules/avformat/consumer_avformat.c =================================================================== --- trunk/mlt/src/modules/avformat/consumer_avformat.c 2008-10-27 23:58:39 UTC (rev 1208) +++ trunk/mlt/src/modules/avformat/consumer_avformat.c 2008-10-28 19:18:47 UTC (rev 1209) @@ -482,6 +482,7 @@ c->height = mlt_properties_get_int( properties, "height" ); c->time_base.num = mlt_properties_get_int( properties, "frame_rate_den" ); c->time_base.den = mlt_properties_get_int( properties, "frame_rate_num" ); + st->time_base = c->time_base; c->pix_fmt = pix_fmt ? avcodec_get_pix_fmt( pix_fmt ) : PIX_FMT_YUV420P; if ( codec_id == CODEC_ID_DVVIDEO ) @@ -497,33 +498,21 @@ { c->sample_aspect_ratio.num = 10; c->sample_aspect_ratio.den = 11; -#if LIBAVFORMAT_VERSION_INT >= ((52<<16)+(21<<8)+0) - st->sample_aspect_ratio = c->sample_aspect_ratio; -#endif } else if ( ar == 16.0/15.0 ) // 4:3 PAL { c->sample_aspect_ratio.num = 159; c->sample_aspect_ratio.den = 54; -#if LIBAVFORMAT_VERSION_INT >= ((52<<16)+(21<<8)+0) - st->sample_aspect_ratio = c->sample_aspect_ratio; -#endif } else if ( ar == 32.0/27.0 ) // 16:9 NTSC { c->sample_aspect_ratio.num = 40; c->sample_aspect_ratio.den = 33; -#if LIBAVFORMAT_VERSION_INT >= ((52<<16)+(21<<8)+0) - st->sample_aspect_ratio = c->sample_aspect_ratio; -#endif } else // 16:9 PAL { c->sample_aspect_ratio.num = 118; c->sample_aspect_ratio.den = 81; -#if LIBAVFORMAT_VERSION_INT >= ((52<<16)+(21<<8)+0) - st->sample_aspect_ratio = c->sample_aspect_ratio; -#endif } } else if ( mlt_properties_get( properties, "aspect" ) ) @@ -547,9 +536,6 @@ // Now compute the sample aspect ratio rational = av_d2q( ar * c->height / c->width, 255 ); c->sample_aspect_ratio = rational; -#if LIBAVFORMAT_VERSION_INT >= ((52<<16)+(21<<8)+0) - st->sample_aspect_ratio = c->sample_aspect_ratio; -#endif // Update the profile and properties as well since this is an alias // for mlt properties that correspond to profile settings mlt_properties_set_int( properties, "sample_aspect_num", rational.num ); @@ -566,10 +552,10 @@ { c->sample_aspect_ratio.num = mlt_properties_get_int( properties, "sample_aspect_num" ); c->sample_aspect_ratio.den = mlt_properties_get_int( properties, "sample_aspect_den" ); + } #if LIBAVFORMAT_VERSION_INT >= ((52<<16)+(21<<8)+0) - st->sample_aspect_ratio = c->sample_aspect_ratio; + st->sample_aspect_ratio = c->sample_aspect_ratio; #endif - } if ( mlt_properties_get_double( properties, "qscale" ) > 0 ) { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <dde...@us...> - 2008-12-02 07:59:08
|
Revision: 1245 http://mlt.svn.sourceforge.net/mlt/?rev=1245&view=rev Author: ddennedy Date: 2008-12-02 07:59:03 +0000 (Tue, 02 Dec 2008) Log Message: ----------- consumer_avformat.c: clean up the dual pass log at the end of the second pass. Modified Paths: -------------- trunk/mlt/src/modules/avformat/consumer_avformat.c Modified: trunk/mlt/src/modules/avformat/consumer_avformat.c =================================================================== --- trunk/mlt/src/modules/avformat/consumer_avformat.c 2008-11-25 21:02:20 UTC (rev 1244) +++ trunk/mlt/src/modules/avformat/consumer_avformat.c 2008-12-02 07:59:03 UTC (rev 1245) @@ -31,6 +31,7 @@ #include <pthread.h> #include <sys/time.h> #include <math.h> +#include <unistd.h> // avformat header files #include <avformat.h> @@ -625,7 +626,7 @@ c->flags |= CODEC_FLAG_PASS1; else if ( i == 2 ) c->flags |= CODEC_FLAG_PASS2; - if ( c->flags & ( CODEC_FLAG_PASS1 | CODEC_FLAG_PASS2 ) ) + if ( codec_id != CODEC_ID_H264 && ( c->flags & ( CODEC_FLAG_PASS1 | CODEC_FLAG_PASS2 ) ) ) { char logfilename[1024]; FILE *f; @@ -652,6 +653,7 @@ } else { + mlt_properties_set( properties, "_logfilename", logfilename ); fseek( f, 0, SEEK_END ); size = ftell( f ); fseek( f, 0, SEEK_SET ); @@ -1310,6 +1312,28 @@ mlt_consumer_stopped( this ); + if ( mlt_properties_get_int( properties, "pass" ) == 2 ) + { + // Remove the dual pass log file + if ( mlt_properties_get( properties, "_logfilename" ) ) + remove( mlt_properties_get( properties, "_logfilename" ) ); + + // Remove the x264 dual pass logs + char *cwd = getcwd( NULL, 0 ); + char *file = "x264_2pass.log"; + char *full = malloc( strlen( cwd ) + strlen( file ) + 2 ); + sprintf( full, "%s/%s", cwd, file ); + remove( full ); + free( full ); + file = "x264_2pass.log.temp"; + full = malloc( strlen( cwd ) + strlen( file ) + 2 ); + sprintf( full, "%s/%s", cwd, file ); + remove( full ); + free( full ); + free( cwd ); + remove( "x264_2pass.log.temp" ); + } + return NULL; } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <dde...@us...> - 2008-12-26 05:15:47
|
Revision: 1287 http://mlt.svn.sourceforge.net/mlt/?rev=1287&view=rev Author: ddennedy Date: 2008-12-26 05:15:44 +0000 (Fri, 26 Dec 2008) Log Message: ----------- consumer_avformat.c: bugfix rendering to widescreen PAL DV. Modified Paths: -------------- trunk/mlt/src/modules/avformat/consumer_avformat.c Modified: trunk/mlt/src/modules/avformat/consumer_avformat.c =================================================================== --- trunk/mlt/src/modules/avformat/consumer_avformat.c 2008-12-22 05:27:56 UTC (rev 1286) +++ trunk/mlt/src/modules/avformat/consumer_avformat.c 2008-12-26 05:15:44 UTC (rev 1287) @@ -502,7 +502,7 @@ } else if ( ar == 16.0/15.0 ) // 4:3 PAL { - c->sample_aspect_ratio.num = 159; + c->sample_aspect_ratio.num = 59; c->sample_aspect_ratio.den = 54; } else if ( ar == 32.0/27.0 ) // 16:9 NTSC @@ -513,7 +513,7 @@ else // 16:9 PAL { c->sample_aspect_ratio.num = 118; - c->sample_aspect_ratio.den = 81; + c->sample_aspect_ratio.den = 82; } } else if ( mlt_properties_get( properties, "aspect" ) ) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <dde...@us...> - 2008-12-29 20:31:07
|
Revision: 1298 http://mlt.svn.sourceforge.net/mlt/?rev=1298&view=rev Author: ddennedy Date: 2008-12-29 20:31:04 +0000 (Mon, 29 Dec 2008) Log Message: ----------- consumer_avformat.c: further analysis and testing reveals the DV encoder does not need the special aspect ratio overrides. It expects a generic input. Only the DV decoder produces the special, proper aspect ratios for which MLT is not yet prepared. Modified Paths: -------------- trunk/mlt/src/modules/avformat/consumer_avformat.c Modified: trunk/mlt/src/modules/avformat/consumer_avformat.c =================================================================== --- trunk/mlt/src/modules/avformat/consumer_avformat.c 2008-12-28 23:35:06 UTC (rev 1297) +++ trunk/mlt/src/modules/avformat/consumer_avformat.c 2008-12-29 20:31:04 UTC (rev 1298) @@ -488,38 +488,8 @@ st->time_base = c->time_base; c->pix_fmt = pix_fmt ? avcodec_get_pix_fmt( pix_fmt ) : PIX_FMT_YUV420P; - if ( codec_id == CODEC_ID_DVVIDEO ) + if ( mlt_properties_get( properties, "aspect" ) ) { - // Compensate for FFmpeg's notion of DV aspect ratios, which are - // based upon a width of 704. Since we do not have a normaliser - // that crops (nor is cropping 720 wide ITU-R 601 video always desirable) - // we just coerce the values to facilitate a passive behaviour through - // the rescale normaliser when using equivalent producers and consumers. - // = display_aspect / (width * height) - double ar = mlt_properties_get_double( properties, "aspect_ratio" ); - if ( ar == 8.0/9.0 ) // 4:3 NTSC - { - c->sample_aspect_ratio.num = 10; - c->sample_aspect_ratio.den = 11; - } - else if ( ar == 16.0/15.0 ) // 4:3 PAL - { - c->sample_aspect_ratio.num = 59; - c->sample_aspect_ratio.den = 54; - } - else if ( ar == 32.0/27.0 ) // 16:9 NTSC - { - c->sample_aspect_ratio.num = 40; - c->sample_aspect_ratio.den = 33; - } - else // 16:9 PAL - { - c->sample_aspect_ratio.num = 118; - c->sample_aspect_ratio.den = 82; - } - } - else if ( mlt_properties_get( properties, "aspect" ) ) - { // "-aspect" on ffmpeg command line is display aspect ratio double ar = mlt_properties_get_double( properties, "aspect" ); AVRational rational = av_d2q( ar, 255 ); @@ -549,7 +519,6 @@ profile->sample_aspect_den = rational.den; mlt_properties_set_double( properties, "aspect_ratio", mlt_profile_sar( profile ) ); } - } else { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <dde...@us...> - 2009-01-06 05:32:57
|
Revision: 1306 http://mlt.svn.sourceforge.net/mlt/?rev=1306&view=rev Author: ddennedy Date: 2009-01-06 05:32:55 +0000 (Tue, 06 Jan 2009) Log Message: ----------- consumer_avformat.c: report list of muxers when f=list and codecs when acodec=list or vcodec=list. Modified Paths: -------------- trunk/mlt/src/modules/avformat/consumer_avformat.c Modified: trunk/mlt/src/modules/avformat/consumer_avformat.c =================================================================== --- trunk/mlt/src/modules/avformat/consumer_avformat.c 2009-01-06 05:30:36 UTC (rev 1305) +++ trunk/mlt/src/modules/avformat/consumer_avformat.c 2009-01-06 05:32:55 UTC (rev 1306) @@ -192,9 +192,44 @@ { // Get the properties mlt_properties properties = MLT_CONSUMER_PROPERTIES( this ); + int error = 0; + // Report information about available muxers and codecs as YAML Tiny + char *s = mlt_properties_get( properties, "f" ); + if ( s && strcmp( s, "list" ) == 0 ) + { + fprintf( stderr, "---\nformats:\n" ); + AVOutputFormat *format = NULL; + while ( ( format = av_oformat_next( format ) ) ) + fprintf( stderr, " - %s\n", format->name ); + fprintf( stderr, "...\n" ); + error = 1; + } + s = mlt_properties_get( properties, "acodec" ); + if ( s && strcmp( s, "list" ) == 0 ) + { + fprintf( stderr, "---\naudio_codecs:\n" ); + AVCodec *codec = NULL; + while ( ( codec = av_codec_next( codec ) ) ) + if ( codec->encode && codec->type == CODEC_TYPE_AUDIO ) + fprintf( stderr, " - %s\n", codec->name ); + fprintf( stderr, "...\n" ); + error = 1; + } + s = mlt_properties_get( properties, "vcodec" ); + if ( s && strcmp( s, "list" ) == 0 ) + { + fprintf( stderr, "---\nvideo_codecs:\n" ); + AVCodec *codec = NULL; + while ( ( codec = av_codec_next( codec ) ) ) + if ( codec->encode && codec->type == CODEC_TYPE_VIDEO ) + fprintf( stderr, " - %s\n", codec->name ); + fprintf( stderr, "...\n" ); + error = 1; + } + // Check that we're not already running - if ( !mlt_properties_get_int( properties, "running" ) ) + if ( !error && !mlt_properties_get_int( properties, "running" ) ) { // Allocate a thread pthread_t *thread = calloc( 1, sizeof( pthread_t ) ); @@ -266,7 +301,7 @@ // Create the thread pthread_create( thread, NULL, consumer_thread, this ); } - return 0; + return error; } /** Stop the consumer. This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <dde...@us...> - 2009-01-14 08:38:01
|
Revision: 1315 http://mlt.svn.sourceforge.net/mlt/?rev=1315&view=rev Author: ddennedy Date: 2009-01-14 08:37:56 +0000 (Wed, 14 Jan 2009) Log Message: ----------- consumer_avformat.c: add support for an=1, vn=1, acodec=none, and vcodec=none options (kdenlive-533) Modified Paths: -------------- trunk/mlt/src/modules/avformat/consumer_avformat.c Modified: trunk/mlt/src/modules/avformat/consumer_avformat.c =================================================================== --- trunk/mlt/src/modules/avformat/consumer_avformat.c 2009-01-13 06:22:58 UTC (rev 1314) +++ trunk/mlt/src/modules/avformat/consumer_avformat.c 2009-01-14 08:37:56 UTC (rev 1315) @@ -867,7 +867,9 @@ video_codec_id = fmt->video_codec; // Check for audio codec overides - if ( acodec != NULL ) + if ( ( acodec && strcmp( "acodec", "none" ) == 0 ) || mlt_properties_get_int( properties, "an" ) ) + audio_codec_id = CODEC_ID_NONE; + else if ( acodec ) { AVCodec *p = avcodec_find_encoder_by_name( acodec ); if ( p != NULL ) @@ -877,7 +879,9 @@ } // Check for video codec overides - if ( vcodec != NULL ) + if ( ( vcodec && strcmp( "vcodec", "none" ) == 0 ) || mlt_properties_get_int( properties, "vn" ) ) + video_codec_id = CODEC_ID_NONE; + else if ( vcodec ) { AVCodec *p = avcodec_find_encoder_by_name( vcodec ); if ( p != NULL ) @@ -915,9 +919,9 @@ snprintf( oc->filename, sizeof(oc->filename), "%s", filename ); // Add audio and video streams - if ( fmt->video_codec != CODEC_ID_NONE ) + if ( video_codec_id != CODEC_ID_NONE ) video_st = add_video_stream( this, oc, video_codec_id ); - if ( fmt->audio_codec != CODEC_ID_NONE ) + if ( audio_codec_id != CODEC_ID_NONE ) audio_st = add_audio_stream( this, oc, audio_codec_id ); // Set the parameters (even though we have none...) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <dde...@us...> - 2009-01-14 08:42:30
|
Revision: 1316 http://mlt.svn.sourceforge.net/mlt/?rev=1316&view=rev Author: ddennedy Date: 2009-01-14 08:42:23 +0000 (Wed, 14 Jan 2009) Log Message: ----------- consumer_avformat.c: bugfix (kdenlive-450) bad timestamps in MPEG-2 Transport Stream and possibly quite a few other formats. Modified Paths: -------------- trunk/mlt/src/modules/avformat/consumer_avformat.c Modified: trunk/mlt/src/modules/avformat/consumer_avformat.c =================================================================== --- trunk/mlt/src/modules/avformat/consumer_avformat.c 2009-01-14 08:37:56 UTC (rev 1315) +++ trunk/mlt/src/modules/avformat/consumer_avformat.c 2009-01-14 08:42:23 UTC (rev 1316) @@ -520,7 +520,8 @@ c->height = mlt_properties_get_int( properties, "height" ); c->time_base.num = mlt_properties_get_int( properties, "frame_rate_den" ); c->time_base.den = mlt_properties_get_int( properties, "frame_rate_num" ); - st->time_base = c->time_base; + if ( st->time_base.den == 0 ) + st->time_base = c->time_base; c->pix_fmt = pix_fmt ? avcodec_get_pix_fmt( pix_fmt ) : PIX_FMT_YUV420P; if ( mlt_properties_get( properties, "aspect" ) ) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: Jean-Michel P. <jm...@po...> - 2009-01-14 10:00:35
|
On Wed, 2009-01-14 at 08:42 +0000, dde...@us... wrote: > consumer_avformat.c: bugfix (kdenlive-450) bad timestamps in MPEG-2 > Transport Stream and possibly quite a few other formats. Thank you very much for this fix. I will test and report back. Kind regards, Jean-Michel |
From: <dde...@us...> - 2009-01-14 08:54:32
|
Revision: 1317 http://mlt.svn.sourceforge.net/mlt/?rev=1317&view=rev Author: ddennedy Date: 2009-01-14 08:54:26 +0000 (Wed, 14 Jan 2009) Log Message: ----------- consumer_avformat.c: set consumer buffer prefill to 1 by default. Modified Paths: -------------- trunk/mlt/src/modules/avformat/consumer_avformat.c Modified: trunk/mlt/src/modules/avformat/consumer_avformat.c =================================================================== --- trunk/mlt/src/modules/avformat/consumer_avformat.c 2009-01-14 08:42:23 UTC (rev 1316) +++ trunk/mlt/src/modules/avformat/consumer_avformat.c 2009-01-14 08:54:26 UTC (rev 1317) @@ -174,6 +174,7 @@ // Default to separate processing threads for producer and consumer with no frame dropping! mlt_properties_set_int( properties, "real_time", -1 ); + mlt_properties_set_int( properties, "prefill", 1 ); // Set up start/stop/terminated callbacks this->start = consumer_start; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <dde...@us...> - 2009-04-09 07:14:27
|
Revision: 1384 http://mlt.svn.sourceforge.net/mlt/?rev=1384&view=rev Author: ddennedy Date: 2009-04-09 07:14:23 +0000 (Thu, 09 Apr 2009) Log Message: ----------- consumer_avformat: bugfix (kdenlive-677) to make interlaced coding automatic if profile is not progressive and coding not explicit by ildct and ilme properties. Modified Paths: -------------- trunk/mlt/src/modules/avformat/consumer_avformat.c Modified: trunk/mlt/src/modules/avformat/consumer_avformat.c =================================================================== --- trunk/mlt/src/modules/avformat/consumer_avformat.c 2009-04-05 17:32:38 UTC (rev 1383) +++ trunk/mlt/src/modules/avformat/consumer_avformat.c 2009-04-09 07:14:23 UTC (rev 1384) @@ -597,9 +597,9 @@ if ( mlt_properties_get_int( properties, "progressive" ) == 0 && mlt_properties_get_int( properties, "deinterlace" ) == 0 ) { - if ( mlt_properties_get_int( properties, "ildct" ) ) + if ( ! mlt_properties_get( properties, "ildct" ) || mlt_properties_get_int( properties, "ildct" ) ) c->flags |= CODEC_FLAG_INTERLACED_DCT; - if ( mlt_properties_get_int( properties, "ilme" ) ) + if ( ! mlt_properties_get( properties, "ilme" ) || mlt_properties_get_int( properties, "ilme" ) ) c->flags |= CODEC_FLAG_INTERLACED_ME; } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |