Commit 10ae4bb4 authored by Kostya Shishkov's avatar Kostya Shishkov
Browse files

Get new buffer during frame decoding in VB video decoder, not only once

during decoder initialization.

Originally committed as revision 19121 to svn://svn.ffmpeg.org/ffmpeg/trunk
parent e72c65f5
...@@ -185,6 +185,14 @@ static int decode_frame(AVCodecContext *avctx, void *data, int *data_size, AVPac ...@@ -185,6 +185,14 @@ static int decode_frame(AVCodecContext *avctx, void *data, int *data_size, AVPac
int rest = buf_size; int rest = buf_size;
int offset = 0; int offset = 0;
if(c->pic.data[0])
avctx->release_buffer(avctx, &c->pic);
c->pic.reference = 1;
if(avctx->get_buffer(avctx, &c->pic) < 0){
av_log(avctx, AV_LOG_ERROR, "get_buffer() failed\n");
return -1;
}
c->stream = buf; c->stream = buf;
flags = bytestream_get_le16(&c->stream); flags = bytestream_get_le16(&c->stream);
rest -= 2; rest -= 2;
...@@ -247,12 +255,6 @@ static av_cold int decode_init(AVCodecContext *avctx) ...@@ -247,12 +255,6 @@ static av_cold int decode_init(AVCodecContext *avctx)
return -1; return -1;
} }
c->pic.reference = 1;
if(avctx->get_buffer(avctx, &c->pic) < 0){
av_log(avctx, AV_LOG_ERROR, "get_buffer() failed\n");
return -1;
}
c->frame = av_malloc( avctx->width * avctx->height); c->frame = av_malloc( avctx->width * avctx->height);
c->prev_frame = av_malloc( avctx->width * avctx->height); c->prev_frame = av_malloc( avctx->width * avctx->height);
......
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