TURN REST API client. More...
#include <stdint.h>#include <glib.h>#include <jansson.h>

Go to the source code of this file.
Data Structures | |
| struct | janus_json_parameter |
| struct | janus_vp8_simulcast_context |
| VP8 simulcasting context, in order to make sure SSRC changes result in coherent picid/temporal level increases. More... | |
| struct | janus_vp9_svc_info |
| VP9 SVC info, as parsed from a payload descriptor. More... | |
| struct | janus_red_block |
| Helper struct to address a specific RED block. More... | |
Macros | |
| #define | JANUS_JSON_STRING JSON_STRING |
| #define | JANUS_JSON_INTEGER JSON_INTEGER |
| #define | JANUS_JSON_OBJECT JSON_OBJECT |
| #define | JANUS_JSON_ARRAY JSON_ARRAY |
| #define | JANUS_JSON_BOOL JSON_TRUE |
| #define | JANUS_JSON_PARAM_REQUIRED 1 |
| #define | JANUS_JSON_PARAM_POSITIVE 2 |
| #define | JANUS_JSON_PARAM_NONEMPTY 4 |
| #define | htonll(x) |
| #define | ntohll(x) |
| #define | JANUS_VALIDATE_JSON_OBJECT_FORMAT(missing_format, invalid_format, obj, params, error_code, error_cause, log_error, missing_code, invalid_code) |
| Validates the JSON object against the description of its parameters. | |
| #define | JANUS_VALIDATE_JSON_OBJECT(obj, params, error_code, error_cause, log_error, missing_code, invalid_code) |
| Validates the JSON object against the description of its parameters. | |
| #define | JANUS_CHECK_SECRET(secret, obj, member, error_code, error_cause, missing_code, invalid_code, unauthorized_code) |
| If the secret isn't NULL, check the secret after validating the specified member of the JSON object. | |
Typedefs | |
| typedef struct janus_vp8_simulcast_context | janus_vp8_simulcast_context |
| VP8 simulcasting context, in order to make sure SSRC changes result in coherent picid/temporal level increases. | |
| typedef struct janus_vp9_svc_info | janus_vp9_svc_info |
| VP9 SVC info, as parsed from a payload descriptor. | |
| typedef struct janus_red_block | janus_red_block |
| Helper struct to address a specific RED block. | |
Functions | |
| void | janus_mark_started (void) |
| gint64 | janus_get_monotonic_time_internal (void) |
| Helper to retrieve the system monotonic time, as Glib's g_get_monotonic_time may not be available (only since 2.28) | |
| gint64 | janus_get_monotonic_time (void) |
| Helper to retrieve the system monotonic time, as Glib's g_get_monotonic_time may not be available (only since 2.28) | |
| gint64 | janus_get_real_time (void) |
| Helper to retrieve the system real time, as Glib's g_get_real_time may not be available (only since 2.28) | |
| char * | janus_string_replace (char *message, const char *old_string, const char *new_string) G_GNUC_WARN_UNUSED_RESULT |
| Helper to replace strings. | |
| size_t | janus_strlcat (char *dest, const char *src, size_t dest_size) |
| Helper method to concatenate strings and log an error if truncation occurred. | |
| int | janus_strlcat_fast (char *dest, const char *src, size_t dest_size, size_t *offset) |
| Alternative helper method to concatenate strings and log an error if truncation occurred, which uses memccpy instead of g_strlcat and so is supposed to be faster. | |
| gboolean | janus_is_true (const char *value) |
| Helper to parse yes/no|true/false configuration values. | |
| gboolean | janus_strcmp_const_time (const void *str1, const void *str2) |
| Helper to compare strings in constant time. | |
| guint32 | janus_random_uint32 (void) |
| Helper to generate random 32-bit unsigned integers (useful for SSRCs, etc.) | |
| guint64 | janus_random_uint64_full (void) |
| Helper to generate random 64-bit unsigned integers. | |
| guint64 | janus_random_uint64 (void) |
| Helper to generate random 52 bit unsigned integers. | |
| char * | janus_random_uuid (void) |
| Helper to generate random UUIDs (needed by some plugins) Warning: this will fall back to a non-cryptographically safe PRNG in case the crypto library RAND_bytes() call fails. | |
| guint64 * | janus_uint64_dup (guint64 num) |
| Helper to generate an allocated copy of a guint64 number. | |
| guint64 | janus_uint64_hash (guint64 num) |
| Helper to hash a guint64 number to another guint64 number. | |
| int | janus_string_to_uint8 (const char *str, uint8_t *num) |
| Helper method to convert a string to a uint8_t. | |
| int | janus_string_to_uint16 (const char *str, uint16_t *num) |
| Helper method to convert a string to a uint16_t. | |
| int | janus_string_to_uint32 (const char *str, uint32_t *num) |
| Helper method to convert a string to a uint32_t. | |
| int | janus_mkdir (const char *dir, mode_t mode) |
| Helper to create a new directory, and recursively create parent directories if needed. | |
| gchar * | janus_make_absolute_path (const gchar *base_dir, const gchar *path) |
Helper to convert path relative to base_dir to absolute path. If path already represents absolute path then just g_strdup it. | |
| int | janus_get_codec_pt (const char *sdp, const char *codec) |
| Ugly and dirty helper to quickly get the payload type associated with a codec in an SDP. | |
| const char * | janus_get_codec_from_pt (const char *sdp, int pt) |
| Ugly and dirty helper to quickly get the codec associated with a payload type in an SDP. | |
| int | janus_pidfile_create (const char *file) |
| Create and lock a PID file. | |
| int | janus_pidfile_remove (void) |
| Unlock and remove a previously created PID file. | |
| void | janus_protected_folder_add (const char *folder) |
| Add a folder to the protected list (meaning we won't create files there, like recordings or pcap dumps) | |
| gboolean | janus_is_folder_protected (const char *path) |
| Check if the path points to a protected folder. | |
| void | janus_protected_folders_clear (void) |
| Cleanup the list of protected folder. | |
| void | janus_get_json_type_name (int jtype, unsigned int flags, char *type_name) |
| Creates a string describing the JSON type and constraint. | |
| gboolean | janus_json_is_valid (json_t *val, json_type jtype, unsigned int flags) |
| Checks whether the JSON value matches the type and constraint. | |
| gboolean | janus_vp8_is_keyframe (const char *buffer, int len) |
| Helper method to check if a VP8 frame is a keyframe or not. | |
| gboolean | janus_vp9_is_keyframe (const char *buffer, int len) |
| Helper method to check if a VP9 frame is a keyframe or not. | |
| gboolean | janus_h264_is_keyframe (const char *buffer, int len) |
| Helper method to check if an H.264 frame is a keyframe or not. | |
| gboolean | janus_h264_is_i_frame (const char *buffer, int len) |
| Helper method to check if an H.264 frame contains an I-Frame or not. | |
| gboolean | janus_h264_is_b_frame (const char *buffer, int len) |
| Helper method to check if an H.264 frame contains a B-Frame or not. | |
| gboolean | janus_av1_is_keyframe (const char *buffer, int len) |
| Helper method to check if an AV1 frame is a keyframe or not. | |
| gboolean | janus_h265_is_keyframe (const char *buffer, int len) |
| Helper method to check if an H.265 frame is a keyframe or not. | |
| void | janus_vp8_simulcast_context_reset (janus_vp8_simulcast_context *context) |
| Set (or reset) the context fields to their default values. | |
| int | janus_vp8_parse_descriptor (char *buffer, int len, gboolean *m, uint16_t *picid, uint8_t *tl0picidx, uint8_t *tid, uint8_t *y, uint8_t *keyidx) |
| Helper method to parse a VP8 payload descriptor for useful info (e.g., when simulcasting) | |
| void | janus_vp8_simulcast_descriptor_update (char *buffer, int len, janus_vp8_simulcast_context *context, gboolean switched) |
| Use the context info to update the RTP header of a packet, if needed. | |
| int | janus_vp9_parse_svc (char *buffer, int len, gboolean *found, janus_vp9_svc_info *info) |
| Helper method to parse a VP9 payload descriptor for SVC-related info (e.g., when SVC is enabled) | |
| GList * | janus_red_parse_blocks (char *buffer, int len) |
| Helper method to parse an RTP payload to return a list of RED blocks. | |
| int | janus_red_pack_blocks (char *buffer, int len, GList *blocks) |
| Helper method to pack multiple buffers in a RED payload. | |
| int | janus_red_replace_block_pt (char *buffer, int len, int pt) |
| Helper method to overwrite all RTP payload types in RED blocks. | |
| guint32 | janus_push_bits (guint32 word, size_t num, guint32 val) |
| Helper method to push individual bits at the end of a word. | |
| void | janus_set1 (guint8 *data, size_t i, guint8 val) |
| Helper method to set one byte at a memory position. | |
| void | janus_set2 (guint8 *data, size_t i, guint32 val) |
| Helper method to set two bytes at a memory position. | |
| void | janus_set3 (guint8 *data, size_t i, guint32 val) |
| Helper method to set three bytes at a memory position. | |
| void | janus_set4 (guint8 *data, size_t i, guint32 val) |
| Helper method to set four bytes at a memory position. | |
| uint8_t | janus_bitstream_getbit (uint8_t *base, uint32_t offset) |
| Helpers to read a bit from a bitstream. | |
| uint32_t | janus_bitstream_getbits (uint8_t *base, uint8_t num, uint32_t *offset) |
| Helpers to read agroup of bits from a bitstream. | |
| size_t | janus_gzip_compress (int compression, char *text, size_t tlen, char *compressed, size_t zlen) |
| Helper method to compress a string to gzip (using zlib) | |
Flags helper methods | |
| typedef gsize | janus_flags |
| Janus flags container. | |
| void | janus_flags_reset (janus_flags *flags) |
| Janus flags reset method. | |
| void | janus_flags_set (janus_flags *flags, gsize flag) |
| Janus flags set method. | |
| void | janus_flags_clear (janus_flags *flags, gsize flag) |
| Janus flags clear method. | |
| gboolean | janus_flags_is_set (janus_flags *flags, gsize flag) |
| Janus flags check method. | |
TURN REST API client.
Utilities and helpers (headers)
TURN REST API client (headers)
Implementation of the draft-uberti-rtcweb-turn-rest-00 draft, that is a REST API that can be used to access TURN services, more specifically credentials to use. Currently implemented in both rfc5766-turn-server and coturn, and so should be generic enough to be usable here.
libcurl and is optional.Implementations of a few methods that may be of use here and there in the code.
| #define htonll | ( | x | ) |
| #define JANUS_CHECK_SECRET | ( | secret, | |
| obj, | |||
| member, | |||
| error_code, | |||
| error_cause, | |||
| missing_code, | |||
| invalid_code, | |||
| unauthorized_code ) |
If the secret isn't NULL, check the secret after validating the specified member of the JSON object.
| secret | The secret to be checked; no check if the secret is NULL | |
| obj | The JSON object to be validated | |
| member | The JSON member with the secret, usually "secret" or "pin" | |
| [out] | error_code | int to return error code |
| [out] | error_cause | Array of char or NULL to return the error descriptions; the array has to be a global or stack variable to make sizeof work; the required size is 60 |
| missing_code | The code to be returned in error_code if a parameter is missing | |
| invalid_code | The code to be returned in error_code if a parameter is invalid | |
| unauthorized_code | The code to be returned in error_code if the secret doesn't match |
| #define JANUS_JSON_ARRAY JSON_ARRAY |
| #define JANUS_JSON_BOOL JSON_TRUE |
| #define JANUS_JSON_INTEGER JSON_INTEGER |
| #define JANUS_JSON_OBJECT JSON_OBJECT |
| #define JANUS_JSON_PARAM_NONEMPTY 4 |
| #define JANUS_JSON_PARAM_POSITIVE 2 |
| #define JANUS_JSON_PARAM_REQUIRED 1 |
| #define JANUS_JSON_STRING JSON_STRING |
| #define JANUS_VALIDATE_JSON_OBJECT | ( | obj, | |
| params, | |||
| error_code, | |||
| error_cause, | |||
| log_error, | |||
| missing_code, | |||
| invalid_code ) |
Validates the JSON object against the description of its parameters.
| obj | The JSON object to be validated | |
| params | Array of struct janus_json_parameter to describe the parameters; the array has to be a global or stack variable to make sizeof work | |
| [out] | error_code | int to return error code |
| [out] | error_cause | Array of char or NULL to return the error descriptions; the array has to be a global or stack variable to make sizeof work; the required size is the length of the longest parameter name plus 54 for the format string and type description |
| log_error | If TRUE, log any error with JANUS_LOG(LOG_ERR) | |
| missing_code | The code to be returned in error_code if a parameter is missing | |
| invalid_code | The code to be returned in error_code if a parameter is invalid |
| #define JANUS_VALIDATE_JSON_OBJECT_FORMAT | ( | missing_format, | |
| invalid_format, | |||
| obj, | |||
| params, | |||
| error_code, | |||
| error_cause, | |||
| log_error, | |||
| missing_code, | |||
| invalid_code ) |
Validates the JSON object against the description of its parameters.
| missing_format | printf format to indicate a missing required parameter; needs one s for the parameter name | |
| invalid_format | printf format to indicate an invalid parameter; needs two s for parameter name and type description from janus_get_json_type_name | |
| obj | The JSON object to be validated | |
| params | Array of struct janus_json_parameter to describe the parameters; the array has to be a global or stack variable to make sizeof work | |
| [out] | error_code | int to return error code |
| [out] | error_cause | Array of char or NULL to return the error descriptions; the array has to be a global or stack variable to make sizeof work; the required size is the length of the format string plus the length of the longest parameter name plus 19 for the type description |
| log_error | If TRUE, log any error with JANUS_LOG(LOG_ERR) | |
| missing_code | The code to be returned in error_code if a parameter is missing | |
| invalid_code | The code to be returned in error_code if a parameter is invalid |
| #define ntohll | ( | x | ) |
| typedef gsize janus_flags |
Janus flags container.
| typedef struct janus_red_block janus_red_block |
Helper struct to address a specific RED block.
| typedef struct janus_vp8_simulcast_context janus_vp8_simulcast_context |
VP8 simulcasting context, in order to make sure SSRC changes result in coherent picid/temporal level increases.
| typedef struct janus_vp9_svc_info janus_vp9_svc_info |
VP9 SVC info, as parsed from a payload descriptor.
| gboolean janus_av1_is_keyframe | ( | const char * | buffer, |
| int | len ) |
Helper method to check if an AV1 frame is a keyframe or not.
| [in] | buffer | The RTP payload to process |
| [in] | len | The length of the RTP payload |
| uint8_t janus_bitstream_getbit | ( | uint8_t * | base, |
| uint32_t | offset ) |
Helpers to read a bit from a bitstream.
| [in] | base | Pointer to the start of the bitstream |
| [in] | offset | Offset in bits from the start |
| uint32_t janus_bitstream_getbits | ( | uint8_t * | base, |
| uint8_t | num, | ||
| uint32_t * | offset ) |
Helpers to read agroup of bits from a bitstream.
| [in] | base | Pointer to the start of the bitstream |
| [in] | num | The number of bits to read |
| [in] | offset | Offset in bits from the start |
| void janus_flags_clear | ( | janus_flags * | flags, |
| gsize | flag ) |
Janus flags clear method.
| [in] | flags | The janus_flags instance to update |
| [in] | flag | The flag to clear |
| gboolean janus_flags_is_set | ( | janus_flags * | flags, |
| gsize | flag ) |
Janus flags check method.
| [in] | flags | The janus_flags instance to check |
| [in] | flag | The flag to check |
| void janus_flags_reset | ( | janus_flags * | flags | ) |
Janus flags reset method.
| [in] | flags | The janus_flags instance to reset |
| void janus_flags_set | ( | janus_flags * | flags, |
| gsize | flag ) |
Janus flags set method.
| [in] | flags | The janus_flags instance to update |
| [in] | flag | The flag to set |
| const char * janus_get_codec_from_pt | ( | const char * | sdp, |
| int | pt ) |
Ugly and dirty helper to quickly get the codec associated with a payload type in an SDP.
| sdp | The SDP to parse |
| pt | The payload type to look for |
| int janus_get_codec_pt | ( | const char * | sdp, |
| const char * | codec ) |
Ugly and dirty helper to quickly get the payload type associated with a codec in an SDP.
| sdp | The SDP to parse |
| codec | The codec to look for |
| void janus_get_json_type_name | ( | int | jtype, |
| unsigned int | flags, | ||
| char * | type_name ) |
Creates a string describing the JSON type and constraint.
| jtype | The JSON type, e.g., JSON_STRING | |
| flags | Indicates constraints for the described type | |
| [out] | type_name | The type description, e.g., "a positive integer"; required size is 19 characters |
| gint64 janus_get_monotonic_time | ( | void | ) |
Helper to retrieve the system monotonic time, as Glib's g_get_monotonic_time may not be available (only since 2.28)
| gint64 janus_get_monotonic_time_internal | ( | void | ) |
Helper to retrieve the system monotonic time, as Glib's g_get_monotonic_time may not be available (only since 2.28)
| gint64 janus_get_real_time | ( | void | ) |
Helper to retrieve the system real time, as Glib's g_get_real_time may not be available (only since 2.28)
| size_t janus_gzip_compress | ( | int | compression, |
| char * | text, | ||
| size_t | tlen, | ||
| char * | compressed, | ||
| size_t | zlen ) |
Helper method to compress a string to gzip (using zlib)
| [in] | compression | Compression factor (1=fastest, 9=best compression) |
| [in] | text | Pointer to the string to compress |
| [in] | tlen | Length of the string to compress |
| [in] | compressed | Pointer to the buffer where to compress the string to |
| [in] | zlen | Size of the output buffer |
| gboolean janus_h264_is_b_frame | ( | const char * | buffer, |
| int | len ) |
Helper method to check if an H.264 frame contains a B-Frame or not.
| [in] | buffer | The RTP payload to process |
| [in] | len | The length of the RTP payload |
| gboolean janus_h264_is_i_frame | ( | const char * | buffer, |
| int | len ) |
Helper method to check if an H.264 frame contains an I-Frame or not.
| [in] | buffer | The RTP payload to process |
| [in] | len | The length of the RTP payload |
| gboolean janus_h264_is_keyframe | ( | const char * | buffer, |
| int | len ) |
Helper method to check if an H.264 frame is a keyframe or not.
| [in] | buffer | The RTP payload to process |
| [in] | len | The length of the RTP payload |
| gboolean janus_h265_is_keyframe | ( | const char * | buffer, |
| int | len ) |
Helper method to check if an H.265 frame is a keyframe or not.
| [in] | buffer | The RTP payload to process |
| [in] | len | The length of the RTP payload |
| gboolean janus_is_folder_protected | ( | const char * | path | ) |
Check if the path points to a protected folder.
| path | Path we need to check |
| gboolean janus_is_true | ( | const char * | value | ) |
Helper to parse yes/no|true/false configuration values.
| value | The configuration value to parse |
| gboolean janus_json_is_valid | ( | json_t * | val, |
| json_type | jtype, | ||
| unsigned int | flags ) |
Checks whether the JSON value matches the type and constraint.
| val | The JSON value to be checked |
| jtype | The JSON type, e.g., JSON_STRING |
| flags | Indicates constraints for the described type |
| gchar * janus_make_absolute_path | ( | const gchar * | base_dir, |
| const gchar * | path ) |
Helper to convert path relative to base_dir to absolute path. If path already represents absolute path then just g_strdup it.
| [in] | base_dir | Path which will be prepended to path if it's relative |
| [in] | path | Some relative or absolute path |
| void janus_mark_started | ( | void | ) |
Helper method used by the core to mark when Janus started
| int janus_mkdir | ( | const char * | dir, |
| mode_t | mode ) |
Helper to create a new directory, and recursively create parent directories if needed.
| dir | Path to the new folder to create |
| mode | File permissions for the new directory file |
| int janus_pidfile_create | ( | const char * | file | ) |
Create and lock a PID file.
| file | Path to the PID file to use |
| int janus_pidfile_remove | ( | void | ) |
Unlock and remove a previously created PID file.
| void janus_protected_folder_add | ( | const char * | folder | ) |
Add a folder to the protected list (meaning we won't create files there, like recordings or pcap dumps)
| folder | Folder to protect |
| void janus_protected_folders_clear | ( | void | ) |
Cleanup the list of protected folder.
|
inline |
Helper method to push individual bits at the end of a word.
| [in] | word | Initial value of word |
| [in] | num | Number of bits to push |
| [in] | val | Value of bits to push |
| guint32 janus_random_uint32 | ( | void | ) |
Helper to generate random 32-bit unsigned integers (useful for SSRCs, etc.)
| guint64 janus_random_uint64 | ( | void | ) |
Helper to generate random 52 bit unsigned integers.
Number.MAX_SAFE_INTEGER == 2^53 - 1 == 9007199254740991 can be safely represented in Javascript. This method returns such numbers. Use this method instead of janus_random_uint64_full() whenever you generate numbers which might end up in Javascript (via JSON API). This method is called janus_random_uint64() instead of janus_random_uint52() (or similar) for backwards compatibility. Warning: this will fall back to a non-cryptographically safe PRNG in case the crypto library RAND_bytes() call fails. | guint64 janus_random_uint64_full | ( | void | ) |
Helper to generate random 64-bit unsigned integers.
| char * janus_random_uuid | ( | void | ) |
Helper to generate random UUIDs (needed by some plugins) Warning: this will fall back to a non-cryptographically safe PRNG in case the crypto library RAND_bytes() call fails.
g_free | int janus_red_pack_blocks | ( | char * | buffer, |
| int | len, | ||
| GList * | blocks ) |
Helper method to pack multiple buffers in a RED payload.
| [in] | buffer | The RTP payload to write to |
| [in] | len | The size of the RTP payload buffer |
| [in] | blocks | Linked list of janus_red_block instances to add to the payload |
| GList * janus_red_parse_blocks | ( | char * | buffer, |
| int | len ) |
Helper method to parse an RTP payload to return a list of RED blocks.
| [in] | buffer | The RTP payload to process |
| [in] | len | The length of the RTP payload |
| int janus_red_replace_block_pt | ( | char * | buffer, |
| int | len, | ||
| int | pt ) |
Helper method to overwrite all RTP payload types in RED blocks.
| [in] | buffer | The RED block payload to update |
| [in] | len | The size of the payload buffer |
| [in] | pt | The RTP payload type to set in all blocks |
|
inline |
Helper method to set one byte at a memory position.
| [in] | data | memory data pointer |
| [in] | i | position in memory to change |
| [in] | val | value to write |
|
inline |
Helper method to set two bytes at a memory position.
| [in] | data | memory data pointer |
| [in] | i | position in memory to change |
| [in] | val | value to write |
|
inline |
Helper method to set three bytes at a memory position.
| [in] | data | memory data pointer |
| [in] | i | position in memory to change |
| [in] | val | value to write |
|
inline |
Helper method to set four bytes at a memory position.
| [in] | data | memory data pointer |
| [in] | i | position in memory to change |
| [in] | val | value to write |
| gboolean janus_strcmp_const_time | ( | const void * | str1, |
| const void * | str2 ) |
Helper to compare strings in constant time.
| str1 | The first string to compare |
| str2 | The second string to compare |
| char * janus_string_replace | ( | char * | message, |
| const char * | old_string, | ||
| const char * | new_string ) |
Helper to replace strings.
| message | The string that contains the text to replace, which may be freed if it is too short |
| old_string | The old text to replace |
| new_string | The new text |
| int janus_string_to_uint16 | ( | const char * | str, |
| uint16_t * | num ) |
Helper method to convert a string to a uint16_t.
num should be ignored, if the method returned an error | [in] | str | The string to convert |
| [out] | num | Pointer to the converted number |
-ERANGE if the value is out of range) | int janus_string_to_uint32 | ( | const char * | str, |
| uint32_t * | num ) |
Helper method to convert a string to a uint32_t.
num should be ignored, if the method returned an error | [in] | str | The string to convert |
| [out] | num | Pointer to the converted number |
-ERANGE if the value is out of range) | int janus_string_to_uint8 | ( | const char * | str, |
| uint8_t * | num ) |
Helper method to convert a string to a uint8_t.
num should be ignored, if the method returned an error | [in] | str | The string to convert |
| [out] | num | Pointer to the converted number |
-ERANGE if the value is out of range) | size_t janus_strlcat | ( | char * | dest, |
| const char * | src, | ||
| size_t | dest_size ) |
Helper method to concatenate strings and log an error if truncation occurred.
| [in] | dest | Destination buffer, already containing one nul-terminated string |
| [in] | src | Source buffer |
| [in] | dest_size | Length of dest buffer in bytes (not length of existing string inside dest) |
| int janus_strlcat_fast | ( | char * | dest, |
| const char * | src, | ||
| size_t | dest_size, | ||
| size_t * | offset ) |
Alternative helper method to concatenate strings and log an error if truncation occurred, which uses memccpy instead of g_strlcat and so is supposed to be faster.
| [in] | dest | Destination buffer, already containing one nul-terminated string |
| [in] | src | Source buffer |
| [in] | dest_size | Length of dest buffer in bytes (not length of existing string inside dest) |
| [in] | offset | Offset of where to start appending, in the destination buffer |
| guint64 * janus_uint64_dup | ( | guint64 | num | ) |
Helper to generate an allocated copy of a guint64 number.
| num | The guint64 number to duplicate |
| guint64 janus_uint64_hash | ( | guint64 | num | ) |
Helper to hash a guint64 number to another guint64 number.
| num | The guint64 number to hash |
| gboolean janus_vp8_is_keyframe | ( | const char * | buffer, |
| int | len ) |
Helper method to check if a VP8 frame is a keyframe or not.
| [in] | buffer | The RTP payload to process |
| [in] | len | The length of the RTP payload |
| int janus_vp8_parse_descriptor | ( | char * | buffer, |
| int | len, | ||
| gboolean * | m, | ||
| uint16_t * | picid, | ||
| uint8_t * | tl0picidx, | ||
| uint8_t * | tid, | ||
| uint8_t * | y, | ||
| uint8_t * | keyidx ) |
Helper method to parse a VP8 payload descriptor for useful info (e.g., when simulcasting)
| [in] | buffer | The RTP payload to process |
| [in] | len | The length of the RTP payload |
| [out] | m | Whether the Picture ID is 15 bit or 7 bit |
| [out] | picid | The Picture ID |
| [out] | tl0picidx | Temporal level zero index |
| [out] | tid | Temporal-layer index |
| [out] | y | Layer sync bit |
| [out] | keyidx | Temporal key frame index |
| void janus_vp8_simulcast_context_reset | ( | janus_vp8_simulcast_context * | context | ) |
Set (or reset) the context fields to their default values.
| [in] | context | The context to (re)set |
| void janus_vp8_simulcast_descriptor_update | ( | char * | buffer, |
| int | len, | ||
| janus_vp8_simulcast_context * | context, | ||
| gboolean | switched ) |
Use the context info to update the RTP header of a packet, if needed.
| [in] | buffer | The RTP payload to process |
| [in] | len | The length of the RTP payload |
| [in] | context | The context to use as a reference |
| [in] | switched | Whether there has been a source switch or not (important to compute offsets) |
| gboolean janus_vp9_is_keyframe | ( | const char * | buffer, |
| int | len ) |
Helper method to check if a VP9 frame is a keyframe or not.
| [in] | buffer | The RTP payload to process |
| [in] | len | The length of the RTP payload |
| int janus_vp9_parse_svc | ( | char * | buffer, |
| int | len, | ||
| gboolean * | found, | ||
| janus_vp9_svc_info * | info ) |
Helper method to parse a VP9 payload descriptor for SVC-related info (e.g., when SVC is enabled)
| [in] | buffer | The RTP payload to process |
| [in] | len | The length of the RTP payload |
| [out] | found | Whether any SVC related info has been found or not |
| [out] | info | Pointer to a janus_vp9_svc_info structure for passing the parsed info back |