Iray SDK API nvidia_logo_transpbg.gif Up
ibridge_video_server.h
Go to the documentation of this file.
1/***************************************************************************************************
2 * Copyright 2024 NVIDIA Corporation. All rights reserved.
3 **************************************************************************************************/
6
7#ifndef MI_UNPUBLISHED_BRIDGE_VIDEO_SERVER_H
8#define MI_UNPUBLISHED_BRIDGE_VIDEO_SERVER_H
9
12
13namespace mi {
14
15class IString;
16
17namespace neuraylib { class IBuffer; class ICanvas; }
18
19namespace bridge {
20
21class IVideo_source;
22
40 mi::base::Interface_declare<0x9f1c260c,0x43a7,0x439e,0x9a,0x9f,0xb0,0xc0,0x24,0xc4,0xdc,0xbe>
41{
42public:
52 virtual void frame_ready() = 0;
53
58 virtual void set_video_source( IVideo_source* video_source) = 0;
59
61 virtual IVideo_source* get_video_source() const = 0;
62
82 virtual Sint32 set_video_format( const char* format) = 0;
83
87 virtual const IString* get_video_format() const = 0;
88
109 virtual Sint32 set_max_frame_rate( Uint32 frame_rate) = 0;
110
114 virtual Uint32 get_max_frame_rate() const = 0;
115
131 virtual Sint32 set_render_frame_rate( Float64 frame_rate) = 0;
132
150 virtual Sint32 set_bit_rate( Uint32 bit_rate) = 0;
151
176 virtual Sint32 set_max_bitrate( Uint32 bit_rate) = 0;
177
181 virtual Uint32 get_max_bitrate() const = 0;
182
186 // However, the bitrate will not be set below the minimum bitrate. If the available bandwidth
207 virtual Sint32 set_min_bitrate( Uint32 bit_rate) = 0;
208
212 virtual Uint32 get_min_bitrate() const = 0;
213
217 virtual Uint32 get_bit_rate() const = 0;
218
228 virtual void report_progress( Float64 value, const char* area, const char* message) = 0;
229
238 virtual void report_error( Sint32 error_code, const char* error_message) = 0;
239
241 virtual void reset() = 0;
242
248 virtual void close() = 0;
249
251 virtual Uint32 get_id() const = 0;
252};
253
258class IVideo_source : public
259 mi::base::Interface_declare<0x972224a4,0xa63b,0x42ce,0x96,0xfe,0xe1,0x33,0xf9,0x81,0x1c,0x64>
260{
261public:
283
293 virtual void video_error( Sint32 error_code, const char* message) = 0;
294
301 virtual void video_context_closed( Sint32 reason) = 0;
302};
303 // end group mi_neuray_bridge_server
305
306} // namespace bridge
307
308} // namespace mi
309
310#endif // MI_UNPUBLISHED_BRIDGE_VIDEO_SERVER_H
A simple string class.
Definition: istring.h:22
Mixin class template for deriving new interface declarations.
Definition: interface_declare.h:43
Server-side video context that generates and encodes video frames for the corresponding client-side v...
Definition: ibridge_video_server.h:41
virtual Uint32 get_min_bitrate() const =0
Returns the currently set minimum bitrate.
virtual const IString * get_video_format() const =0
Returns the current video format for encoding.
virtual Uint32 get_max_bitrate() const =0
Returns the currently set maximum bitrate.
virtual void set_video_source(IVideo_source *video_source)=0
Sets the video source that will produce video frames generated by the server.
virtual Sint32 set_min_bitrate(Uint32 bit_rate)=0
Sets the minimum bitrate used by the video stream.
virtual void reset()=0
Resets the video stream and any stateful video encoders like h264.
virtual Sint32 set_bit_rate(Uint32 bit_rate)=0
Sets the bit rate.
virtual Sint32 set_video_format(const char *format)=0
Sets the video format for encoding.
virtual void frame_ready()=0
Notifies the Bridge that the application produced the next video frame.
virtual void report_error(Sint32 error_code, const char *error_message)=0
Communicates an error message to the client side.
virtual Uint32 get_id() const =0
Returns the ID of the video context.
virtual Sint32 set_max_bitrate(Uint32 bit_rate)=0
Sets the maximum bitrate used by the video stream.
virtual Uint32 get_max_frame_rate() const =0
Returns the maximum frame rate.
virtual void report_progress(Float64 value, const char *area, const char *message)=0
Communicates a progress message to the client side.
virtual Uint32 get_bit_rate() const =0
Returns the currently used bit rate.
virtual Sint32 set_render_frame_rate(Float64 frame_rate)=0
Sets the current frame rate.
virtual Sint32 set_max_frame_rate(Uint32 frame_rate)=0
Sets the maximum frame rate.
virtual void close()=0
Closes the video stream associated with this context and frees all resources.
virtual IVideo_source * get_video_source() const =0
Returns the currently set video source, or NULL if none is set.
Abstract interface to generate video frames that are transmitted to the corresponding client-side vid...
Definition: ibridge_video_server.h:260
virtual void video_error(Sint32 error_code, const char *message)=0
Called if the video context failed to encode or send the last frame delivered by a call to video_get_...
virtual void video_context_closed(Sint32 reason)=0
Called when the video context has been closed.
virtual Sint32 video_get_next_frame(neuraylib::ICanvas **frame, neuraylib::IBuffer **data)=0
Returns data for the next frame.
Abstract interface for a simple buffer with binary data.
Definition: ibuffer.h:25
Abstract interface for a canvas represented by a rectangular array of tiles.
Definition: icanvas.h:85
unsigned int Uint32
32-bit unsigned integer.
Definition: types.h:49
double Float64
64-bit float.
Definition: types.h:52
signed int Sint32
32-bit signed integer.
Definition: types.h:46
Mixin class template for deriving new interface declarations.
Common namespace for APIs of NVIDIA Advanced Rendering Center GmbH.
Definition: neuraylib.h:179
Typedefs for types from the math API.