From 10f160768b824f00933f33bc69f1fae89a25dfc8 Mon Sep 17 00:00:00 2001 From: Peter Meerwald Date: Sun, 15 Feb 2015 12:21:22 +0100 Subject: g722: Reduce number of pointers passed to g722_apply_qmf() function MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Peter Meerwald Signed-off-by: Martin Storsjö --- libavcodec/g722dec.c | 9 ++++----- libavcodec/g722dsp.c | 10 +++++----- libavcodec/g722dsp.h | 2 +- libavcodec/g722enc.c | 8 ++++---- 4 files changed, 14 insertions(+), 15 deletions(-) (limited to 'libavcodec') diff --git a/libavcodec/g722dec.c b/libavcodec/g722dec.c index 4e18150..e7058b7 100644 --- a/libavcodec/g722dec.c +++ b/libavcodec/g722dec.c @@ -106,7 +106,7 @@ static int g722_decode_frame(AVCodecContext *avctx, void *data, for (j = 0; j < avpkt->size; j++) { int ilow, ihigh, rlow, rhigh, dhigh; - int xout1, xout2; + int xout[2]; ihigh = get_bits(&gb, 2); ilow = get_bits(&gb, 6 - skip); @@ -124,10 +124,9 @@ static int g722_decode_frame(AVCodecContext *avctx, void *data, c->prev_samples[c->prev_samples_pos++] = rlow + rhigh; c->prev_samples[c->prev_samples_pos++] = rlow - rhigh; - c->dsp.apply_qmf(c->prev_samples + c->prev_samples_pos - 24, - &xout1, &xout2); - *out_buf++ = av_clip_int16(xout1 >> 11); - *out_buf++ = av_clip_int16(xout2 >> 11); + c->dsp.apply_qmf(c->prev_samples + c->prev_samples_pos - 24, xout); + *out_buf++ = av_clip_int16(xout[0] >> 11); + *out_buf++ = av_clip_int16(xout[1] >> 11); if (c->prev_samples_pos >= PREV_SAMPLES_BUF_SIZE) { memmove(c->prev_samples, c->prev_samples + c->prev_samples_pos - 22, 22 * sizeof(c->prev_samples[0])); diff --git a/libavcodec/g722dsp.c b/libavcodec/g722dsp.c index 1fefc6b..5d3aedb 100644 --- a/libavcodec/g722dsp.c +++ b/libavcodec/g722dsp.c @@ -29,15 +29,15 @@ static const int16_t qmf_coeffs[12] = { 3, -11, 12, 32, -210, 951, 3876, -805, 362, -156, 53, -11, }; -static void g722_apply_qmf(const int16_t *prev_samples, int *xout1, int *xout2) +static void g722_apply_qmf(const int16_t *prev_samples, int xout[2]) { int i; - *xout1 = 0; - *xout2 = 0; + xout[0] = 0; + xout[1] = 0; for (i = 0; i < 12; i++) { - MAC16(*xout2, prev_samples[2*i ], qmf_coeffs[i ]); - MAC16(*xout1, prev_samples[2*i+1], qmf_coeffs[11-i]); + MAC16(xout[1], prev_samples[2*i ], qmf_coeffs[i ]); + MAC16(xout[0], prev_samples[2*i+1], qmf_coeffs[11-i]); } } diff --git a/libavcodec/g722dsp.h b/libavcodec/g722dsp.h index c0d3339..2cc50d9 100644 --- a/libavcodec/g722dsp.h +++ b/libavcodec/g722dsp.h @@ -24,7 +24,7 @@ #include typedef struct G722DSPContext { - void (*apply_qmf)(const int16_t *prev_samples, int *xout1, int *xout2); + void (*apply_qmf)(const int16_t *prev_samples, int xout[2]); } G722DSPContext; void ff_g722dsp_init(G722DSPContext *c); diff --git a/libavcodec/g722enc.c b/libavcodec/g722enc.c index 3a3d7b7..e67ccf5 100644 --- a/libavcodec/g722enc.c +++ b/libavcodec/g722enc.c @@ -137,12 +137,12 @@ static const int16_t low_quant[33] = { static inline void filter_samples(G722Context *c, const int16_t *samples, int *xlow, int *xhigh) { - int xout1, xout2; + int xout[2]; c->prev_samples[c->prev_samples_pos++] = samples[0]; c->prev_samples[c->prev_samples_pos++] = samples[1]; - c->dsp.apply_qmf(c->prev_samples + c->prev_samples_pos - 24, &xout1, &xout2); - *xlow = xout1 + xout2 >> 14; - *xhigh = xout1 - xout2 >> 14; + c->dsp.apply_qmf(c->prev_samples + c->prev_samples_pos - 24, xout); + *xlow = xout[0] + xout[1] >> 14; + *xhigh = xout[0] - xout[1] >> 14; if (c->prev_samples_pos >= PREV_SAMPLES_BUF_SIZE) { memmove(c->prev_samples, c->prev_samples + c->prev_samples_pos - 22, -- cgit v1.1