mmaldec: limit internal buffering
authorwm4 <nfxjfg@googlemail.com>
Thu, 28 Jan 2016 16:24:53 +0000 (17:24 +0100)
committerwm4 <nfxjfg@googlemail.com>
Thu, 28 Jan 2016 16:24:53 +0000 (17:24 +0100)
commit14a90c9ef09a4b046500dceab5ca1875e330a376
treeea8e0331028da700983f982d34207a96d610afe5
parent7b1b53f3a4569343dee1f0e2493b7cf3aa45731a
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.)
configure
libavcodec/mmaldec.c