1b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org/* 2b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org * Copyright (c) 2011 The WebRTC project authors. All Rights Reserved. 3b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org * 4b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org * Use of this source code is governed by a BSD-style license 5b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org * that can be found in the LICENSE file in the root of the source 6b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org * tree. An additional intellectual property rights grant can be found 7b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org * in the file PATENTS. All contributing project authors may 8b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org * be found in the AUTHORS file in the root of the source tree. 9b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org */ 10b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org 11b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org#ifndef WEBRTC_MODULES_AUDIO_CODING_CODECS_PCM16B_MAIN_INTERFACE_PCM16B_H_ 12b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org#define WEBRTC_MODULES_AUDIO_CODING_CODECS_PCM16B_MAIN_INTERFACE_PCM16B_H_ 13b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org/* 14b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org * Define the fixpoint numeric formats 15b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org */ 16b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org 17a11402cdbf99a12d58421d5b446982e8d30c40caandresp@webrtc.org#include "webrtc/typedefs.h" 18b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org 19b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org#ifdef __cplusplus 20b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.orgextern "C" { 21b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org#endif 22b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org 23b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org/**************************************************************************** 24b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org * WebRtcPcm16b_EncodeW16(...) 25b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org * 26b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org * "Encode" a sample vector to 16 bit linear (Encoded standard is big endian) 27b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org * 28b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org * Input: 2962772e9d8c7b2992ed981e3505726b119c0fe356bjornv@webrtc.org * - speechIn16b : Input speech vector 3062772e9d8c7b2992ed981e3505726b119c0fe356bjornv@webrtc.org * - length_samples : Number of samples in speech vector 31b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org * 32b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org * Output: 3362772e9d8c7b2992ed981e3505726b119c0fe356bjornv@webrtc.org * - speechOut16b : Encoded data vector (big endian 16 bit) 34b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org * 3562772e9d8c7b2992ed981e3505726b119c0fe356bjornv@webrtc.org * Returned value : Size in bytes of speechOut16b 36b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org */ 37b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org 3862f3144da522a37040a20503758655db3b3af9e2bjornv@webrtc.orgint16_t WebRtcPcm16b_EncodeW16(const int16_t* speechIn16b, 3962772e9d8c7b2992ed981e3505726b119c0fe356bjornv@webrtc.org int16_t length_samples, 4062f3144da522a37040a20503758655db3b3af9e2bjornv@webrtc.org int16_t* speechOut16b); 41b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org 42b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org/**************************************************************************** 43b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org * WebRtcPcm16b_Encode(...) 44b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org * 45b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org * "Encode" a sample vector to 16 bit linear (Encoded standard is big endian) 46b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org * 47b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org * Input: 48b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org * - speech16b : Input speech vector 49b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org * - len : Number of samples in speech vector 50b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org * 51b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org * Output: 52b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org * - speech8b : Encoded data vector (big endian 16 bit) 53b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org * 54b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org * Returned value : Size in bytes of speech8b 55b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org */ 56b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org 57fbda0fcf2f9e82c82bcaac138f44d4e5144f6e0dpbos@webrtc.orgint16_t WebRtcPcm16b_Encode(int16_t *speech16b, 58fbda0fcf2f9e82c82bcaac138f44d4e5144f6e0dpbos@webrtc.org int16_t len, 59fbda0fcf2f9e82c82bcaac138f44d4e5144f6e0dpbos@webrtc.org unsigned char *speech8b); 60b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org 61b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org/**************************************************************************** 62b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org * WebRtcPcm16b_DecodeW16(...) 63b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org * 64b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org * "Decode" a vector to 16 bit linear (Encoded standard is big endian) 65b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org * 66b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org * Input: 6762772e9d8c7b2992ed981e3505726b119c0fe356bjornv@webrtc.org * - speechIn16b : Encoded data vector (big endian 16 bit) 6862772e9d8c7b2992ed981e3505726b119c0fe356bjornv@webrtc.org * - length_bytes : Number of bytes in speechIn16b 69b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org * 70b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org * Output: 7162772e9d8c7b2992ed981e3505726b119c0fe356bjornv@webrtc.org * - speechOut16b : Decoded speech vector 72b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org * 7362772e9d8c7b2992ed981e3505726b119c0fe356bjornv@webrtc.org * Returned value : Samples in speechOut16b 74b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org */ 75b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org 76fbda0fcf2f9e82c82bcaac138f44d4e5144f6e0dpbos@webrtc.orgint16_t WebRtcPcm16b_DecodeW16(void *inst, 77fbda0fcf2f9e82c82bcaac138f44d4e5144f6e0dpbos@webrtc.org int16_t *speechIn16b, 7862772e9d8c7b2992ed981e3505726b119c0fe356bjornv@webrtc.org int16_t length_bytes, 79fbda0fcf2f9e82c82bcaac138f44d4e5144f6e0dpbos@webrtc.org int16_t *speechOut16b, 80fbda0fcf2f9e82c82bcaac138f44d4e5144f6e0dpbos@webrtc.org int16_t* speechType); 81b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org 82b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org/**************************************************************************** 83b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org * WebRtcPcm16b_Decode(...) 84b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org * 85b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org * "Decode" a vector to 16 bit linear (Encoded standard is big endian) 86b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org * 87b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org * Input: 88b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org * - speech8b : Encoded data vector (big endian 16 bit) 89b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org * - len : Number of bytes in speech8b 90b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org * 91b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org * Output: 92b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org * - speech16b : Decoded speech vector 93b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org * 94b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org * Returned value : Samples in speech16b 95b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org */ 96b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org 97b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org 98fbda0fcf2f9e82c82bcaac138f44d4e5144f6e0dpbos@webrtc.orgint16_t WebRtcPcm16b_Decode(unsigned char *speech8b, 99fbda0fcf2f9e82c82bcaac138f44d4e5144f6e0dpbos@webrtc.org int16_t len, 100fbda0fcf2f9e82c82bcaac138f44d4e5144f6e0dpbos@webrtc.org int16_t *speech16b); 101b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org 102b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org#ifdef __cplusplus 103b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org} 104b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org#endif 105b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org 106b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org#endif /* PCM16B */ 107