diff options
author | mahongpe <hongpeng.ma@intel.com> | 2015-11-06 00:44:27 +0800 |
---|---|---|
committer | Marco Nelissen <marcone@google.com> | 2015-11-06 14:00:59 -0800 |
commit | e140b31fbde8b3e9da99de2c094b80e37e47444c (patch) | |
tree | 4ee5893a0368901e9c93c142aed2cd35195c4d22 | |
parent | 3aa46b0bcd69b855f775a8b1f928776ca0fb35f6 (diff) | |
download | omx-components-e140b31fbde8b3e9da99de2c094b80e37e47444c.tar.gz |
fix random SEGV issue which is caused by wild pointer in libmixandroid-6.0.1_r68android-6.0.1_r67android-6.0.1_r63android-6.0.1_r62android-6.0.1_r55android-6.0.1_r54android-6.0.1_r53android-6.0.1_r5android-6.0.1_r45android-6.0.1_r4android-6.0.1_r33android-6.0.1_r32android-6.0.1_r31android-6.0.1_r25android-6.0.1_r24android-6.0.1_r22android-6.0.1_r21android-6.0.1_r18android-6.0.1_r16marshmallow-dr1.6-releasemarshmallow-dr1.5-releasemarshmallow-dr1.5-devmarshmallow-dr-dragon-release
When resolution changes, we should flush video video pipeline at
first, then free surface buffers.
Bug: 23160948
Change-Id: I84782d886d8a484c2131d0b3f529f82b9c6fd8c9
Signed-off-by: mahongpe <hongpeng.ma@intel.com>
-rw-r--r-- | videocodec/OMXVideoDecoderBase.cpp | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/videocodec/OMXVideoDecoderBase.cpp b/videocodec/OMXVideoDecoderBase.cpp index 6270cea..975ac4c 100644 --- a/videocodec/OMXVideoDecoderBase.cpp +++ b/videocodec/OMXVideoDecoderBase.cpp @@ -734,9 +734,10 @@ OMX_ERRORTYPE OMXVideoDecoderBase::HandleFormatChange(void) { this->ports[INPORT_INDEX]->SetPortDefinition(¶mPortDefinitionInput, true); this->ports[OUTPORT_INDEX]->SetPortDefinition(¶mPortDefinitionOutput, true); + ProcessorFlush(INPORT_INDEX); + mVideoDecoder->freeSurfaceBuffers(); - ProcessorFlush(INPORT_INDEX); this->ports[OUTPORT_INDEX]->ReportPortSettingsChanged(); mFormatChanged = false; |