mediastreamer2 2.12.1

- Main Page
- Related Pages
- Modules
- Data Structures
- Files

Typedefs | Enumerations | Functions
Ticker API - Manage mediastreamer2 graphs
Mediastreamer2's base APIs

Ticker API to manage mediastreamer2 graphs. More...

## Typedefs
typedef uint64_t(* | MSTickerTimeFunc) (void *)
typedef int(* | MSTickerTickFunc) (void *, uint64_t ticker_virtual_time)
typedef struct _MSTicker | MSTicker
typedef struct _MSTickerSynchronizer | MSTickerSynchronizer

## Enumerations
enum | _MSTickerPrio { MS_TICKER_PRIO_NORMAL, MS_TICKER_PRIO_HIGH, MS_TICKER_PRIO_REALTIME }

## Functions
MSTicker * | ms_ticker_new (void)
MSTicker * | ms_ticker_new_with_params (const MSTickerParams *params)
void | ms_ticker_set_name (MSTicker *ticker, const char *name)
void | ms_ticker_set_priority (MSTicker *ticker, MSTickerPrio prio)
int | ms_ticker_attach (MSTicker *ticker, MSFilter *f)
int | ms_ticker_attach_multiple (MSTicker *ticker, MSFilter *f,...)
int | ms_ticker_detach (MSTicker *ticker, MSFilter *f)
void | ms_ticker_destroy (MSTicker *ticker)
void | ms_ticker_set_time_func (MSTicker *ticker, MSTickerTimeFunc func, void *user_data)
void | ms_ticker_set_tick_func (MSTicker *ticker, MSTickerTickFunc func, void *user_data)
void | ms_ticker_print_graphs (MSTicker *ticker)
float | ms_ticker_get_average_load (MSTicker *ticker)
void | ms_ticker_get_last_late_tick (MSTicker *ticker, MSTickerLateEvent *ev)
MSTickerSynchronizer * | ms_ticker_synchronizer_new (void)
double | ms_ticker_synchronizer_set_external_time (MSTickerSynchronizer *ts, const MSTimeSpec *time)
uint64_t | ms_ticker_synchronizer_get_corrected_time (MSTickerSynchronizer *ts)
void | ms_ticker_synchronizer_destroy (MSTickerSynchronizer *ts)

## Detailed Description

Ticker API to manage mediastreamer2 graphs.

Describes the ticker API. The ticker is the thread responsible for scheduling audio & video processing for one or several filter graphs.

## Typedef Documentation

MSTickerTimeFunc

Function pointer for method getting time in miliseconds from an external source.

MSTickerTickFunc

Function pointer for method waiting next tick from an external source.

It shall return the number of late milliseconds, if this value is known.

MSTicker

Structure for ticker object.

MSTickerSynchronizer

Structure for ticker synchronizer object.

## Enumeration Type Documentation

enum _MSTickerPrio

Enum for ticker priority

Enumerator
MS_TICKER_PRIO_NORMAL | the default OS priority for threads
MS_TICKER_PRIO_HIGH | Increased priority: done by setpriority() or sched_setschedparams() with SCHED_RR on linux/MacOS
MS_TICKER_PRIO_REALTIME | Topmost priority, running SCHED_FIFO on linux

## Function Documentation

MSTicker* ms_ticker_new | ( | void |  | ) |

Create a ticker that will be used to start and stop a graph.

Returns: MSTicker * if successfull, NULL otherwise.

MSTicker* ms_ticker_new_with_params | ( | const MSTickerParams * | params | ) |

Create a ticker that will be used to start and stop a graph.

Returns: MSTicker * if successfull, NULL otherwise.

void ms_ticker_set_name | ( | MSTicker * | ticker,
|  | const char * | name
| ) |  |

Set a name to the ticker (used for logging)

void ms_ticker_set_priority | ( | MSTicker * | ticker,
|  | MSTickerPrio | prio
| ) |  |

Deprecated: Set priority to the ticker

int ms_ticker_attach | ( | MSTicker * | ticker,
|  | MSFilter * | f
| ) |  |

Attach a chain of filters to a ticker. The processing chain will be executed until ms_ticker_detach will be called.

Parameters

  ticker | A MSTicker object.
  f | A MSFilter object.

Returns: 0 if successfull, -1 otherwise.

int ms_ticker_attach_multiple | ( | MSTicker * | ticker,
|  | MSFilter * | f,
|  |  | ...
| ) |  |

Attach a chain of filters to a ticker. The processing chain will be executed until ms_ticker_detach will be called. This variadic can be used to attach multiple chains in a single call. The argument list MUST be NULL terminated.

Parameters

  ticker | A MSTicker object.
  f | A MSFilter object.

Returns: 0 if successfull, -1 otherwise.

int ms_ticker_detach | ( | MSTicker * | ticker,
|  | MSFilter * | f
| ) |  |

Dettach a chain of filters to a ticker. The processing chain will no more be executed.

Parameters

  ticker | A MSTicker object.
  f | A MSFilter object.

Returns: 0 if successfull, -1 otherwise.

void ms_ticker_destroy | ( | MSTicker * | ticker | ) |

Destroy a ticker.

Parameters

  ticker | A MSTicker object.

void ms_ticker_set_time_func | ( | MSTicker * | ticker,
|  | MSTickerTimeFunc | func,
|  | void * | user_data
| ) |  |

Override MSTicker's time function. This can be used to control the ticker from an external time provider, for example the clock of a sound card. WARNING: this must not be used in conjunction with ms_ticker_set_tick_func().

Parameters

  ticker | A MSTicker object.
  func | A replacement method for calculating "current time"
  user_data | Any pointer to user private data.

void ms_ticker_set_tick_func | ( | MSTicker * | ticker,
|  | MSTickerTickFunc | func,
|  | void * | user_data
| ) |  |

Override MSTicker's ticking function. This can be used to control the ticker from an external ticking source, for example an interrupt, an event on a file descriptor, etc. WARNING: this must not be used in conjunction with ms_ticker_set_time_func().

Parameters

  ticker | A MSTicker object.
  func | A replacement method waiting the next tick.
  user_data | Any pointer to user private data.

void ms_ticker_print_graphs | ( | MSTicker * | ticker | ) |

Print on stdout all filters of a ticker. (INTERNAL: DO NOT USE)

Parameters

  ticker | A MSTicker object.

float ms_ticker_get_average_load | ( | MSTicker * | ticker | ) |

Get the average load of the ticker. It is expressed as the ratio between real time spent in processing all graphs for a tick divided by the tick interval (default is 10 ms). This value is averaged over several ticks to get consistent and useful value. A load greater than 100% clearly means that the ticker is over loaded and runs late.

void ms_ticker_get_last_late_tick | ( | MSTicker * | ticker,
|  | MSTickerLateEvent * | ev
| ) |  |

Get last late tick event description.

Parameters

  ticker | the MSTicker
  ev | a MSTickerLaterEvent structure that will be filled in return by the ticker.

MSTickerSynchronizer* ms_ticker_synchronizer_new | ( | void |  | ) |

Create a ticker synchronizer.

Returns: MSTickerSynchronizer * if successfull, NULL otherwise.

double ms_ticker_synchronizer_set_external_time | ( | MSTickerSynchronizer * | ts,
|  | const MSTimeSpec * | time
| ) |  |

Set the current external time.

Parameters

  ts | A MSTickerSynchronizer object.
  time | A #MSTimeSpec object.

Returns: Average skew.

uint64_t ms_ticker_synchronizer_get_corrected_time | ( | MSTickerSynchronizer * | ts | ) |

Get the corrected current time following the set external times.

Parameters

  ts | A MSTickerSynchronizer object.

Returns: A corrected current time.

void ms_ticker_synchronizer_destroy | ( | MSTickerSynchronizer * | ts | ) |

Destroy a ticker synchronizer.

Parameters

  ts | A MSTickerSynchronizer object.