ibridge_video_client.h File Reference
Description
Bridge video handling.
Code Example
ibridge_video_client.h
/***************************************************************************************************
* Copyright 2024 NVIDIA Corporation. All rights reserved.
**************************************************************************************************/
#ifndef MI_UNPUBLISHED_BRIDGE_VIDEO_CLIENT_H
#define MI_UNPUBLISHED_BRIDGE_VIDEO_CLIENT_H
#include <mi/base/interface_declare.h>
#include <mi/neuraylib/typedefs.h>
#include <mi/neuraylib/idata.h>
namespace mi {
class IData;
class IString;
namespace neuraylib { class IBuffer; class ICanvas; }
namespace bridge {
class IVideo_source;
class IVideo_sink;
class IClient_video_context : public
mi::base::Interface_declare<0x4b817707,0xa206,0x46a6,0xa2,0xb4,0xb1,0x9b,0x3f,0x10,0x78,0xeb>
{
public:
virtual void set_video_sink( IVideo_sink* video_sink) = 0;
virtual IVideo_sink* get_video_sink() const = 0;
virtual Sint32
set_nvcuvid_device( Sint32 device) = 0;
virtual Sint32
get_nvcuvid_device() const = 0;
virtual void close() = 0;
virtual Uint32
get_id() const = 0;
};
class IVideo_frame : public
mi::base::Interface_declare<0xaf02b8cc,0x772f,0x4415,0x95,0xae,0x8c,0xb4,0xa3,0xf6,0xd9,0xdd>
{
public:
virtual neuraylib::ICanvas* get_canvas() const = 0;
virtual const char* get_video_format() const = 0;
virtual Float32
get_encode_time() const = 0;
virtual Float32
get_decode_time() const = 0;
virtual Size
get_compressed_size() const = 0;
virtual IData* get_video_format_attribute(const char* attribute) const = 0;
template <typename T>
T* get_video_format_attribute(const char* attribute) const
{
IData* attr = get_video_format_attribute(attribute);
if(!attr)
return 0;
return static_cast<T*>(attr->get_interface( typename T::IID()));
}
};
class IVideo_sink : public
mi::base::Interface_declare<0xa94825d1,0x1ed8,0x4465,0x8d,0x80,0x9e,0x1f,0xf7,0xc6,0x1e,0x65>
{
public:
virtual void video_frame( IVideo_frame* video_frame, neuraylib::IBuffer* frame_data) = 0;
virtual void video_progress( Float64 value, const char* area, const char* message) = 0;
virtual void video_error( Sint32 error_code, const char* error_message) = 0;
virtual void video_context_closed( Sint32 reason) = 0;
};
// end group mi_neuray_bridge_client
} // namespace bridge
} // namespace mi
#endif // MI_UNPUBLISHED_BRIDGE_VIDEO_CLIENT_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
- Client-side video context that receives and decodes video frames from the corresponding server-side video context. More...
- class
- Represents the data for a single video frame. More...
- class
- Abstract interface to receive video frames produced by the corresponding server-side video context. More...