This source file includes following definitions.
- get_pixels_mvi
 
- diff_pixels_mvi
 
- ff_pixblockdsp_init_alpha
 
#include "libavutil/attributes.h"
#include "libavcodec/pixblockdsp.h"
#include "asm.h"
static void get_pixels_mvi(int16_t *restrict block,
                           const uint8_t *restrict pixels, ptrdiff_t line_size)
{
    int h = 8;
    do {
        uint64_t p;
        p = ldq(pixels);
        stq(unpkbw(p),       block);
        stq(unpkbw(p >> 32), block + 4);
        pixels += line_size;
        block += 8;
    } while (--h);
}
static void diff_pixels_mvi(int16_t *block, const uint8_t *s1, const uint8_t *s2,
                            int stride) {
    int h = 8;
    uint64_t mask = 0x4040;
    mask |= mask << 16;
    mask |= mask << 32;
    do {
        uint64_t x, y, c, d, a;
        uint64_t signs;
        x = ldq(s1);
        y = ldq(s2);
        c = cmpbge(x, y);
        d = x - y;
        a = zap(mask, c);       
        d += 4 * a;             
        signs = zap(-1, c);
        stq(unpkbw(d)       | (unpkbw(signs)       << 8), block);
        stq(unpkbw(d >> 32) | (unpkbw(signs >> 32) << 8), block + 4);
        s1 += stride;
        s2 += stride;
        block += 8;
    } while (--h);
}
av_cold void ff_pixblockdsp_init_alpha(PixblockDSPContext *c, AVCodecContext *avctx,
                                       unsigned high_bit_depth)
{
    if (amask(AMASK_MVI) == 0) {
        if (!high_bit_depth)
            c->get_pixels = get_pixels_mvi;
        c->diff_pixels = diff_pixels_mvi;
    }
}