summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorClément Bœsch <clement@stupeflix.com>2016-06-21 13:31:15 +0200
committerClément Bœsch <clement@stupeflix.com>2016-06-21 13:32:57 +0200
commitba5100ce84644923537f997dea39bf2e7b4b9c20 (patch)
tree866995d0e9936f35107f03ff9ab93590e8eb5478
parenta826ffb829548b4b177c3b7bc401b0a124b7ecc0 (diff)
parent74beead9bd596180bcac6108548fc0a86d8eb4ae (diff)
Merge commit '74beead9bd596180bcac6108548fc0a86d8eb4ae'
* commit '74beead9bd596180bcac6108548fc0a86d8eb4ae': mmaldec: limit internal buffering See 14a90c9ef09a4b046500dceab5ca1875e330a376 The introduction of the MMAL_PARAMETER_VIDEO_MAX_NUM_CALLBACKS check is merged. Merged-by: Clément Bœsch <clement@stupeflix.com>
-rwxr-xr-xconfigure5
-rw-r--r--libavcodec/mmaldec.c2
2 files changed, 4 insertions, 3 deletions
diff --git a/configure b/configure
index a4dd55be9f..f9e6ab89b6 100755
--- a/configure
+++ b/configure
@@ -2009,6 +2009,7 @@ HAVE_LIST="
libdc1394_2
makeinfo
makeinfo_html
+ MMAL_PARAMETER_VIDEO_MAX_NUM_CALLBACKS
perl
pod2man
sdl
@@ -5747,9 +5748,7 @@ enabled mmal && { check_lib interface/mmal/mmal.h mmal_port_connect
check_lib interface/mmal/mmal.h mmal_port_connect ; }
check_lib interface/mmal/mmal.h mmal_port_connect ; } ||
die "ERROR: mmal not found"; }
-enabled mmal &&
- (check_code cc interface/mmal/mmal.h "MMAL_PARAMETER_VIDEO_MAX_NUM_CALLBACKS" ||
- die "ERROR: mmal firmware headers too old")
+enabled mmal && check_func_headers interface/mmal/mmal.h "MMAL_PARAMETER_VIDEO_MAX_NUM_CALLBACKS"
enabled netcdf && require_pkg_config netcdf netcdf.h nc_inq_libvers
enabled nvenc && { check_header nvEncodeAPI.h || die "ERROR: nvEncodeAPI.h not found."; } &&
diff --git a/libavcodec/mmaldec.c b/libavcodec/mmaldec.c
index 52232d5ed8..c85fb4e092 100644
--- a/libavcodec/mmaldec.c
+++ b/libavcodec/mmaldec.c
@@ -384,10 +384,12 @@ static av_cold int ffmmal_init_decoder(AVCodecContext *avctx)
av_get_codec_tag_string(tmp, sizeof(tmp), format_in->encoding);
av_log(avctx, AV_LOG_DEBUG, "Using MMAL %s encoding.\n", tmp);
+#if HAVE_MMAL_PARAMETER_VIDEO_MAX_NUM_CALLBACKS
if (mmal_port_parameter_set_uint32(decoder->input[0], MMAL_PARAMETER_VIDEO_MAX_NUM_CALLBACKS,
-1 - ctx->extra_decoder_buffers)) {
av_log(avctx, AV_LOG_WARNING, "Could not set input buffering limit.\n");
}
+#endif
if ((status = mmal_port_format_commit(decoder->input[0])))
goto fail;