Exemple #1
0
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;
}
Exemple #2
0
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;
}