• wm4's avatar
    imgutils: add function to clear an image to black · 463b81de
    wm4 authored
    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: 's avatarAnton Khirnov <anton@khirnov.net>
    
    Merged from Libav commit 45df7adc.
    463b81de
imgutils.c 20.9 KB