| 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/common/gpu/media/omx_video_decode_accelerator.h" | 5 #include "content/common/gpu/media/omx_video_decode_accelerator.h" |
| 6 | 6 |
| 7 #include "base/stl_util.h" | 7 #include "base/stl_util.h" |
| 8 #include "base/string_util.h" | 8 #include "base/string_util.h" |
| 9 #include "content/common/gpu/gpu_channel.h" | 9 #include "content/common/gpu/gpu_channel.h" |
| 10 #include "content/common/gpu/media/gles2_texture_to_egl_image_translator.h" | 10 #include "content/common/gpu/media/gles2_texture_to_egl_image_translator.h" |
| (...skipping 406 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 417 void OmxVideoDecodeAccelerator::Reset() { | 417 void OmxVideoDecodeAccelerator::Reset() { |
| 418 DCHECK_EQ(message_loop_, MessageLoop::current()); | 418 DCHECK_EQ(message_loop_, MessageLoop::current()); |
| 419 DCHECK_EQ(current_state_change_, NO_TRANSITION); | 419 DCHECK_EQ(current_state_change_, NO_TRANSITION); |
| 420 DCHECK_EQ(client_state_, OMX_StateExecuting); | 420 DCHECK_EQ(client_state_, OMX_StateExecuting); |
| 421 current_state_change_ = RESETTING; | 421 current_state_change_ = RESETTING; |
| 422 BeginTransitionToState(OMX_StatePause); | 422 BeginTransitionToState(OMX_StatePause); |
| 423 } | 423 } |
| 424 | 424 |
| 425 void OmxVideoDecodeAccelerator::Destroy() { | 425 void OmxVideoDecodeAccelerator::Destroy() { |
| 426 DCHECK_EQ(message_loop_, MessageLoop::current()); | 426 DCHECK_EQ(message_loop_, MessageLoop::current()); |
| 427 if (current_state_change_ == ERRORING) | 427 if (current_state_change_ == ERRORING || |
| 428 current_state_change_ == DESTROYING) { |
| 428 return; | 429 return; |
| 430 } |
| 429 | 431 |
| 430 DCHECK(current_state_change_ == NO_TRANSITION || | 432 DCHECK(current_state_change_ == NO_TRANSITION || |
| 431 current_state_change_ == FLUSHING || | 433 current_state_change_ == FLUSHING || |
| 432 current_state_change_ == RESETTING) << current_state_change_; | 434 current_state_change_ == RESETTING) << current_state_change_; |
| 433 | 435 |
| 434 // If we were never initializeed there's no teardown to do. | 436 // If we were never initializeed there's no teardown to do. |
| 435 if (client_state_ == OMX_StateMax) | 437 if (client_state_ == OMX_StateMax) |
| 436 return; | 438 return; |
| 437 // If we can already call OMX_FreeHandle, simply do so. | 439 // If we can already call OMX_FreeHandle, simply do so. |
| 438 if (client_state_ == OMX_StateInvalid || client_state_ == OMX_StateLoaded) { | 440 if (client_state_ == OMX_StateInvalid || client_state_ == OMX_StateLoaded) { |
| (...skipping 572 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1011 | 1013 |
| 1012 bool OmxVideoDecodeAccelerator::SendCommandToPort( | 1014 bool OmxVideoDecodeAccelerator::SendCommandToPort( |
| 1013 OMX_COMMANDTYPE cmd, int port_index) { | 1015 OMX_COMMANDTYPE cmd, int port_index) { |
| 1014 DCHECK_EQ(message_loop_, MessageLoop::current()); | 1016 DCHECK_EQ(message_loop_, MessageLoop::current()); |
| 1015 OMX_ERRORTYPE result = OMX_SendCommand(component_handle_, | 1017 OMX_ERRORTYPE result = OMX_SendCommand(component_handle_, |
| 1016 cmd, port_index, 0); | 1018 cmd, port_index, 0); |
| 1017 RETURN_ON_OMX_FAILURE(result, "SendCommand() failed" << cmd, | 1019 RETURN_ON_OMX_FAILURE(result, "SendCommand() failed" << cmd, |
| 1018 PLATFORM_FAILURE, false); | 1020 PLATFORM_FAILURE, false); |
| 1019 return true; | 1021 return true; |
| 1020 } | 1022 } |
| OLD | NEW |