mm-video: Enable decryption of DIVX content

For DIVX content call the software decryption library before pushing the
buffer to the driver.  Without decryption, the decoder considers many of
the encrypted clips to be corrupted.

CRs-Fixed: 419792
Change-Id: I367166104d97ed82ffa532cf2db58d3f255dfd5b
diff --git a/mm-video/vidc/vdec/src/omx_vdec_msm8974.cpp b/mm-video/vidc/vdec/src/omx_vdec_msm8974.cpp
index 2cedff1..c82df29 100644
--- a/mm-video/vidc/vdec/src/omx_vdec_msm8974.cpp
+++ b/mm-video/vidc/vdec/src/omx_vdec_msm8974.cpp
@@ -1432,6 +1432,11 @@
 		codec_type_parse = CODEC_TYPE_DIVX;
 		m_frame_parser.init_start_codes (codec_type_parse);
 
+		eRet = createDivxDrmContext();
+		if (eRet != OMX_ErrorNone) {
+			DEBUG_PRINT_ERROR("createDivxDrmContext Failed");
+			return eRet;
+		}
 	}
 	else if(!strncmp(drv_ctx.kind, "OMX.qcom.video.decoder.divx4",\
 				OMX_MAX_STRINGNAME_SIZE))
@@ -1445,6 +1450,11 @@
 		codec_ambiguous = true;
 		m_frame_parser.init_start_codes (codec_type_parse);
 
+		eRet = createDivxDrmContext();
+		if (eRet != OMX_ErrorNone) {
+			DEBUG_PRINT_ERROR("createDivxDrmContext Failed");
+			return eRet;
+		}
 	}
 	else if(!strncmp(drv_ctx.kind, "OMX.qcom.video.decoder.divx",\
 				OMX_MAX_STRINGNAME_SIZE))
@@ -1458,6 +1468,12 @@
 		codec_ambiguous = true;
 		m_frame_parser.init_start_codes (codec_type_parse);
 
+		eRet = createDivxDrmContext();
+		if (eRet != OMX_ErrorNone) {
+			DEBUG_PRINT_ERROR("createDivxDrmContext Failed");
+			return eRet;
+		}
+
 	}
 	else if(!strncmp(drv_ctx.kind, "OMX.qcom.video.decoder.avc",\
 				OMX_MAX_STRINGNAME_SIZE))
@@ -3466,10 +3482,6 @@
     case OMX_QcomIndexParamVideoDivx:
       {
         QOMX_VIDEO_PARAM_DIVXTYPE* divXType = (QOMX_VIDEO_PARAM_DIVXTYPE *) paramData;
-
-#if 0
-         createDivxDrmContext( divXType->pDrmHandle );
-#endif
       }
       break;
     case OMX_QcomIndexPlatformPvt:
@@ -8725,31 +8737,22 @@
   return OMX_ErrorNone;
 }
 
-#if 0
-OMX_ERRORTYPE omx_vdec::createDivxDrmContext( OMX_PTR drmHandle )
+OMX_ERRORTYPE omx_vdec::createDivxDrmContext()
 {
      OMX_ERRORTYPE err = OMX_ErrorNone;
-     if( drmHandle == NULL ) {
-        DEBUG_PRINT_HIGH("\n This clip is not DRM encrypted");
-        iDivXDrmDecrypt = NULL;
-        return err;
-     }
-
-     iDivXDrmDecrypt = DivXDrmDecrypt::Create( drmHandle );
+     iDivXDrmDecrypt = DivXDrmDecrypt::Create();
      if (iDivXDrmDecrypt) {
-          DEBUG_PRINT_LOW("\nCreated DIVX DRM, now calling Init");
           OMX_ERRORTYPE err = iDivXDrmDecrypt->Init();
           if(err!=OMX_ErrorNone) {
-            DEBUG_PRINT_ERROR("\nERROR:iDivXDrmDecrypt->Init %d", err);
+            DEBUG_PRINT_ERROR("\nERROR :iDivXDrmDecrypt->Init %d", err);
             delete iDivXDrmDecrypt;
             iDivXDrmDecrypt = NULL;
           }
      }
      else {
           DEBUG_PRINT_ERROR("\nUnable to Create DIVX DRM");
-          return OMX_ErrorUndefined;
+          err = OMX_ErrorUndefined;
      }
      return err;
 }
-#endif