if (buf_size < 2) //Minimally a end of picture code should be there
return AVERROR_INVALIDDATA;
- if ((ret = ff_reget_buffer(avctx, s->frame)) < 0)
+ if ((ret = ff_reget_buffer(avctx, s->frame, 0)) < 0)
return ret;
if (avctx->bits_per_coded_sample > 1 && avctx->bits_per_coded_sample <= 8) {
return buf_size;
}
+static void msrle_decode_flush(AVCodecContext *avctx)
+{
+ MsrleContext *s = avctx->priv_data;
+
+ av_frame_unref(s->frame);
+}
+
static av_cold int msrle_decode_end(AVCodecContext *avctx)
{
MsrleContext *s = avctx->priv_data;
.init = msrle_decode_init,
.close = msrle_decode_end,
.decode = msrle_decode_frame,
+ .flush = msrle_decode_flush,
.capabilities = AV_CODEC_CAP_DR1,
};