137 { |
137 { |
138 XAAudioCodecDescriptor* desc = |
138 XAAudioCodecDescriptor* desc = |
139 ((XAAudioCodecDescriptor*) (temp.pEntry)); |
139 ((XAAudioCodecDescriptor*) (temp.pEntry)); |
140 /* map applicable values to XAAudioCodecCapabilities */ |
140 /* map applicable values to XAAudioCodecCapabilities */ |
141 pDescriptor->maxChannels = desc->maxChannels; |
141 pDescriptor->maxChannels = desc->maxChannels; |
142 pDescriptor->minSampleRate = desc->minSampleRate * 1000; /* milliHz */ |
142 pDescriptor->minSampleRate = desc->minSampleRate; /* milliHz */ |
143 if (desc->maxSampleRate < (0xFFFFFFFF / 1000)) |
143 if (desc->maxSampleRate < (0xFFFFFFFF)) |
144 { |
144 { |
145 pDescriptor->maxSampleRate = desc->maxSampleRate |
145 pDescriptor->maxSampleRate = desc->maxSampleRate; |
146 * 1000; |
|
147 } |
146 } |
148 else |
147 else |
149 { |
148 { |
150 pDescriptor->maxSampleRate = 0xFFFFFFFF; |
149 pDescriptor->maxSampleRate = 0xFFFFFFFF; |
151 } |
150 } |
152 pDescriptor->minBitsPerSample = desc->minBitsPerSample; |
151 pDescriptor->minBitsPerSample = desc->minBitsPerSample; |
153 pDescriptor->maxBitsPerSample = desc->maxBitsPerSample; |
152 pDescriptor->maxBitsPerSample = desc->maxBitsPerSample; |
154 pDescriptor->isFreqRangeContinuous = XA_BOOLEAN_TRUE; |
153 pDescriptor->isFreqRangeContinuous=desc->isFreqRangeContinuous; |
155 pDescriptor->minBitRate = desc->minBitRate; |
154 pDescriptor->minBitRate = desc->minBitRate; |
156 pDescriptor->maxBitRate = desc->maxBitRate; |
155 pDescriptor->maxBitRate = desc->maxBitRate; |
157 pDescriptor->numBitratesSupported |
156 pDescriptor->numBitratesSupported |
158 = desc->numBitratesSupported; |
157 = desc->numBitratesSupported; |
159 pDescriptor->isBitrateRangeContinuous = XA_BOOLEAN_TRUE; |
158 pDescriptor->isBitrateRangeContinuous=desc->isBitrateRangeContinuous; |
160 if (temp.xaid == XA_AUDIOCODEC_PCM) |
159 pDescriptor->profileSetting=desc->profileSetting; |
161 { |
160 pDescriptor->modeSetting=desc->modeSetting; /* no chanmode for pcm defined */ |
162 pDescriptor->profileSetting = XA_AUDIOPROFILE_PCM; |
161 |
163 pDescriptor->modeSetting = 0; /* no chanmode for pcm defined */ |
162 } |
164 } |
|
165 else if (temp.xaid == XA_ADAPTID_VORBIS) /* for ogg */ |
|
166 { |
|
167 if (desc->maxChannels == 1) |
|
168 { |
|
169 pDescriptor->profileSetting |
|
170 =XA_AUDIOPROFILE_MPEG1_L3; |
|
171 pDescriptor->modeSetting |
|
172 =XA_AUDIOCHANMODE_MP3_MONO; |
|
173 } |
|
174 else |
|
175 { |
|
176 pDescriptor->profileSetting |
|
177 =XA_AUDIOPROFILE_MPEG2_L3; |
|
178 pDescriptor->modeSetting |
|
179 =XA_AUDIOCHANMODE_MP3_STEREO; |
|
180 } |
|
181 } |
|
182 else |
163 else |
183 { |
164 { |
184 /* do nothing */ |
165 /* do nothing */ |
185 } |
166 } |
186 /*other caps undefined*/ |
167 /*other caps undefined*/ |
187 } |
168 } |
188 |
169 |
189 } |
170 } |
190 } |
171 } |
191 } |
172 |
192 |
173 |
193 DEBUG_API("<-XAAudioDecoderCapabilitiesItfImpl_GetAudioDecoderCapabilities"); |
174 DEBUG_API("<-XAAudioDecoderCapabilitiesItfImpl_GetAudioDecoderCapabilities"); |
194 return res; |
175 return res; |
195 } |
176 } |
196 |
177 |