neuray API Programmer's Manual

ibridge_video_server.h File Reference

Description

Bridge video handling.

Code Example

ibridge_video_server.h

‎/***************************************************************************************************
 * Copyright 2023 NVIDIA Corporation. All rights reserved.
 **************************************************************************************************/

#ifndef MI_UNPUBLISHED_BRIDGE_VIDEO_SERVER_H
#define MI_UNPUBLISHED_BRIDGE_VIDEO_SERVER_H

#include <mi/base/interface_declare.h>
#include <mi/neuraylib/typedefs.h>

namespace mi {

class IString;

namespace neuraylib { class IBuffer; class ICanvas; }

namespace bridge {

class IVideo_source;













class IServer_video_context : public
    mi::base::Interface_declare<0x9f1c260c,0x43a7,0x439e,0x9a,0x9f,0xb0,0xc0,0x24,0xc4,0xdc,0xbe>
{
public:
    virtual void frame_ready() = 0;

    virtual void set_video_source( IVideo_source* video_source) = 0;

    virtual IVideo_source* get_video_source() const = 0;

    virtual Sint32 
               set_video_format( const char* format) = 0;

    virtual const IString* get_video_format() const = 0;

    virtual Sint32 
               set_max_frame_rate( Uint32 frame_rate) = 0;

    virtual Uint32 
               get_max_frame_rate() const = 0;

    virtual Sint32 
               set_render_frame_rate( Float64 frame_rate) = 0;

    virtual Sint32 
               set_bit_rate( Uint32 bit_rate) = 0;

    virtual Sint32 
               set_max_bitrate( Uint32 bit_rate) = 0;

    virtual Uint32 
               get_max_bitrate() const = 0;

    //  However, the bitrate will not be set below the minimum bitrate. If the available bandwidth
    virtual Sint32 
               set_min_bitrate( Uint32 bit_rate) = 0;

    virtual Uint32 
               get_min_bitrate() const = 0;

    virtual Uint32 
               get_bit_rate() const = 0;

    virtual void report_progress( Float64 value, const char* area, const char* message) = 0;

    virtual void report_error( Sint32 error_code, const char* error_message) = 0;

    virtual void reset() = 0;

    virtual void close() = 0;

    virtual Uint32 
               get_id() const = 0;
};

class IVideo_source : public
    mi::base::Interface_declare<0x972224a4,0xa63b,0x42ce,0x96,0xfe,0xe1,0x33,0xf9,0x81,0x1c,0x64>
{
public:
    virtual Sint32 
               video_get_next_frame( neuraylib::ICanvas** frame, neuraylib::IBuffer** data) = 0;

    virtual void video_error( Sint32 error_code, const char* message) = 0;

    virtual void video_context_closed( Sint32 reason) = 0;
};
 // end group mi_neuray_bridge_server

} // namespace bridge

} // namespace mi

#endif // MI_UNPUBLISHED_BRIDGE_VIDEO_SERVER_H

Namespaces

namespace 
Common namespace for APIs of NVIDIA Advanced Rendering Center GmbH. More...
namespace 
Namespace for the Bridge functionality of the neuray API. More...
namespace 
Namespace for the neuray API. More...

Classes

class 
Server-side video context that generates and encodes video frames for the corresponding client-side video context. More...
class 
Abstract interface to generate video frames that are transmitted to the corresponding client-side video context. More...