[CP] Refine short format flow

More information please refer to the JIRA story belonging to this change.
diff --git a/media_driver/linux/common/codec/ddi/media_ddi_decode_avc.cpp b/media_driver/linux/common/codec/ddi/media_ddi_decode_avc.cpp
index d47c061..79d0019 100644
--- a/media_driver/linux/common/codec/ddi/media_ddi_decode_avc.cpp
+++ b/media_driver/linux/common/codec/ddi/media_ddi_decode_avc.cpp
@@ -570,7 +570,6 @@
     m_codechalSettings->shortFormatInUse = m_ddiDecodeCtx->bShortFormatInUse;
 
     CODECHAL_FUNCTION codecFunction = CODECHAL_FUNCTION_DECODE;
-    m_ddiDecodeCtx->pCpDdiInterface->SetCpParams(m_ddiDecodeAttr->uiEncryptionType, m_codechalSettings);
 
     CODECHAL_STANDARD_INFO standardInfo;
     memset(&standardInfo, 0, sizeof(standardInfo));
@@ -591,6 +590,8 @@
     m_codechalSettings->mode     = CODECHAL_DECODE_MODE_AVCVLD;
     m_codechalSettings->standard = CODECHAL_AVC;
 
+    m_ddiDecodeCtx->pCpDdiInterface->SetCpParams(m_ddiDecodeAttr->uiEncryptionType, m_codechalSettings);
+
     m_ddiDecodeCtx->DecodeParams.m_iqMatrixBuffer = (void*)MOS_AllocAndZeroMemory(sizeof(CODEC_AVC_IQ_MATRIX_PARAMS));
     if (m_ddiDecodeCtx->DecodeParams.m_iqMatrixBuffer == nullptr)
     {
diff --git a/media_driver/linux/common/codec/ddi/media_ddi_decode_base.cpp b/media_driver/linux/common/codec/ddi/media_ddi_decode_base.cpp
index 8be71c5..d319f76 100644
--- a/media_driver/linux/common/codec/ddi/media_ddi_decode_base.cpp
+++ b/media_driver/linux/common/codec/ddi/media_ddi_decode_base.cpp
@@ -686,7 +686,7 @@
 
     if (m_ddiDecodeCtx->pCpDdiInterface)
     {
-        DDI_CHK_RET(m_ddiDecodeCtx->pCpDdiInterface->SetDecodeParams(&m_ddiDecodeCtx->DecodeParams),"SetDecodeParams failed!");
+        DDI_CHK_RET(m_ddiDecodeCtx->pCpDdiInterface->SetDecodeParams(m_ddiDecodeCtx, m_codechalSettings),"SetDecodeParams failed!");
     }
 
     Mos_Solo_OverrideBufferSize(m_ddiDecodeCtx->DecodeParams.m_dataSize, m_ddiDecodeCtx->DecodeParams.m_dataBuffer);
diff --git a/media_driver/linux/common/cp/ddi/media_libva_cp_interface.cpp b/media_driver/linux/common/cp/ddi/media_libva_cp_interface.cpp
index f8e525c..b988640 100644
--- a/media_driver/linux/common/cp/ddi/media_libva_cp_interface.cpp
+++ b/media_driver/linux/common/cp/ddi/media_libva_cp_interface.cpp
@@ -153,7 +153,8 @@
 }
 
 VAStatus DdiCpInterface::SetDecodeParams(
-    CodechalDecodeParams    *decodeParams)
+    DDI_DECODE_CONTEXT *ddiDecodeContext,
+    CodechalSetting *setting)
 {
     DdiStubMessage();
     return VA_STATUS_SUCCESS;
diff --git a/media_driver/linux/common/cp/ddi/media_libva_cp_interface.h b/media_driver/linux/common/cp/ddi/media_libva_cp_interface.h
index 244276c..14c3967 100644
--- a/media_driver/linux/common/cp/ddi/media_libva_cp_interface.h
+++ b/media_driver/linux/common/cp/ddi/media_libva_cp_interface.h
@@ -54,6 +54,8 @@
     return (PDDI_CP_CONTEXT)cpCtx;
 }
 
+struct DDI_DECODE_CONTEXT;
+
 class DdiCpInterface
 {
 public:
@@ -99,7 +101,9 @@
         PMOS_CONTEXT                osContext,
         CodechalSetting *           settings);
 
-    virtual VAStatus SetDecodeParams(CodechalDecodeParams    *decodeParams);
+    virtual VAStatus SetDecodeParams(
+        DDI_DECODE_CONTEXT *ddiDecodeContext,
+        CodechalSetting *setting);
 
     virtual bool IsCencProcessing();