1 /****************************************************************************
3 * $Id: rmaencod.h 7 2003-05-30 02:18:02Z gabest $
5 * Copyright (C) 1995-1999 RealNetworks, Inc. All rights reserved.
7 * http://www.real.com/devzone
9 * This program contains proprietary
10 * information of Progressive Networks, Inc, and is licensed
11 * subject to restrictions on use and distribution.
14 * RealMedia Architecture Encoder Interfaces.
21 typedef _INTERFACE IUnknown IUnknown
;
22 typedef _INTERFACE IRMAValues IRMAValues
;
23 typedef _INTERFACE IRMAPacket IRMAPacket
;
24 typedef _INTERFACE IRMARequest IRMARequest
;
25 typedef _INTERFACE IRMAEncoder IRMAEncoder
;
26 typedef _INTERFACE IRMAEncoderResponse IRMAEncoderResponse
;
27 typedef _INTERFACE IRMAEncoderCompletion IRMAEncoderCompletion
;
28 typedef _INTERFACE IRMAEncoderResponseCompletion IRMAEncoderResponseCompletion
;
29 typedef _INTERFACE IRMAConnectionlessControl IRMAConnectionlessControl
;
30 typedef _INTERFACE IRMATransportControl IRMATransportControl
;
33 STDAPI_(IUnknown
*) CreateContext();
36 STDAPI_(IUnknown
*) CreateContext();
41 DEFINE_GUID(IID_IRMAEncoderResponse
, 0x00001600, 0x901, 0x11d1, 0x8b, 0x6, 0x0, 0xa0, 0x24, 0x40, 0x6d, 0x59);
44 #define INTERFACE IRMAEncoderResponse
46 DECLARE_INTERFACE_(IRMAEncoderResponse
, IUnknown
)
51 STDMETHOD(QueryInterface
) (THIS_
55 STDMETHOD_(ULONG
,AddRef
) (THIS
) PURE
;
57 STDMETHOD_(ULONG
,Release
) (THIS
) PURE
;
60 * IRMAEncoderResponse methods
62 STDMETHOD(InitEncoderResponse
) (THIS_
65 IRMARequest
* pRequest
,
66 const char* pUsername
,
67 const char* pPassword
,
68 IRMAEncoder
* pEncoder
) PURE
;
70 STDMETHOD(FileHeaderReady
) (THIS_
72 IRMAValues
* pHeader
) PURE
;
74 STDMETHOD(StreamHeaderReady
) (THIS_
76 IRMAValues
* pHeader
) PURE
;
78 STDMETHOD(PacketReady
) (THIS_
80 IRMAPacket
* pPacket
) PURE
;
82 STDMETHOD(StreamDone
) (THIS_
83 UINT16 unStream
) PURE
;
85 STDMETHOD(Process
) (THIS
) PURE
;
87 STDMETHOD_(UINT32
,GetTime
) (THIS
) PURE
;
90 DEFINE_GUID(IID_IRMAEncoder
, 0x00001601, 0x901, 0x11d1, 0x8b, 0x6, 0x0, 0xa0, 0x24, 0x40, 0x6d, 0x59);
93 #define INTERFACE IRMAEncoder
95 DECLARE_INTERFACE_(IRMAEncoder
, IUnknown
)
100 STDMETHOD(QueryInterface
) (THIS_
104 STDMETHOD_(ULONG
,AddRef
) (THIS
) PURE
;
106 STDMETHOD_(ULONG
,Release
) (THIS
) PURE
;
109 * IRMAEncoder methods
111 STDMETHOD(InitEncoderResponseDone
) (THIS_
112 PN_RESULT result
) PURE
;
114 STDMETHOD(GetFileHeader
) (THIS
) PURE
;
116 STDMETHOD(GetStreamHeader
) (THIS_
117 UINT16 unStream
) PURE
;
119 STDMETHOD(StartPackets
) (THIS_
120 UINT16 unStream
) PURE
;
122 STDMETHOD(StopPackets
) (THIS_
123 UINT16 unStream
) PURE
;
126 DEFINE_GUID(IID_IRMAEncoderCompletion
, 0x00001602, 0x901, 0x11d1, 0x8b, 0x6, 0x0, 0xa0, 0x24, 0x40, 0x6d, 0x59);
129 #define INTERFACE IRMAEncoderCompletion
131 DECLARE_INTERFACE_(IRMAEncoderCompletion
, IUnknown
)
136 STDMETHOD(QueryInterface
) (THIS_
140 STDMETHOD_(ULONG
,AddRef
) (THIS
) PURE
;
142 STDMETHOD_(ULONG
,Release
) (THIS
) PURE
;
145 * IRMAEncoderCompletion methods
148 STDMETHOD(EncoderDone
) (THIS_
149 PN_RESULT result
) PURE
;
152 DEFINE_GUID(IID_IRMAConnectionlessControl
, 0x00001603, 0x901, 0x11d1, 0x8b, 0x6, 0x0, 0xa0, 0x24, 0x40, 0x6d, 0x59);
155 #define INTERFACE IRMAConnectionlessControl
157 DECLARE_INTERFACE_(IRMAConnectionlessControl
, IUnknown
)
162 STDMETHOD(QueryInterface
) (THIS_
166 STDMETHOD_(ULONG
,AddRef
) (THIS
) PURE
;
168 STDMETHOD_(ULONG
,Release
) (THIS
) PURE
;
171 * IRMAConnectionlessControl methods
174 STDMETHOD(EnableConnectionlessControl
)
177 STDMETHOD(ConnectionCheckFailed
) (THIS_
178 PN_RESULT status
) PURE
;
180 STDMETHOD(SetConnectionTimeout
) (THIS_
181 UINT32 uSeconds
) PURE
;
184 DEFINE_GUID(IID_IRMAEncoderResponseCompletion
, 0x00001604, 0x901, 0x11d1, 0x8b, 0x6, 0x0, 0xa0, 0x24, 0x40, 0x6d, 0x59);
187 #define INTERFACE IRMAEncoderResponseCompletion
189 DECLARE_INTERFACE_(IRMAEncoderResponseCompletion
, IUnknown
)
194 STDMETHOD(QueryInterface
) (THIS_
198 STDMETHOD_(ULONG
,AddRef
) (THIS
) PURE
;
200 STDMETHOD_(ULONG
,Release
) (THIS
) PURE
;
203 * IRMAEncoderResponseCompletion methods
206 STDMETHOD(EncoderResponseDone
) (THIS
) PURE
;
210 * The only 2 encoder transport types supported are:
215 DEFINE_GUID(IID_IRMATransportControl
, 0x00001605, 0x901, 0x11d1, 0x8b, 0x6, 0x0, 0xa0, 0x24, 0x40, 0x6d, 0x59);
218 #define INTERFACE IRMATransportControl
220 DECLARE_INTERFACE_(IRMATransportControl
, IUnknown
)
225 STDMETHOD(QueryInterface
) (THIS_
229 STDMETHOD_(ULONG
,AddRef
) (THIS
) PURE
;
231 STDMETHOD_(ULONG
,Release
) (THIS
) PURE
;
234 * IRMATransportControl methods
237 STDMETHOD(SetTransportType
) (const char* pTransportType
) PURE
;
240 #endif /* _RMAENCOD_H_ */