diff options
| -rw-r--r-- | videocodec/OMXVideoDecoderBase.cpp | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/videocodec/OMXVideoDecoderBase.cpp b/videocodec/OMXVideoDecoderBase.cpp index 4815c3e..7766e42 100644 --- a/videocodec/OMXVideoDecoderBase.cpp +++ b/videocodec/OMXVideoDecoderBase.cpp @@ -701,6 +701,10 @@ OMX_ERRORTYPE OMXVideoDecoderBase::HandleFormatChange(void) { this->ports[INPORT_INDEX]->SetPortDefinition(¶mPortDefinitionInput, true); this->ports[OUTPORT_INDEX]->SetPortDefinition(¶mPortDefinitionOutput, true); + if (mWorkingMode == GRAPHICBUFFER_MODE) { + // Make sure va_destroySurface is called before graphicbuffer is freed in case of port setting changed + mVideoDecoder->freeSurfaceBuffers(); + } this->ports[OUTPORT_INDEX]->ReportPortSettingsChanged(); return OMX_ErrorNone; } |
