qpeg: use reget_buffer() in decode_frame()

Decoder relies on previous frame data, so use reget_buffer().

This also set frame->reference to 3, as the frame will be requested
unmodified later so it shouldn't be modified by the application.

Fix playback of file Clock.avi.

Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
pull/2/head
Stefano Sabatini 14 years ago committed by Ronald S. Bultje
parent 4f0b80599a
commit f4e043ff63
  1. 9
      libavcodec/qpeg.c

@ -259,12 +259,9 @@ static int decode_frame(AVCodecContext *avctx,
int delta;
const uint8_t *pal = av_packet_get_side_data(avpkt, AV_PKT_DATA_PALETTE, NULL);
if(p->data[0])
avctx->release_buffer(avctx, p);
p->reference= 0;
if(avctx->get_buffer(avctx, p) < 0){
av_log(avctx, AV_LOG_ERROR, "get_buffer() failed\n");
p->reference = 3;
if (avctx->reget_buffer(avctx, p) < 0) {
av_log(avctx, AV_LOG_ERROR, "reget_buffer() failed\n");
return -1;
}
outdata = a->pic.data[0];

Loading…
Cancel
Save