Re-landing r6961
common_audio/signal_processing: Remove macro WEBRTC_SPL_MEMCPY_W8 This macro is nothing but memcpy() and further used at one single place in webrtc, so it makes no sense to keep it. Replaced the operation where it is used. BUG=3348,3353 TESTED=locally on linux TBR=aluebs@webrtc.org Review URL: https://webrtc-codereview.appspot.com/18259004 git-svn-id: http://webrtc.googlecode.com/svn/trunk@6963 4adac7df-926f-26a2-2b94-8c16560cd09d
This commit is contained in:
@@ -109,8 +109,6 @@
|
|||||||
extern "C" {
|
extern "C" {
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#define WEBRTC_SPL_MEMCPY_W8(v1, v2, length) \
|
|
||||||
memcpy(v1, v2, (length) * sizeof(char))
|
|
||||||
#define WEBRTC_SPL_MEMCPY_W16(v1, v2, length) \
|
#define WEBRTC_SPL_MEMCPY_W16(v1, v2, length) \
|
||||||
memcpy(v1, v2, (length) * sizeof(int16_t))
|
memcpy(v1, v2, (length) * sizeof(int16_t))
|
||||||
|
|
||||||
|
|||||||
@@ -165,11 +165,9 @@ TEST_F(SplTest, MathOperationsTest) {
|
|||||||
TEST_F(SplTest, BasicArrayOperationsTest) {
|
TEST_F(SplTest, BasicArrayOperationsTest) {
|
||||||
const int kVectorSize = 4;
|
const int kVectorSize = 4;
|
||||||
int B[] = {4, 12, 133, 1100};
|
int B[] = {4, 12, 133, 1100};
|
||||||
uint8_t b8[kVectorSize];
|
|
||||||
int16_t b16[kVectorSize];
|
int16_t b16[kVectorSize];
|
||||||
int32_t b32[kVectorSize];
|
int32_t b32[kVectorSize];
|
||||||
|
|
||||||
uint8_t bTmp8[kVectorSize];
|
|
||||||
int16_t bTmp16[kVectorSize];
|
int16_t bTmp16[kVectorSize];
|
||||||
int32_t bTmp32[kVectorSize];
|
int32_t bTmp32[kVectorSize];
|
||||||
|
|
||||||
@@ -198,14 +196,9 @@ TEST_F(SplTest, BasicArrayOperationsTest) {
|
|||||||
EXPECT_EQ(1, b32[kk]);
|
EXPECT_EQ(1, b32[kk]);
|
||||||
}
|
}
|
||||||
for (int kk = 0; kk < kVectorSize; ++kk) {
|
for (int kk = 0; kk < kVectorSize; ++kk) {
|
||||||
bTmp8[kk] = (int8_t)kk;
|
|
||||||
bTmp16[kk] = (int16_t)kk;
|
bTmp16[kk] = (int16_t)kk;
|
||||||
bTmp32[kk] = (int32_t)kk;
|
bTmp32[kk] = (int32_t)kk;
|
||||||
}
|
}
|
||||||
WEBRTC_SPL_MEMCPY_W8(b8, bTmp8, kVectorSize);
|
|
||||||
for (int kk = 0; kk < kVectorSize; ++kk) {
|
|
||||||
EXPECT_EQ(b8[kk], bTmp8[kk]);
|
|
||||||
}
|
|
||||||
WEBRTC_SPL_MEMCPY_W16(b16, bTmp16, kVectorSize);
|
WEBRTC_SPL_MEMCPY_W16(b16, bTmp16, kVectorSize);
|
||||||
for (int kk = 0; kk < kVectorSize; ++kk) {
|
for (int kk = 0; kk < kVectorSize; ++kk) {
|
||||||
EXPECT_EQ(b16[kk], bTmp16[kk]);
|
EXPECT_EQ(b16[kk], bTmp16[kk]);
|
||||||
|
|||||||
@@ -27,7 +27,7 @@ extern "C" {
|
|||||||
*
|
*
|
||||||
* Input:
|
* Input:
|
||||||
* - speechIn16b : Input speech vector
|
* - speechIn16b : Input speech vector
|
||||||
* - len : Number of samples in speech vector
|
* - length_samples : Number of samples in speech vector
|
||||||
*
|
*
|
||||||
* Output:
|
* Output:
|
||||||
* - speechOut16b : Encoded data vector (big endian 16 bit)
|
* - speechOut16b : Encoded data vector (big endian 16 bit)
|
||||||
@@ -36,7 +36,7 @@ extern "C" {
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
int16_t WebRtcPcm16b_EncodeW16(const int16_t* speechIn16b,
|
int16_t WebRtcPcm16b_EncodeW16(const int16_t* speechIn16b,
|
||||||
int16_t len,
|
int16_t length_samples,
|
||||||
int16_t* speechOut16b);
|
int16_t* speechOut16b);
|
||||||
|
|
||||||
/****************************************************************************
|
/****************************************************************************
|
||||||
@@ -65,7 +65,7 @@ int16_t WebRtcPcm16b_Encode(int16_t *speech16b,
|
|||||||
*
|
*
|
||||||
* Input:
|
* Input:
|
||||||
* - speechIn16b : Encoded data vector (big endian 16 bit)
|
* - speechIn16b : Encoded data vector (big endian 16 bit)
|
||||||
* - len : Number of bytes in speechIn16b
|
* - length_bytes : Number of bytes in speechIn16b
|
||||||
*
|
*
|
||||||
* Output:
|
* Output:
|
||||||
* - speechOut16b : Decoded speech vector
|
* - speechOut16b : Decoded speech vector
|
||||||
@@ -75,7 +75,7 @@ int16_t WebRtcPcm16b_Encode(int16_t *speech16b,
|
|||||||
|
|
||||||
int16_t WebRtcPcm16b_DecodeW16(void *inst,
|
int16_t WebRtcPcm16b_DecodeW16(void *inst,
|
||||||
int16_t *speechIn16b,
|
int16_t *speechIn16b,
|
||||||
int16_t len,
|
int16_t length_bytes,
|
||||||
int16_t *speechOut16b,
|
int16_t *speechOut16b,
|
||||||
int16_t* speechType);
|
int16_t* speechType);
|
||||||
|
|
||||||
|
|||||||
@@ -12,13 +12,12 @@
|
|||||||
#include "pcm16b.h"
|
#include "pcm16b.h"
|
||||||
|
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
|
#ifdef WEBRTC_ARCH_BIG_ENDIAN
|
||||||
|
#include <string.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
#include "typedefs.h"
|
#include "typedefs.h"
|
||||||
|
|
||||||
#ifdef WEBRTC_ARCH_BIG_ENDIAN
|
|
||||||
#include "signal_processing_library.h"
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#define HIGHEND 0xFF00
|
#define HIGHEND 0xFF00
|
||||||
#define LOWEND 0xFF
|
#define LOWEND 0xFF
|
||||||
|
|
||||||
@@ -26,18 +25,18 @@
|
|||||||
|
|
||||||
/* Encoder with int16_t Output */
|
/* Encoder with int16_t Output */
|
||||||
int16_t WebRtcPcm16b_EncodeW16(const int16_t* speechIn16b,
|
int16_t WebRtcPcm16b_EncodeW16(const int16_t* speechIn16b,
|
||||||
int16_t len,
|
int16_t length_samples,
|
||||||
int16_t* speechOut16b)
|
int16_t* speechOut16b)
|
||||||
{
|
{
|
||||||
#ifdef WEBRTC_ARCH_BIG_ENDIAN
|
#ifdef WEBRTC_ARCH_BIG_ENDIAN
|
||||||
WEBRTC_SPL_MEMCPY_W16(speechOut16b, speechIn16b, len);
|
memcpy(speechOut16b, speechIn16b, length_samples * sizeof(int16_t));
|
||||||
#else
|
#else
|
||||||
int i;
|
int i;
|
||||||
for (i=0;i<len;i++) {
|
for (i = 0; i < length_samples; i++) {
|
||||||
speechOut16b[i]=(((uint16_t)speechIn16b[i])>>8)|((((uint16_t)speechIn16b[i])<<8)&0xFF00);
|
speechOut16b[i]=(((uint16_t)speechIn16b[i])>>8)|((((uint16_t)speechIn16b[i])<<8)&0xFF00);
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
return(len<<1);
|
return length_samples << 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -64,15 +63,15 @@ int16_t WebRtcPcm16b_Encode(int16_t *speech16b,
|
|||||||
/* Decoder with int16_t Input instead of char when the int16_t Encoder is used */
|
/* Decoder with int16_t Input instead of char when the int16_t Encoder is used */
|
||||||
int16_t WebRtcPcm16b_DecodeW16(void *inst,
|
int16_t WebRtcPcm16b_DecodeW16(void *inst,
|
||||||
int16_t *speechIn16b,
|
int16_t *speechIn16b,
|
||||||
int16_t len,
|
int16_t length_bytes,
|
||||||
int16_t *speechOut16b,
|
int16_t *speechOut16b,
|
||||||
int16_t* speechType)
|
int16_t* speechType)
|
||||||
{
|
{
|
||||||
#ifdef WEBRTC_ARCH_BIG_ENDIAN
|
#ifdef WEBRTC_ARCH_BIG_ENDIAN
|
||||||
WEBRTC_SPL_MEMCPY_W8(speechOut16b, speechIn16b, ((len*sizeof(int16_t)+1)>>1));
|
memcpy(speechOut16b, speechIn16b, length_bytes);
|
||||||
#else
|
#else
|
||||||
int i;
|
int i;
|
||||||
int samples=len>>1;
|
int samples = length_bytes >> 1;
|
||||||
|
|
||||||
for (i=0;i<samples;i++) {
|
for (i=0;i<samples;i++) {
|
||||||
speechOut16b[i]=(((uint16_t)speechIn16b[i])>>8)|(((uint16_t)(speechIn16b[i]&0xFF))<<8);
|
speechOut16b[i]=(((uint16_t)speechIn16b[i])>>8)|(((uint16_t)(speechIn16b[i]&0xFF))<<8);
|
||||||
@@ -84,7 +83,7 @@ int16_t WebRtcPcm16b_DecodeW16(void *inst,
|
|||||||
// Avoid warning.
|
// Avoid warning.
|
||||||
(void)(inst = NULL);
|
(void)(inst = NULL);
|
||||||
|
|
||||||
return(len>>1);
|
return length_bytes >> 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* "old" version of the decoder that uses char as input (not used in NetEq any more) */
|
/* "old" version of the decoder that uses char as input (not used in NetEq any more) */
|
||||||
|
|||||||
Reference in New Issue
Block a user