avconv: do not use lavfi direct rendering with -deinterlace

-deinterlace allocates a temporary buffer that is freed immediately
after the frame is sent to lavfi, which results in use after free.

Disable direct rendering when -deinterlace is used.

CC:libav-stable@libav.org
Bug-id: 479
This commit is contained in:
Anton Khirnov 2013-08-04 18:57:39 +02:00
parent c2c9b7297f
commit 3f5824aa18

View File

@ -1215,7 +1215,7 @@ static int decode_video(InputStream *ist, AVPacket *pkt, int *got_output)
}
for (i = 0; i < ist->nb_filters; i++) {
if (ist->st->codec->codec->capabilities & CODEC_CAP_DR1) {
if (ist->st->codec->codec->capabilities & CODEC_CAP_DR1 && !do_deinterlace) {
FrameBuffer *buf = decoded_frame->opaque;
AVFilterBufferRef *fb = avfilter_get_video_buffer_ref_from_arrays(
decoded_frame->data, decoded_frame->linesize,