| Index: media/gpu/ipc/client/gpu_video_decode_accelerator_host.cc
|
| diff --git a/media/gpu/ipc/client/gpu_video_decode_accelerator_host.cc b/media/gpu/ipc/client/gpu_video_decode_accelerator_host.cc
|
| index 6820ea1db7964ad7094d665da4313859733e3d7a..de43cf92938ec6aa83a9bb882ece615520e67b61 100644
|
| --- a/media/gpu/ipc/client/gpu_video_decode_accelerator_host.cc
|
| +++ b/media/gpu/ipc/client/gpu_video_decode_accelerator_host.cc
|
| @@ -51,7 +51,7 @@ bool GpuVideoDecodeAcceleratorHost::OnMessageReceived(const IPC::Message& msg) {
|
| IPC_MESSAGE_HANDLER(AcceleratedVideoDecoderHostMsg_BitstreamBufferProcessed,
|
| OnBitstreamBufferProcessed)
|
| IPC_MESSAGE_HANDLER(AcceleratedVideoDecoderHostMsg_ProvidePictureBuffers,
|
| - OnProvidePictureBuffer)
|
| + OnProvidePictureBuffers)
|
| IPC_MESSAGE_HANDLER(AcceleratedVideoDecoderHostMsg_PictureReady,
|
| OnPictureReady)
|
| IPC_MESSAGE_HANDLER(AcceleratedVideoDecoderHostMsg_FlushDone, OnFlushDone)
|
| @@ -130,7 +130,18 @@ void GpuVideoDecodeAcceleratorHost::AssignPictureBuffers(
|
| // Rearrange data for IPC command.
|
| std::vector<int32_t> buffer_ids;
|
| std::vector<PictureBuffer::TextureIds> texture_ids;
|
| - for (uint32_t i = 0; i < buffers.size(); i++) {
|
| + uint32_t texture_target = 0;
|
| + VideoPixelFormat format = PIXEL_FORMAT_UNKNOWN;
|
| + gfx::Size size;
|
| +
|
| + uint32_t buffers_size = buffers.size();
|
| + if (buffers_size) {
|
| + texture_target = buffers[0].texture_target();
|
| + format = buffers[0].pixel_format();
|
| + size = buffers[0].size();
|
| + }
|
| +
|
| + for (uint32_t i = 0; i < buffers_size; i++) {
|
| const PictureBuffer& buffer = buffers[i];
|
| if (buffer.size() != picture_buffer_dimensions_) {
|
| DLOG(ERROR) << "buffer.size() invalid: expected "
|
| @@ -142,8 +153,10 @@ void GpuVideoDecodeAcceleratorHost::AssignPictureBuffers(
|
| texture_ids.push_back(buffer.client_texture_ids());
|
| buffer_ids.push_back(buffer.id());
|
| }
|
| +
|
| Send(new AcceleratedVideoDecoderMsg_AssignPictureBuffers(
|
| - decoder_route_id_, buffer_ids, texture_ids));
|
| + decoder_route_id_, buffer_ids, texture_ids, texture_target, format,
|
| + size));
|
| }
|
|
|
| void GpuVideoDecodeAcceleratorHost::ReusePictureBuffer(
|
| @@ -225,7 +238,7 @@ void GpuVideoDecodeAcceleratorHost::OnBitstreamBufferProcessed(
|
| client_->NotifyEndOfBitstreamBuffer(bitstream_buffer_id);
|
| }
|
|
|
| -void GpuVideoDecodeAcceleratorHost::OnProvidePictureBuffer(
|
| +void GpuVideoDecodeAcceleratorHost::OnProvidePictureBuffers(
|
| uint32_t num_requested_buffers,
|
| VideoPixelFormat format,
|
| uint32_t textures_per_buffer,
|
|
|