X-Git-Url: http://git.cinelerra-gg.org/git/?a=blobdiff_plain;ds=sidebyside;f=cinelerra-5.1%2Fcinelerra%2Fffmpeg.C;h=541c5f0a4cd0bc4a4ec809408e930076ad2f1177;hb=d684013dedfefefcb8ca4bbea527382c91521532;hp=ac85cccde78fd3e12d881517040888835ea56734;hpb=c6f91f271145ad9cd637f6b8f1560146178d3d41;p=goodguy%2Fhistory.git diff --git a/cinelerra-5.1/cinelerra/ffmpeg.C b/cinelerra-5.1/cinelerra/ffmpeg.C index ac85cccd..541c5f0a 100644 --- a/cinelerra-5.1/cinelerra/ffmpeg.C +++ b/cinelerra-5.1/cinelerra/ffmpeg.C @@ -33,6 +33,12 @@ #include "mwindow.h" #include "vframe.h" +#ifdef FFMPEG3 +#define url filename +#else +#define av_register_all(s) +#define avfilter_register_all(s) +#endif #define VIDEO_INBUF_SIZE 0x10000 #define AUDIO_INBUF_SIZE 0x10000 @@ -1615,7 +1621,7 @@ void FFMPEG::scan_video_options(Asset *asset, EDL *edl) AVCodec *av_codec = !get_codec(video_codec, "video", asset->vcodec) ? avcodec_find_encoder_by_name(video_codec) : 0; if( av_codec && av_codec->pix_fmts ) { - if( edl ) { + if( 0 && edl ) { // frequently picks a bad answer int color_model = edl->session->color_model; int max_bits = BC_CModels::calculate_pixelsize(color_model) * 8; max_bits /= BC_CModels::components(color_model); @@ -1925,6 +1931,7 @@ int FFMPEG::info(char *text, int len) int FFMPEG::init_decoder(const char *filename) { ff_lock("FFMPEG::init_decoder"); + av_register_all(); char file_opts[BCTEXTLEN]; char *bp = strrchr(strcpy(file_opts, filename), '/'); char *sp = strrchr(!bp ? file_opts : bp, '.'); @@ -2070,6 +2077,7 @@ int FFMPEG::init_encoder(const char *filename) return 1; } ff_lock("FFMPEG::init_encoder"); + av_register_all(); char format[BCSTRLEN]; if( get_format(format, "format", file_format) ) strcpy(format, file_format); @@ -2103,7 +2111,9 @@ int FFMPEG::open_encoder(const char *type, const char *spec) return 1; } +#ifdef HAVE_DV if( !strcmp(codec_name, CODEC_TAG_DVSD) ) strcpy(codec_name, "dv"); +#endif else if( !strcmp(codec_name, CODEC_TAG_MJPEG) ) strcpy(codec_name, "mjpeg"); else if( !strcmp(codec_name, CODEC_TAG_JPEG) ) strcpy(codec_name, "jpeg"); @@ -2856,6 +2866,7 @@ int FFMPEG::ff_cpus() int FFVideoStream::create_filter(const char *filter_spec, AVCodecParameters *avpar) { + avfilter_register_all(); const char *sp = filter_spec; char filter_name[BCSTRLEN], *np = filter_name; int i = sizeof(filter_name); @@ -2896,6 +2907,7 @@ int FFVideoStream::create_filter(const char *filter_spec, AVCodecParameters *avp int FFAudioStream::create_filter(const char *filter_spec, AVCodecParameters *avpar) { + avfilter_register_all(); const char *sp = filter_spec; char filter_name[BCSTRLEN], *np = filter_name; int i = sizeof(filter_name);