TSDuck Version 3.16-1064 (TSDuck - The MPEG Transport Stream Toolkit)
tsPlugin.h File Reference

Definition of the API of a tsp plugin. More...

Classes

class  ts::InputPlugin
 Input tsp plugin interface. More...
 
class  ts::OutputPlugin
 Output tsp plugin interface. More...
 
class  ts::Plugin
 Base class of all tsp plugins. More...
 
class  ts::ProcessorPlugin
 Packet processing tsp plugin interface. More...
 
class  ts::TSP
 TSP callback for plugins. More...
 

Namespaces

 ts
 TSDuck namespace, containing all TSDuck classes and functions.
 

Macros

#define TSPLUGIN_DECLARE_INPUT(name, type)
 Export input plugin interface out of the shared library. More...
 
#define TSPLUGIN_DECLARE_OUTPUT(name, type)
 Export output plugin interface out of the shared library. More...
 
#define TSPLUGIN_DECLARE_PROCESSOR(name, type)
 Export packet processing plugin interface out of the shared library. More...
 
#define TSPLUGIN_DECLARE_VERSION
 Export the plugin API version number out of the shared library. More...
 

Typedefs

typedef InputPlugin *(* ts::NewInputProfile) (TSP *tsp)
 Input plugin interface profile. More...
 
typedef OutputPlugin *(* ts::NewOutputProfile) (TSP *tsp)
 Output plugin interface profile. More...
 
typedef ProcessorPlugin *(* ts::NewProcessorProfile) (TSP *tsp)
 Packet processing plugin interface profile. More...
 

Enumerations

enum  ts::PluginType {
  ts::INPUT_PLUGIN,
  ts::OUTPUT_PLUGIN,
  ts::PROCESSOR_PLUGIN
}
 Each plugin has one of the following types. More...
 

Variables

const Enumeration ts::PluginTypeNames
 Displayable names of plugin types.
 

Detailed Description

Definition of the API of a tsp plugin.

Macro Definition Documentation

◆ TSPLUGIN_DECLARE_VERSION

#define TSPLUGIN_DECLARE_VERSION

Export the plugin API version number out of the shared library.

All tsp plugin shared libraries must invoke this macro once.

◆ TSPLUGIN_DECLARE_INPUT

#define TSPLUGIN_DECLARE_INPUT (   name,
  type 
)

Export input plugin interface out of the shared library.

This macro declares the plugin allocation routine. Shall be used by shared libraries which provide input capability.

Parameters
namePlugin name. Only used with static link.
typeName of a subclass of ts::InputPlugin implementing the plugin.

◆ TSPLUGIN_DECLARE_OUTPUT

#define TSPLUGIN_DECLARE_OUTPUT (   name,
  type 
)

Export output plugin interface out of the shared library.

This macro declares the plugin allocation routine. Shall be used by shared libraries which provide output capability.

Parameters
namePlugin name. Only used with static link.
typeName of a subclass of ts::OutputPlugin implementing the plugin.

◆ TSPLUGIN_DECLARE_PROCESSOR

#define TSPLUGIN_DECLARE_PROCESSOR (   name,
  type 
)

Export packet processing plugin interface out of the shared library.

This macro declares the plugin allocation routine. Shall be used by shared libraries which provide packet processing capability.

Parameters
namePlugin name. Only used with static link.
typeName of a subclass of ts::ProcessorPlugin implementing the plugin.