OLD | NEW |
1 /* | 1 /* |
2 * Copyright (c) 2012 The WebRTC project authors. All Rights Reserved. | 2 * Copyright (c) 2012 The WebRTC project authors. All Rights Reserved. |
3 * | 3 * |
4 * Use of this source code is governed by a BSD-style license | 4 * Use of this source code is governed by a BSD-style license |
5 * that can be found in the LICENSE file in the root of the source | 5 * that can be found in the LICENSE file in the root of the source |
6 * tree. An additional intellectual property rights grant can be found | 6 * tree. An additional intellectual property rights grant can be found |
7 * in the file PATENTS. All contributing project authors may | 7 * in the file PATENTS. All contributing project authors may |
8 * be found in the AUTHORS file in the root of the source tree. | 8 * be found in the AUTHORS file in the root of the source tree. |
9 */ | 9 */ |
10 | 10 |
(...skipping 82 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
93 } | 93 } |
94 // Make sure that sample rate is 8,16 or 32 kHz. E.g. WAVE files may have | 94 // Make sure that sample rate is 8,16 or 32 kHz. E.g. WAVE files may have |
95 // other sampling rates. | 95 // other sampling rates. |
96 if (_codec.plfreq == 11000) { | 96 if (_codec.plfreq == 11000) { |
97 return 16000; | 97 return 16000; |
98 } else if (_codec.plfreq == 22000) { | 98 } else if (_codec.plfreq == 22000) { |
99 return 32000; | 99 return 32000; |
100 } else if (_codec.plfreq == 44000) { | 100 } else if (_codec.plfreq == 44000) { |
101 return 32000; | 101 return 32000; |
102 } else if (_codec.plfreq == 48000) { | 102 } else if (_codec.plfreq == 48000) { |
103 return 48000; | 103 return 32000; |
104 } else { | 104 } else { |
105 return _codec.plfreq; | 105 return _codec.plfreq; |
106 } | 106 } |
107 } | 107 } |
108 | 108 |
109 int32_t FilePlayerImpl::AudioCodec(CodecInst* audioCodec) const { | 109 int32_t FilePlayerImpl::AudioCodec(CodecInst* audioCodec) const { |
110 *audioCodec = _codec; | 110 *audioCodec = _codec; |
111 return 0; | 111 return 0; |
112 } | 112 } |
113 | 113 |
(...skipping 99 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
213 _fileFormat == kFileFormatPcm32kHzFile) { | 213 _fileFormat == kFileFormatPcm32kHzFile) { |
214 CodecInst codecInstL16; | 214 CodecInst codecInstL16; |
215 strncpy(codecInstL16.plname, "L16", 32); | 215 strncpy(codecInstL16.plname, "L16", 32); |
216 codecInstL16.pltype = 93; | 216 codecInstL16.pltype = 93; |
217 codecInstL16.channels = 1; | 217 codecInstL16.channels = 1; |
218 | 218 |
219 if (_fileFormat == kFileFormatPcm8kHzFile) { | 219 if (_fileFormat == kFileFormatPcm8kHzFile) { |
220 codecInstL16.rate = 128000; | 220 codecInstL16.rate = 128000; |
221 codecInstL16.plfreq = 8000; | 221 codecInstL16.plfreq = 8000; |
222 codecInstL16.pacsize = 80; | 222 codecInstL16.pacsize = 80; |
| 223 |
223 } else if (_fileFormat == kFileFormatPcm16kHzFile) { | 224 } else if (_fileFormat == kFileFormatPcm16kHzFile) { |
224 codecInstL16.rate = 256000; | 225 codecInstL16.rate = 256000; |
225 codecInstL16.plfreq = 16000; | 226 codecInstL16.plfreq = 16000; |
226 codecInstL16.pacsize = 160; | 227 codecInstL16.pacsize = 160; |
| 228 |
227 } else if (_fileFormat == kFileFormatPcm32kHzFile) { | 229 } else if (_fileFormat == kFileFormatPcm32kHzFile) { |
228 codecInstL16.rate = 512000; | 230 codecInstL16.rate = 512000; |
229 codecInstL16.plfreq = 32000; | 231 codecInstL16.plfreq = 32000; |
230 codecInstL16.pacsize = 320; | 232 codecInstL16.pacsize = 160; |
231 } else if (_fileFormat == kFileFormatPcm48kHzFile) { | |
232 codecInstL16.rate = 768000; | |
233 codecInstL16.plfreq = 48000; | |
234 codecInstL16.pacsize = 480; | |
235 } else { | 233 } else { |
236 LOG(LS_ERROR) << "StartPlayingFile() sample frequency not " | 234 LOG(LS_ERROR) << "StartPlayingFile() sample frequency not " |
237 << "supported for PCM format."; | 235 << "supported for PCM format."; |
238 return -1; | 236 return -1; |
239 } | 237 } |
240 | 238 |
241 if (_fileModule.StartPlayingAudioFile(fileName, notification, loop, | 239 if (_fileModule.StartPlayingAudioFile(fileName, notification, loop, |
242 _fileFormat, &codecInstL16, | 240 _fileFormat, &codecInstL16, |
243 startPosition, stopPosition) == -1) { | 241 startPosition, stopPosition) == -1) { |
244 LOG(LS_WARNING) << "StartPlayingFile() failed to initialize " | 242 LOG(LS_WARNING) << "StartPlayingFile() failed to initialize " |
(...skipping 27 matching lines...) Expand all Loading... |
272 } | 270 } |
273 | 271 |
274 int32_t FilePlayerImpl::StartPlayingFile(InStream* sourceStream, | 272 int32_t FilePlayerImpl::StartPlayingFile(InStream* sourceStream, |
275 uint32_t startPosition, | 273 uint32_t startPosition, |
276 float volumeScaling, | 274 float volumeScaling, |
277 uint32_t notification, | 275 uint32_t notification, |
278 uint32_t stopPosition, | 276 uint32_t stopPosition, |
279 const CodecInst* codecInst) { | 277 const CodecInst* codecInst) { |
280 if (_fileFormat == kFileFormatPcm16kHzFile || | 278 if (_fileFormat == kFileFormatPcm16kHzFile || |
281 _fileFormat == kFileFormatPcm32kHzFile || | 279 _fileFormat == kFileFormatPcm32kHzFile || |
282 _fileFormat == kFileFormatPcm8kHzFile || | 280 _fileFormat == kFileFormatPcm8kHzFile) { |
283 _fileFormat == kFileFormatPcm48kHzFile) { | |
284 CodecInst codecInstL16; | 281 CodecInst codecInstL16; |
285 strncpy(codecInstL16.plname, "L16", 32); | 282 strncpy(codecInstL16.plname, "L16", 32); |
286 codecInstL16.pltype = 93; | 283 codecInstL16.pltype = 93; |
287 codecInstL16.channels = 1; | 284 codecInstL16.channels = 1; |
288 | 285 |
289 if (_fileFormat == kFileFormatPcm8kHzFile) { | 286 if (_fileFormat == kFileFormatPcm8kHzFile) { |
290 codecInstL16.rate = 128000; | 287 codecInstL16.rate = 128000; |
291 codecInstL16.plfreq = 8000; | 288 codecInstL16.plfreq = 8000; |
292 codecInstL16.pacsize = 80; | 289 codecInstL16.pacsize = 80; |
| 290 |
293 } else if (_fileFormat == kFileFormatPcm16kHzFile) { | 291 } else if (_fileFormat == kFileFormatPcm16kHzFile) { |
294 codecInstL16.rate = 256000; | 292 codecInstL16.rate = 256000; |
295 codecInstL16.plfreq = 16000; | 293 codecInstL16.plfreq = 16000; |
296 codecInstL16.pacsize = 160; | 294 codecInstL16.pacsize = 160; |
| 295 |
297 } else if (_fileFormat == kFileFormatPcm32kHzFile) { | 296 } else if (_fileFormat == kFileFormatPcm32kHzFile) { |
298 codecInstL16.rate = 512000; | 297 codecInstL16.rate = 512000; |
299 codecInstL16.plfreq = 32000; | 298 codecInstL16.plfreq = 32000; |
300 codecInstL16.pacsize = 320; | 299 codecInstL16.pacsize = 160; |
301 } else if (_fileFormat == kFileFormatPcm48kHzFile) { | |
302 codecInstL16.rate = 768000; | |
303 codecInstL16.plfreq = 48000; | |
304 codecInstL16.pacsize = 480; | |
305 } else { | 300 } else { |
306 LOG(LS_ERROR) << "StartPlayingFile() sample frequency not " | 301 LOG(LS_ERROR) << "StartPlayingFile() sample frequency not " |
307 << "supported for PCM format."; | 302 << "supported for PCM format."; |
308 return -1; | 303 return -1; |
309 } | 304 } |
310 if (_fileModule.StartPlayingAudioStream( | 305 if (_fileModule.StartPlayingAudioStream( |
311 *sourceStream, notification, _fileFormat, &codecInstL16, | 306 *sourceStream, notification, _fileFormat, &codecInstL16, |
312 startPosition, stopPosition) == -1) { | 307 startPosition, stopPosition) == -1) { |
313 LOG(LS_ERROR) << "StartPlayingFile() failed to initialize stream " | 308 LOG(LS_ERROR) << "StartPlayingFile() failed to initialize stream " |
314 << "playout."; | 309 << "playout."; |
(...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
377 std::unique_ptr<FilePlayer> FilePlayer::CreateFilePlayer( | 372 std::unique_ptr<FilePlayer> FilePlayer::CreateFilePlayer( |
378 uint32_t instanceID, | 373 uint32_t instanceID, |
379 FileFormats fileFormat) { | 374 FileFormats fileFormat) { |
380 switch (fileFormat) { | 375 switch (fileFormat) { |
381 case kFileFormatWavFile: | 376 case kFileFormatWavFile: |
382 case kFileFormatCompressedFile: | 377 case kFileFormatCompressedFile: |
383 case kFileFormatPreencodedFile: | 378 case kFileFormatPreencodedFile: |
384 case kFileFormatPcm16kHzFile: | 379 case kFileFormatPcm16kHzFile: |
385 case kFileFormatPcm8kHzFile: | 380 case kFileFormatPcm8kHzFile: |
386 case kFileFormatPcm32kHzFile: | 381 case kFileFormatPcm32kHzFile: |
387 case kFileFormatPcm48kHzFile: | |
388 // audio formats | 382 // audio formats |
389 return std::unique_ptr<FilePlayer>( | 383 return std::unique_ptr<FilePlayer>( |
390 new FilePlayerImpl(instanceID, fileFormat)); | 384 new FilePlayerImpl(instanceID, fileFormat)); |
391 default: | 385 default: |
392 assert(false); | 386 assert(false); |
393 return nullptr; | 387 return nullptr; |
394 } | 388 } |
395 } | 389 } |
396 | 390 |
397 } // namespace webrtc | 391 } // namespace webrtc |
OLD | NEW |