7#ifndef MI_NEURAYLIB_IVIDEO_PLUGIN_H
8#define MI_NEURAYLIB_IVIDEO_PLUGIN_H
28#define MI_NEURAY_VIDEO_PLUGIN_TYPE "video v31"
32 mi::base::Interface_declare<0xbdd686fa,0x3e37,0x43aa,0xbd,0xe6,0x7b,0xab,0x9f,0x3e,0x1c,0xfc>
55 mi::base::Interface_declare<0x572ef6ad,0xbc37,0x417d,0xbf,0x7c,0x17,0x17,0x4e,0x96,0xa3,0x06>
155 mi::base::Interface_declare<0xe7fa52c7,0xd881,0x4a29,0x9e,0x82,0x3b,0xdd,0xa6,0xcf,0x14,0xc8>
277 mi::base::Interface_declare<0x79be801,0x17a7,0x48d8,0x8a,0x4,0x73,0xd4,0x35,0x6d,0x2,0x28>
Mixin class template for deriving new interface declarations.
Definition: interface_declare.h:43
The abstract base class for plugins.
Definition: plugin.h:34
Abstract interface for a canvas with CUDA device memory storage.
Definition: icanvas_cuda.h:28
Abstract interface for a canvas represented by a rectangular array of tiles.
Definition: icanvas.h:85
This abstract interface gives access to the DiCE API to plugins.
Definition: iplugin_api.h:27
API component that allow creation of installed video encoders and decoders.
Definition: ivideo_plugin.h:278
virtual IVideo_decoder * create_video_decoder(const char *codec_name)=0
Returns a video decoder for the requested codec, or NULL if unsupported.
virtual IVideo_encoder * create_video_encoder(const char *codec_name)=0
Creates a video encoder for a given codec.
A buffer for video data representing a frame.
Definition: ivideo_plugin.h:33
virtual Size get_data_size() const =0
Returns the size of the buffer.
virtual bool is_key_frame() const =0
Indicates whether this frame is a key frame.
virtual Uint8 * get_data()=0
Returns a pointer to the data of the buffer.
Abstract interface for video decoders.
Definition: ivideo_plugin.h:156
virtual Uint32 get_encoded_width()=0
Returns the encoded width of the video stream.
virtual Uint32 get_encoded_height()=0
Returns the encoded height of the video stream.
virtual Sint32 close()=0
Closes the video stream.
virtual const char * get_parameter(const char *name)=0
Returns the value of a parameter of the decoder.
virtual Sint32 decode_canvas(neuraylib::ICanvas *canvas, IBuffer *data)=0
Decodes video stream data to a canvas.
virtual Sint32 init(IBuffer *data)=0
Initializes the video decoder.
virtual const char * get_format_parameter(const char *parameter)=0
Returns a video stream format parameter. Only available after initialization is completed.
virtual bool set_parameter(const char *name, const char *value)=0
Sets a parameter of the decoder.
virtual const char * get_supported_type(Uint32 index) const =0
Returns the index -th supported pixel type.
virtual const char * get_identifier() const =0
Returns a concise single-line unique identifier.
Abstract interface for video encoders.
Definition: ivideo_plugin.h:56
virtual Sint32 encode_canvas(const ICanvas_cuda *canvas, IVideo_data **out)=0
Encodes the pixel data contained in a cuda canvas.
virtual Sint32 init(Uint32 resolution_x, Uint32 resolution_y, IVideo_data **out)=0
Initializes the video stream.
virtual const char * get_identifier() const =0
Returns a concise single-line unique identifier.
virtual Sint32 close(IVideo_data **out)=0
Closes the video stream.
virtual bool set_parameter(const char *name, const char *value)=0
Sets a parameter for the video stream.
virtual Sint32 encode_canvas(const ICanvas *canvas, IVideo_data **out)=0
Encodes the pixel data contained in a canvas.
virtual const char * get_supported_type(Uint32 index) const =0
Returns the index -th supported pixel type.
virtual const char * get_parameter(const char *name)=0
Returns the value of a parameter for the video stream.
Abstract interface for video encoder plugins.
Definition: ivideo_plugin.h:247
virtual IVideo_decoder * create_video_decoder() const =0
Creates a new decoder for a video stream.
virtual bool init(IPlugin_api *plugin_api)=0
Initializes the plugin.
virtual bool exit(IPlugin_api *plugin_api)=0
De-initializes the plugin.
virtual IVideo_encoder * create_video_encoder() const =0
Creates a new encoder for a video stream.
virtual const char * get_name() const =0
Returns the name of the plugin.
unsigned int Uint32
32-bit unsigned integer.
Definition: types.h:49
unsigned char Uint8
8-bit unsigned integer.
Definition: types.h:47
Uint64 Size
Unsigned integral type that is large enough to hold the size of all types.
Definition: types.h:112
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: dice.h:89
Base class for all plugins.