Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(190)

Side by Side Diff: content/renderer/pepper/pepper_audio_encoder_host.cc

Issue 1873783003: Convert //content/renderer from scoped_ptr to std::unique_ptr (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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 "content/renderer/pepper/pepper_audio_encoder_host.h" 5 #include "content/renderer/pepper/pepper_audio_encoder_host.h"
6 6
7 #include <stddef.h> 7 #include <stddef.h>
8 #include <utility> 8 #include <utility>
9 9
10 #include "base/bind.h" 10 #include "base/bind.h"
(...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after
65 65
66 // Used on the media thread. 66 // Used on the media thread.
67 void Encode(uint8_t* input_data, 67 void Encode(uint8_t* input_data,
68 size_t input_size, 68 size_t input_size,
69 uint8_t* output_data, 69 uint8_t* output_data,
70 size_t output_size, 70 size_t output_size,
71 BitstreamBufferReadyCB callback); 71 BitstreamBufferReadyCB callback);
72 void RequestBitrateChange(uint32_t bitrate); 72 void RequestBitrateChange(uint32_t bitrate);
73 73
74 private: 74 private:
75 scoped_ptr<uint8_t[]> encoder_memory_; 75 std::unique_ptr<uint8_t[]> encoder_memory_;
76 OpusEncoder* opus_encoder_; 76 OpusEncoder* opus_encoder_;
77 77
78 // Initialization parameters, only valid if |encoder_memory_| is not 78 // Initialization parameters, only valid if |encoder_memory_| is not
79 // nullptr. 79 // nullptr.
80 ppapi::proxy::PPB_AudioEncodeParameters parameters_; 80 ppapi::proxy::PPB_AudioEncodeParameters parameters_;
81 81
82 DISALLOW_COPY_AND_ASSIGN(AudioEncoderImpl); 82 DISALLOW_COPY_AND_ASSIGN(AudioEncoderImpl);
83 }; 83 };
84 84
85 PepperAudioEncoderHost::AudioEncoderImpl::AudioEncoderImpl() 85 PepperAudioEncoderHost::AudioEncoderImpl::AudioEncoderImpl()
(...skipping 23 matching lines...) Expand all
109 const ppapi::proxy::PPB_AudioEncodeParameters& parameters) { 109 const ppapi::proxy::PPB_AudioEncodeParameters& parameters) {
110 if (parameters.output_profile != PP_AUDIOPROFILE_OPUS) 110 if (parameters.output_profile != PP_AUDIOPROFILE_OPUS)
111 return false; 111 return false;
112 112
113 DCHECK(!encoder_memory_); 113 DCHECK(!encoder_memory_);
114 114
115 int32_t encoder_size = opus_encoder_get_size(parameters.channels); 115 int32_t encoder_size = opus_encoder_get_size(parameters.channels);
116 if (encoder_size < 1) 116 if (encoder_size < 1)
117 return false; 117 return false;
118 118
119 scoped_ptr<uint8_t[]> encoder_memory(new uint8_t[encoder_size]); 119 std::unique_ptr<uint8_t[]> encoder_memory(new uint8_t[encoder_size]);
120 opus_encoder_ = reinterpret_cast<OpusEncoder*>(encoder_memory.get()); 120 opus_encoder_ = reinterpret_cast<OpusEncoder*>(encoder_memory.get());
121 121
122 if (opus_encoder_init(opus_encoder_, parameters.input_sample_rate, 122 if (opus_encoder_init(opus_encoder_, parameters.input_sample_rate,
123 parameters.channels, OPUS_APPLICATION_AUDIO) != OPUS_OK) 123 parameters.channels, OPUS_APPLICATION_AUDIO) != OPUS_OK)
124 return false; 124 return false;
125 125
126 if (opus_encoder_ctl(opus_encoder_, 126 if (opus_encoder_ctl(opus_encoder_,
127 OPUS_SET_BITRATE(parameters.initial_bitrate <= 0 127 OPUS_SET_BITRATE(parameters.initial_bitrate <= 0
128 ? OPUS_AUTO 128 ? OPUS_AUTO
129 : parameters.initial_bitrate)) != 129 : parameters.initial_bitrate)) !=
(...skipping 85 matching lines...) Expand 10 before | Expand all | Expand 10 after
215 215
216 int32_t PepperAudioEncoderHost::OnHostMsgInitialize( 216 int32_t PepperAudioEncoderHost::OnHostMsgInitialize(
217 ppapi::host::HostMessageContext* context, 217 ppapi::host::HostMessageContext* context,
218 const ppapi::proxy::PPB_AudioEncodeParameters& parameters) { 218 const ppapi::proxy::PPB_AudioEncodeParameters& parameters) {
219 if (initialized_) 219 if (initialized_)
220 return PP_ERROR_FAILED; 220 return PP_ERROR_FAILED;
221 221
222 if (!IsInitializationValid(parameters)) 222 if (!IsInitializationValid(parameters))
223 return PP_ERROR_NOTSUPPORTED; 223 return PP_ERROR_NOTSUPPORTED;
224 224
225 scoped_ptr<AudioEncoderImpl> encoder(new AudioEncoderImpl); 225 std::unique_ptr<AudioEncoderImpl> encoder(new AudioEncoderImpl);
226 if (!encoder->Initialize(parameters)) 226 if (!encoder->Initialize(parameters))
227 return PP_ERROR_FAILED; 227 return PP_ERROR_FAILED;
228 if (!AllocateBuffers(parameters, encoder->GetNumberOfSamplesPerFrame())) 228 if (!AllocateBuffers(parameters, encoder->GetNumberOfSamplesPerFrame()))
229 return PP_ERROR_NOMEMORY; 229 return PP_ERROR_NOMEMORY;
230 230
231 initialized_ = true; 231 initialized_ = true;
232 encoder_last_error_ = PP_OK; 232 encoder_last_error_ = PP_OK;
233 encoder_.swap(encoder); 233 encoder_.swap(encoder);
234 234
235 ppapi::host::ReplyMessageContext reply_context = 235 ppapi::host::ReplyMessageContext reply_context =
(...skipping 121 matching lines...) Expand 10 before | Expand all | Expand 10 after
357 bitstream_buffer_size *= 2; 357 bitstream_buffer_size *= 2;
358 bitstream_buffer_size += sizeof(ppapi::MediaStreamBuffer::Bitstream); 358 bitstream_buffer_size += sizeof(ppapi::MediaStreamBuffer::Bitstream);
359 base::CheckedNumeric<size_t> total_bitstream_memory_size = 359 base::CheckedNumeric<size_t> total_bitstream_memory_size =
360 bitstream_buffer_size; 360 bitstream_buffer_size;
361 total_bitstream_memory_size *= kDefaultNumberOfAudioBuffers; 361 total_bitstream_memory_size *= kDefaultNumberOfAudioBuffers;
362 362
363 if (!total_audio_memory_size.IsValid() || 363 if (!total_audio_memory_size.IsValid() ||
364 !total_bitstream_memory_size.IsValid()) 364 !total_bitstream_memory_size.IsValid())
365 return false; 365 return false;
366 366
367 scoped_ptr<base::SharedMemory> audio_memory( 367 std::unique_ptr<base::SharedMemory> audio_memory(
368 RenderThreadImpl::current()->HostAllocateSharedMemoryBuffer( 368 RenderThreadImpl::current()->HostAllocateSharedMemoryBuffer(
369 total_audio_memory_size.ValueOrDie())); 369 total_audio_memory_size.ValueOrDie()));
370 if (!audio_memory) 370 if (!audio_memory)
371 return false; 371 return false;
372 scoped_ptr<ppapi::MediaStreamBufferManager> audio_buffer_manager( 372 std::unique_ptr<ppapi::MediaStreamBufferManager> audio_buffer_manager(
373 new ppapi::MediaStreamBufferManager(this)); 373 new ppapi::MediaStreamBufferManager(this));
374 if (!audio_buffer_manager->SetBuffers(kDefaultNumberOfAudioBuffers, 374 if (!audio_buffer_manager->SetBuffers(kDefaultNumberOfAudioBuffers,
375 total_audio_buffer_size.ValueOrDie(), 375 total_audio_buffer_size.ValueOrDie(),
376 std::move(audio_memory), false)) 376 std::move(audio_memory), false))
377 return false; 377 return false;
378 378
379 for (int32_t i = 0; i < audio_buffer_manager->number_of_buffers(); ++i) { 379 for (int32_t i = 0; i < audio_buffer_manager->number_of_buffers(); ++i) {
380 ppapi::MediaStreamBuffer::Audio* buffer = 380 ppapi::MediaStreamBuffer::Audio* buffer =
381 &(audio_buffer_manager->GetBufferPointer(i)->audio); 381 &(audio_buffer_manager->GetBufferPointer(i)->audio);
382 buffer->header.size = total_audio_buffer_size.ValueOrDie(); 382 buffer->header.size = total_audio_buffer_size.ValueOrDie();
383 buffer->header.type = ppapi::MediaStreamBuffer::TYPE_AUDIO; 383 buffer->header.type = ppapi::MediaStreamBuffer::TYPE_AUDIO;
384 buffer->sample_rate = 384 buffer->sample_rate =
385 static_cast<PP_AudioBuffer_SampleRate>(parameters.input_sample_rate); 385 static_cast<PP_AudioBuffer_SampleRate>(parameters.input_sample_rate);
386 buffer->number_of_channels = parameters.channels; 386 buffer->number_of_channels = parameters.channels;
387 buffer->number_of_samples = samples_per_frame; 387 buffer->number_of_samples = samples_per_frame;
388 buffer->data_size = audio_buffer_size.ValueOrDie(); 388 buffer->data_size = audio_buffer_size.ValueOrDie();
389 } 389 }
390 390
391 scoped_ptr<base::SharedMemory> bitstream_memory( 391 std::unique_ptr<base::SharedMemory> bitstream_memory(
392 RenderThreadImpl::current()->HostAllocateSharedMemoryBuffer( 392 RenderThreadImpl::current()->HostAllocateSharedMemoryBuffer(
393 total_bitstream_memory_size.ValueOrDie())); 393 total_bitstream_memory_size.ValueOrDie()));
394 if (!bitstream_memory) 394 if (!bitstream_memory)
395 return false; 395 return false;
396 scoped_ptr<ppapi::MediaStreamBufferManager> bitstream_buffer_manager( 396 std::unique_ptr<ppapi::MediaStreamBufferManager> bitstream_buffer_manager(
397 new ppapi::MediaStreamBufferManager(this)); 397 new ppapi::MediaStreamBufferManager(this));
398 if (!bitstream_buffer_manager->SetBuffers(kDefaultNumberOfAudioBuffers, 398 if (!bitstream_buffer_manager->SetBuffers(kDefaultNumberOfAudioBuffers,
399 bitstream_buffer_size.ValueOrDie(), 399 bitstream_buffer_size.ValueOrDie(),
400 std::move(bitstream_memory), true)) 400 std::move(bitstream_memory), true))
401 return false; 401 return false;
402 402
403 for (int32_t i = 0; i < bitstream_buffer_manager->number_of_buffers(); ++i) { 403 for (int32_t i = 0; i < bitstream_buffer_manager->number_of_buffers(); ++i) {
404 ppapi::MediaStreamBuffer::Bitstream* buffer = 404 ppapi::MediaStreamBuffer::Bitstream* buffer =
405 &(bitstream_buffer_manager->GetBufferPointer(i)->bitstream); 405 &(bitstream_buffer_manager->GetBufferPointer(i)->bitstream);
406 buffer->header.size = bitstream_buffer_size.ValueOrDie(); 406 buffer->header.size = bitstream_buffer_size.ValueOrDie();
(...skipping 80 matching lines...) Expand 10 before | Expand all | Expand 10 after
487 // to avoid freeing memory the encoder might still be working on. 487 // to avoid freeing memory the encoder might still be working on.
488 media_task_runner_->PostTask( 488 media_task_runner_->PostTask(
489 FROM_HERE, 489 FROM_HERE,
490 base::Bind(&StopAudioEncoder, base::Passed(std::move(encoder_)), 490 base::Bind(&StopAudioEncoder, base::Passed(std::move(encoder_)),
491 base::Passed(std::move(audio_buffer_manager_)), 491 base::Passed(std::move(audio_buffer_manager_)),
492 base::Passed(std::move(bitstream_buffer_manager_)))); 492 base::Passed(std::move(bitstream_buffer_manager_))));
493 } 493 }
494 494
495 // static 495 // static
496 void PepperAudioEncoderHost::StopAudioEncoder( 496 void PepperAudioEncoderHost::StopAudioEncoder(
497 scoped_ptr<AudioEncoderImpl> encoder, 497 std::unique_ptr<AudioEncoderImpl> encoder,
498 scoped_ptr<ppapi::MediaStreamBufferManager> audio_buffer_manager, 498 std::unique_ptr<ppapi::MediaStreamBufferManager> audio_buffer_manager,
499 scoped_ptr<ppapi::MediaStreamBufferManager> bitstream_buffer_manager) {} 499 std::unique_ptr<ppapi::MediaStreamBufferManager> bitstream_buffer_manager) {
500 }
500 501
501 } // namespace content 502 } // namespace content
OLDNEW
« no previous file with comments | « content/renderer/pepper/pepper_audio_encoder_host.h ('k') | content/renderer/pepper/pepper_audio_input_host.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698