2 * GPAC - Multimedia Framework C SDK
\r
4 * Copyright (c) Jean Le Feuvre 2000-2005
\r
5 * All rights reserved
\r
7 * This file is part of GPAC / modules interfaces
\r
9 * GPAC is free software; you can redistribute it and/or modify
\r
10 * it under the terms of the GNU Lesser General Public License as published by
\r
11 * the Free Software Foundation; either version 2, or (at your option)
\r
12 * any later version.
\r
14 * GPAC is distributed in the hope that it will be useful,
\r
15 * but WITHOUT ANY WARRANTY; without even the implied warranty of
\r
16 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
\r
17 * GNU Lesser General Public License for more details.
\r
19 * You should have received a copy of the GNU Lesser General Public
\r
20 * License along with this library; see the file COPYING. If not, write to
\r
21 * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
\r
26 #ifndef _GF_MODULE_IPMP_H_
\r
27 #define _GF_MODULE_IPMP_H_
\r
33 #include <gpac/module.h>
\r
38 The current implementation is very basic and does not follow MPEG-4 IPMPX architecture
\r
39 This is just a place holder for ISMA/OMA-like schemes
\r
40 Currently all operations are synchronous...
\r
45 /*push some configuration data to the IPMP tool*/
\r
47 /*request access to the object (eg, PLAY)*/
\r
48 GF_IPMP_TOOL_GRANT_ACCESS,
\r
49 /*release access to the object (eg, STOP)*/
\r
50 GF_IPMP_TOOL_RELEASE_ACCESS,
\r
51 /*push some configuration data to the IPMP tool*/
\r
52 GF_IPMP_TOOL_PROCESS_DATA,
\r
59 const char *scheme_uri;
\r
60 const char *kms_uri;
\r
61 } GF_ISMACrypConfig;
\r
67 const char *scheme_uri;
\r
68 const char *kms_uri;
\r
72 const char *contentID;
\r
73 u32 oma_drm_crypt_type;
\r
74 Bool oma_drm_use_pad, oma_drm_use_hdr;
\r
75 const char *oma_drm_textual_headers;
\r
76 u32 oma_drm_textual_headers_len;
\r
85 /*gpac's channel triggering this event, NULL if unknown/unspecified*/
\r
86 struct _es_channel *channel;
\r
88 /*identifier of the config data (GF_IPMP_TOOL_SETUP)*/
\r
89 u32 config_data_code;
\r
90 /*config data (GF_IPMP_TOOL_SETUP). Type depends on the config_data_code*/
\r
93 Bool restart_requested;
\r
95 /*data manipulation (GF_IPMP_TOOL_PROCESS_DATA) - data is always processed in-place in a
\r
100 /*indicates if payload passed is encrypted or not - this is used by ISMA, OMA and 3GP*/
\r
102 /*ISMA payload resync indicator*/
\r
106 /*interface name and version for IPMP tools*/
\r
107 #define GF_IPMP_TOOL_INTERFACE GF_4CC('G','I','P', 0x01)
\r
109 typedef struct _ipmp_tool GF_IPMPTool;
\r
113 /* interface declaration*/
\r
114 GF_DECL_MODULE_INTERFACE
\r
116 /*process an ipmp event*/
\r
117 GF_Err (*process)(GF_IPMPTool *dr, GF_IPMPEvent *evt);
\r
129 #endif /*#define _GF_MODULE_IPMP_H_
\r