irtmp.h File Reference
Description
RealityServer(R) Web Services RTMP API. See RTMP.
                     Code Example
                     
                  
                  irtmp.h
//*****************************************************************************
// Copyright 1986-2011 by mental images GmbH, Fasanenstr. 81, D-10623 Berlin,
// Germany. All rights reserved.
//*****************************************************************************
//*****************************************************************************
#ifndef MI_RS_WEB_SERVICES_IRTMP_H
#define MI_RS_WEB_SERVICES_IRTMP_H
#include <mi/base/interface_declare.h>
namespace mi {
class IData;
class IMap;
namespace neuraylib {
class IPlugin_api;
class ITransaction;
class IPlugin_api;
class ICanvas;
} // namespace neuraylib
namespace nservices {
class IEvent_context;
class IFactory;
class IScene;
class IArgument_description;
class IConverter;
} // namespace nservices
namespace rswservices {
class IConfiguration;
class IRtmp_render_loop;
class IRtmp_stream_encoder;
class IRtmp_codec_info;
class IRtmp_context : public
    mi::base::Interface_declare<0x3C2D8E92,0x652E,0x4CE6,0x84,0x6B,0x2B,0x55,0x40,0x3F,0x15,0x94>
{
public:
    virtual const char *get_connection_id() const = 0;
    virtual const IMap *get_connection_statistics() const = 0;
    virtual const char *get_connection_property(const char *key) const = 0;
    virtual Sint32 
               set_connection_property(const char *key, const char *value) = 0;
    virtual const IRtmp_codec_info *get_registered_codec(mi::Uint32 index) const = 0;
    virtual const char *get_registered_render_handler(mi::Uint32 index) const = 0;
    virtual mi::Sint32 
               create_render_loop(const char *name,
                                                const char *scene_name,
                                                const char *scope_name,
                                                const char *render_handler_name,
                                                const char *public_pool=NULL) = 0;
    virtual IRtmp_render_loop *get_render_loop(const char *name,
                                                        const char *public_pool=NULL) const = 0;
    virtual mi::Sint32 
               remove_render_loop(const char *name,
                                                const char *public_pool=NULL) = 0;
    virtual mi::Sint32 
               remove_render_loop_pool(const char *public_pool) = 0;
    virtual mi::Sint32 
               create_encoder(const char *name,
                                        const char *codec,
                                        const char *render_loop_name,
                                        const char *public_pool=NULL) = 0;
    virtual IRtmp_stream_encoder *get_encoder(const char *name) const = 0;
    virtual mi::Sint32 
               remove_encoder(const char *name) = 0;
};
class IRtmp_codec_info : public
    mi::base::Interface_declare<0x8C82AB3D,0x8FA4,0x49CF,0xBB,0xAD,0x6E,0xCC,0x13,0x5B,0xA2,0xA0>
{
public:
    virtual const char *get_format() const = 0;
    virtual const char *get_identifier() const = 0;
};
class IRtmp_stream_encoder : public
    mi::base::Interface_declare<0x7C7E5DB6,0xC522,0x4E9B,0x9D,0x43,0xFD,0x94,0xA5,0x0A,0x85,0x29>
{
public:
    virtual const char *get_name() const = 0;
    virtual const char *get_render_context() const = 0;
    virtual const char *get_render_context_pool() const = 0;
    virtual const char *get_codec() const = 0;
    virtual const char *get_codec_parameter(const char *name) const = 0;
    virtual bool get_codec_parameter(mi::Uint32 index,
                                                const char **name, const char **value) const = 0;
    virtual Sint32 
               set_codec_parameter(const char *name, const char *value) = 0;
    virtual void set_render_rate(mi::Uint32 rate) = 0;
    virtual mi::Uint32 
               get_render_rate() const = 0;
    virtual void set_resolution_x(mi::Uint32 resolution_x) = 0;
    virtual mi::Uint32 
               get_resolution_x() const = 0;
    virtual void set_resolution_y(mi::Uint32 resolution_y) = 0;
    virtual mi::Uint32 
               get_resolution_y() const = 0;
    virtual bool in_use() const  = 0;
};
class IRtmp_render_loop  : public
    mi::base::Interface_declare<0xBE2D3F6A,0xFA45,0x4EAB,0xAE,0xA9,0x56,0xC7,0x9C,0x3E,0xD1,0x32>
{
public:
    virtual const char *get_name() const = 0;
    virtual const char *get_scene_name() const = 0;
    virtual const char *get_scope_name() const = 0;
    virtual const char *get_render_handler_name() const = 0;
    virtual Uint32 
               get_num_arguments() const = 0;
    virtual const IData *get_argument(const char *name) const = 0;
    template <class T>
    const T* get_argument(const char *name) const {
        const base::IInterface *ptr_iinterface = get_argument(name);
        if (ptr_iinterface) {
            const T *ptr_T = ptr_iinterface->get_interface<T>();
            ptr_iinterface->release();
            return ptr_T;
        }
        return NULL;
    };
    virtual Sint32 
               get_argument(
        Uint32 index,
        const char **name,
        const IData **value) const = 0;
    virtual Sint32 
               set_argument(
        const char *name,
        const IData *value) = 0;
    virtual void cancel_render(
        Sint32 cancel_level) = 0;
};
class IRtmp_render_context  : public
    mi::base::Interface_declare<0xA4D8F029,0x6234,0x46BC,0x91,0x64,0x5F,0x4C,0x17,0xE3,0x82,0x4F,
    IRtmp_render_loop>
{
public:
    virtual nservices::IScene *get_scene() const = 0;
    virtual neuraylib::ITransaction *get_transaction() = 0;
    virtual neuraylib::ITransaction* get_user_state() = 0;
    virtual nservices::IConverter *get_converter() const = 0;
    virtual nservices::IEvent_context* get_event_context() const = 0;
    virtual nservices::IFactory *get_factory() const = 0;
    virtual const IConfiguration *get_configuration() const = 0;
    virtual neuraylib::IPlugin_api *get_plugin_api() const = 0;
};
class IRtmp_render_handler : public
    mi::base::Interface_declare<0xB1E24974,0x41BA,0x4E5C,0xAF,0xFC,0x04,0x06,0x4D,0xF2,0x55,0x9F>
{
public:
    virtual mi::neuraylib::ICanvas *render(IRtmp_render_context *context) = 0;
    virtual void cancel_render(
        Sint32 cancel_level) = 0;
};
class IRtmp_render_handler_factory : public
    mi::base::Interface_declare<0xC74D8EC7,0x340F,0x4C29,0x96,0x4B,0x73,0x3F,0xEE,0xED,0x2B,0xB4>
{
public:
    virtual const char *get_name() const = 0;
    virtual const char *get_description() const = 0;
    virtual Sint32 
               get_argument_description(
        nservices::IFactory *factory,
        const char *argument_name,
        nservices::IArgument_description *argument) const = 0;
    virtual Sint32 
               get_argument_description(
        nservices::IFactory *factory,
        Uint32 index,
        nservices::IArgument_description *argument) const = 0;
    virtual IRtmp_render_handler *create_render_handler() const = 0;
};
 // end group mi_rswservices_rtmp
} // namespace rswservices
} // namespace mi
#endif // MI_RS_WEB_SERVICES_IRTMP_HNamespaces
- namespace mi
 - namespace mi::neuraylib
 - namespace mi::nservices
 - namespace
 - Namespace for the RealityServer Web Services API. More...
 
Classes
- class
 - Supplies information about an installed video codec. More...
 - class
 - Provides information and managements functionality for the RTMP connection. More...
 - class
 - RTMP render context. More...
 - class
 - Implements an RTMP render handler. More...
 - class
 - Factory class for creating render handlers. More...
 - class
 - Describes an RTMP render loop. More...
 - class
 - Represents an RTMP stream encoder. More...