mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2024-12-23 12:43:46 +02:00
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>
This commit is contained in:
parent
4f0b80599a
commit
f4e043ff63
@ -259,12 +259,9 @@ static int decode_frame(AVCodecContext *avctx,
|
|||||||
int delta;
|
int delta;
|
||||||
const uint8_t *pal = av_packet_get_side_data(avpkt, AV_PKT_DATA_PALETTE, NULL);
|
const uint8_t *pal = av_packet_get_side_data(avpkt, AV_PKT_DATA_PALETTE, NULL);
|
||||||
|
|
||||||
if(p->data[0])
|
p->reference = 3;
|
||||||
avctx->release_buffer(avctx, p);
|
if (avctx->reget_buffer(avctx, p) < 0) {
|
||||||
|
av_log(avctx, AV_LOG_ERROR, "reget_buffer() failed\n");
|
||||||
p->reference= 0;
|
|
||||||
if(avctx->get_buffer(avctx, p) < 0){
|
|
||||||
av_log(avctx, AV_LOG_ERROR, "get_buffer() failed\n");
|
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
outdata = a->pic.data[0];
|
outdata = a->pic.data[0];
|
||||||
|
Loading…
Reference in New Issue
Block a user