aom_dsp_rtcd_defs.pl checks only whether this key is present in the config, not whether it is set to true or not. Our script sets CONFIG_FOO=no for disabled options, while the upstream build system omits them, resulting in extra symbol declarations the build will never define.
Work around this by stripping the offending disabled config key if it is disabled.
This is a port of the libvpx scripts, themselves a port of Chromium's scripts to generate an external build description using hooks in the upstream configure and make scripts. The libaom library is a fork of libvpx so we can use a similar approach.
The upstream source is located in $(topsrc_dir)/third_party/aom but the build description and any patches are under the media directory with the other codecs, similar to how zlib works. Config files and headers generated by the upstream build system are also under $(topsrc_dir)/media/libaom/.
This creates a number of stubs and leaves some surrounding code that may be irrelevant (eg. recorded time stamps, status variables).
Stub resolution/removal should be a follow-up to this.
That's the 'udta' box. They serve no purpose as far as we're concerned and stagefright doesn't handle it very well (as in, prevents playback).
Resolves#616.
Structure of code was slightly modified so that it should be no longer necessary to re-generate the config_*.h files, greatly simplifying the resync process in the future.
FFmpeg requires specific default values in AVCodecContext to be set. Instead of manually setting these each time we resync with upstream, let's use FFmpeg's own AVOptions which automatically sets all the values to their default.
This hack was added by Mozilla to work around a potential data race, however the root cause was fixed by upstream in release 3.4 so this hack is no longer needed.