OLD | NEW |
1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "content/renderer/media/android/audio_decoder_android.h" | 5 #include "content/renderer/media/android/audio_decoder_android.h" |
6 | 6 |
7 #include <errno.h> | 7 #include <errno.h> |
8 #include <fcntl.h> | 8 #include <fcntl.h> |
9 #include <limits.h> | 9 #include <limits.h> |
10 #include <sys/mman.h> | 10 #include <sys/mman.h> |
(...skipping 485 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
496 } | 496 } |
497 | 497 |
498 // To decode audio data, we want to use the Android MediaCodec class. | 498 // To decode audio data, we want to use the Android MediaCodec class. |
499 // But this can't run in a sandboxed process so we need initiate the | 499 // But this can't run in a sandboxed process so we need initiate the |
500 // request to MediaCodec in the browser. To do this, we create a | 500 // request to MediaCodec in the browser. To do this, we create a |
501 // shared memory buffer that holds the audio data. We send a message | 501 // shared memory buffer that holds the audio data. We send a message |
502 // to the browser to start the decoder using this buffer and one end | 502 // to the browser to start the decoder using this buffer and one end |
503 // of a pipe. The MediaCodec class will decode the data from the | 503 // of a pipe. The MediaCodec class will decode the data from the |
504 // shared memory and write the PCM samples back to us over a pipe. | 504 // shared memory and write the PCM samples back to us over a pipe. |
505 bool DecodeAudioFileData(blink::WebAudioBus* destination_bus, const char* data, | 505 bool DecodeAudioFileData(blink::WebAudioBus* destination_bus, const char* data, |
506 size_t data_size, double sample_rate, | 506 size_t data_size, |
507 scoped_refptr<ThreadSafeSender> sender) { | 507 scoped_refptr<ThreadSafeSender> sender) { |
508 // Try to decode the data as a WAVE file first. If it can't be | 508 // Try to decode the data as a WAVE file first. If it can't be |
509 // decoded, use MediaCodec. See crbug.com/259048. | 509 // decoded, use MediaCodec. See crbug.com/259048. |
510 if (TryWAVEFileDecoder( | 510 if (TryWAVEFileDecoder( |
511 destination_bus, reinterpret_cast<const uint8_t*>(data), data_size)) { | 511 destination_bus, reinterpret_cast<const uint8_t*>(data), data_size)) { |
512 return true; | 512 return true; |
513 } | 513 } |
514 | 514 |
515 AudioDecoderIO audio_decoder(data, data_size); | 515 AudioDecoderIO audio_decoder(data, data_size); |
516 | 516 |
(...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
574 BufferAndCopyPcmDataToBus(input_fd, | 574 BufferAndCopyPcmDataToBus(input_fd, |
575 destination_bus, | 575 destination_bus, |
576 number_of_channels, | 576 number_of_channels, |
577 file_sample_rate); | 577 file_sample_rate); |
578 } | 578 } |
579 | 579 |
580 return true; | 580 return true; |
581 } | 581 } |
582 | 582 |
583 } // namespace content | 583 } // namespace content |
OLD | NEW |