Commit f2f8632a authored by Michael Niedermayer's avatar Michael Niedermayer

ffmpeg: Check that frames are user type before treating them as such

Signed-off-by: 's avatarMichael Niedermayer <michaelni@gmx.at>
parent 80d2ddda
...@@ -573,6 +573,9 @@ static void codec_release_buffer(AVCodecContext *s, AVFrame *frame) ...@@ -573,6 +573,9 @@ static void codec_release_buffer(AVCodecContext *s, AVFrame *frame)
FrameBuffer *buf = frame->opaque; FrameBuffer *buf = frame->opaque;
int i; int i;
if(frame->type!=FF_BUFFER_TYPE_USER)
return avcodec_default_release_buffer(s, frame);
for (i = 0; i < FF_ARRAY_ELEMS(frame->data); i++) for (i = 0; i < FF_ARRAY_ELEMS(frame->data); i++)
frame->data[i] = NULL; frame->data[i] = NULL;
...@@ -2051,7 +2054,7 @@ static int transcode_video(InputStream *ist, AVPacket *pkt, int *got_output, int ...@@ -2051,7 +2054,7 @@ static int transcode_video(InputStream *ist, AVPacket *pkt, int *got_output, int
if (!frame_sample_aspect->num) if (!frame_sample_aspect->num)
*frame_sample_aspect = ist->st->sample_aspect_ratio; *frame_sample_aspect = ist->st->sample_aspect_ratio;
decoded_frame->pts = ist->pts; decoded_frame->pts = ist->pts;
if (ist->dr1) { if (ist->dr1 && decoded_frame->type==FF_BUFFER_TYPE_USER) {
FrameBuffer *buf = decoded_frame->opaque; FrameBuffer *buf = decoded_frame->opaque;
AVFilterBufferRef *fb = avfilter_get_video_buffer_ref_from_arrays( AVFilterBufferRef *fb = avfilter_get_video_buffer_ref_from_arrays(
decoded_frame->data, decoded_frame->linesize, decoded_frame->data, decoded_frame->linesize,
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment