imgutils: add function to clear an image to black
authorwm4 <nfxjfg@googlemail.com>
Sat, 22 Jul 2017 21:05:14 +0000 (23:05 +0200)
committerwm4 <nfxjfg@googlemail.com>
Tue, 8 Aug 2017 11:37:37 +0000 (13:37 +0200)
commit463b81de2b252691d75417643597c42684bf830d
tree9fffe9f41caf458bae6492803686e2e2bed418ec
parentcaa12027baf1180453846c58da08fc87accc0ff6
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>
Merged from Libav commit 45df7adc1d9b7.
doc/APIchanges
libavutil/imgutils.c
libavutil/imgutils.h
libavutil/version.h