|
1 /* |
|
2 * Copyright (c) 2006 Nokia Corporation and/or its subsidiary(-ies). |
|
3 * All rights reserved. |
|
4 * This component and the accompanying materials are made available |
|
5 * under the terms of "Eclipse Public License v1.0" |
|
6 * which accompanies this distribution, and is available |
|
7 * at the URL "http://www.eclipse.org/legal/epl-v10.html". |
|
8 * |
|
9 * Initial Contributors: |
|
10 * Nokia Corporation - initial contribution. |
|
11 * |
|
12 * Contributors: |
|
13 * |
|
14 * Description: |
|
15 * |
|
16 */ |
|
17 |
|
18 |
|
19 |
|
20 |
|
21 #ifndef AMRFRAME_H |
|
22 #define AMRFRAME_H |
|
23 |
|
24 #include <e32base.h> |
|
25 |
|
26 // DATA TYPES |
|
27 |
|
28 /** |
|
29 * AMR frame type ( narrow band ). |
|
30 * Digits from enumeration names refer to bit-rate in kbps. |
|
31 */ |
|
32 enum TAmrFrameType |
|
33 { |
|
34 EAmrFrame4_75 = 0, |
|
35 EAmrFrame5_15 = 1, |
|
36 EAmrFrame5_9 = 2, |
|
37 EAmrFrame6_7 = 3, |
|
38 EAmrFrame7_4 = 4, |
|
39 EAmrFrame7_95 = 5, |
|
40 EAmrFrame10_2 = 6, |
|
41 EAmrFrame12_2 = 7, |
|
42 EAmrFrameSid = 8, // Silence indicator ( SID ) frame |
|
43 // contains only comfort noise ( CN ) parameters |
|
44 EAmrFrameNoData = 15 // No data |
|
45 }; |
|
46 /** |
|
47 * AMR frame type ( wide band ). |
|
48 * Digits from enumeration names refer to bit-rate in kbps. |
|
49 */ |
|
50 enum TAmrWbFrameType |
|
51 { |
|
52 EAmrWbFrame6_60 = 0, |
|
53 EAmrWbFrame8_85 = 1, |
|
54 EAmrWbFrame12_65 = 2, |
|
55 EAmrWbFrame14_25 = 3, |
|
56 EAmrWbFrame15_85 = 4, |
|
57 EAmrWbFrame18_25 = 5, |
|
58 EAmrWbFrame19_85 = 6, |
|
59 EAmrWbFrame23_05 = 7, |
|
60 EAmrWbFrame23_85 = 8, |
|
61 EAmrWbFrameSid = 9, // Silence indicator ( SID ) frame |
|
62 // contains only comfort noise ( CN ) parameters |
|
63 EAmrWbFrameNoData = 15 // No data |
|
64 }; |
|
65 |
|
66 |
|
67 // CLASS DECLARATION |
|
68 |
|
69 /** |
|
70 * The AMR payload decoder for bandwidth efficient mode. |
|
71 * |
|
72 * @lib Mccamrplformat.dll |
|
73 * @since Series 60 3.1 |
|
74 */ |
|
75 class TAmrFrame |
|
76 { |
|
77 |
|
78 public: // Constructors and destructor |
|
79 |
|
80 /** |
|
81 * Constructor. |
|
82 */ |
|
83 TAmrFrame( ); |
|
84 |
|
85 public: // Data |
|
86 |
|
87 // Frame type ( FT, 4 bits ) |
|
88 TAmrFrameType iFrameType; |
|
89 |
|
90 // Frame quality indicator ( Q, 1 bit ); 1 if frame OK; 0 if frame damaged |
|
91 TUint8 iFrameQualityInd; |
|
92 |
|
93 // CRC ( Cyclic Redundancy Code, 8 bits ) for the frame |
|
94 TUint8 iCrc; |
|
95 |
|
96 // Audio channel ( starts from zero ) which this frame belongs to |
|
97 TInt iChannel; |
|
98 |
|
99 // Pointer to frame data; data length depends on frame type |
|
100 TUint8* iFrameData; |
|
101 |
|
102 // Starting bit index of frame data pointed to by `iFrameData' |
|
103 TUint iBitIndex; |
|
104 |
|
105 }; |
|
106 |
|
107 |
|
108 |
|
109 |
|
110 #include "amrframe.inl" |
|
111 |
|
112 #endif // AMRFRAME_H |