tiffdec: use bytestream2 to simplify overread/overwrite protection

Based on a patch by Paul B Mahol <onemda@gmail.com>

CC:libav-stable@libav.org
tiffdec: use a single strip if RowsPerStrip is 0

The spec does not specify that 0 is an error condition, and there
are samples which use 0 when the whole image is in one strip.
tiff: use a better name and enum values for PhotometricInterpretation

Also add additional known values and log as missing features.
tiffdec: remove an unneeded variable
tiffdec: support predictor type 2 with RGB48 pixel format
dcadec: Do not decode the XCh extension when downmixing to stereo

This is neither necessary nor currently supported.

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
dcadec: Use correct channel count in stereo downmix check

s->prim_channels is greater than num_core_channels
when an XCh extension is present in the bitstream.

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
Merge commit '0a467a9b594dd67aa96bad687d05f8845b009f18'

* commit '0a467a9b594dd67aa96bad687d05f8845b009f18':
  tiffdec: use bytestream2 to simplify overread/overwrite protection

Conflicts:
	libavcodec/tiff.c

See: 1ec83d9a9e472f485897ac92bad9631d551a8c5b
Merged-by: Michael Niedermayer <michaelni@gmx.at>
Merge commit 'fdbe18b7b0545f9b5923d25a5433e4f735719ecc'

* commit 'fdbe18b7b0545f9b5923d25a5433e4f735719ecc':
  tiffdec: use a single strip if RowsPerStrip is 0

Conflicts:
	libavcodec/tiff.c

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

* commit 'a9b046fb0ae5395c4d1d8a82cd0d3e354b5034ed':
  tiff: use a better name and enum values for PhotometricInterpretation

Conflicts:
	libavcodec/tiff.c
	libavcodec/tiff.h
	libavcodec/tiffenc.c

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

* commit '345a96c327e8f2a8077189af9f5e8d2b3f4ad5fe':
  tiffdec: remove an unneeded variable

Conflicts:
	libavcodec/tiff.c

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

* commit 'e75ef2b7f48b96a9b6c8646058713899d5ea5731':
  tiffdec: support predictor type 2 with RGB48 pixel format

Conflicts:
	libavcodec/tiff.c

See: 72381b2b479d99962092ce458ac8e98f00528f86
Merged-by: Michael Niedermayer <michaelni@gmx.at>
Merge commit 'c8cf461c19e8e35df4b7364d9b90aa42f1ab4560'

* commit 'c8cf461c19e8e35df4b7364d9b90aa42f1ab4560':
  dcadec: Do not decode the XCh extension when downmixing to stereo

Conflicts:
	libavcodec/dcadec.c

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

* commit '801c39e1e3058fc4ba822bfb5d8612d777111e32':
  dcadec: Use correct channel count in stereo downmix check

Conflicts:
	libavcodec/dcadec.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
avcodec/tiff: remove unused variables

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
lavd/avdevice: fix buildbreak when included to C++ code

class is reserved keyword in C++ and compilator complains about that variable.

Signed-off-by: Lukasz Marek <lukasz.m.luki2@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
resample: implement flushing
FATE: add tests for more resampling modes
lavr: allocate the resampling buffer with a positive size

This fixes cases where very few input samples (fewer than needed for one
output sample) are passed to lavr at the beginning.
CC:libav-stable@libav.org
af_volume: implement replaygain clipping prevention

This adds a new "replaygain_noclip" option to the filter, and, if enabled,
limits the gain applied for tracks where clipping would occur.

Signed-off-by: Anton Khirnov <anton@khirnov.net>