mmserv/voipaudioservices/JitterBufferUtility/inc/InternalDef.h
author hgs
Tue, 21 Sep 2010 11:38:43 -0500
changeset 53 eabc8c503852
parent 0 71ca22bcf22a
permissions -rw-r--r--
201037

/*
 * Copyright (c) 2008 Nokia Corporation and/or its subsidiary(-ies).
 * All rights reserved.
 * This component and the accompanying materials are made available
 * under the terms of "Eclipse Public License v1.0"
 * which accompanies this distribution, and is available
 * at the URL "http://www.eclipse.org/legal/epl-v10.html".
 *
 * Initial Contributors:
 * Nokia Corporation - initial contribution.
 *
 * Contributors:
 *
 * Description:  Mcc Internal definitions
 *
 */

#ifndef INTERNALDEF_H
#define INTERNALDEF_H

// CONSTANTS
// When the remote end sends us SID/CN frames, then we can update the SID/CN
// parameters programmatically. Otherwise, we should not try to "emulate"
// SID/CN frames as this can lead to degradation of audio quality. Instead,
// we will send NULL/NO_DATA into the decoder.

// AMR-NB SID FT value is 8 and is located in the upper 4 bits
// See 3GPP TS 26.101
const TUint8 KAmrSidMode = 8;

// AMR-NB mode mask
const TUint8 KAmrModeMask = 0x78;

// AMR-NB SID Update frame interval
const TInt KAmrNbSidUpdateInterval = 8;

// Minimum required data length for DTX decision
const TInt KMinDataLenForDtx = 1;

// AMR NO_DATA frame needs one byte
// See 3GPP TS 26.101 and RFC 2367
//  ________________
// |0|1|1|1|1|1|0|0|
// |P|  FT   |Q|P|P|
//
//  P = PADDING
//  FT = 15 = NO_DATA
//  Q = QUALITY
const TUint8 KAmrNoDataFrame = 0x7C;

// Length of the header and AMR NO_DATA frames
const TInt KNoDataLength = 1;

// AMR mode solving needs 3 bit shift
const TInt KModeShiftBits = 3;

// VoIP codec header bytes can be either audio, comfort noise or unvoiced
// non-sid (null/no data) frame. Unvoiced non-sid frame is detected when
// the header byte does not indicate audio or comfort noise.
//const TUint8 KVoIPAudioFrame = 1;
const TUint8 KVoIPCNFrame = 2;

const TUint KJBAdaptUpdateIval = 250;
const TUint KJBMillisecondsToMicroseconds = 1000;
const TUint KJBEmptyBufferDelay = 2;

const TInt KDefaultSampleRateInkHz = 8;
const TInt KLowBufferLimit = 2;
const TInt KOverflowAlarmLimit = 20;

// Codec frame sizes
const TInt KAMRNBFrameSize = 32;
const TInt KILBCFrameSize = 52;
const TInt KG729FrameSize = 24; // 10 octets + 2 for header

// Max possible sequence number of RTP packet with standard RTP header.
const TUint KMaxSeqNumber = 0xFFFF; // 16-bit value

// Codec frame times
const TInt KAMRNBFrameTime = 20;

// VoIP codecs have a two byte header
const TInt KVoIPHeaderLength = 2;

#endif //INTERNALDEF_H

// End of file