mpeg2: add sequence display extension information

Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
avcodec options: add enum option for color_primaries

Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
avcodec options: add enum option for color_trc

Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
avcodec options: add enum option for colorspace

Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
avcodec options: add enum option for color_range

Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
oggenc: Set the right AVOption size for the pref_duration option

On big endian machines, the default value set via the faulty
AVOption ended up as 2^32 times too big.

This fixes the fate-lavf-ogg test which currently is broken on
big endian machines, broken since 3831362. Since that commit,
a final zero-sized packet is written to the ogg muxer in that test,
which caused different flushing behaviour on little and big endian
depending on whether the pref_duration option was handled as it
should or not.

CC: libav-stable@libav.org
Signed-off-by: Martin Storsjö <martin@martin.st>
adpcm: Avoid reading out of bounds in the IMA QT trellis encoder

This was broken in 095be4fb - samples+ch (for the previous
non-planar case) equals &samples_p[ch][0]. The confusion
probably stemmed from the IMA WAV case where it originally
was &samples[avctx->channels + ch], which was correctly
changed into &samples_p[ch][1].

CC: libav-stable@libav.org
Signed-off-by: Martin Storsjö <martin@martin.st>
configure: use .altmacro for gnu as check on arm

Clang's integrated assembler (after 3.4) does not yet support the
'.altmacro' directive which is only used in arm asm. Support is planned:
http://llvm.org/bugs/show_bug.cgi?id=18918
av_dict_set: fix potential memory leak with AV_DICT_DONT_OVERWRITE

av_dict_set leaks it key/value arguments if AV_DICT_DONT_OVERWRITE is
combined with AV_DICT_DONT_STRDUP_{KEY,VAL} and the key exists.
adpcm: Write the proper predictor in trellis mode in IMA QT

The actual predictor value, set by the trellis code, never
was written back into the variable that was written into
the block header. This was accidentally removed in b304244b.

This significantly improves the audio quality of the trellis
case, which was plain broken since b304244b.

Encoding IMA QT with trellis still actually gives a slightly
worse quality than without trellis, since the trellis encoder
doesn't use the exact same way of rounding as in
adpcm_ima_qt_compress_sample and adpcm_ima_qt_expand_nibble.

CC: libav-stable@libav.org
Signed-off-by: Martin Storsjö <martin@martin.st>
x86: h264: Don't keep data in the redzone across function calls on 64 bit unix

We know that the called function (ff_chroma_inter_body_mmxext)
doesn't touch the redzone, and thus will be kept intact - thus,
this doesn't fix any bug per se.

However, valgrind's memcheck tool intentionally assumes that the
redzone is clobbered on every function call and function return
(see a long comment in valgrind/memcheck/mc_main.c). This avoids
false positives in that tool, at the cost of an extra stack pointer
adjustment.

The other alternative would be a valgrind suppression for this issue,
but that's an extra burden for everybody that wants to run libavcodec
within valgrind.

Signed-off-by: Martin Storsjö <martin@martin.st>
doc: Document mpegts muxrate
mpegts: Move the option section to the bottom

Makes it consistent with the rest of the formats and ease usage
of macros constants for the defaults.
mpegts: Provide an option to override the pcr period

Certain hardware demuxer have specific restrictions for PCR periodicity.
ppc: Fix runtime CPU detection for apedsp, huffyuvdsp, svq1enc
ppc: Consistently use convenience macro for runtime CPU detection
mpegvideoenc: check color_range

Rework the comparison into something simpler to understand.
fate: add on2avc audio test
mpegvideo: synchronize AVFrame pointers in ERContext fully

Since error resilience uses AVFrame pointers instead of references it
has to copy NULL pointers too. After a codec flush the last/next frame
pointers in MpegEncContext are NULL and the old pointers remaining in
ERContext are invalid. Fixes a crash in vlc for android thumbnailer.
Reported and debugged by Adrien Maglo <magsoft@videolan.org>.
h263enc: keep block_last_index always valid during advanced intra coding

Prevents a triggered assert during fate-vsynth{1,2}-rv20 in
dct_unquantize_h263_intra_c().