summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMichael Niedermayer <michaelni@gmx.at>2015-02-16 01:54:14 +0100
committerMichael Niedermayer <michaelni@gmx.at>2015-02-16 01:54:19 +0100
commit9f1792982eb69782fa6d1ff0ab5d11d21bd451df (patch)
tree065764c63ed21400552f726beeaa2cde52ff9a17
parent47df21e1727c83648a645b0dde34e99f1b7bdc93 (diff)
parent10f160768b824f00933f33bc69f1fae89a25dfc8 (diff)
downloadffmpeg-streaming-9f1792982eb69782fa6d1ff0ab5d11d21bd451df.zip
ffmpeg-streaming-9f1792982eb69782fa6d1ff0ab5d11d21bd451df.tar.gz
Merge commit '10f160768b824f00933f33bc69f1fae89a25dfc8'
* commit '10f160768b824f00933f33bc69f1fae89a25dfc8': g722: Reduce number of pointers passed to g722_apply_qmf() function Merged-by: Michael Niedermayer <michaelni@gmx.at>
-rw-r--r--libavcodec/g722dec.c9
-rw-r--r--libavcodec/g722dsp.c10
-rw-r--r--libavcodec/g722dsp.h2
-rw-r--r--libavcodec/g722enc.c8
4 files changed, 14 insertions, 15 deletions
diff --git a/libavcodec/g722dec.c b/libavcodec/g722dec.c
index 84540dc..0b207ff 100644
--- a/libavcodec/g722dec.c
+++ b/libavcodec/g722dec.c
@@ -104,7 +104,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);
@@ -122,10 +122,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 b3cc728..8d6c721 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 a786434..210e107 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 c982a0e..5a7bfb2 100644
--- a/libavcodec/g722enc.c
+++ b/libavcodec/g722enc.c
@@ -138,12 +138,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,
OpenPOWER on IntegriCloud