aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJames Almer <jamrial@gmail.com>2015-01-27 16:46:57 -0300
committerJames Almer <jamrial@gmail.com>2015-02-01 15:45:20 -0300
commit2929e560061312e564a33aed4727283cbb48b102 (patch)
tree15a1cd48c527c7687e40902ebd09c4a3121b61c5
parent65e6ab0c5a9fbef06476ee302c97e0c95a073dd3 (diff)
downloadffmpeg-2929e560061312e564a33aed4727283cbb48b102.tar.gz
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: James Almer <jamrial@gmail.com>
-rw-r--r--libavcodec/hevc_filter.c3
-rw-r--r--libavcodec/hevcdsp.h2
-rw-r--r--libavcodec/hevcdsp_template.c7
3 files changed, 6 insertions, 6 deletions
diff --git a/libavcodec/hevc_filter.c b/libavcodec/hevc_filter.c
index 30ade745e9..fb1aa373df 100644
--- a/libavcodec/hevc_filter.c
+++ b/libavcodec/hevc_filter.c
@@ -259,7 +259,8 @@ static void sao_filter_CTB(HEVCContext *s, int x, int y)
case SAO_BAND:
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,
- 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);
sao->type_idx[c_idx] = SAO_APPLIED;
break;
diff --git a/libavcodec/hevcdsp.h b/libavcodec/hevcdsp.h
index 353677abe0..a798fb1dc4 100644
--- a/libavcodec/hevcdsp.h
+++ b/libavcodec/hevcdsp.h
@@ -59,7 +59,7 @@ typedef struct HEVCDSPContext {
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,
- 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,
struct SAOParams *sao, int *borders, int _width,
diff --git a/libavcodec/hevcdsp_template.c b/libavcodec/hevcdsp_template.c
index a8fff45fad..23fdb102b9 100644
--- a/libavcodec/hevcdsp_template.c
+++ b/libavcodec/hevcdsp_template.c
@@ -302,16 +302,15 @@ IDCT_DC(32)
#undef ADD_AND_SCALE
static void FUNC(sao_band_filter_0)(uint8_t *_dst, uint8_t *_src,
- ptrdiff_t stride_dst, ptrdiff_t stride_src, SAOParams *sao,
- int width, int height, int c_idx)
+ ptrdiff_t stride_dst, ptrdiff_t stride_src,
+ int16_t *sao_offset_val, int sao_left_class,
+ int width, int height)
{
pixel *dst = (pixel *)_dst;
pixel *src = (pixel *)_src;
int offset_table[32] = { 0 };
int k, y, x;
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_src /= sizeof(pixel);