[FFmpeg-devel] [PATCH] CSCD: must use reget_buffer.
Reimar Döffinger
Reimar.Doeffinger at gmx.de
Tue May 8 19:21:50 CEST 2012
Using release_buffer and get_buffer as currently might
not prefer the previous frame contents which the
decoder relies on.
This leads to horrible playback in players using direct
rendering like MPlayer.
Signed-off-by: Reimar Döffinger <Reimar.Doeffinger at gmx.de>
---
libavcodec/cscd.c | 4 +---
1 file changed, 1 insertion(+), 3 deletions(-)
diff --git a/libavcodec/cscd.c b/libavcodec/cscd.c
index 01abeda..b0b4893 100644
--- a/libavcodec/cscd.c
+++ b/libavcodec/cscd.c
@@ -72,12 +72,10 @@ static int decode_frame(AVCodecContext *avctx, void *data, int *data_size,
return -1;
}
- if (c->pic.data[0])
- avctx->release_buffer(avctx, &c->pic);
c->pic.reference = 3;
c->pic.buffer_hints = FF_BUFFER_HINTS_VALID | FF_BUFFER_HINTS_READABLE |
FF_BUFFER_HINTS_PRESERVE | FF_BUFFER_HINTS_REUSABLE;
- if (avctx->get_buffer(avctx, &c->pic) < 0) {
+ if (avctx->reget_buffer(avctx, &c->pic) < 0) {
av_log(avctx, AV_LOG_ERROR, "get_buffer() failed\n");
return -1;
}
--
1.7.10
More information about the ffmpeg-devel
mailing list