| OLD | NEW |
| 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 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/renderer/gpu/gpu_video_decode_accelerator_host.h" | 5 #include "content/renderer/gpu/gpu_video_decode_accelerator_host.h" |
| 6 | 6 |
| 7 #include "base/bind.h" | 7 #include "base/bind.h" |
| 8 #include "base/logging.h" | 8 #include "base/logging.h" |
| 9 #include "base/message_loop.h" | 9 #include "base/message_loop.h" |
| 10 #include "base/shared_memory.h" | 10 #include "base/shared_memory.h" |
| (...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 52 IPC_MESSAGE_HANDLER(AcceleratedVideoDecoderHostMsg_ProvidePictureBuffers, | 52 IPC_MESSAGE_HANDLER(AcceleratedVideoDecoderHostMsg_ProvidePictureBuffers, |
| 53 OnProvidePictureBuffer) | 53 OnProvidePictureBuffer) |
| 54 IPC_MESSAGE_HANDLER(AcceleratedVideoDecoderHostMsg_InitializeDone, | 54 IPC_MESSAGE_HANDLER(AcceleratedVideoDecoderHostMsg_InitializeDone, |
| 55 OnInitializeDone) | 55 OnInitializeDone) |
| 56 IPC_MESSAGE_HANDLER(AcceleratedVideoDecoderHostMsg_PictureReady, | 56 IPC_MESSAGE_HANDLER(AcceleratedVideoDecoderHostMsg_PictureReady, |
| 57 OnPictureReady) | 57 OnPictureReady) |
| 58 IPC_MESSAGE_HANDLER(AcceleratedVideoDecoderHostMsg_FlushDone, | 58 IPC_MESSAGE_HANDLER(AcceleratedVideoDecoderHostMsg_FlushDone, |
| 59 OnFlushDone) | 59 OnFlushDone) |
| 60 IPC_MESSAGE_HANDLER(AcceleratedVideoDecoderHostMsg_ResetDone, | 60 IPC_MESSAGE_HANDLER(AcceleratedVideoDecoderHostMsg_ResetDone, |
| 61 OnResetDone) | 61 OnResetDone) |
| 62 IPC_MESSAGE_HANDLER(AcceleratedVideoDecoderHostMsg_DestroyDone, | |
| 63 OnDestroyDone) | |
| 64 IPC_MESSAGE_HANDLER(AcceleratedVideoDecoderHostMsg_EndOfStream, | 62 IPC_MESSAGE_HANDLER(AcceleratedVideoDecoderHostMsg_EndOfStream, |
| 65 OnEndOfStream) | 63 OnEndOfStream) |
| 66 IPC_MESSAGE_HANDLER(AcceleratedVideoDecoderHostMsg_ErrorNotification, | 64 IPC_MESSAGE_HANDLER(AcceleratedVideoDecoderHostMsg_ErrorNotification, |
| 67 OnErrorNotification) | 65 OnErrorNotification) |
| 68 IPC_MESSAGE_UNHANDLED(handled = false) | 66 IPC_MESSAGE_UNHANDLED(handled = false) |
| 69 IPC_END_MESSAGE_MAP() | 67 IPC_END_MESSAGE_MAP() |
| 70 DCHECK(handled); | 68 DCHECK(handled); |
| 71 return handled; | 69 return handled; |
| 72 } | 70 } |
| 73 | 71 |
| (...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 130 } | 128 } |
| 131 | 129 |
| 132 void GpuVideoDecodeAcceleratorHost::Flush() { | 130 void GpuVideoDecodeAcceleratorHost::Flush() { |
| 133 DCHECK(CalledOnValidThread()); | 131 DCHECK(CalledOnValidThread()); |
| 134 Send(new AcceleratedVideoDecoderMsg_Flush( | 132 Send(new AcceleratedVideoDecoderMsg_Flush( |
| 135 command_buffer_route_id_, SyncTokens())); | 133 command_buffer_route_id_, SyncTokens())); |
| 136 } | 134 } |
| 137 | 135 |
| 138 void GpuVideoDecodeAcceleratorHost::Reset() { | 136 void GpuVideoDecodeAcceleratorHost::Reset() { |
| 139 DCHECK(CalledOnValidThread()); | 137 DCHECK(CalledOnValidThread()); |
| 140 if (!ipc_sender_->Send(new AcceleratedVideoDecoderMsg_Reset( | 138 Send(new AcceleratedVideoDecoderMsg_Reset( |
| 141 command_buffer_route_id_, SyncTokens()))) { | 139 command_buffer_route_id_, SyncTokens())); |
| 142 LOG(ERROR) << "Send(AcceleratedVideoDecoderMsg_Reset) failed"; | |
| 143 // TODO(fischman/vrk): signal error to client. | |
| 144 return; | |
| 145 } | |
| 146 } | 140 } |
| 147 | 141 |
| 148 void GpuVideoDecodeAcceleratorHost::Destroy() { | 142 void GpuVideoDecodeAcceleratorHost::Destroy() { |
| 149 DCHECK(CalledOnValidThread()); | 143 DCHECK(CalledOnValidThread()); |
| 150 Send(new AcceleratedVideoDecoderMsg_Destroy( | 144 Send(new AcceleratedVideoDecoderMsg_Destroy( |
| 151 command_buffer_route_id_, SyncTokens())); | 145 command_buffer_route_id_, SyncTokens())); |
| 152 } | 146 } |
| 153 | 147 |
| 154 void GpuVideoDecodeAcceleratorHost::Send(IPC::Message* message) { | 148 void GpuVideoDecodeAcceleratorHost::Send(IPC::Message* message) { |
| 155 // After OnChannelError is called, the client should no longer send | 149 // After OnChannelError is called, the client should no longer send |
| (...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 202 void GpuVideoDecodeAcceleratorHost::OnFlushDone() { | 196 void GpuVideoDecodeAcceleratorHost::OnFlushDone() { |
| 203 DCHECK(CalledOnValidThread()); | 197 DCHECK(CalledOnValidThread()); |
| 204 client_->NotifyFlushDone(); | 198 client_->NotifyFlushDone(); |
| 205 } | 199 } |
| 206 | 200 |
| 207 void GpuVideoDecodeAcceleratorHost::OnResetDone() { | 201 void GpuVideoDecodeAcceleratorHost::OnResetDone() { |
| 208 DCHECK(CalledOnValidThread()); | 202 DCHECK(CalledOnValidThread()); |
| 209 client_->NotifyResetDone(); | 203 client_->NotifyResetDone(); |
| 210 } | 204 } |
| 211 | 205 |
| 212 void GpuVideoDecodeAcceleratorHost::OnDestroyDone() { | |
| 213 DCHECK(CalledOnValidThread()); | |
| 214 client_->NotifyDestroyDone(); | |
| 215 } | |
| 216 | |
| 217 void GpuVideoDecodeAcceleratorHost::OnEndOfStream() { | 206 void GpuVideoDecodeAcceleratorHost::OnEndOfStream() { |
| 218 DCHECK(CalledOnValidThread()); | 207 DCHECK(CalledOnValidThread()); |
| 219 client_->NotifyEndOfStream(); | 208 client_->NotifyEndOfStream(); |
| 220 } | 209 } |
| 221 | 210 |
| 222 void GpuVideoDecodeAcceleratorHost::OnErrorNotification(uint32 error) { | 211 void GpuVideoDecodeAcceleratorHost::OnErrorNotification(uint32 error) { |
| 223 DCHECK(CalledOnValidThread()); | 212 DCHECK(CalledOnValidThread()); |
| 224 client_->NotifyError( | 213 client_->NotifyError( |
| 225 static_cast<media::VideoDecodeAccelerator::Error>(error)); | 214 static_cast<media::VideoDecodeAccelerator::Error>(error)); |
| 226 } | 215 } |
| OLD | NEW |