diff options
author | Peter Meerwald <pmeerw@pmeerw.net> | 2015-02-15 12:21:22 +0100 |
---|---|---|
committer | Martin Storsjö <martin@martin.st> | 2015-02-15 22:47:14 +0200 |
commit | 10f160768b824f00933f33bc69f1fae89a25dfc8 (patch) | |
tree | bbc297d9795d8d752fad24a72445554f27a6c484 /libavcodec | |
parent | 67690683130faf37dd9d969ced15eba2a1940ade (diff) | |
download | ffmpeg-10f160768b824f00933f33bc69f1fae89a25dfc8.tar.gz |
g722: Reduce number of pointers passed to g722_apply_qmf() function
Signed-off-by: Peter Meerwald <pmeerw@pmeerw.net>
Signed-off-by: Martin Storsjö <martin@martin.st>
Diffstat (limited to 'libavcodec')
-rw-r--r-- | libavcodec/g722dec.c | 9 | ||||
-rw-r--r-- | libavcodec/g722dsp.c | 10 | ||||
-rw-r--r-- | libavcodec/g722dsp.h | 2 | ||||
-rw-r--r-- | libavcodec/g722enc.c | 8 |
4 files changed, 14 insertions, 15 deletions
diff --git a/libavcodec/g722dec.c b/libavcodec/g722dec.c index 4e1815009b..e7058b7ee1 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 1fefc6b3c4..5d3aedb737 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 c0d33390ea..2cc50d9a50 100644 --- a/libavcodec/g722dsp.h +++ b/libavcodec/g722dsp.h @@ -24,7 +24,7 @@ #include <stdint.h> 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 3a3d7b7c07..e67ccf5324 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, |