Chromium Code Reviews| Index: content/common/gpu/media/gpu_jpeg_decode_accelerator.cc |
| diff --git a/content/common/gpu/media/gpu_jpeg_decode_accelerator.cc b/content/common/gpu/media/gpu_jpeg_decode_accelerator.cc |
| index 4b7b00c138e6b72a064051020aea506b9e435fa6..ab57b0a0c291e6c3cdd85b5aa7da312bd23a6fe1 100644 |
| --- a/content/common/gpu/media/gpu_jpeg_decode_accelerator.cc |
| +++ b/content/common/gpu/media/gpu_jpeg_decode_accelerator.cc |
| @@ -41,12 +41,6 @@ void DecodeFinished(scoped_ptr<base::SharedMemory> shm) { |
| } |
| bool VerifyDecodeParams(const AcceleratedJpegDecoderMsg_Decode_Params& params) { |
| - if (params.input_buffer_id < 0) { |
| - LOG(ERROR) << "BitstreamBuffer id " << params.input_buffer_id |
| - << " out of range"; |
| - return false; |
| - } |
| - |
| const int kJpegMaxDimension = UINT16_MAX; |
| if (params.coded_size.IsEmpty() || |
| params.coded_size.width() > kJpegMaxDimension || |
| @@ -55,11 +49,6 @@ bool VerifyDecodeParams(const AcceleratedJpegDecoderMsg_Decode_Params& params) { |
| return false; |
| } |
| - if (!base::SharedMemory::IsHandleValid(params.input_buffer_handle)) { |
| - LOG(ERROR) << "invalid input_buffer_handle"; |
| - return false; |
| - } |
| - |
| if (!base::SharedMemory::IsHandleValid(params.output_video_frame_handle)) { |
| LOG(ERROR) << "invalid output_video_frame_handle"; |
| return false; |
| @@ -208,34 +197,30 @@ class GpuJpegDecodeAccelerator::MessageFilter : public IPC::MessageFilter { |
| if (!VerifyDecodeParams(params)) { |
| NotifyDecodeStatusOnIOThread( |
| - *route_id, params.input_buffer_id, |
| + *route_id, params.bitstream_buffer.id(), |
| media::JpegDecodeAccelerator::INVALID_ARGUMENT); |
| - if (base::SharedMemory::IsHandleValid(params.input_buffer_handle)) |
| - base::SharedMemory::CloseHandle(params.input_buffer_handle); |
| + if (base::SharedMemory::IsHandleValid(params.bitstream_buffer.handle())) |
|
kcwu
2016/02/16 08:44:18
No longer need to validate params.bitstream_buffer
Owen Lin
2016/02/23 03:40:11
We are going to move the check into VDAs and JDAs.
|
| + base::SharedMemory::CloseHandle(params.bitstream_buffer.handle()); |
| if (base::SharedMemory::IsHandleValid(params.output_video_frame_handle)) |
| base::SharedMemory::CloseHandle(params.output_video_frame_handle); |
| return; |
| } |
| // For handles in |params|, from now on, |params.output_video_frame_handle| |
| - // is taken cared by scoper. |params.input_buffer_handle| need to be closed |
| - // manually for early exits. |
| + // is taken cared by scoper. |params.bitstream_buffer.handle()| need to be |
| + // closed manually for early exits. |
| scoped_ptr<base::SharedMemory> output_shm( |
| new base::SharedMemory(params.output_video_frame_handle, false)); |
| if (!output_shm->Map(params.output_buffer_size)) { |
| LOG(ERROR) << "Could not map output shared memory for input buffer id " |
| - << params.input_buffer_id; |
| + << params.bitstream_buffer.id(); |
| NotifyDecodeStatusOnIOThread( |
| - *route_id, params.input_buffer_id, |
| + *route_id, params.bitstream_buffer.id(), |
| media::JpegDecodeAccelerator::PLATFORM_FAILURE); |
| - base::SharedMemory::CloseHandle(params.input_buffer_handle); |
| + base::SharedMemory::CloseHandle(params.bitstream_buffer.handle()); |
| return; |
| } |
| - media::BitstreamBuffer input_buffer(params.input_buffer_id, |
| - params.input_buffer_handle, |
| - params.input_buffer_size); |
| - |
| uint8_t* shm_memory = static_cast<uint8_t*>(output_shm->memory()); |
| scoped_refptr<media::VideoFrame> frame = |
| media::VideoFrame::WrapExternalSharedMemory( |
| @@ -250,11 +235,11 @@ class GpuJpegDecodeAccelerator::MessageFilter : public IPC::MessageFilter { |
| base::TimeDelta()); // timestamp |
| if (!frame.get()) { |
| LOG(ERROR) << "Could not create VideoFrame for input buffer id " |
| - << params.input_buffer_id; |
| + << params.bitstream_buffer.id(); |
| NotifyDecodeStatusOnIOThread( |
| - *route_id, params.input_buffer_id, |
| + *route_id, params.bitstream_buffer.id(), |
| media::JpegDecodeAccelerator::PLATFORM_FAILURE); |
| - base::SharedMemory::CloseHandle(params.input_buffer_handle); |
| + base::SharedMemory::CloseHandle(params.bitstream_buffer.handle()); |
| return; |
| } |
| frame->AddDestructionObserver( |
| @@ -262,7 +247,7 @@ class GpuJpegDecodeAccelerator::MessageFilter : public IPC::MessageFilter { |
| DCHECK_GT(client_map_.count(*route_id), 0u); |
| Client* client = client_map_[*route_id]; |
| - client->Decode(input_buffer, frame); |
| + client->Decode(params.bitstream_buffer, frame); |
| } |
| protected: |