ra144enc: set AVCodecContext.coded_frame
authorJustin Ruggles <justin.ruggles@gmail.com>
Wed, 22 Feb 2012 18:29:09 +0000 (13:29 -0500)
committerJustin Ruggles <justin.ruggles@gmail.com>
Sat, 25 Feb 2012 16:49:43 +0000 (11:49 -0500)
libavcodec/ra144enc.c

index 302f66b..5977928 100644 (file)
 #include "ra144.h"
 
 
+static av_cold int ra144_encode_close(AVCodecContext *avctx)
+{
+    RA144Context *ractx = avctx->priv_data;
+    ff_lpc_end(&ractx->lpc_ctx);
+    av_freep(&avctx->coded_frame);
+    return 0;
+}
+
+
 static av_cold int ra144_encode_init(AVCodecContext * avctx)
 {
     RA144Context *ractx;
@@ -51,15 +60,19 @@ static av_cold int ra144_encode_init(AVCodecContext * avctx)
     ractx->avctx = avctx;
     ret = ff_lpc_init(&ractx->lpc_ctx, avctx->frame_size, LPC_ORDER,
                       FF_LPC_TYPE_LEVINSON);
-    return ret;
-}
+    if (ret < 0)
+        goto error;
 
+    avctx->coded_frame = avcodec_alloc_frame();
+    if (!avctx->coded_frame) {
+        ret = AVERROR(ENOMEM);
+        goto error;
+    }
 
-static av_cold int ra144_encode_close(AVCodecContext *avctx)
-{
-    RA144Context *ractx = avctx->priv_data;
-    ff_lpc_end(&ractx->lpc_ctx);
     return 0;
+error:
+    ra144_encode_close(avctx);
+    return ret;
 }