summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFrédéric Dalleau <frederic.dalleau@linux.intel.com>2013-04-08 15:24:10 +0200
committerJohan Hedberg <johan.hedberg@intel.com>2013-04-15 11:03:11 +0300
commitc115634f9e4a586f8189b2eba499097c331a1cf6 (patch)
tree1950c2ed53c4968e4a1960690e3d1ab49a65ef86
parentc0d184e9371cc892780decc9c7231e963733c5a6 (diff)
downloadsbc-c115634f9e4a586f8189b2eba499097c331a1cf6.tar.gz
sbc: Use plain C primitive if doing msbc on neon
neon has it's own optimized input reordering. Until this code gets optimized, the neon assembly code will not work with the mSBC input reordering. However, the plain C version of mSBC can be used in this case. This patch makes use of plain C code if the block increment is 1 which is typical for mSBC.
-rw-r--r--sbc/sbc_primitives.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/sbc/sbc_primitives.c b/sbc/sbc_primitives.c
index f232f65..bf9937d 100644
--- a/sbc/sbc_primitives.c
+++ b/sbc/sbc_primitives.c
@@ -570,5 +570,13 @@ void sbc_init_primitives(struct sbc_encoder_state *state)
#endif
#ifdef SBC_BUILD_WITH_NEON_SUPPORT
sbc_init_primitives_neon(state);
+
+ if (state->increment == 1) {
+ state->sbc_analyze_8s = sbc_analyze_1b_8s_simd_odd;
+ state->sbc_enc_process_input_4s_le = sbc_enc_process_input_4s_le;
+ state->sbc_enc_process_input_4s_be = sbc_enc_process_input_4s_be;
+ state->sbc_enc_process_input_8s_le = sbc_enc_process_input_8s_le;
+ state->sbc_enc_process_input_8s_be = sbc_enc_process_input_8s_be;
+ }
#endif
}