indeo: Properly forward the error codes

If the tile data size does not match the buffer size it did not
return an AVERROR_INVALIDDATA causing futher corruption later.

Reported-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
indeo: use proper error code
indeo5: reject negative motion vectors

Reported-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
indeo: check for reference when inheriting mvs

The same is done already for qdelta.

Reported-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
Revert "indeo5: reject negative motion vectors"

Negative motion vectors are possible.

This reverts commit 1194a410807bac3eafbeb632578b937656d273e7.
lavfi/delogo: use weighted interpolation

The original delogo algorithm interpolates both horizontally and
vertically and uses the average to compute the resulting sample. This
works reasonably well when the logo area is almost square. However
when the logo area is significantly larger than high or higher than
large, the result is largely suboptimal.

The issue can be clearly seen by testing the delogo filter with a fake
logo area that is 200 pixels large and 2 pixels high. Vertical
interpolation gives a very good result in that case, horizontal
interpolation gives a very bad result, and the overall result is poor,
because both are given the same weight.

Even when the logo is roughly square, the current algorithm gives poor
results on the borders of the logo area, because it always gives
horizontal and vertical interpolations an equal weight, and this is
suboptimal on borders. For example, in the middle of the left hand
side border of the logo, you want to trust the left known point much
more than the right known point (which the current algorithm already
does) but also much more than the top and bottom known points (which
the current algorithm doesn't do.)

By properly weighting each known point when computing the value of
each interpolated pixel, the visual result is much better, especially
on borders and/or for high or large logo areas.

The algorithm I implemented guarantees that the weight of each of the
4 known points directly depends on its distance to the interpolated
point. It is largely inspired from the original algorithm, the key
difference being that it computes the relative weights globally
instead of separating the vertical and horizontal interpolations and
combining them afterward.

Signed-off-by: Jean Delvare <khali@linux-fr.org>
Signed-off-by: Stefano Sabatini <stefasab@gmail.com>
Merge commit '7388c0c58601477db076e2e74e8b11f8a644384a'

* commit '7388c0c58601477db076e2e74e8b11f8a644384a':
  indeo: Properly forward the error codes

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

* commit 'dd3754a48854cd570d38db72394491aab0f36570':
  indeo: use proper error code

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

* commit '1194a410807bac3eafbeb632578b937656d273e7':
  indeo5: reject negative motion vectors

The added check is wrong and thus not merged.
A correct check already exists in avcodec.

Merged-by: Michael Niedermayer <michaelni@gmx.at>
Merge remote-tracking branch 'qatar/master'

* qatar/master:
  indeo: check for reference when inheriting mvs

See: 4b35ee0b7c0c4cbac3541a25a5e8c00b657c8f95
Merged-by: Michael Niedermayer <michaelni@gmx.at>
doc/encoders: apply various fixes to libmp3lame documentation
avcodec/x86/dsputil_init: only use xvid idct for lowres=0

Fixes crash
Fixes Ticket2714

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
bfi: check return value of av_malloc()

Signed-off-by: Paul B Mahol <onemda@gmail.com>
idcin: check return value of av_malloc()

Signed-off-by: Paul B Mahol <onemda@gmail.com>
westwood_vqa: check return value of av_malloc()

Signed-off-by: Paul B Mahol <onemda@gmail.com>
rmdec: Pass AVIOContext to rm_read_metadata()

Fix null pointer dereference
Fixes Ticket2588

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
lavf/http: add support for reading streamcast metadata

Allow applications to request reading streamcast metadata. This uses
AVOptions as API, and requires the application to explicitly request
and read metadata. Metadata can be updated mid-stream; if an
application is interested in that, it has to poll for the data by
reading the "icy_metadata_packet" option in regular intervals.

There doesn't seem to be a nice way to transfer the metadata in a nicer
way. Converting the metadata to ID3v2 tags might be a nice idea, but
the libavformat mp3 demuxer doesn't seem to read these tags mid-stream,
and even then we couldn't guarantee that tags are not inserted in the
middle of mp3 packet data.

This commit provides the minimum to enable applications to retrieve
this information at all.

Signed-off-by: Stefano Sabatini <stefasab@gmail.com>
h264: move 444 border xchg under if (deblock_top)

Fixes out of array access
Fixes Ticket2668

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
h264: fix indention of xchg_mb_border()

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
lls/x86: use 3-operator vaddpd in ADDPD_MEM

Fixes build with yasm-1.1

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