| 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/common/gpu/media/gpu_video_encode_accelerator.h" | 5 #include "content/common/gpu/media/gpu_video_encode_accelerator.h" |
| 6 | 6 |
| 7 #include "base/callback.h" | 7 #include "base/callback.h" |
| 8 #include "base/command_line.h" | 8 #include "base/command_line.h" |
| 9 #include "base/logging.h" | 9 #include "base/logging.h" |
| 10 #include "base/memory/shared_memory.h" | 10 #include "base/memory/shared_memory.h" |
| (...skipping 257 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 268 | 268 |
| 269 if (!map_offset.IsValid() || !map_size.IsValid()) { | 269 if (!map_offset.IsValid() || !map_size.IsValid()) { |
| 270 DLOG(ERROR) << "GpuVideoEncodeAccelerator::OnEncode():" | 270 DLOG(ERROR) << "GpuVideoEncodeAccelerator::OnEncode():" |
| 271 << " invalid (buffer_offset,buffer_size)"; | 271 << " invalid (buffer_offset,buffer_size)"; |
| 272 NotifyError(media::VideoEncodeAccelerator::kPlatformFailureError); | 272 NotifyError(media::VideoEncodeAccelerator::kPlatformFailureError); |
| 273 return; | 273 return; |
| 274 } | 274 } |
| 275 | 275 |
| 276 if (!shm->MapAt(map_offset.ValueOrDie(), map_size.ValueOrDie())) { | 276 if (!shm->MapAt(map_offset.ValueOrDie(), map_size.ValueOrDie())) { |
| 277 DLOG(ERROR) << "GpuVideoEncodeAccelerator::OnEncode(): " | 277 DLOG(ERROR) << "GpuVideoEncodeAccelerator::OnEncode(): " |
| 278 "could not map frame_id=" << params.frame_id; | 278 << "could not map frame_id=" << params.frame_id; |
| 279 NotifyError(media::VideoEncodeAccelerator::kPlatformFailureError); | 279 NotifyError(media::VideoEncodeAccelerator::kPlatformFailureError); |
| 280 return; | 280 return; |
| 281 } | 281 } |
| 282 | 282 |
| 283 uint8* shm_memory = reinterpret_cast<uint8*>(shm->memory()) + aligned_offset; | 283 uint8* shm_memory = reinterpret_cast<uint8*>(shm->memory()) + aligned_offset; |
| 284 scoped_refptr<media::VideoFrame> frame = | 284 scoped_refptr<media::VideoFrame> frame = |
| 285 media::VideoFrame::WrapExternalSharedMemory( | 285 media::VideoFrame::WrapExternalSharedMemory( |
| 286 input_format_, | 286 input_format_, |
| 287 input_coded_size_, | 287 input_coded_size_, |
| 288 gfx::Rect(input_visible_size_), | 288 gfx::Rect(input_visible_size_), |
| 289 input_visible_size_, | 289 input_visible_size_, |
| 290 shm_memory, | 290 shm_memory, |
| 291 params.buffer_size, | 291 params.buffer_size, |
| 292 params.buffer_handle, | 292 params.buffer_handle, |
| 293 params.buffer_offset, | 293 params.buffer_offset, |
| 294 params.timestamp); | 294 params.timestamp); |
| 295 if (!frame.get()) { | 295 if (!frame) { |
| 296 DLOG(ERROR) << "GpuVideoEncodeAccelerator::OnEncode(): " | 296 DLOG(ERROR) << "GpuVideoEncodeAccelerator::OnEncode(): " |
| 297 << "could not create a frame"; | 297 << "could not create a frame"; |
| 298 NotifyError(media::VideoEncodeAccelerator::kPlatformFailureError); | 298 NotifyError(media::VideoEncodeAccelerator::kPlatformFailureError); |
| 299 return; | 299 return; |
| 300 } | 300 } |
| 301 frame->AddDestructionObserver( | 301 frame->AddDestructionObserver( |
| 302 media::BindToCurrentLoop( | 302 media::BindToCurrentLoop( |
| 303 base::Bind(&GpuVideoEncodeAccelerator::EncodeFrameFinished, | 303 base::Bind(&GpuVideoEncodeAccelerator::EncodeFrameFinished, |
| 304 weak_this_factory_.GetWeakPtr(), | 304 weak_this_factory_.GetWeakPtr(), |
| 305 params.frame_id, | 305 params.frame_id, |
| (...skipping 146 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 452 stub_->channel()->Send(message); | 452 stub_->channel()->Send(message); |
| 453 } | 453 } |
| 454 | 454 |
| 455 void GpuVideoEncodeAccelerator::SendCreateEncoderReply(IPC::Message* message, | 455 void GpuVideoEncodeAccelerator::SendCreateEncoderReply(IPC::Message* message, |
| 456 bool succeeded) { | 456 bool succeeded) { |
| 457 GpuCommandBufferMsg_CreateVideoEncoder::WriteReplyParams(message, succeeded); | 457 GpuCommandBufferMsg_CreateVideoEncoder::WriteReplyParams(message, succeeded); |
| 458 Send(message); | 458 Send(message); |
| 459 } | 459 } |
| 460 | 460 |
| 461 } // namespace content | 461 } // namespace content |
| OLD | NEW |