static GF_Err ISMA_Process(GF_IPMPTool *plug, GF_IPMPEvent *evt) { ISMAEAPriv *priv = (ISMAEAPriv *)plug->udta; switch (evt->event_type) { case GF_IPMP_TOOL_SETUP: if (evt->config_data_code == GF_4CC('i','s','m','a')) return ISMA_Setup(priv, evt); #ifdef OMA_DRM_MP4MC if (evt->config_data_code == GF_4CC('o','d','r','m')) return OMA_DRM_Setup(priv, evt); #endif return GF_NOT_SUPPORTED; case GF_IPMP_TOOL_GRANT_ACCESS: case GF_IPMP_TOOL_RELEASE_ACCESS: if (priv->is_oma) { } else { return ISMA_Access(priv, evt); } break; case GF_IPMP_TOOL_PROCESS_DATA: if (priv->is_oma) { if (evt->is_encrypted) { evt->restart_requested = 1; return GF_EOS; } return GF_OK; } return ISMA_ProcessData(priv, evt); } return GF_OK; }
static GF_Err IPMP_Process(GF_IPMPTool *plug, GF_IPMPEvent *evt) { ISMAEAPriv *priv = (ISMAEAPriv *)plug->udta; switch (evt->event_type) { case GF_IPMP_TOOL_SETUP: if (evt->config_data_code == GF_ISOM_ISMA_SCHEME) return ISMA_Setup(priv, evt); #ifdef OMA_DRM_MP4MC if (evt->config_data_code == GF_ISOM_ODRM_SCHEME) return OMA_DRM_Setup(priv, evt); #endif if((evt->config_data_code == GF_ISOM_CENC_SCHEME) || (evt->config_data_code == GF_ISOM_CBC_SCHEME) || (evt->config_data_code == GF_ISOM_CENS_SCHEME) || (evt->config_data_code == GF_ISOM_CBCS_SCHEME)) return CENC_Setup(priv, evt); return GF_NOT_SUPPORTED; case GF_IPMP_TOOL_GRANT_ACCESS: case GF_IPMP_TOOL_RELEASE_ACCESS: if (priv->is_cenc || priv->is_cbc) { return CENC_Access(priv, evt); } else if (priv->is_oma) { } else { return ISMA_Access(priv, evt); } break; case GF_IPMP_TOOL_PROCESS_DATA: if (priv->is_cenc || priv->is_cbc) { return CENC_ProcessData(priv, evt); } else if (priv->is_oma) { if (evt->is_encrypted) { evt->restart_requested = GF_TRUE; return GF_EOS; } return GF_OK; } return ISMA_ProcessData(priv, evt); } return GF_OK; }