htsbuf_queue_t *htsbuf_queue_alloc(unsigned int maxsize);
+void htsbuf_queue_free(htsbuf_queue_t *hq);
+
void htsbuf_queue_flush(htsbuf_queue_t *hq);
void htsbuf_vqprintf(htsbuf_queue_t *hq, const char *fmt, va_list ap);
static void
mk_write_segment_header(mk_mux_t *mkm, int64_t size)
{
- mk_write_queue(mkm, mk_build_segment_header(size));
+ htsbuf_queue_t *q;
+ q = mk_build_segment_header(size);
+ mk_write_queue(mkm, q);
+ htsbuf_queue_free(q);
}
int
mk_mux_init(mk_mux_t *mkm, const char *title, const streaming_start_t *ss)
{
- htsbuf_queue_t q;
+ htsbuf_queue_t q, *a;
getuuid(mkm->uuid);
ebml_append_master(&q, 0x1a45dfa3, mk_build_ebmlheader(mkm));
mkm->segment_header_pos = q.hq_size;
- htsbuf_appendq(&q, mk_build_segment_header(0));
+ a = mk_build_segment_header(0);
+ htsbuf_appendq(&q, a);
+ htsbuf_queue_free(a);
mkm->segment_pos = q.hq_size;
- htsbuf_appendq(&q, mk_build_segment(mkm, ss));
+ a = mk_build_segment(mkm, ss);
+ htsbuf_appendq(&q, a);
+ htsbuf_queue_free(a);
mk_write_queue(mkm, &q);
int i;
uint32_t sc=0xFFFFFFFF;
- size_t len = (end -p)+1;
+ size_t len = end - p;
for (i=0;i<len;i++)
{
sc = (sc <<8) | p[i];
}
if(!sps_count || !pps_count) {
free(start);
- if (sps_count)
+ if (sps_count) {
free(sps_array);
- if (pps_count)
+ free(sps_size_array);
+ }
+ if (pps_count) {
free(pps_array);
+ free(pps_size_array);
+ }
return -1;
}
}
free(start);
- if (sps_count)
+ if (sps_count) {
free(sps_array);
- if (pps_count)
+ free(sps_size_array);
+ }
+ if (pps_count) {
free(pps_array);
+ free(pps_size_array);
+ }
} else {
sbuf_append(sb, data, len);
}