summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorwm4 <nfxjfg@googlemail.com>2015-04-13 19:18:00 +0200
committerDiego Biurrun <diego@biurrun.de>2015-04-14 12:32:13 +0200
commit49e531ff4706279c7eed774f2c8b896942924ce2 (patch)
treef3f8d2d41775ac4f0341d36cb9971bd271b1338f
parent2de7650451d90520135d8cf6f96caa0658824208 (diff)
mmal: Reference MMAL VC lib explicitly
This is optional, but ensures that linking with -Wl,--as-needed does not drop the library containing the MMAL VC driver. The driver normally "registers" itself in the library constructor, but since no symbols are explicitly referenced, the linker could remove it with --as-needed enabled. Signed-off-by: Diego Biurrun <diego@biurrun.de>
-rw-r--r--libavcodec/mmaldec.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/libavcodec/mmaldec.c b/libavcodec/mmaldec.c
index 1f29d2b6b2..76d26bcb9c 100644
--- a/libavcodec/mmaldec.c
+++ b/libavcodec/mmaldec.c
@@ -29,6 +29,7 @@
#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"
@@ -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;