Browse Source

Reuse vp3_decode_flush instead of duplicating it.

This also fixes that sometimes a frame would actually not be freed.

Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
tags/n0.9
Reimar Döffinger 13 years ago
parent
commit
6f5b4ce612
1 changed files with 3 additions and 6 deletions
  1. +3
    -6
      libavcodec/vp3.c

+ 3
- 6
libavcodec/vp3.c View File

@@ -1980,6 +1980,8 @@ error:
return -1;
}

static void vp3_decode_flush(AVCodecContext *avctx);

/*
* This is the ffmpeg/libavcodec API module cleanup function.
*/
@@ -2017,12 +2019,7 @@ static av_cold int vp3_decode_end(AVCodecContext *avctx)
free_vlc(&s->motion_vector_vlc);

/* release all frames */
if (s->golden_frame.data[0])
ff_thread_release_buffer(avctx, &s->golden_frame);
if (s->last_frame.data[0] && s->last_frame.type != FF_BUFFER_TYPE_COPY)
ff_thread_release_buffer(avctx, &s->last_frame);
/* no need to release the current_frame since it will always be pointing
* to the same frame as either the golden or last frame */
vp3_decode_flush(avctx);

return 0;
}


Loading…
Cancel
Save