int pktbuf_create(struct s_pktbuf **ppb, uint16_t size) { struct s_pktbuf *pb; pb = (struct s_pktbuf*)xmalloc(sizeof(struct s_pktbuf)); if (pb == NULL) { return FALSE; } if (pb_create(&pb->rtp_buffer, pktbuf_free_rtp) == FALSE) { xfree(pb); return FALSE; } if (pb_iterator_create(pb->rtp_buffer, &pb->rtp_iterator) == FALSE) { pb_destroy(&pb->rtp_buffer); xfree(pb); return FALSE; } pb->max_packets = size; *ppb = pb; return TRUE; }
int redundancy_encoder_create(u_char **state, uint32_t *len) { red_enc_state *re = (red_enc_state*)xmalloc(sizeof(red_enc_state)); if (re == NULL) { debug_msg("Failed to allocate encoder\n"); goto fail_alloc; } memset(re, 0, sizeof(red_enc_state)); *state = (u_char*)re; *len = sizeof(red_enc_state); if (pb_create(&re->media_buffer, (playoutfreeproc)media_data_destroy) == FALSE) { debug_msg("Gailed to create media buffer\n"); goto fail_pb; } if (pb_iterator_create(re->media_buffer, &re->media_pos) == FALSE) { debug_msg("failed to create iterator\n"); goto fail_pb_iterator; } re->n_layers = 0; re->units_ready = 0; return TRUE; fail_pb_iterator: pb_destroy(&re->media_buffer); fail_pb: xfree(re); fail_alloc: *state = NULL; return FALSE; }
pb_t *json_pb(const char *pb_type, const char *json_type, const char *data) { pb_t *pb = pb_create(pb_type); return json_pb(pb, json_type, data); }