13f39c00d9875d7e09062725757b789f4da375ef9turaj@webrtc.org/* 23f39c00d9875d7e09062725757b789f4da375ef9turaj@webrtc.org * Copyright (c) 2012 The WebRTC project authors. All Rights Reserved. 33f39c00d9875d7e09062725757b789f4da375ef9turaj@webrtc.org * 43f39c00d9875d7e09062725757b789f4da375ef9turaj@webrtc.org * Use of this source code is governed by a BSD-style license 53f39c00d9875d7e09062725757b789f4da375ef9turaj@webrtc.org * that can be found in the LICENSE file in the root of the source 63f39c00d9875d7e09062725757b789f4da375ef9turaj@webrtc.org * tree. An additional intellectual property rights grant can be found 73f39c00d9875d7e09062725757b789f4da375ef9turaj@webrtc.org * in the file PATENTS. All contributing project authors may 83f39c00d9875d7e09062725757b789f4da375ef9turaj@webrtc.org * be found in the AUTHORS file in the root of the source tree. 93f39c00d9875d7e09062725757b789f4da375ef9turaj@webrtc.org */ 103f39c00d9875d7e09062725757b789f4da375ef9turaj@webrtc.org 11ed0b4fb2f28fa291e726fc1cf6852611f2176392turaj@webrtc.org#ifndef WEBRTC_MODULES_AUDIO_CODING_MAIN_ACM2_ACM_CNG_H_ 12ed0b4fb2f28fa291e726fc1cf6852611f2176392turaj@webrtc.org#define WEBRTC_MODULES_AUDIO_CODING_MAIN_ACM2_ACM_CNG_H_ 133f39c00d9875d7e09062725757b789f4da375ef9turaj@webrtc.org 14ed0b4fb2f28fa291e726fc1cf6852611f2176392turaj@webrtc.org#include "webrtc/modules/audio_coding/main/acm2/acm_generic_codec.h" 153f39c00d9875d7e09062725757b789f4da375ef9turaj@webrtc.org 163f39c00d9875d7e09062725757b789f4da375ef9turaj@webrtc.org// forward declaration 173f39c00d9875d7e09062725757b789f4da375ef9turaj@webrtc.orgstruct WebRtcCngEncInst; 183f39c00d9875d7e09062725757b789f4da375ef9turaj@webrtc.orgstruct WebRtcCngDecInst; 193f39c00d9875d7e09062725757b789f4da375ef9turaj@webrtc.org 203f39c00d9875d7e09062725757b789f4da375ef9turaj@webrtc.orgnamespace webrtc { 213f39c00d9875d7e09062725757b789f4da375ef9turaj@webrtc.org 220a1c75a50d10621f70d5921c5b8b9c0eb144bb42turaj@webrtc.orgnamespace acm2 { 230a1c75a50d10621f70d5921c5b8b9c0eb144bb42turaj@webrtc.org 243f39c00d9875d7e09062725757b789f4da375ef9turaj@webrtc.orgclass ACMCNG: public ACMGenericCodec { 253f39c00d9875d7e09062725757b789f4da375ef9turaj@webrtc.org public: 263f39c00d9875d7e09062725757b789f4da375ef9turaj@webrtc.org explicit ACMCNG(int16_t codec_id); 273f39c00d9875d7e09062725757b789f4da375ef9turaj@webrtc.org ~ACMCNG(); 283f39c00d9875d7e09062725757b789f4da375ef9turaj@webrtc.org 293f39c00d9875d7e09062725757b789f4da375ef9turaj@webrtc.org // for FEC 303f39c00d9875d7e09062725757b789f4da375ef9turaj@webrtc.org ACMGenericCodec* CreateInstance(void); 313f39c00d9875d7e09062725757b789f4da375ef9turaj@webrtc.org 323f39c00d9875d7e09062725757b789f4da375ef9turaj@webrtc.org int16_t InternalEncode(uint8_t* bitstream, 333f39c00d9875d7e09062725757b789f4da375ef9turaj@webrtc.org int16_t* bitstream_len_byte); 343f39c00d9875d7e09062725757b789f4da375ef9turaj@webrtc.org 353f39c00d9875d7e09062725757b789f4da375ef9turaj@webrtc.org int16_t InternalInitEncoder(WebRtcACMCodecParams *codec_params); 363f39c00d9875d7e09062725757b789f4da375ef9turaj@webrtc.org 373f39c00d9875d7e09062725757b789f4da375ef9turaj@webrtc.org protected: 3847b4b9d94cafb22e19bc8a6e6ca83b0568dcb973henrik.lundin@webrtc.org void DestructEncoderSafe() OVERRIDE 3947b4b9d94cafb22e19bc8a6e6ca83b0568dcb973henrik.lundin@webrtc.org EXCLUSIVE_LOCKS_REQUIRED(codec_wrapper_lock_); 403f39c00d9875d7e09062725757b789f4da375ef9turaj@webrtc.org 413f39c00d9875d7e09062725757b789f4da375ef9turaj@webrtc.org int16_t InternalCreateEncoder(); 423f39c00d9875d7e09062725757b789f4da375ef9turaj@webrtc.org 433f39c00d9875d7e09062725757b789f4da375ef9turaj@webrtc.org int16_t EnableDTX() { 443f39c00d9875d7e09062725757b789f4da375ef9turaj@webrtc.org return -1; 453f39c00d9875d7e09062725757b789f4da375ef9turaj@webrtc.org } 463f39c00d9875d7e09062725757b789f4da375ef9turaj@webrtc.org 473f39c00d9875d7e09062725757b789f4da375ef9turaj@webrtc.org int16_t DisableDTX() { 483f39c00d9875d7e09062725757b789f4da375ef9turaj@webrtc.org return -1; 493f39c00d9875d7e09062725757b789f4da375ef9turaj@webrtc.org } 503f39c00d9875d7e09062725757b789f4da375ef9turaj@webrtc.org 513f39c00d9875d7e09062725757b789f4da375ef9turaj@webrtc.org WebRtcCngEncInst* encoder_inst_ptr_; 523f39c00d9875d7e09062725757b789f4da375ef9turaj@webrtc.org uint16_t samp_freq_hz_; 533f39c00d9875d7e09062725757b789f4da375ef9turaj@webrtc.org}; 543f39c00d9875d7e09062725757b789f4da375ef9turaj@webrtc.org 550a1c75a50d10621f70d5921c5b8b9c0eb144bb42turaj@webrtc.org} // namespace acm2 560a1c75a50d10621f70d5921c5b8b9c0eb144bb42turaj@webrtc.org 573f39c00d9875d7e09062725757b789f4da375ef9turaj@webrtc.org} // namespace webrtc 583f39c00d9875d7e09062725757b789f4da375ef9turaj@webrtc.org 59ed0b4fb2f28fa291e726fc1cf6852611f2176392turaj@webrtc.org#endif // WEBRTC_MODULES_AUDIO_CODING_MAIN_ACM2_ACM_CNG_H_ 60