It is incompatible with refcounted frames and since it's been deprecated for a long time now, fixing it is not worth the effort.tags/n2.0
| @@ -17,6 +17,7 @@ version 10: | |||||
| - avconv -t and -ss (output-only) options are now sample-accurate when | - avconv -t and -ss (output-only) options are now sample-accurate when | ||||
| transcoding audio | transcoding audio | ||||
| - Matroska muxer can now put the index at the beginning of the file. | - Matroska muxer can now put the index at the beginning of the file. | ||||
| - avconv -deinterlace option removed, the yadif filter should be used instead | |||||
| version 9: | version 9: | ||||
| @@ -422,47 +422,6 @@ static void do_audio_out(AVFormatContext *s, OutputStream *ost, | |||||
| } | } | ||||
| } | } | ||||
| #if FF_API_DEINTERLACE | |||||
| static void pre_process_video_frame(InputStream *ist, AVPicture *picture, void **bufp) | |||||
| { | |||||
| AVCodecContext *dec; | |||||
| AVPicture *picture2; | |||||
| AVPicture picture_tmp; | |||||
| uint8_t *buf = 0; | |||||
| dec = ist->st->codec; | |||||
| /* deinterlace : must be done before any resize */ | |||||
| if (do_deinterlace) { | |||||
| int size; | |||||
| /* create temporary picture */ | |||||
| size = avpicture_get_size(dec->pix_fmt, dec->width, dec->height); | |||||
| buf = av_malloc(size); | |||||
| if (!buf) | |||||
| return; | |||||
| picture2 = &picture_tmp; | |||||
| avpicture_fill(picture2, buf, dec->pix_fmt, dec->width, dec->height); | |||||
| if (avpicture_deinterlace(picture2, picture, | |||||
| dec->pix_fmt, dec->width, dec->height) < 0) { | |||||
| /* if error, do not deinterlace */ | |||||
| av_log(NULL, AV_LOG_WARNING, "Deinterlacing failed\n"); | |||||
| av_free(buf); | |||||
| buf = NULL; | |||||
| picture2 = picture; | |||||
| } | |||||
| } else { | |||||
| picture2 = picture; | |||||
| } | |||||
| if (picture != picture2) | |||||
| *picture = *picture2; | |||||
| *bufp = buf; | |||||
| } | |||||
| #endif | |||||
| static void do_subtitle_out(AVFormatContext *s, | static void do_subtitle_out(AVFormatContext *s, | ||||
| OutputStream *ost, | OutputStream *ost, | ||||
| InputStream *ist, | InputStream *ist, | ||||
| @@ -1193,9 +1152,6 @@ static int decode_video(InputStream *ist, AVPacket *pkt, int *got_output) | |||||
| decoded_frame->pts = guess_correct_pts(&ist->pts_ctx, decoded_frame->pkt_pts, | decoded_frame->pts = guess_correct_pts(&ist->pts_ctx, decoded_frame->pkt_pts, | ||||
| decoded_frame->pkt_dts); | decoded_frame->pkt_dts); | ||||
| pkt->size = 0; | pkt->size = 0; | ||||
| #if FF_API_DEINTERLACE | |||||
| pre_process_video_frame(ist, (AVPicture *)decoded_frame, &buffer_to_free); | |||||
| #endif | |||||
| if (ist->st->sample_aspect_ratio.num) | if (ist->st->sample_aspect_ratio.num) | ||||
| decoded_frame->sample_aspect_ratio = ist->st->sample_aspect_ratio; | decoded_frame->sample_aspect_ratio = ist->st->sample_aspect_ratio; | ||||
| @@ -61,7 +61,6 @@ float dts_delta_threshold = 10; | |||||
| int audio_volume = 256; | int audio_volume = 256; | ||||
| int audio_sync_method = 0; | int audio_sync_method = 0; | ||||
| int video_sync_method = VSYNC_AUTO; | int video_sync_method = VSYNC_AUTO; | ||||
| int do_deinterlace = 0; | |||||
| int do_benchmark = 0; | int do_benchmark = 0; | ||||
| int do_hex_dump = 0; | int do_hex_dump = 0; | ||||
| int do_pkt_dump = 0; | int do_pkt_dump = 0; | ||||
| @@ -1864,15 +1863,6 @@ static int opt_vsync(void *optctx, const char *opt, const char *arg) | |||||
| return 0; | 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 | |||||
| int opt_cpuflags(void *optctx, const char *opt, const char *arg) | int opt_cpuflags(void *optctx, const char *opt, const char *arg) | ||||
| { | { | ||||
| int flags = av_parse_cpu_flags(arg); | int flags = av_parse_cpu_flags(arg); | ||||
| @@ -2255,10 +2245,6 @@ const OptionDef options[] = { | |||||
| { "passlogfile", OPT_VIDEO | HAS_ARG | OPT_STRING | OPT_EXPERT | OPT_SPEC | | { "passlogfile", OPT_VIDEO | HAS_ARG | OPT_STRING | OPT_EXPERT | OPT_SPEC | | ||||
| OPT_OUTPUT, { .off = OFFSET(passlogfiles) }, | OPT_OUTPUT, { .off = OFFSET(passlogfiles) }, | ||||
| "select two pass log file name prefix", "prefix" }, | "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 | |||||
| { "vstats", OPT_VIDEO | OPT_EXPERT , { &opt_vstats }, | { "vstats", OPT_VIDEO | OPT_EXPERT , { &opt_vstats }, | ||||
| "dump video coding statistics to file" }, | "dump video coding statistics to file" }, | ||||
| { "vstats_file", OPT_VIDEO | HAS_ARG | OPT_EXPERT , { opt_vstats_file }, | { "vstats_file", OPT_VIDEO | HAS_ARG | OPT_EXPERT , { opt_vstats_file }, | ||||
| @@ -521,10 +521,6 @@ Discard threshold. | |||||
| @item -rc_override[:@var{stream_specifier}] @var{override} (@emph{output,per-stream}) | @item -rc_override[:@var{stream_specifier}] @var{override} (@emph{output,per-stream}) | ||||
| rate control override for specific intervals | rate control override for specific intervals | ||||
| @item -deinterlace | |||||
| Deinterlace pictures. | |||||
| This option is deprecated since the deinterlacing is very low quality. | |||||
| Use the yadif filter with @code{-filter:v yadif}. | |||||
| @item -vstats | @item -vstats | ||||
| Dump video coding statistics to @file{vstats_HHMMSS.log}. | Dump video coding statistics to @file{vstats_HHMMSS.log}. | ||||
| @item -vstats_file @var{file} | @item -vstats_file @var{file} | ||||