]> git.sesse.net Git - ffmpeg/blobdiff - libavcodec/zerocodec.c
rtpenc_aac: Fix 10l bug
[ffmpeg] / libavcodec / zerocodec.c
index 8d46bfdcf8a68b619496231f0cc27e7739815924..c6a9ba94a2d55f7fba64d8e80c859078c29f371a 100644 (file)
@@ -19,6 +19,7 @@
 #include <zlib.h>
 
 #include "avcodec.h"
+#include "libavutil/common.h"
 
 typedef struct {
     AVFrame  previous_frame;
@@ -51,17 +52,17 @@ static int zerocodec_decode_frame(AVCodecContext *avctx, void *data,
         pic->pict_type = AV_PICTURE_TYPE_P;
     }
 
-    if (avctx->get_buffer(avctx, pic) < 0) {
-        av_log(avctx, AV_LOG_ERROR, "Could not allocate buffer.\n");
-        return AVERROR(ENOMEM);
-    }
-
     zret = inflateReset(zstream);
     if (zret != Z_OK) {
         av_log(avctx, AV_LOG_ERROR, "Could not reset inflate: %d.\n", zret);
         return AVERROR_INVALIDDATA;
     }
 
+    if (avctx->get_buffer(avctx, pic) < 0) {
+        av_log(avctx, AV_LOG_ERROR, "Could not allocate buffer.\n");
+        return AVERROR(ENOMEM);
+    }
+
     zstream->next_in  = avpkt->data;
     zstream->avail_in = avpkt->size;
 
@@ -78,6 +79,7 @@ static int zerocodec_decode_frame(AVCodecContext *avctx, void *data,
 
         zret = inflate(zstream, Z_SYNC_FLUSH);
         if (zret != Z_OK && zret != Z_STREAM_END) {
+            avctx->release_buffer(avctx, pic);
             av_log(avctx, AV_LOG_ERROR,
                    "Inflate failed with return code: %d.\n", zret);
             return AVERROR_INVALIDDATA;
@@ -127,7 +129,7 @@ static av_cold int zerocodec_decode_init(AVCodecContext *avctx)
     z_stream *zstream    = &zc->zstream;
     int zret;
 
-    avctx->pix_fmt             = PIX_FMT_UYVY422;
+    avctx->pix_fmt             = AV_PIX_FMT_UYVY422;
     avctx->bits_per_raw_sample = 8;
 
     zc->size = avpicture_get_size(avctx->pix_fmt,
@@ -156,7 +158,7 @@ static av_cold int zerocodec_decode_init(AVCodecContext *avctx)
 AVCodec ff_zerocodec_decoder = {
     .type           = AVMEDIA_TYPE_VIDEO,
     .name           = "zerocodec",
-    .id             = CODEC_ID_ZEROCODEC,
+    .id             = AV_CODEC_ID_ZEROCODEC,
     .priv_data_size = sizeof(ZeroCodecContext),
     .init           = zerocodec_decode_init,
     .decode         = zerocodec_decode_frame,