NVIDIA Iray API
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
rtmp.h
Go to the documentation of this file.
1 //*****************************************************************************
2 // Copyright 1986, 2014 NVIDIA Corporation. All rights reserved.
3 //*****************************************************************************
6 //*****************************************************************************
7 
8 #ifndef MI_NEURAYLIB_RTMP_H
9 #define MI_NEURAYLIB_RTMP_H
10 
12 
13 namespace mi {
14 
15 class IVideo_encoder;
16 class IVideo_data;
17 class IData;
18 class IMap;
19 
22 namespace rtmp {
23 
24 class IConnection;
25 class IStream;
26 
146 class ICall_event_handler : public
151  mi::base::Interface_declare<0x9751dc66,0xb064,0x4ae8,0xaa,0x32,0x54,0x89,0x41,0x86,0xcc,0x1d>
152 {
153 public:
172  virtual bool handle(
173  IConnection* connection,
174  const char* procedure_name,
175  const IData* command_arguments,
176  const IData* user_arguments,
177  IData** response_arguments) = 0;
178 };
179 
184 class IStream_event_handler : public
185  mi::base::Interface_declare<0x103c7914,0xe2be,0x43aa,0xa6,0xc7,0x23,0xdd,0x10,0x5e,0xb5,0x61>
186 {
187 public:
199  virtual bool handle(
200  bool is_create,
201  IStream* stream,
202  const IData* command_arguments) = 0;
203 };
204 
210 class IConnection : public
211  mi::base::Interface_declare<0x9a4d6604,0x78f3,0x4948,0x98,0x37,0x73,0x80,0x0c,0x57,0xee,0x35>
212 {
213 public:
221  virtual void register_remote_call_handler(
222  ICall_event_handler* call_handler,
223  const char* procedure_name = 0) = 0;
224 
231  virtual void register_stream_event_handler( IStream_event_handler* stream_event_handler) = 0;
232 
241  virtual IMap* get_statistics() const = 0;
242 
246  virtual const char* get_peer_address() const = 0;
247 
255  virtual Sint32 set_property( const char* key, const char* value) = 0;
256 
261  virtual const char* get_property( const char* key) const = 0;
262 };
263 
269 class IConnect_event_handler : public
270  mi::base::Interface_declare<0x57b2f74b,0x3964,0x45cf,0x85,0xcd,0xb3,0xd3,0x37,0xbf,0x09,0xc2>
271 {
272 public:
296  virtual bool handle(
297  bool is_create,
298  IConnection* connection,
299  const IData* command_arguments,
300  const IData* user_arguments) = 0;
301 };
302 
307 class IPlay_event_handler : public
308  mi::base::Interface_declare<0x59798950,0x9a12,0x48b3,0x87,0x14,0x23,0xb7,0x2d,0xd9,0xaf,0x71>
309 {
310 public:
334  virtual bool handle( bool is_start, IStream* stream, IVideo_data** out) = 0;
335 };
336 
341 class IPause_event_handler : public
342  mi::base::Interface_declare<0x5e4f3910,0x3f00,0x4e80,0xa9,0x77,0x98,0x15,0x6d,0xa0,0x92,0x8b>
343 {
344 public:
362  virtual bool handle( bool is_pause, IStream* stream) = 0;
363 };
364 
371 class IRender_event_handler : public
372  mi::base::Interface_declare<0xe3f21dfb,0xe285,0x4733,0xab,0x10,0x3f,0x0c,0x5c,0x3d,0xdd,0x7a>
373 {
374 public:
383  virtual bool handle( IStream* stream) = 0;
384 };
385 
394 class IFrame_event_handler : public
395  mi::base::Interface_declare<0x0dacca64,0x41ae,0x407f,0xbf,0x9b,0x97,0xaf,0xe7,0x92,0x12,0xbd>
396 {
397 public:
413  virtual bool handle( IStream* stream, IVideo_data** out, bool outqueue_is_full) = 0;
414 };
415 
417 class IStream : public
418  mi::base::Interface_declare<0xa6532316,0x9e4c,0x4e12,0x92,0x63,0xc6,0x2a,0x5c,0xda,0xdd,0x28>
419 {
420 public:
431  virtual bool use_codec( const char* name) = 0;
432 
438  virtual IVideo_encoder* get_video_codec() = 0;
439 
444  virtual void register_render_event_handler( IRender_event_handler* render_event_handler) = 0;
445 
450  virtual void register_frame_event_handler( IFrame_event_handler* frame_event_handler) = 0;
451 
456  virtual void register_play_event_handler( IPlay_event_handler* play_event_handler) = 0;
457 
462  virtual void register_pause_event_handler( IPause_event_handler* pause_event_handler) = 0;
463 
470  virtual const char* get_stream_name() const = 0;
471 
488  virtual Sint32 set_property( const char* key, const char* value) = 0;
489 
494  virtual const char* get_property( const char* key) const = 0;
495 
501  virtual IConnection* get_connection() = 0;
502 };
503 
505 class IServer : public
506  mi::base::Interface_declare<0xe0a7301d,0xb555,0x4fc6,0xb5,0x1d,0x26,0x1c,0xbe,0x73,0xea,0x47>
507 {
508 public:
518  virtual Sint32 start( const char* listen_address) = 0;
519 
526  virtual void shutdown() = 0;
527 
533  virtual void install( IConnect_event_handler* handler) = 0;
534 
538  virtual void remove( IConnect_event_handler* handler) = 0;
539 
541  virtual const char* get_listen_address() const = 0;
542 };
543 
545 class IFactory : public
546  mi::base::Interface_declare<0x2e6055f1,0xf94d,0x4a2c,0xb2,0x0a,0x30,0xde,0xb6,0xde,0xc8,0x8c>
547 {
548 public:
551  virtual IServer* create_server() = 0;
552 };
553  // end group mi_neuray_rtmp
555 
556 } // namespace rtmp
557 
558 } // namespace mi
559 
560 #endif // MI_NEURAYLIB_RTMP_H