lavc: add a native Opus decoder.

Initial implementation by Andrew D'Addesio <modchipv12@gmail.com> during
GSoC 2012.

Completion by Anton Khirnov <anton@khirnov.net>, sponsored by the
Mozilla Corporation.

Further contributions by:
Christophe Gisquet <christophe.gisquet@gmail.com>
Janne Grunau <janne-libav@jannau.net>
Luca Barbato <lu_zero@gentoo.org>
lavf: add AVFMT_FLAG_BITEXACT.

Use it instead of checking CODEC_FLAG_BITEXACT in the first stream's
codec context.

Using codec options inside lavf is fragile and can easily break when the
muxing codec context is not the encoding context.
lavf: drop the zero-sized packets hack

There should not be any valid reason anymore for passing completely
empty packets to lavf.
OTOH side data-only packets can be useful.
lavc: preserve the original private data in avcodec_copy_context()

If a non-NULL codec was passed to avcodec_alloc_context3(), private data
will be already allocated in dest.
lavc: properly handle subtitle_header in avcodec_copy_context()
build: add avresample after avcodec to FFLIBS

avcodec might depend on avresample and with --as-needed required symbols
might be get removed if avresample is linked before avcodec.
Fixes link failures of avprobe and avplay on aarch64 with
--enable-neon-clobber-test.
configure: fix enable-libopus help string
aarch64: opus NEON iMDCT and FFT

Opus celt decoding 11% faster and the iMDCT over 2.5 times faster on
Apple's A7.
Merge commit 'b70d7a4ac72d23f3448f3b08b770fdf5f57de222'

* commit 'b70d7a4ac72d23f3448f3b08b770fdf5f57de222':
  lavc: add a native Opus decoder.

Conflicts:
	Changelog
	configure
	libavcodec/version.h

Fate tests pass with both avresample as well as swresample based opus decoder, but
are disabled (reference files are very large so i want to think a day or 2 about
if theres an alternative or if they could be avoided, they also dont match the
official samples)

Merged-by: Michael Niedermayer <michaelni@gmx.at>
swresample: swr_close()

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
avcodec/opusdec: switch to swresample

This also fixes linking failures in doc/examples which where apparently
caused by the linking order between avcodec and avresample

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Fix make checkheaders if VDA is not available.
Merge commit '0c1959b056f6ccaa2eee2c824352ba93c8e36d52'

* commit '0c1959b056f6ccaa2eee2c824352ba93c8e36d52':
  lavf: add AVFMT_FLAG_BITEXACT.

Conflicts:
	doc/APIchanges
	libavformat/avformat.h
	libavformat/flacenc.c
	libavformat/movenc.c
	libavformat/oggenc.c
	libavformat/options_table.h
	libavformat/version.h
	tests/fate/video.mak

Merged-by: Michael Niedermayer <michaelni@gmx.at>
Merge commit 'c9281a01b78cc3f09e36300a0ca3f5824d1c74cf'

* commit 'c9281a01b78cc3f09e36300a0ca3f5824d1c74cf':
  lavf: drop the zero-sized packets hack

Conflicts:
	libavformat/mux.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
Merge commit 'efc7df6c1f11b20a48e60c3f743ce2331b661973'

* commit 'efc7df6c1f11b20a48e60c3f743ce2331b661973':
  lavc: preserve the original private data in avcodec_copy_context()

Merged-by: Michael Niedermayer <michaelni@gmx.at>
Merge commit '3b2fbe67bd63b00331db2a9b213f6d420418a312'

* commit '3b2fbe67bd63b00331db2a9b213f6d420418a312':
  lavc: properly handle subtitle_header in avcodec_copy_context()

Conflicts:
	libavcodec/options.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
avcodec/options: avcodec_copy_context() Check subtitle_header_size instead of setting it

The value is already copied in the generic code so it should always match

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
doc: Add udp broadcast option description

Describe the option added in commit f1c167496e41cabc2bd1b890b149e4b34648cad6

Signed-off-by: Olivier Langlois <olivier@trillion01.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Merge commit '5e2ba41d4b94de1fa5267081d6c4b6b262c8d86f'

* commit '5e2ba41d4b94de1fa5267081d6c4b6b262c8d86f':
  build: add avresample after avcodec to FFLIBS

Conflicts:
	Makefile

Merged-by: Michael Niedermayer <michaelni@gmx.at>
Merge commit '7c5ca546a0747a20c7f7fb5550455c3042699ee9'

* commit '7c5ca546a0747a20c7f7fb5550455c3042699ee9':
  configure: fix enable-libopus help string

See: 434ba17b22c61d968d595c02230c38e0bef1ea24
Merged-by: Michael Niedermayer <michaelni@gmx.at>