Index: content/common/gpu/media/omx_video_decode_accelerator.cc |
diff --git a/content/common/gpu/media/omx_video_decode_accelerator.cc b/content/common/gpu/media/omx_video_decode_accelerator.cc |
index 915cc8edbf4df0a25462beca3121abac568aeaf5..1934a43381299eb0837f807a582da560c321e249 100644 |
--- a/content/common/gpu/media/omx_video_decode_accelerator.cc |
+++ b/content/common/gpu/media/omx_video_decode_accelerator.cc |
@@ -475,12 +475,10 @@ void OmxVideoDecodeAccelerator::Destroy() { |
void OmxVideoDecodeAccelerator::BeginTransitionToState( |
OMX_STATETYPE new_state) { |
DCHECK_EQ(message_loop_, MessageLoop::current()); |
- DCHECK_NE(current_state_change_, NO_TRANSITION); |
- DCHECK_NE(current_state_change_, ERRORING); |
Ami GONE FROM CHROMIUM
2012/07/25 22:41:15
I must have been on crack when I wrote this; the e
|
- if (current_state_change_ == NO_TRANSITION || |
- current_state_change_ == ERRORING) { |
+ if (new_state != OMX_StateInvalid) |
+ DCHECK_NE(current_state_change_, NO_TRANSITION); |
+ if (current_state_change_ == ERRORING) |
return; |
- } |
OMX_ERRORTYPE result = OMX_SendCommand( |
component_handle_, OMX_CommandStateSet, new_state, 0); |
RETURN_ON_OMX_FAILURE(result, "SendCommand(OMX_CommandStateSet) failed", |
@@ -960,7 +958,8 @@ void OmxVideoDecodeAccelerator::EventHandlerCompleteTask(OMX_EVENTTYPE event, |
} |
return; |
case OMX_EventPortSettingsChanged: |
- if (data2 == OMX_IndexParamPortDefinition) { |
+ if ((data2 == OMX_IndexParamPortDefinition) || // Tegra2/3 |
+ (data2 == 0)) { // Exynos SEC-OMX; http://crosbug.com/p/11665 |
DCHECK_EQ(data1, output_port_); |
// This event is only used for output resize; kick off handling that by |
// pausing the output port. |