NVIDIA Iray API Home  Up
 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, 2016 NVIDIA Corporation. All rights reserved.
3 //*****************************************************************************
6 //*****************************************************************************
7 
8 #ifndef MI_NEURAYLIB_RTMP_H
9 #define MI_NEURAYLIB_RTMP_H
10 
12 #include <mi/neuraylib/version.h>
13 
14 namespace mi {
15 
16 class IData;
17 class IMap;
18 
19 namespace neuraylib { class IVideo_encoder; class IVideo_data; }
20 
23 namespace rtmp {
24 
25 class IConnection;
26 class IStream;
27 
148 class ICall_event_handler : public
153  mi::base::Interface_declare<0x9751dc66,0xb064,0x4ae8,0xaa,0x32,0x54,0x89,0x41,0x86,0xcc,0x1d>
154 {
155 public:
174  virtual bool handle(
175  IConnection* connection,
176  const char* procedure_name,
177  const IData* command_arguments,
178  const IData* user_arguments,
179  IData** response_arguments) = 0;
180 };
181 
186 class IStream_event_handler : public
187  mi::base::Interface_declare<0x103c7914,0xe2be,0x43aa,0xa6,0xc7,0x23,0xdd,0x10,0x5e,0xb5,0x61>
188 {
189 public:
201  virtual bool handle(
202  bool is_create,
203  IStream* stream,
204  const IData* command_arguments) = 0;
205 };
206 
212 class IConnection : public
213  mi::base::Interface_declare<0x9a4d6604,0x78f3,0x4948,0x98,0x37,0x73,0x80,0x0c,0x57,0xee,0x35>
214 {
215 public:
223  virtual void register_remote_call_handler(
224  ICall_event_handler* call_handler,
225  const char* procedure_name = 0) = 0;
226 
233  virtual void register_stream_event_handler( IStream_event_handler* stream_event_handler) = 0;
234 
243  virtual IMap* get_statistics() const = 0;
244 
248  virtual const char* get_peer_address() const = 0;
249 
257  virtual Sint32 set_property( const char* key, const char* value) = 0;
258 
263  virtual const char* get_property( const char* key) const = 0;
264 };
265 
271 class IConnect_event_handler : public
272  mi::base::Interface_declare<0x57b2f74b,0x3964,0x45cf,0x85,0xcd,0xb3,0xd3,0x37,0xbf,0x09,0xc2>
273 {
274 public:
298  virtual bool handle(
299  bool is_create,
300  IConnection* connection,
301  const IData* command_arguments,
302  const IData* user_arguments) = 0;
303 };
304 
309 class IPlay_event_handler : public
310  mi::base::Interface_declare<0x59798950,0x9a12,0x48b3,0x87,0x14,0x23,0xb7,0x2d,0xd9,0xaf,0x71>
311 {
312 public:
336  virtual bool handle( bool is_start, IStream* stream, neuraylib::IVideo_data** out) = 0;
337 };
338 
343 class IPause_event_handler : public
344  mi::base::Interface_declare<0x5e4f3910,0x3f00,0x4e80,0xa9,0x77,0x98,0x15,0x6d,0xa0,0x92,0x8b>
345 {
346 public:
364  virtual bool handle( bool is_pause, IStream* stream) = 0;
365 };
366 
373 class IRender_event_handler : public
374  mi::base::Interface_declare<0xe3f21dfb,0xe285,0x4733,0xab,0x10,0x3f,0x0c,0x5c,0x3d,0xdd,0x7a>
375 {
376 public:
385  virtual bool handle( IStream* stream) = 0;
386 };
387 
396 class IFrame_event_handler : public
397  mi::base::Interface_declare<0x0dacca64,0x41ae,0x407f,0xbf,0x9b,0x97,0xaf,0xe7,0x92,0x12,0xbd>
398 {
399 public:
415  virtual bool handle( IStream* stream, neuraylib::IVideo_data** out, bool outqueue_is_full) = 0;
416 };
417 
419 class IStream : public
420  mi::base::Interface_declare<0xa6532316,0x9e4c,0x4e12,0x92,0x63,0xc6,0x2a,0x5c,0xda,0xdd,0x28>
421 {
422 public:
433  virtual bool use_codec( const char* name) = 0;
434 
441 
446  virtual void register_render_event_handler( IRender_event_handler* render_event_handler) = 0;
447 
452  virtual void register_frame_event_handler( IFrame_event_handler* frame_event_handler) = 0;
453 
458  virtual void register_play_event_handler( IPlay_event_handler* play_event_handler) = 0;
459 
464  virtual void register_pause_event_handler( IPause_event_handler* pause_event_handler) = 0;
465 
472  virtual const char* get_stream_name() const = 0;
473 
490  virtual Sint32 set_property( const char* key, const char* value) = 0;
491 
496  virtual const char* get_property( const char* key) const = 0;
497 
503  virtual IConnection* get_connection() = 0;
504 };
505 
507 class IServer : public
508  mi::base::Interface_declare<0xe0a7301d,0xb555,0x4fc6,0xb5,0x1d,0x26,0x1c,0xbe,0x73,0xea,0x47>
509 {
510 public:
520  virtual Sint32 start( const char* listen_address) = 0;
521 
528  virtual void shutdown() = 0;
529 
535  virtual void install( IConnect_event_handler* handler) = 0;
536 
540  virtual void remove( IConnect_event_handler* handler) = 0;
541 
543  virtual const char* get_listen_address() const = 0;
544 };
545 
547 class IFactory : public
548  mi::base::Interface_declare<0x2e6055f1,0xf94d,0x4a2c,0xb2,0x0a,0x30,0xde,0xb6,0xde,0xc8,0x8c>
549 {
550 public:
553  virtual IServer* create_server() = 0;
554 };
555  // end group mi_neuray_rtmp
557 
558 } // namespace rtmp
559 
560 } // namespace mi
561 
562 #endif // MI_NEURAYLIB_RTMP_H