|
|
|
@ -7,6 +7,7 @@ |
|
|
|
#include <glib.h> |
|
|
|
#include "compat.h" |
|
|
|
#include "str.h" |
|
|
|
#include "aux.h" |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@ -105,11 +106,11 @@ const struct crypto_suite *crypto_find_suite(const str *); |
|
|
|
int crypto_gen_session_key(struct crypto_context *, str *, unsigned char, int); |
|
|
|
void crypto_dump_keys(struct crypto_context *in, struct crypto_context *out); |
|
|
|
|
|
|
|
struct rtp_ssrc_entry *find_ssrc(u_int32_t, GHashTable *); |
|
|
|
void add_ssrc_entry(struct rtp_ssrc_entry *, GHashTable *); |
|
|
|
struct rtp_ssrc_entry *create_ssrc_entry(u_int32_t, u_int64_t); |
|
|
|
void free_ssrc_table(GHashTable **); |
|
|
|
GHashTable *create_ssrc_table(void); |
|
|
|
INLINE struct rtp_ssrc_entry *find_ssrc(u_int32_t, GHashTable *); |
|
|
|
INLINE void add_ssrc_entry(struct rtp_ssrc_entry *, GHashTable *); |
|
|
|
INLINE struct rtp_ssrc_entry *create_ssrc_entry(u_int32_t, u_int64_t); |
|
|
|
INLINE void free_ssrc_table(GHashTable **); |
|
|
|
INLINE GHashTable *create_ssrc_table(void); |
|
|
|
|
|
|
|
|
|
|
|
INLINE int crypto_encrypt_rtp(struct crypto_context *c, struct rtp_header *rtp, |
|
|
|
@ -198,4 +199,31 @@ INLINE int crypto_params_cmp(const struct crypto_params *a, const struct crypto_ |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
INLINE struct rtp_ssrc_entry *find_ssrc(u_int32_t ssrc, GHashTable *ht) { |
|
|
|
return g_hash_table_lookup(ht, &ssrc); |
|
|
|
} |
|
|
|
INLINE void add_ssrc_entry(struct rtp_ssrc_entry *ent, GHashTable *ht) { |
|
|
|
g_hash_table_insert(ht, &ent->ssrc, ent); |
|
|
|
} |
|
|
|
INLINE struct rtp_ssrc_entry *create_ssrc_entry(u_int32_t ssrc, u_int64_t index) { |
|
|
|
struct rtp_ssrc_entry *ent; |
|
|
|
ent = g_slice_alloc(sizeof(struct rtp_ssrc_entry)); |
|
|
|
ent->ssrc = ssrc; |
|
|
|
ent->index = index; |
|
|
|
return ent; |
|
|
|
} |
|
|
|
INLINE void free_ssrc_table(GHashTable **ht) { |
|
|
|
if (!*ht) |
|
|
|
return; |
|
|
|
g_hash_table_destroy(*ht); |
|
|
|
*ht = NULL; |
|
|
|
} |
|
|
|
INLINE void free_ssrc_entry(void *p) { |
|
|
|
g_slice_free1(sizeof(struct rtp_ssrc_entry), p); |
|
|
|
} |
|
|
|
INLINE GHashTable *create_ssrc_table(void) { |
|
|
|
return g_hash_table_new_full(uint32_hash, uint32_eq, free_ssrc_entry, NULL); |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
#endif |