Chromium Code Reviews| 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 "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 322 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 333 | 333 |
| 334 return false; | 334 return false; |
| 335 } | 335 } |
| 336 | 336 |
| 337 bool PepperAudioEncoderHost::AllocateBuffers( | 337 bool PepperAudioEncoderHost::AllocateBuffers( |
| 338 const ppapi::proxy::PPB_AudioEncodeParameters& parameters, | 338 const ppapi::proxy::PPB_AudioEncodeParameters& parameters, |
| 339 int32_t samples_per_frame) { | 339 int32_t samples_per_frame) { |
| 340 DCHECK(RenderThreadImpl::current()); | 340 DCHECK(RenderThreadImpl::current()); |
| 341 | 341 |
| 342 // Audio buffers size computation. | 342 // Audio buffers size computation. |
| 343 base::CheckedNumeric<size_t> audio_buffer_size = samples_per_frame; | 343 base::CheckedNumeric<uint32_t> audio_buffer_size = samples_per_frame; |
| 344 audio_buffer_size *= parameters.channels; | 344 audio_buffer_size *= parameters.channels; |
| 345 audio_buffer_size *= parameters.input_sample_size; | 345 audio_buffer_size *= parameters.input_sample_size; |
| 346 | 346 |
| 347 base::CheckedNumeric<size_t> total_audio_buffer_size = audio_buffer_size; | 347 base::CheckedNumeric<uint32_t> total_audio_buffer_size = audio_buffer_size; |
| 348 total_audio_buffer_size += sizeof(ppapi::MediaStreamBuffer::Audio); | 348 total_audio_buffer_size += sizeof(ppapi::MediaStreamBuffer::Audio); |
| 349 base::CheckedNumeric<size_t> total_audio_memory_size = | 349 base::CheckedNumeric<size_t> total_audio_memory_size = |
| 350 total_audio_buffer_size; | 350 total_audio_buffer_size; |
| 351 total_audio_memory_size *= kDefaultNumberOfAudioBuffers; | 351 total_audio_memory_size *= kDefaultNumberOfAudioBuffers; |
| 352 | 352 |
| 353 // Bitstream buffers size computation (individual bitstream buffers are | 353 // Bitstream buffers size computation (individual bitstream buffers are |
| 354 // twice the size of the raw data, to handle the worst case where | 354 // twice the size of the raw data, to handle the worst case where |
| 355 // compression doesn't work). | 355 // compression doesn't work). |
| 356 base::CheckedNumeric<size_t> bitstream_buffer_size = audio_buffer_size; | 356 base::CheckedNumeric<uint32_t> bitstream_buffer_size = audio_buffer_size; |
| 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 std::unique_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 std::unique_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( |
| 375 total_audio_buffer_size.ValueOrDie(), | 375 kDefaultNumberOfAudioBuffers, |
| 376 std::move(audio_memory), false)) | 376 base::ValueOrDieForType<int>(total_audio_buffer_size), |
|
bbudge
2016/12/01 01:51:45
Why not int32_t?
jschuh
2016/12/01 07:06:04
Done.
| |
| 377 std::move(audio_memory), false)) | |
| 377 return false; | 378 return false; |
| 378 | 379 |
| 379 for (int32_t i = 0; i < audio_buffer_manager->number_of_buffers(); ++i) { | 380 for (int32_t i = 0; i < audio_buffer_manager->number_of_buffers(); ++i) { |
| 380 ppapi::MediaStreamBuffer::Audio* buffer = | 381 ppapi::MediaStreamBuffer::Audio* buffer = |
| 381 &(audio_buffer_manager->GetBufferPointer(i)->audio); | 382 &(audio_buffer_manager->GetBufferPointer(i)->audio); |
| 382 buffer->header.size = total_audio_buffer_size.ValueOrDie(); | 383 buffer->header.size = total_audio_buffer_size.ValueOrDie(); |
| 383 buffer->header.type = ppapi::MediaStreamBuffer::TYPE_AUDIO; | 384 buffer->header.type = ppapi::MediaStreamBuffer::TYPE_AUDIO; |
| 384 buffer->sample_rate = | 385 buffer->sample_rate = |
| 385 static_cast<PP_AudioBuffer_SampleRate>(parameters.input_sample_rate); | 386 static_cast<PP_AudioBuffer_SampleRate>(parameters.input_sample_rate); |
| 386 buffer->number_of_channels = parameters.channels; | 387 buffer->number_of_channels = parameters.channels; |
| 387 buffer->number_of_samples = samples_per_frame; | 388 buffer->number_of_samples = samples_per_frame; |
| 388 buffer->data_size = audio_buffer_size.ValueOrDie(); | 389 buffer->data_size = audio_buffer_size.ValueOrDie(); |
| 389 } | 390 } |
| 390 | 391 |
| 391 std::unique_ptr<base::SharedMemory> bitstream_memory( | 392 std::unique_ptr<base::SharedMemory> bitstream_memory( |
| 392 RenderThreadImpl::current()->HostAllocateSharedMemoryBuffer( | 393 RenderThreadImpl::current()->HostAllocateSharedMemoryBuffer( |
| 393 total_bitstream_memory_size.ValueOrDie())); | 394 total_bitstream_memory_size.ValueOrDie())); |
| 394 if (!bitstream_memory) | 395 if (!bitstream_memory) |
| 395 return false; | 396 return false; |
| 396 std::unique_ptr<ppapi::MediaStreamBufferManager> bitstream_buffer_manager( | 397 std::unique_ptr<ppapi::MediaStreamBufferManager> bitstream_buffer_manager( |
| 397 new ppapi::MediaStreamBufferManager(this)); | 398 new ppapi::MediaStreamBufferManager(this)); |
| 398 if (!bitstream_buffer_manager->SetBuffers(kDefaultNumberOfAudioBuffers, | 399 if (!bitstream_buffer_manager->SetBuffers( |
| 399 bitstream_buffer_size.ValueOrDie(), | 400 kDefaultNumberOfAudioBuffers, |
| 400 std::move(bitstream_memory), true)) | 401 base::ValueOrDieForType<int>(bitstream_buffer_size), |
|
bbudge
2016/12/01 01:51:45
Why not int32_t?
jschuh
2016/12/01 07:06:04
Done.
| |
| 402 std::move(bitstream_memory), true)) | |
| 401 return false; | 403 return false; |
| 402 | 404 |
| 403 for (int32_t i = 0; i < bitstream_buffer_manager->number_of_buffers(); ++i) { | 405 for (int32_t i = 0; i < bitstream_buffer_manager->number_of_buffers(); ++i) { |
| 404 ppapi::MediaStreamBuffer::Bitstream* buffer = | 406 ppapi::MediaStreamBuffer::Bitstream* buffer = |
| 405 &(bitstream_buffer_manager->GetBufferPointer(i)->bitstream); | 407 &(bitstream_buffer_manager->GetBufferPointer(i)->bitstream); |
| 406 buffer->header.size = bitstream_buffer_size.ValueOrDie(); | 408 buffer->header.size = bitstream_buffer_size.ValueOrDie(); |
| 407 buffer->header.type = ppapi::MediaStreamBuffer::TYPE_BITSTREAM; | 409 buffer->header.type = ppapi::MediaStreamBuffer::TYPE_BITSTREAM; |
| 408 } | 410 } |
| 409 | 411 |
| 410 audio_buffer_manager_.swap(audio_buffer_manager); | 412 audio_buffer_manager_.swap(audio_buffer_manager); |
| (...skipping 82 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 493 } | 495 } |
| 494 | 496 |
| 495 // static | 497 // static |
| 496 void PepperAudioEncoderHost::StopAudioEncoder( | 498 void PepperAudioEncoderHost::StopAudioEncoder( |
| 497 std::unique_ptr<AudioEncoderImpl> encoder, | 499 std::unique_ptr<AudioEncoderImpl> encoder, |
| 498 std::unique_ptr<ppapi::MediaStreamBufferManager> audio_buffer_manager, | 500 std::unique_ptr<ppapi::MediaStreamBufferManager> audio_buffer_manager, |
| 499 std::unique_ptr<ppapi::MediaStreamBufferManager> bitstream_buffer_manager) { | 501 std::unique_ptr<ppapi::MediaStreamBufferManager> bitstream_buffer_manager) { |
| 500 } | 502 } |
| 501 | 503 |
| 502 } // namespace content | 504 } // namespace content |
| OLD | NEW |