aboutsummaryrefslogtreecommitdiffstats
path: root/configure
diff options
context:
space:
mode:
authorwm4 <nfxjfg@googlemail.com>2016-01-28 17:24:53 +0100
committerwm4 <nfxjfg@googlemail.com>2016-01-28 17:24:53 +0100
commit14a90c9ef09a4b046500dceab5ca1875e330a376 (patch)
treeea8e0331028da700983f982d34207a96d610afe5 /configure
parent7b1b53f3a4569343dee1f0e2493b7cf3aa45731a (diff)
downloadffmpeg-14a90c9ef09a4b046500dceab5ca1875e330a376.tar.gz
mmaldec: limit internal buffering
This uses a new MMAL feature, which limits the number of extra frames that can be buffered within the decoder. VIDEO_MAX_NUM_CALLBACKS can be defined as positive or negative number. Positive numbers are absolute, and can lead to deadlocks if the user underestimates the number of required buffers. Negative numbers specify the number of extra buffers, e.g. -1 means no extra buffer, (-1-N) means N extra buffers. Set a gratuitous default of -11 (N=10). This is much lower than the firmware default, which appears to be 96. This is backwards compatible, but needs a symbol only present in newer firmware headers. (It's an enum item, so it requires a check in configure.)
Diffstat (limited to 'configure')
-rwxr-xr-xconfigure4
1 files changed, 4 insertions, 0 deletions
diff --git a/configure b/configure
index 60c9402734..629029ebe4 100755
--- a/configure
+++ b/configure
@@ -5579,6 +5579,10 @@ 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 netcdf && require_pkg_config netcdf netcdf.h nc_inq_libvers
enabled nvenc && { check_header nvEncodeAPI.h || die "ERROR: nvEncodeAPI.h not found."; } &&
{ check_cpp_condition nvEncodeAPI.h "NVENCAPI_MAJOR_VERSION >= 5" ||