Skip to content
Snippets Groups Projects
Commit 282ee4e7 authored by Mike Melanson's avatar Mike Melanson
Browse files

fix the WC3 Xan decoder by correcting the frame accounting logic

Originally committed as revision 12326 to svn://svn.ffmpeg.org/ffmpeg/trunk
parent 56adc695
No related branches found
No related tags found
No related merge requests found
......@@ -435,12 +435,12 @@ static int xan_decode_frame(AVCodecContext *avctx,
if (s->last_frame.data[0])
avctx->release_buffer(avctx, &s->last_frame);
/* shuffle frames */
s->last_frame = s->current_frame;
*data_size = sizeof(AVFrame);
*(AVFrame*)data = s->current_frame;
/* shuffle frames */
FFSWAP(AVFrame, s->current_frame, s->last_frame);
/* always report that the buffer was completely consumed */
return buf_size;
}
......@@ -449,9 +449,11 @@ static int xan_decode_end(AVCodecContext *avctx)
{
XanContext *s = avctx->priv_data;
/* release the last frame */
/* release the frames */
if (s->last_frame.data[0])
avctx->release_buffer(avctx, &s->last_frame);
if (s->current_frame.data[0])
avctx->release_buffer(avctx, &s->current_frame);
av_free(s->buffer1);
av_free(s->buffer2);
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment