imgutils: add function to clear an image to black
authorwm4 <nfxjfg@googlemail.com>
Sat, 22 Jul 2017 21:05:14 +0000 (23:05 +0200)
committerAnton Khirnov <anton@khirnov.net>
Wed, 26 Jul 2017 21:21:26 +0000 (23:21 +0200)
commit45df7adc1d9b7e8fbae5af9328baa6ab3562002b
tree33f68a6fd0c5813e702bf0f9d684094c27dad322
parent47399ccdfd93d337c96c76fbf591f0e3637131ef
imgutils: add function to clear an image to black

Black isn't always just memset(ptr, 0, size). Limited YUV in particular
requires relatively non-obvious values, and filling a frame with
repeating 0 bytes is disallowed in some contexts. With component sizes
larger than 8 or packed YUV, this can become relatively complicated. So
having a generic function for this seems helpful.

In order to handle the complex cases in a generic way without destroying
performance, this code attempts to compute a black pixel, and then uses
that value to clear the image data quickly by using a function like
memset.

Common cases like yuv410p10 or rgba can't be handled with a simple
memset, so there is some code to fill memory with 2/4/8 byte patterns.
For the remaining cases, a generic slow fallback is used.

Signed-off-by: Anton Khirnov <anton@khirnov.net>
doc/APIchanges
libavutil/imgutils.c
libavutil/imgutils.h
libavutil/version.h