NVIDIA Iray API Home  Up
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
ibridge_video_client.h
Go to the documentation of this file.
1 //*****************************************************************************
2 // Copyright 1986, 2016 NVIDIA Corporation. All rights reserved.
3 //*****************************************************************************
6 //*****************************************************************************
7 
8 #ifndef MI_UNPUBLISHED_BRIDGE_VIDEO_CLIENT_H
9 #define MI_UNPUBLISHED_BRIDGE_VIDEO_CLIENT_H
10 
12 #include <mi/neuraylib/typedefs.h>
13 #include <mi/neuraylib/version.h>
14 
15 namespace mi {
16 
17 class IData;
18 class IString;
19 
20 namespace neuraylib { class IBuffer; class ICanvas; }
21 
22 namespace bridge {
23 
24 class IVideo_source;
25 class IVideo_sink;
26 
31 class IClient_video_context : public
44  mi::base::Interface_declare<0x4b817707,0xa206,0x46a6,0xa2,0xb4,0xb1,0x9b,0x3f,0x10,0x78,0xeb>
45 {
46 public:
51  virtual void set_video_sink( IVideo_sink* video_sink) = 0;
52 
54  virtual IVideo_sink* get_video_sink() const = 0;
55 
60  virtual Sint32 set_nvcuvid_device( Sint32 device) = 0;
61 
65  virtual Sint32 get_nvcuvid_device() const = 0;
66 
72  virtual void close() = 0;
73 
78  virtual Uint32 get_id() const = 0;
79 };
80 
84 class IVideo_frame : public
85  mi::base::Interface_declare<0xaf02b8cc,0x772f,0x4415,0x95,0xae,0x8c,0xb4,0xa3,0xf6,0xd9,0xdd>
86 {
87 public:
89  virtual neuraylib::ICanvas* get_canvas() const = 0;
90 
92  virtual const char* get_video_format() const = 0;
93 
95  virtual Float32 get_encode_time() const = 0;
96 
98  virtual Float32 get_decode_time() const = 0;
99 
101  virtual Size get_compressed_size() const = 0;
102 };
103 
108 class IVideo_sink : public
109  mi::base::Interface_declare<0xa94825d1,0x1ed8,0x4465,0x8d,0x80,0x9e,0x1f,0xf7,0xc6,0x1e,0x65>
110 {
111 public:
122  virtual void video_frame( IVideo_frame* video_frame, neuraylib::IBuffer* frame_data) = 0;
123 
133  virtual void video_progress( Float64 value, const char* area, const char* message) = 0;
134 
139  virtual void video_error( Sint32 error_code, const char* error_message) = 0;
140 
147  virtual void video_context_closed( Sint32 reason) = 0;
148 };
149  // end group mi_neuray_bridge_client
151 
152 } // namespace bridge
153 
154 #ifdef MI_NEURAYLIB_DEPRECATED_NAMESPACE_MI_TRANSITION
155 using neuraylib::IBuffer;
156 #endif // MI_NEURAYLIB_DEPRECATED_NAMESPACE_MI_TRANSITION
157 
158 } // namespace mi
159 
160 #endif // MI_UNPUBLISHED_BRIDGE_VIDEO_CLIENT_H