1470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com/* 2470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com * Copyright (c) 2011 The WebRTC project authors. All Rights Reserved. 3470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com * 4470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com * Use of this source code is governed by a BSD-style license 5470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com * that can be found in the LICENSE file in the root of the source 6470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com * tree. An additional intellectual property rights grant can be found 7470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com * in the file PATENTS. All contributing project authors may 8470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com * be found in the AUTHORS file in the root of the source tree. 9470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com */ 10470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com#include <string.h> 11470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com#include "g711.h" 12470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com#include "g711_interface.h" 13262e676a08fc29ee6c414f5858d68697be983515andresp@webrtc.org#include "webrtc/typedefs.h" 14470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com 15dce40cf804019a9898b6ab8d8262466b697c56e0Peter Kastingsize_t WebRtcG711_EncodeA(const int16_t* speechIn, 16dce40cf804019a9898b6ab8d8262466b697c56e0Peter Kasting size_t len, 17dce40cf804019a9898b6ab8d8262466b697c56e0Peter Kasting uint8_t* encoded) { 18dce40cf804019a9898b6ab8d8262466b697c56e0Peter Kasting size_t n; 191c6239a3b622fd886d1a2d78cb716b4745446a51kwiberg@webrtc.org for (n = 0; n < len; n++) 201c6239a3b622fd886d1a2d78cb716b4745446a51kwiberg@webrtc.org encoded[n] = linear_to_alaw(speechIn[n]); 211c6239a3b622fd886d1a2d78cb716b4745446a51kwiberg@webrtc.org return len; 22470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com} 23470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com 24dce40cf804019a9898b6ab8d8262466b697c56e0Peter Kastingsize_t WebRtcG711_EncodeU(const int16_t* speechIn, 25dce40cf804019a9898b6ab8d8262466b697c56e0Peter Kasting size_t len, 26dce40cf804019a9898b6ab8d8262466b697c56e0Peter Kasting uint8_t* encoded) { 27dce40cf804019a9898b6ab8d8262466b697c56e0Peter Kasting size_t n; 281c6239a3b622fd886d1a2d78cb716b4745446a51kwiberg@webrtc.org for (n = 0; n < len; n++) 291c6239a3b622fd886d1a2d78cb716b4745446a51kwiberg@webrtc.org encoded[n] = linear_to_ulaw(speechIn[n]); 301c6239a3b622fd886d1a2d78cb716b4745446a51kwiberg@webrtc.org return len; 31470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com} 32470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com 33dce40cf804019a9898b6ab8d8262466b697c56e0Peter Kastingsize_t WebRtcG711_DecodeA(const uint8_t* encoded, 34dce40cf804019a9898b6ab8d8262466b697c56e0Peter Kasting size_t len, 35dce40cf804019a9898b6ab8d8262466b697c56e0Peter Kasting int16_t* decoded, 36dce40cf804019a9898b6ab8d8262466b697c56e0Peter Kasting int16_t* speechType) { 37dce40cf804019a9898b6ab8d8262466b697c56e0Peter Kasting size_t n; 381c6239a3b622fd886d1a2d78cb716b4745446a51kwiberg@webrtc.org for (n = 0; n < len; n++) 391c6239a3b622fd886d1a2d78cb716b4745446a51kwiberg@webrtc.org decoded[n] = alaw_to_linear(encoded[n]); 40ae4e2b352b4d17c6184687949778704ea60d1da6pbos@webrtc.org *speechType = 1; 411c6239a3b622fd886d1a2d78cb716b4745446a51kwiberg@webrtc.org return len; 42470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com} 43470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com 44dce40cf804019a9898b6ab8d8262466b697c56e0Peter Kastingsize_t WebRtcG711_DecodeU(const uint8_t* encoded, 45dce40cf804019a9898b6ab8d8262466b697c56e0Peter Kasting size_t len, 46dce40cf804019a9898b6ab8d8262466b697c56e0Peter Kasting int16_t* decoded, 47dce40cf804019a9898b6ab8d8262466b697c56e0Peter Kasting int16_t* speechType) { 48dce40cf804019a9898b6ab8d8262466b697c56e0Peter Kasting size_t n; 491c6239a3b622fd886d1a2d78cb716b4745446a51kwiberg@webrtc.org for (n = 0; n < len; n++) 501c6239a3b622fd886d1a2d78cb716b4745446a51kwiberg@webrtc.org decoded[n] = ulaw_to_linear(encoded[n]); 51ae4e2b352b4d17c6184687949778704ea60d1da6pbos@webrtc.org *speechType = 1; 521c6239a3b622fd886d1a2d78cb716b4745446a51kwiberg@webrtc.org return len; 53470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com} 54470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com 55ae4e2b352b4d17c6184687949778704ea60d1da6pbos@webrtc.orgint16_t WebRtcG711_Version(char* version, int16_t lenBytes) { 56ae4e2b352b4d17c6184687949778704ea60d1da6pbos@webrtc.org strncpy(version, "2.0.0", lenBytes); 57ae4e2b352b4d17c6184687949778704ea60d1da6pbos@webrtc.org return 0; 58470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com} 59