]> git.sesse.net Git - ffmpeg/blobdiff - libavcodec/mmaldec.c
Merge commit '06f4b1e37a08f3fd269ecbfeb0181129e5bfc86e'
[ffmpeg] / libavcodec / mmaldec.c
index 404e8e051c7d1f60a38d0ebdd10a722d9b246008..aa46621d06b304079d5582436f157baa071b170f 100644 (file)
  * MMAL Video Decoder
  */
 
+#include <bcm_host.h>
+#include <interface/mmal/mmal.h>
+#include <interface/mmal/util/mmal_util.h>
+#include <interface/mmal/util/mmal_util_params.h>
+#include <interface/mmal/util/mmal_default_components.h>
+#include <interface/mmal/vc/mmal_vc_api.h>
+
 #include "avcodec.h"
 #include "internal.h"
 #include "libavutil/atomic.h"
 #include "libavutil/opt.h"
 #include "libavutil/log.h"
 
-#include <bcm_host.h>
-#include <interface/mmal/mmal.h>
-#include <interface/mmal/util/mmal_util.h>
-#include <interface/mmal/util/mmal_util_params.h>
-#include <interface/mmal/util/mmal_default_components.h>
-
 typedef struct FFBufferEntry {
     AVBufferRef *ref;
     void *data;
@@ -182,6 +183,8 @@ static av_cold int ffmmal_close_decoder(AVCodecContext *avctx)
     if (ctx->bsfc)
         av_bitstream_filter_close(ctx->bsfc);
 
+    mmal_vc_deinit();
+
     return 0;
 }
 
@@ -321,6 +324,11 @@ static av_cold int ffmmal_init_decoder(AVCodecContext *avctx)
 
     bcm_host_init();
 
+    if (mmal_vc_init()) {
+        av_log(avctx, AV_LOG_ERROR, "Cannot initialize MMAL VC driver!\n");
+        return AVERROR(ENOSYS);
+    }
+
     if ((ret = ff_get_format(avctx, avctx->codec->pix_fmts)) < 0)
         return ret;