mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2024-12-23 12:43:46 +02:00
indeo3: release buffer before calling decode_plane
This commit is contained in:
parent
b02116cc4a
commit
20ac916e6d
@ -1084,6 +1084,9 @@ static int decode_frame(AVCodecContext *avctx, void *data, int *data_size,
|
|||||||
/* use BS_BUFFER flag for buffer switching */
|
/* use BS_BUFFER flag for buffer switching */
|
||||||
ctx->buf_sel = (ctx->frame_flags >> BS_BUFFER) & 1;
|
ctx->buf_sel = (ctx->frame_flags >> BS_BUFFER) & 1;
|
||||||
|
|
||||||
|
if (ctx->frame.data[0])
|
||||||
|
avctx->release_buffer(avctx, &ctx->frame);
|
||||||
|
|
||||||
/* decode luma plane */
|
/* decode luma plane */
|
||||||
if ((res = decode_plane(ctx, avctx, ctx->planes, ctx->y_data_ptr, ctx->y_data_size, 40)))
|
if ((res = decode_plane(ctx, avctx, ctx->planes, ctx->y_data_ptr, ctx->y_data_size, 40)))
|
||||||
return res;
|
return res;
|
||||||
@ -1095,9 +1098,6 @@ static int decode_frame(AVCodecContext *avctx, void *data, int *data_size,
|
|||||||
if ((res = decode_plane(ctx, avctx, &ctx->planes[2], ctx->v_data_ptr, ctx->v_data_size, 10)))
|
if ((res = decode_plane(ctx, avctx, &ctx->planes[2], ctx->v_data_ptr, ctx->v_data_size, 10)))
|
||||||
return res;
|
return res;
|
||||||
|
|
||||||
if (ctx->frame.data[0])
|
|
||||||
avctx->release_buffer(avctx, &ctx->frame);
|
|
||||||
|
|
||||||
ctx->frame.reference = 0;
|
ctx->frame.reference = 0;
|
||||||
if ((res = avctx->get_buffer(avctx, &ctx->frame)) < 0) {
|
if ((res = avctx->get_buffer(avctx, &ctx->frame)) < 0) {
|
||||||
av_log(ctx->avctx, AV_LOG_ERROR, "get_buffer() failed\n");
|
av_log(ctx->avctx, AV_LOG_ERROR, "get_buffer() failed\n");
|
||||||
|
Loading…
Reference in New Issue
Block a user