| OLD | NEW |
| 1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 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 <stddef.h> |
| 6 |
| 5 #include "base/bind.h" | 7 #include "base/bind.h" |
| 8 #include "base/macros.h" |
| 6 #include "base/memory/shared_memory.h" | 9 #include "base/memory/shared_memory.h" |
| 7 #include "content/public/renderer/renderer_ppapi_host.h" | 10 #include "content/public/renderer/renderer_ppapi_host.h" |
| 8 #include "content/renderer/pepper/host_globals.h" | 11 #include "content/renderer/pepper/host_globals.h" |
| 9 #include "content/renderer/pepper/pepper_audio_encoder_host.h" | 12 #include "content/renderer/pepper/pepper_audio_encoder_host.h" |
| 10 #include "content/renderer/render_thread_impl.h" | 13 #include "content/renderer/render_thread_impl.h" |
| 11 #include "media/base/bind_to_current_loop.h" | 14 #include "media/base/bind_to_current_loop.h" |
| 12 #include "ppapi/c/pp_codecs.h" | 15 #include "ppapi/c/pp_codecs.h" |
| 13 #include "ppapi/c/pp_errors.h" | 16 #include "ppapi/c/pp_errors.h" |
| 14 #include "ppapi/host/dispatch_host_message.h" | 17 #include "ppapi/host/dispatch_host_message.h" |
| 15 #include "ppapi/host/ppapi_host.h" | 18 #include "ppapi/host/ppapi_host.h" |
| (...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 60 | 63 |
| 61 // Used on the media thread. | 64 // Used on the media thread. |
| 62 void Encode(uint8_t* input_data, | 65 void Encode(uint8_t* input_data, |
| 63 size_t input_size, | 66 size_t input_size, |
| 64 uint8_t* output_data, | 67 uint8_t* output_data, |
| 65 size_t output_size, | 68 size_t output_size, |
| 66 BitstreamBufferReadyCB callback); | 69 BitstreamBufferReadyCB callback); |
| 67 void RequestBitrateChange(uint32_t bitrate); | 70 void RequestBitrateChange(uint32_t bitrate); |
| 68 | 71 |
| 69 private: | 72 private: |
| 70 scoped_ptr<uint8[]> encoder_memory_; | 73 scoped_ptr<uint8_t[]> encoder_memory_; |
| 71 OpusEncoder* opus_encoder_; | 74 OpusEncoder* opus_encoder_; |
| 72 | 75 |
| 73 // Initialization parameters, only valid if |encoder_memory_| is not | 76 // Initialization parameters, only valid if |encoder_memory_| is not |
| 74 // nullptr. | 77 // nullptr. |
| 75 ppapi::proxy::PPB_AudioEncodeParameters parameters_; | 78 ppapi::proxy::PPB_AudioEncodeParameters parameters_; |
| 76 | 79 |
| 77 DISALLOW_COPY_AND_ASSIGN(AudioEncoderImpl); | 80 DISALLOW_COPY_AND_ASSIGN(AudioEncoderImpl); |
| 78 }; | 81 }; |
| 79 | 82 |
| 80 PepperAudioEncoderHost::AudioEncoderImpl::AudioEncoderImpl() | 83 PepperAudioEncoderHost::AudioEncoderImpl::AudioEncoderImpl() |
| (...skipping 23 matching lines...) Expand all Loading... |
| 104 const ppapi::proxy::PPB_AudioEncodeParameters& parameters) { | 107 const ppapi::proxy::PPB_AudioEncodeParameters& parameters) { |
| 105 if (parameters.output_profile != PP_AUDIOPROFILE_OPUS) | 108 if (parameters.output_profile != PP_AUDIOPROFILE_OPUS) |
| 106 return false; | 109 return false; |
| 107 | 110 |
| 108 DCHECK(!encoder_memory_); | 111 DCHECK(!encoder_memory_); |
| 109 | 112 |
| 110 int32_t encoder_size = opus_encoder_get_size(parameters.channels); | 113 int32_t encoder_size = opus_encoder_get_size(parameters.channels); |
| 111 if (encoder_size < 1) | 114 if (encoder_size < 1) |
| 112 return false; | 115 return false; |
| 113 | 116 |
| 114 scoped_ptr<uint8[]> encoder_memory(new uint8[encoder_size]); | 117 scoped_ptr<uint8_t[]> encoder_memory(new uint8_t[encoder_size]); |
| 115 opus_encoder_ = reinterpret_cast<OpusEncoder*>(encoder_memory.get()); | 118 opus_encoder_ = reinterpret_cast<OpusEncoder*>(encoder_memory.get()); |
| 116 | 119 |
| 117 if (opus_encoder_init(opus_encoder_, parameters.input_sample_rate, | 120 if (opus_encoder_init(opus_encoder_, parameters.input_sample_rate, |
| 118 parameters.channels, OPUS_APPLICATION_AUDIO) != OPUS_OK) | 121 parameters.channels, OPUS_APPLICATION_AUDIO) != OPUS_OK) |
| 119 return false; | 122 return false; |
| 120 | 123 |
| 121 if (opus_encoder_ctl(opus_encoder_, | 124 if (opus_encoder_ctl(opus_encoder_, |
| 122 OPUS_SET_BITRATE(parameters.initial_bitrate <= 0 | 125 OPUS_SET_BITRATE(parameters.initial_bitrate <= 0 |
| 123 ? OPUS_AUTO | 126 ? OPUS_AUTO |
| 124 : parameters.initial_bitrate)) != | 127 : parameters.initial_bitrate)) != |
| (...skipping 361 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 486 base::Passed(bitstream_buffer_manager_.Pass()))); | 489 base::Passed(bitstream_buffer_manager_.Pass()))); |
| 487 } | 490 } |
| 488 | 491 |
| 489 // static | 492 // static |
| 490 void PepperAudioEncoderHost::StopAudioEncoder( | 493 void PepperAudioEncoderHost::StopAudioEncoder( |
| 491 scoped_ptr<AudioEncoderImpl> encoder, | 494 scoped_ptr<AudioEncoderImpl> encoder, |
| 492 scoped_ptr<ppapi::MediaStreamBufferManager> audio_buffer_manager, | 495 scoped_ptr<ppapi::MediaStreamBufferManager> audio_buffer_manager, |
| 493 scoped_ptr<ppapi::MediaStreamBufferManager> bitstream_buffer_manager) {} | 496 scoped_ptr<ppapi::MediaStreamBufferManager> bitstream_buffer_manager) {} |
| 494 | 497 |
| 495 } // namespace content | 498 } // namespace content |
| OLD | NEW |