// Dual vertical pass scaler for ARM NEON.
// Written by Nils Liaeen Corneliusen.
// License: CC0 1.0 Universal (CC0 1.0) Public Domain Dedication license
// https://www.ignorantus.com/
#ifndef BICUBICVDH
#define BICUBICVDH

#include "support.h"

typedef struct {
    uint8_t *src;
    int src_stride;
    int srcw;
    int srch;
    uint8_t *dst;
    int dst_stride;
    int dstw;
    int dsth;
    int y_start;
    int height;
    int yy_fact;
    int xx_fact;
} scalefunc_data_t;

void bicubic_scale_8( scalefunc_data_t *sd );
void bicubic_scale_16( scalefunc_data_t *sd );

void bicubic_scale_yuv420( bmp_yuv420pl *src, bmp_yuv420pl *dst );
void bicubic_scale_nv12( bmp_nv12 *src, bmp_nv12 *dst );
void bicubic_scale_rgb888pl( bmp_rgb888pl *src, bmp_rgb888pl *dst );
void bicubic_scale_yuv422seq_to_nv12( bmp_yuv422seq *src, bmp_nv12 *dst );

#endif
