Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.xiph.org/xiph/opus.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'silk/dred_encoder.c')
-rw-r--r--silk/dred_encoder.c12
1 files changed, 7 insertions, 5 deletions
diff --git a/silk/dred_encoder.c b/silk/dred_encoder.c
index 64ff2c7c..f791115a 100644
--- a/silk/dred_encoder.c
+++ b/silk/dred_encoder.c
@@ -223,7 +223,7 @@ void dred_compute_latents(DREDEnc *enc, const float *pcm, int frame_size, int ex
}
}
-static void dred_encode_latents(ec_enc *enc, const float *x, const opus_uint8 *scale, const opus_uint8 *dzone, const opus_uint8 *r, const opus_uint8 *p0, int dim) {
+static void dred_encode_latents(ec_enc *enc, const float *x, const opus_uint8 *scale, const opus_uint8 *dzone, const opus_uint8 *r, const opus_uint8 *p0, int dim, int arch) {
int i;
int q[IMAX(DRED_LATENT_DIM,DRED_STATE_DIM)];
float xq[IMAX(DRED_LATENT_DIM,DRED_STATE_DIM)];
@@ -237,7 +237,7 @@ static void dred_encode_latents(ec_enc *enc, const float *x, const opus_uint8 *s
xq[i] = x[i]*scale[i]*(1.f/256.f);
deadzone[i] = xq[i]/(delta[i]+eps);
}
- compute_activation(deadzone, deadzone, dim, ACTIVATION_TANH);
+ compute_activation(deadzone, deadzone, dim, ACTIVATION_TANH, arch);
for (i=0;i<dim;i++) {
xq[i] = xq[i] - delta[i]*deadzone[i];
q[i] = (int)floor(.5f+xq[i]);
@@ -249,7 +249,7 @@ static void dred_encode_latents(ec_enc *enc, const float *x, const opus_uint8 *s
}
}
-int dred_encode_silk_frame(const DREDEnc *enc, unsigned char *buf, int max_chunks, int max_bytes) {
+int dred_encode_silk_frame(const DREDEnc *enc, unsigned char *buf, int max_chunks, int max_bytes, int arch) {
ec_enc ec_encoder;
int q_level;
@@ -275,7 +275,8 @@ int dred_encode_silk_frame(const DREDEnc *enc, unsigned char *buf, int max_chunk
dred_state_dead_zone_q8 + state_qoffset,
dred_state_r_q8 + state_qoffset,
dred_state_p0_q8 + state_qoffset,
- DRED_STATE_DIM);
+ DRED_STATE_DIM,
+ arch);
if (ec_tell(&ec_encoder) > 8*max_bytes) {
return 0;
}
@@ -294,7 +295,8 @@ int dred_encode_silk_frame(const DREDEnc *enc, unsigned char *buf, int max_chunk
dred_latent_dead_zone_q8 + offset,
dred_latent_r_q8 + offset,
dred_latent_p0_q8 + offset,
- DRED_LATENT_DIM
+ DRED_LATENT_DIM,
+ arch
);
if (ec_tell(&ec_encoder) > 8*max_bytes) {
ec_encoder = ec_bak;