| Index: content/common/gpu/media/gpu_video_encode_accelerator.cc
|
| diff --git a/content/common/gpu/media/gpu_video_encode_accelerator.cc b/content/common/gpu/media/gpu_video_encode_accelerator.cc
|
| index 0c3e887b5bbccb8b7a5b66cfdeb2e080bb9e11d3..00a1b77f431892794056004b8cacbf93d8f59de7 100644
|
| --- a/content/common/gpu/media/gpu_video_encode_accelerator.cc
|
| +++ b/content/common/gpu/media/gpu_video_encode_accelerator.cc
|
| @@ -121,7 +121,7 @@ void GpuVideoEncodeAccelerator::Initialize(
|
| bool GpuVideoEncodeAccelerator::OnMessageReceived(const IPC::Message& message) {
|
| bool handled = true;
|
| IPC_BEGIN_MESSAGE_MAP(GpuVideoEncodeAccelerator, message)
|
| - IPC_MESSAGE_HANDLER(AcceleratedVideoEncoderMsg_Encode, OnEncode)
|
| + IPC_MESSAGE_HANDLER(AcceleratedVideoEncoderMsg_Encode, OnEncode)
|
| IPC_MESSAGE_HANDLER(AcceleratedVideoEncoderMsg_UseOutputBitstreamBuffer,
|
| OnUseOutputBitstreamBuffer)
|
| IPC_MESSAGE_HANDLER(
|
| @@ -227,28 +227,28 @@ GpuVideoEncodeAccelerator::CreateAndroidVEA() {
|
| return encoder.Pass();
|
| }
|
|
|
| -void GpuVideoEncodeAccelerator::OnEncode(int32 frame_id,
|
| - base::SharedMemoryHandle buffer_handle,
|
| - uint32 buffer_offset,
|
| - uint32 buffer_size,
|
| - bool force_keyframe) {
|
| - DVLOG(3) << "GpuVideoEncodeAccelerator::OnEncode(): frame_id=" << frame_id
|
| - << ", buffer_size=" << buffer_size
|
| - << ", force_keyframe=" << force_keyframe;
|
| +void GpuVideoEncodeAccelerator::OnEncode(
|
| + const AcceleratedVideoEncoderMsg_Encode_Params& params) {
|
| + DVLOG(3) << "GpuVideoEncodeAccelerator::OnEncode: frame_id = "
|
| + << params.frame_id << ", buffer_size=" << params.buffer_size
|
| + << ", force_keyframe=" << params.force_keyframe;
|
| + DCHECK_EQ(params.storage_type, media::VideoFrame::STORAGE_SHMEM);
|
| + DCHECK_EQ(params.pixel_format, input_format_);
|
| +
|
| if (!encoder_)
|
| return;
|
| - if (frame_id < 0) {
|
| - DLOG(ERROR) << "GpuVideoEncodeAccelerator::OnEncode(): invalid frame_id="
|
| - << frame_id;
|
| + if (params.frame_id < 0) {
|
| + DLOG(ERROR) << "GpuVideoEncodeAccelerator::OnEncode(): invalid "
|
| + "frame_id=" << params.frame_id;
|
| NotifyError(media::VideoEncodeAccelerator::kPlatformFailureError);
|
| return;
|
| }
|
|
|
| uint32 aligned_offset =
|
| - buffer_offset % base::SysInfo::VMAllocationGranularity();
|
| - base::CheckedNumeric<off_t> map_offset = buffer_offset;
|
| + params.buffer_offset % base::SysInfo::VMAllocationGranularity();
|
| + base::CheckedNumeric<off_t> map_offset = params.buffer_offset;
|
| map_offset -= aligned_offset;
|
| - base::CheckedNumeric<size_t> map_size = buffer_size;
|
| + base::CheckedNumeric<size_t> map_size = params.buffer_size;
|
| map_size += aligned_offset;
|
|
|
| if (!map_offset.IsValid() || !map_size.IsValid()) {
|
| @@ -259,10 +259,10 @@ void GpuVideoEncodeAccelerator::OnEncode(int32 frame_id,
|
| }
|
|
|
| scoped_ptr<base::SharedMemory> shm(
|
| - new base::SharedMemory(buffer_handle, true));
|
| + new base::SharedMemory(params.buffer_handle, true));
|
| if (!shm->MapAt(map_offset.ValueOrDie(), map_size.ValueOrDie())) {
|
| DLOG(ERROR) << "GpuVideoEncodeAccelerator::OnEncode(): "
|
| - "could not map frame_id=" << frame_id;
|
| + "could not map frame_id=" << params.frame_id;
|
| NotifyError(media::VideoEncodeAccelerator::kPlatformFailureError);
|
| return;
|
| }
|
| @@ -275,25 +275,22 @@ void GpuVideoEncodeAccelerator::OnEncode(int32 frame_id,
|
| gfx::Rect(input_visible_size_),
|
| input_visible_size_,
|
| shm_memory,
|
| - buffer_size,
|
| - buffer_handle,
|
| - buffer_offset,
|
| + params.buffer_size,
|
| + params.buffer_handle,
|
| + params.buffer_offset,
|
| base::TimeDelta());
|
| - frame->AddDestructionObserver(
|
| - media::BindToCurrentLoop(
|
| - base::Bind(&GpuVideoEncodeAccelerator::EncodeFrameFinished,
|
| - weak_this_factory_.GetWeakPtr(),
|
| - frame_id,
|
| - base::Passed(&shm))));
|
| + frame->AddDestructionObserver(media::BindToCurrentLoop(base::Bind(
|
| + &GpuVideoEncodeAccelerator::EncodeFrameFinished,
|
| + weak_this_factory_.GetWeakPtr(), params.frame_id, base::Passed(&shm))));
|
|
|
| if (!frame.get()) {
|
| - DLOG(ERROR) << "GpuVideoEncodeAccelerator::OnEncode(): "
|
| - "could not create VideoFrame for frame_id=" << frame_id;
|
| + DLOG(ERROR) << "GpuVideoEncodeAccelerator::OnEncode(): could not create "
|
| + "VideoFrame for frame_id=" << params.frame_id;
|
| NotifyError(media::VideoEncodeAccelerator::kPlatformFailureError);
|
| return;
|
| }
|
|
|
| - encoder_->Encode(frame, force_keyframe);
|
| + encoder_->Encode(frame, params.force_keyframe);
|
| }
|
|
|
| void GpuVideoEncodeAccelerator::OnUseOutputBitstreamBuffer(
|
| @@ -342,7 +339,7 @@ void GpuVideoEncodeAccelerator::EncodeFrameFinished(
|
| scoped_ptr<base::SharedMemory> shm) {
|
| Send(new AcceleratedVideoEncoderHostMsg_NotifyInputDone(host_route_id_,
|
| frame_id));
|
| - // Just let shm fall out of scope.
|
| + // Just let |shm| fall out of scope.
|
| }
|
|
|
| void GpuVideoEncodeAccelerator::Send(IPC::Message* message) {
|
|
|