[FFmpeg-cvslog] qpeg: use reget_buffer() in decode_frame()
Stefano Sabatini
git at videolan.org
Thu Apr 28 04:28:30 CEST 2011
ffmpeg | branch: master | Stefano Sabatini <stefano.sabatini-lala at poste.it> | Tue Apr 26 11:51:50 2011 +0200| [f4e043ff63935a71b98a36bc98b501c36ceadb92] | committer: Ronald S. Bultje
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 at gmail.com>
> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=f4e043ff63935a71b98a36bc98b501c36ceadb92
---
libavcodec/qpeg.c | 9 +++------
1 files changed, 3 insertions(+), 6 deletions(-)
diff --git a/libavcodec/qpeg.c b/libavcodec/qpeg.c
index c96184f..5dd2a2d 100644
--- a/libavcodec/qpeg.c
+++ b/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];
More information about the ffmpeg-cvslog
mailing list