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) { |