static void filter_edges(void *dst1, void *prev1, void *cur1, void *next1,

                         int w, int prefs, int mrefs, int parity, int mode)

{

    uint8_t *dst  = dst1;

    uint8_t *prev = prev1;

    uint8_t *cur  = cur1;

    uint8_t *next = next1;

    int x;

    uint8_t *prev2 = parity ? prev : cur ;

    uint8_t *next2 = parity ? cur  : next;



    /* Only edge pixels need to be processed here.  A constant value of false

     * for is_not_edge should let the compiler ignore the whole branch. */

    FILTER(0, 3, 0)



    dst  = (uint8_t*)dst1  + w - 3;

    prev = (uint8_t*)prev1 + w - 3;

    cur  = (uint8_t*)cur1  + w - 3;

    next = (uint8_t*)next1 + w - 3;

    prev2 = (uint8_t*)(parity ? prev : cur);

    next2 = (uint8_t*)(parity ? cur  : next);



    FILTER(w - 3, w, 0)

}

static void filter_edges(void *dst1, void *prev1, void *cur1, void *next1,

                         int w, int prefs, int mrefs, int parity, int mode)

{

    uint8_t *dst  = dst1;

    uint8_t *prev = prev1;

    uint8_t *cur  = cur1;

    uint8_t *next = next1;

    int x;

    uint8_t *prev2 = parity ? prev : cur ;

    uint8_t *next2 = parity ? cur  : next;



    



    FILTER(0, 3, 0)



    dst  = (uint8_t*)dst1  + w - 3;

    prev = (uint8_t*)prev1 + w - 3;

    cur  = (uint8_t*)cur1  + w - 3;

    next = (uint8_t*)next1 + w - 3;

    prev2 = (uint8_t*)(parity ? prev : cur);

    next2 = (uint8_t*)(parity ? cur  : next);



    FILTER(w - 3, w, 0)

}

    dst  = (uint8_t*)dst1  + w - 3;     prev = (uint8_t*)prev1 + w - 3;     cur  = (uint8_t*)cur1  + w - 3;     next = (uint8_t*)next1 + w - 3;
static void FUNC_0(void *VAR_0, void *VAR_1, void *VAR_2, void *VAR_3,

                         int VAR_4, int VAR_5, int VAR_6, int VAR_7, int VAR_8)

{

    uint8_t *dst  = VAR_0;

    uint8_t *prev = VAR_1;

    uint8_t *cur  = VAR_2;

    uint8_t *next = VAR_3;

    int VAR_9;

    uint8_t *prev2 = VAR_7 ? prev : cur ;

    uint8_t *next2 = VAR_7 ? cur  : next;



    



    FILTER(0, 3, 0)



    dst  = (uint8_t*)VAR_0  + VAR_4 - 3;

    prev = (uint8_t*)VAR_1 + VAR_4 - 3;

    cur  = (uint8_t*)VAR_2  + VAR_4 - 3;

    next = (uint8_t*)VAR_3 + VAR_4 - 3;

    prev2 = (uint8_t*)(VAR_7 ? prev : cur);

    next2 = (uint8_t*)(VAR_7 ? cur  : next);



    FILTER(VAR_4 - 3, VAR_4, 0)

}

static void FUNC_0(void *VAR_0, void *VAR_1, void *VAR_2, void *VAR_3,
int VAR_4, int VAR_5, int VAR_6, int VAR_7, int VAR_8)
{ uint8_t *dst  = VAR_0; uint8_t *prev = VAR_1; uint8_t *cur  = VAR_2; uint8_t *next = VAR_3; int VAR_9; uint8_t *prev2 = VAR_7 ? prev : cur ; uint8_t *next2 = VAR_7 ? cur  : next; FILTER(0, 3, 0)
dst  = (uint8_t*)VAR_0  + VAR_4 - 3; prev = (uint8_t*)VAR_1 + VAR_4 - 3; cur  = (uint8_t*)VAR_2  + VAR_4 - 3; next = (uint8_t*)VAR_3 + VAR_4 - 3; prev2 = (uint8_t*)(VAR_7 ? prev : cur); next2 = (uint8_t*)(VAR_7 ? cur  : next); FILTER(VAR_4 - 3, VAR_4, 0)
}