Loading...
Searching...
No Matches
janus_recordplay.c File Reference
Plugins

Janus Record&Play plugin. More...

`#include "plugin.h"`
`#include <dirent.h>`
`#include <arpa/inet.h>`
`#include <sys/stat.h>`
`#include <sys/time.h>`
`#include <jansson.h>`
`#include "../debug.h"`
`#include "../apierror.h"`
`#include "../config.h"`
`#include "../mutex.h"`
`#include "../record.h"`
`#include "../sdp-utils.h"`
`#include "../rtp.h"`
`#include "../rtcp.h"`
`#include "../utils.h"`
Include dependency graph for janus_recordplay.c:

## Data Structures

struct | janus_recordplay_message
struct | janus_recordplay_rtp_header_extension
struct | janus_recordplay_frame_packet
struct | janus_recordplay_recording
struct | janus_recordplay_session

## Macros

#define | JANUS_RECORDPLAY_VERSION 4
#define | JANUS_RECORDPLAY_VERSION_STRING "0.0.4"
#define | JANUS_RECORDPLAY_DESCRIPTION "This is a trivial Record&Play plugin for Janus, to record WebRTC sessions and replay them."
#define | JANUS_RECORDPLAY_NAME "JANUS Record&Play plugin"
#define | JANUS_RECORDPLAY_AUTHOR "Meetecho s.r.l."
#define | JANUS_RECORDPLAY_PACKAGE "janus.plugin.recordplay"
#define | AUDIO_PT 111
#define | VIDEO_PT 100
#define | JANUS_RECORDPLAY_ERROR_NO_MESSAGE 411
#define | JANUS_RECORDPLAY_ERROR_INVALID_JSON 412
#define | JANUS_RECORDPLAY_ERROR_INVALID_REQUEST 413
#define | JANUS_RECORDPLAY_ERROR_INVALID_ELEMENT 414
#define | JANUS_RECORDPLAY_ERROR_MISSING_ELEMENT 415
#define | JANUS_RECORDPLAY_ERROR_NOT_FOUND 416
#define | JANUS_RECORDPLAY_ERROR_INVALID_RECORDING 417
#define | JANUS_RECORDPLAY_ERROR_INVALID_STATE 418
#define | JANUS_RECORDPLAY_ERROR_INVALID_SDP 419
#define | JANUS_RECORDPLAY_ERROR_RECORDING_EXISTS 420
#define | JANUS_RECORDPLAY_ERROR_UNKNOWN_ERROR 499
#define | ntohll(x) ((1==ntohl(1)) ? (x) : ((gint64)ntohl((x) & 0xFFFFFFFF) << 32) | ntohl((x) >> 32))

## Typedefs

typedef struct janus_recordplay_message | janus_recordplay_message
typedef struct janus_recordplay_rtp_header_extension | janus_recordplay_rtp_header_extension
typedef struct janus_recordplay_frame_packet | janus_recordplay_frame_packet
typedef struct janus_recordplay_recording | janus_recordplay_recording
typedef struct janus_recordplay_session | janus_recordplay_session

## Functions

janus_plugin * | create (void)
int | janus_recordplay_init (janus_callbacks *callback, const char *onfig_path)
void | janus_recordplay_destroy (void)
int | janus_recordplay_get_api_compatibility (void)
int | janus_recordplay_get_version (void)
const char * | janus_recordplay_get_version_string (void)
const char * | janus_recordplay_get_description (void)
const char * | janus_recordplay_get_name (void)
const char * | janus_recordplay_get_author (void)
const char * | janus_recordplay_get_package (void)
void | janus_recordplay_create_session (janus_plugin_session *handle, int *error)
struct janus_plugin_result * | janus_recordplay_handle_message (janus_plugin_session *handle, char *transaction, json_t *message, json_t *jsep)
json_t * | janus_recordplay_handle_admin_message (json_t *message)
void | janus_recordplay_setup_media (janus_plugin_session *handle)
void | janus_recordplay_incoming_rtp (janus_plugin_session *handle, janus_plugin_rtp *packet)
void | janus_recordplay_incoming_rtcp (janus_plugin_session *handle, janus_plugin_rtcp *packet)
void | janus_recordplay_incoming_data (janus_plugin_session *handle, janus_plugin_data *packet)
void | janus_recordplay_slow_link (janus_plugin_session *handle, int mindex, gboolean video, gboolean uplink)
void | janus_recordplay_hangup_media (janus_plugin_session *handle)
void | janus_recordplay_destroy_session (janus_plugin_session *handle, int *error)
json_t * | janus_recordplay_query_session (janus_plugin_session *handle)
janus_recordplay_frame_packet * | janus_recordplay_get_frames (const char *dir, const char *filename)
void | janus_recordplay_update_recordings_list (void)
void | janus_recordplay_send_rtcp_feedback (janus_plugin_session *handle, int video, char *buf, int len)

## Detailed Description

Janus Record&Play plugin.

Author
  Lorenzo Miniero loren.nosp@m.zo@m.nosp@m.eetec.nosp@m.ho.c.nosp@m.om

Copyright
  GNU General Public License v3

Check the Record&Play plugin documentation for more details.

Plugins

## Macro Definition Documentation

## AUDIO_PT

#define AUDIO_PT 111

## JANUS_RECORDPLAY_AUTHOR

#define JANUS_RECORDPLAY_AUTHOR "Meetecho s.r.l."

## JANUS_RECORDPLAY_DESCRIPTION

#define JANUS_RECORDPLAY_DESCRIPTION "This is a trivial Record&Play plugin for Janus, to record WebRTC sessions and replay them."

## JANUS_RECORDPLAY_ERROR_INVALID_ELEMENT

#define JANUS_RECORDPLAY_ERROR_INVALID_ELEMENT 414

## JANUS_RECORDPLAY_ERROR_INVALID_JSON

#define JANUS_RECORDPLAY_ERROR_INVALID_JSON 412

## JANUS_RECORDPLAY_ERROR_INVALID_RECORDING

#define JANUS_RECORDPLAY_ERROR_INVALID_RECORDING 417

## JANUS_RECORDPLAY_ERROR_INVALID_REQUEST

#define JANUS_RECORDPLAY_ERROR_INVALID_REQUEST 413

## JANUS_RECORDPLAY_ERROR_INVALID_SDP

#define JANUS_RECORDPLAY_ERROR_INVALID_SDP 419

## JANUS_RECORDPLAY_ERROR_INVALID_STATE

#define JANUS_RECORDPLAY_ERROR_INVALID_STATE 418

## JANUS_RECORDPLAY_ERROR_MISSING_ELEMENT

#define JANUS_RECORDPLAY_ERROR_MISSING_ELEMENT 415

## JANUS_RECORDPLAY_ERROR_NO_MESSAGE

#define JANUS_RECORDPLAY_ERROR_NO_MESSAGE 411

## JANUS_RECORDPLAY_ERROR_NOT_FOUND

#define JANUS_RECORDPLAY_ERROR_NOT_FOUND 416

## JANUS_RECORDPLAY_ERROR_RECORDING_EXISTS

#define JANUS_RECORDPLAY_ERROR_RECORDING_EXISTS 420

## JANUS_RECORDPLAY_ERROR_UNKNOWN_ERROR

#define JANUS_RECORDPLAY_ERROR_UNKNOWN_ERROR 499

## JANUS_RECORDPLAY_NAME

#define JANUS_RECORDPLAY_NAME "JANUS Record&Play plugin"

## JANUS_RECORDPLAY_PACKAGE

#define JANUS_RECORDPLAY_PACKAGE "janus.plugin.recordplay"

## JANUS_RECORDPLAY_VERSION

#define JANUS_RECORDPLAY_VERSION 4

## JANUS_RECORDPLAY_VERSION_STRING

#define JANUS_RECORDPLAY_VERSION_STRING "0.0.4"

## ntohll

#define ntohll | ( |  | x | ) | ((1==ntohl(1)) ? (x) : ((gint64)ntohl((x) & 0xFFFFFFFF) << 32) | ntohl((x) >> 32))

## VIDEO_PT

#define VIDEO_PT 100

## Typedef Documentation

## janus_recordplay_frame_packet

typedef struct janus_recordplay_frame_packet janus_recordplay_frame_packet

## janus_recordplay_message

typedef struct janus_recordplay_message janus_recordplay_message

## janus_recordplay_recording

typedef struct janus_recordplay_recording janus_recordplay_recording

## janus_recordplay_rtp_header_extension

typedef struct janus_recordplay_rtp_header_extension janus_recordplay_rtp_header_extension

## janus_recordplay_session

typedef struct janus_recordplay_session janus_recordplay_session

## Function Documentation

## create()

janus_plugin * create | ( | void |  | ) |

## janus_recordplay_create_session()

void janus_recordplay_create_session | ( | janus_plugin_session * | handle,
|  | int * | error
| ) |  |

## janus_recordplay_destroy()

void janus_recordplay_destroy | ( | void |  | ) |

## janus_recordplay_destroy_session()

void janus_recordplay_destroy_session | ( | janus_plugin_session * | handle,
|  | int * | error
| ) |  |

## janus_recordplay_get_api_compatibility()

int janus_recordplay_get_api_compatibility | ( | void |  | ) |

## janus_recordplay_get_author()

const char * janus_recordplay_get_author | ( | void |  | ) |

## janus_recordplay_get_description()

const char * janus_recordplay_get_description | ( | void |  | ) |

## janus_recordplay_get_frames()

janus_recordplay_frame_packet * janus_recordplay_get_frames | ( | const char * | dir,
|  | const char * | filename
| ) |  |

## janus_recordplay_get_name()

const char * janus_recordplay_get_name | ( | void |  | ) |

## janus_recordplay_get_package()

const char * janus_recordplay_get_package | ( | void |  | ) |

## janus_recordplay_get_version()

int janus_recordplay_get_version | ( | void |  | ) |

## janus_recordplay_get_version_string()

const char * janus_recordplay_get_version_string | ( | void |  | ) |

## janus_recordplay_handle_admin_message()

json_t * janus_recordplay_handle_admin_message | ( | json_t * | message | ) |

## janus_recordplay_handle_message()

struct janus_plugin_result * janus_recordplay_handle_message | ( | janus_plugin_session * | handle,
|  | char * | transaction,
|  | json_t * | message,
|  | json_t * | jsep
| ) |  |

## janus_recordplay_hangup_media()

void janus_recordplay_hangup_media | ( | janus_plugin_session * | handle | ) |

## janus_recordplay_incoming_data()

void janus_recordplay_incoming_data | ( | janus_plugin_session * | handle,
|  | janus_plugin_data * | packet
| ) |  |

## janus_recordplay_incoming_rtcp()

void janus_recordplay_incoming_rtcp | ( | janus_plugin_session * | handle,
|  | janus_plugin_rtcp * | packet
| ) |  |

## janus_recordplay_incoming_rtp()

void janus_recordplay_incoming_rtp | ( | janus_plugin_session * | handle,
|  | janus_plugin_rtp * | packet
| ) |  |

## janus_recordplay_init()

int janus_recordplay_init | ( | janus_callbacks * | callback,
|  | const char * | onfig_path
| ) |  |

## janus_recordplay_query_session()

json_t * janus_recordplay_query_session | ( | janus_plugin_session * | handle | ) |

## janus_recordplay_send_rtcp_feedback()

void janus_recordplay_send_rtcp_feedback | ( | janus_plugin_session * | handle,
|  | int | video,
|  | char * | buf,
|  | int | len
| ) |  |

## janus_recordplay_setup_media()

void janus_recordplay_setup_media | ( | janus_plugin_session * | handle | ) |

## janus_recordplay_slow_link()

void janus_recordplay_slow_link | ( | janus_plugin_session * | handle,
|  | int | mindex,
|  | gboolean | video,
|  | gboolean | uplink
| ) |  |

## janus_recordplay_update_recordings_list()

void janus_recordplay_update_recordings_list | ( | void |  | ) |