comparison loco.c @ 10399:136334ad62b3 libavcodec

Release frame after decoding is done
author kostya
date Wed, 14 Oct 2009 05:28:24 +0000
parents 0dce4fe6e6f3
children 8a137661f31e
comparison
equal deleted inserted replaced
10398:11b685acd280 10399:136334ad62b3
273 av_log(avctx, AV_LOG_INFO, "lossy:%i, version:%i, mode: %i\n", l->lossy, version, l->mode); 273 av_log(avctx, AV_LOG_INFO, "lossy:%i, version:%i, mode: %i\n", l->lossy, version, l->mode);
274 274
275 return 0; 275 return 0;
276 } 276 }
277 277
278 static av_cold int decode_end(AVCodecContext *avctx){
279 LOCOContext * const l = avctx->priv_data;
280 AVFrame *pic = &l->pic;
281
282 if (pic->data[0])
283 avctx->release_buffer(avctx, pic);
284 av_freep(&l->pic);
285
286 return 0;
287 }
288
278 AVCodec loco_decoder = { 289 AVCodec loco_decoder = {
279 "loco", 290 "loco",
280 CODEC_TYPE_VIDEO, 291 CODEC_TYPE_VIDEO,
281 CODEC_ID_LOCO, 292 CODEC_ID_LOCO,
282 sizeof(LOCOContext), 293 sizeof(LOCOContext),
283 decode_init, 294 decode_init,
284 NULL, 295 NULL,
285 NULL, 296 decode_end,
286 decode_frame, 297 decode_frame,
287 CODEC_CAP_DR1, 298 CODEC_CAP_DR1,
288 .long_name = NULL_IF_CONFIG_SMALL("LOCO"), 299 .long_name = NULL_IF_CONFIG_SMALL("LOCO"),
289 }; 300 };