Commit 2929e560 authored by James Almer's avatar James Almer

hevcdsp: replace the SAOParams struct parameter from sao_band_filter

Pass instead the two variables from the struct needed in the function.
This simplifies writing asm optimized versions of the function
Signed-off-by: 's avatarJames Almer <jamrial@gmail.com>
parent 65e6ab0c
...@@ -259,7 +259,8 @@ static void sao_filter_CTB(HEVCContext *s, int x, int y) ...@@ -259,7 +259,8 @@ static void sao_filter_CTB(HEVCContext *s, int x, int y)
case SAO_BAND: case SAO_BAND:
copy_CTB(dst, src, width << s->sps->pixel_shift, height, stride_dst, stride_src); copy_CTB(dst, src, width << s->sps->pixel_shift, height, stride_dst, stride_src);
s->hevcdsp.sao_band_filter(src, dst, stride_src, stride_dst, s->hevcdsp.sao_band_filter(src, dst, stride_src, stride_dst,
sao, width, height, c_idx); sao->offset_val[c_idx], sao->band_position[c_idx],
width, height);
restore_tqb_pixels(s, x, y, width, height, c_idx); restore_tqb_pixels(s, x, y, width, height, c_idx);
sao->type_idx[c_idx] = SAO_APPLIED; sao->type_idx[c_idx] = SAO_APPLIED;
break; break;
......
...@@ -59,7 +59,7 @@ typedef struct HEVCDSPContext { ...@@ -59,7 +59,7 @@ typedef struct HEVCDSPContext {
void (*idct_dc[4])(int16_t *coeffs); void (*idct_dc[4])(int16_t *coeffs);
void (*sao_band_filter)(uint8_t *_dst, uint8_t *_src, ptrdiff_t _stride_dst, ptrdiff_t _stride_src, void (*sao_band_filter)(uint8_t *_dst, uint8_t *_src, ptrdiff_t _stride_dst, ptrdiff_t _stride_src,
struct SAOParams *sao, int width, int height, int c_idx); int16_t *sao_offset_val, int sao_left_class, int width, int height);
void (*sao_edge_filter[2])(uint8_t *_dst, uint8_t *_src, ptrdiff_t _stride_dst, ptrdiff_t _stride_src, void (*sao_edge_filter[2])(uint8_t *_dst, uint8_t *_src, ptrdiff_t _stride_dst, ptrdiff_t _stride_src,
struct SAOParams *sao, int *borders, int _width, struct SAOParams *sao, int *borders, int _width,
......
...@@ -302,16 +302,15 @@ IDCT_DC(32) ...@@ -302,16 +302,15 @@ IDCT_DC(32)
#undef ADD_AND_SCALE #undef ADD_AND_SCALE
static void FUNC(sao_band_filter_0)(uint8_t *_dst, uint8_t *_src, static void FUNC(sao_band_filter_0)(uint8_t *_dst, uint8_t *_src,
ptrdiff_t stride_dst, ptrdiff_t stride_src, SAOParams *sao, ptrdiff_t stride_dst, ptrdiff_t stride_src,
int width, int height, int c_idx) int16_t *sao_offset_val, int sao_left_class,
int width, int height)
{ {
pixel *dst = (pixel *)_dst; pixel *dst = (pixel *)_dst;
pixel *src = (pixel *)_src; pixel *src = (pixel *)_src;
int offset_table[32] = { 0 }; int offset_table[32] = { 0 };
int k, y, x; int k, y, x;
int shift = BIT_DEPTH - 5; int shift = BIT_DEPTH - 5;
int16_t *sao_offset_val = sao->offset_val[c_idx];
int sao_left_class = sao->band_position[c_idx];
stride_dst /= sizeof(pixel); stride_dst /= sizeof(pixel);
stride_src /= sizeof(pixel); stride_src /= sizeof(pixel);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment