From 2cffe38df3df8ee1ec0fea0b2a2d3fed6e75da0d Mon Sep 17 00:00:00 2001 From: "Ronald S. Bultje" Date: Sun, 3 Mar 2013 08:23:08 -0800 Subject: [PATCH] Deprecate deinterlaced in libavcodec. Signed-off-by: Michael Niedermayer --- ffmpeg.c | 4 ++-- ffmpeg_opt.c | 4 ++++ libavcodec/avcodec.h | 3 +++ libavcodec/imgconvert.c | 4 ++++ libavcodec/version.h | 3 +++ 5 files changed, 16 insertions(+), 2 deletions(-) diff --git a/ffmpeg.c b/ffmpeg.c index 04a8457edb..229a8964af 100644 --- a/ffmpeg.c +++ b/ffmpeg.c @@ -691,7 +691,7 @@ static void pre_process_video_frame(InputStream *ist, AVPicture *picture, void * dec = ist->st->codec; /* deinterlace : must be done before any resize */ - if (do_deinterlace) { + if (FF_API_DEINTERLACE && do_deinterlace) { int size; /* create temporary picture */ @@ -1956,7 +1956,7 @@ static int init_input_stream(int ist_index, char *error, int error_len) return AVERROR(EINVAL); } - ist->dr1 = (codec->capabilities & CODEC_CAP_DR1) && !do_deinterlace; + ist->dr1 = (codec->capabilities & CODEC_CAP_DR1) && !(FF_API_DEINTERLACE && do_deinterlace); if (codec->type == AVMEDIA_TYPE_VIDEO && ist->dr1) { ist->st->codec->get_buffer = codec_get_buffer; ist->st->codec->release_buffer = codec_release_buffer; diff --git a/ffmpeg_opt.c b/ffmpeg_opt.c index 8d198f82de..89aee67fef 100644 --- a/ffmpeg_opt.c +++ b/ffmpeg_opt.c @@ -2128,12 +2128,14 @@ static int opt_vsync(void *optctx, const char *opt, const char *arg) return 0; } +#if FF_API_DEINTERLACE static int opt_deinterlace(void *optctx, const char *opt, const char *arg) { av_log(NULL, AV_LOG_WARNING, "-%s is deprecated, use -filter:v yadif instead\n", opt); do_deinterlace = 1; return 0; } +#endif static int opt_timecode(void *optctx, const char *opt, const char *arg) { @@ -2521,8 +2523,10 @@ const OptionDef options[] = { "select the pass number (1 to 3)", "n" }, { "passlogfile", OPT_VIDEO | HAS_ARG | OPT_STRING | OPT_EXPERT | OPT_SPEC, { .off = OFFSET(passlogfiles) }, "select two pass log file name prefix", "prefix" }, +#if FF_API_DEINTERLACE { "deinterlace", OPT_VIDEO | OPT_EXPERT , { .func_arg = opt_deinterlace }, "this option is deprecated, use the yadif filter instead" }, +#endif { "psnr", OPT_VIDEO | OPT_BOOL | OPT_EXPERT, { &do_psnr }, "calculate PSNR of compressed frames" }, { "vstats", OPT_VIDEO | OPT_EXPERT , { &opt_vstats }, diff --git a/libavcodec/avcodec.h b/libavcodec/avcodec.h index f809e3de7f..c27a603a9b 100644 --- a/libavcodec/avcodec.h +++ b/libavcodec/avcodec.h @@ -4618,7 +4618,10 @@ int avpicture_get_size(enum AVPixelFormat pix_fmt, int width, int height); /** * deinterlace - if not supported return -1 + * + * @deprecated - use yadif (in lavfilter) instead */ +attribute_deprecated int avpicture_deinterlace(AVPicture *dst, const AVPicture *src, enum AVPixelFormat pix_fmt, int width, int height); /** diff --git a/libavcodec/imgconvert.c b/libavcodec/imgconvert.c index 7b5be5ccd2..6c3bb368ec 100644 --- a/libavcodec/imgconvert.c +++ b/libavcodec/imgconvert.c @@ -492,6 +492,8 @@ int av_picture_pad(AVPicture *dst, const AVPicture *src, int height, int width, return 0; } +#if FF_API_DEINTERLACE + #if !HAVE_MMX_EXTERNAL /* filter parameters: [-1 4 2 4 -1] // 8 */ static void deinterlace_line_c(uint8_t *dst, @@ -651,6 +653,8 @@ int avpicture_deinterlace(AVPicture *dst, const AVPicture *src, return 0; } +#endif /* FF_API_DEINTERLACE */ + #ifdef TEST int main(void){ diff --git a/libavcodec/version.h b/libavcodec/version.h index dceeaa47e5..f2cc5d19e2 100644 --- a/libavcodec/version.h +++ b/libavcodec/version.h @@ -106,5 +106,8 @@ #ifndef FF_API_IDCT #define FF_API_IDCT (LIBAVCODEC_VERSION_MAJOR < 55) #endif +#ifndef FF_API_DEINTERLACE +#define FF_API_DEINTERLACE (LIBAVCODEC_VERSION_MAJOR < 55) +#endif #endif /* AVCODEC_VERSION_H */