HYuvContext *s = avctx->priv_data;
int i;
+ if (s->picture.data[0])
+ avctx->release_buffer(avctx, &s->picture);
+
common_end(s);
av_freep(&s->bitstream_buffer);
MJpegDecodeContext *s = avctx->priv_data;
int i, j;
+ if (s->picture.data[0])
+ avctx->release_buffer(avctx, &s->picture);
+
av_free(s->buffer);
av_free(s->qscale_table);
return s->bytestream - s->bytestream_start;
}
+static av_cold int common_end(AVCodecContext *avctx){
+ PNMContext *s = avctx->priv_data;
+
+ if (s->picture.data[0])
+ avctx->release_buffer(avctx, &s->picture);
+
+ return 0;
+}
+
#if 0
static int pnm_probe(AVProbeData *pd)
{
sizeof(PNMContext),
common_init,
NULL,
- NULL,
+ common_end,
pnm_decode_frame,
CODEC_CAP_DR1,
.pix_fmts= (const enum PixelFormat[]){PIX_FMT_GRAY8, PIX_FMT_GRAY16BE, PIX_FMT_NONE},
sizeof(PNMContext),
common_init,
NULL,
- NULL,
+ common_end,
pnm_decode_frame,
CODEC_CAP_DR1,
.pix_fmts= (const enum PixelFormat[]){PIX_FMT_YUV420P, PIX_FMT_NONE},
sizeof(PNMContext),
common_init,
NULL,
- NULL,
+ common_end,
pnm_decode_frame,
CODEC_CAP_DR1,
.pix_fmts= (const enum PixelFormat[]){PIX_FMT_RGB24, PIX_FMT_RGB48BE, PIX_FMT_NONE},
sizeof(PNMContext),
common_init,
NULL,
- NULL,
+ common_end,
pnm_decode_frame,
CODEC_CAP_DR1,
.pix_fmts= (const enum PixelFormat[]){PIX_FMT_MONOWHITE, PIX_FMT_NONE},
sizeof(PNMContext),
common_init,
NULL,
- NULL,
+ common_end,
pnm_decode_frame,
CODEC_CAP_DR1,
.pix_fmts= (const enum PixelFormat[]){PIX_FMT_RGB24, PIX_FMT_RGB32, PIX_FMT_GRAY8, PIX_FMT_MONOWHITE, PIX_FMT_NONE},