Author: ods15
Date: Mon Nov 6 21:17:50 2006
New Revision: 191
Modified:
trunk/libnut/demuxer.c
Log:
make get_vb() work by mallocing only once and also work if
buffer is static.
change header init to just memset all fields to zero as now
*_len will have to be zero
Modified: trunk/libnut/demuxer.c
============================================================
==================
--- trunk/libnut/demuxer.c (original)
+++ trunk/libnut/demuxer.c Mon Nov 6 21:17:50 2006
 -205,9
+205,11 
uint64_t tmp;
int err;
if ((err = get_v(in, &tmp))) return err;
+ if (!*len) {
+ *buf = alloc->malloc(tmp);
+ if (!*buf) return -ERR_OUT_OF_MEM;
+ } else if (*len < tmp) return -ERR_OUT_OF_MEM;
*len = tmp;
- *buf = alloc->realloc(*buf, *len);
- if (!*buf) return -ERR_OUT_OF_MEM;
if (get_data(in, *len, *buf) != *len) return buf_eof(in);
return 0;
}
 -746,16
+748,7 
ERROR(SIZE_MAX/sizeof(stream_context_t) <
nut->stream_count+1, -ERR_OUT_OF_MEM);
nut->sc =
nut->alloc->malloc(sizeof(stream_context_t) *
nut->stream_count);
ERROR(!nut->sc, -ERR_OUT_OF_MEM);
- for (i = 0; i < nut->stream_count; i++) {
- nut->sc[i].last_pts = 0;
- nut->sc[i].last_dts = 0;
- nut->sc[i].last_key = 0;
- nut->sc[i].eor = 0;
- nut->sc[i].sh.max_pts = 0;
- nut->sc[i].sh.fourcc = NULL;
- nut->sc[i].sh.codec_specific = NULL;
- nut->sc[i].pts_cache = NULL;
- }
+ memset(nut->sc, 0, sizeof(stream_context_t) *
nut->stream_count);
}
for (i = 0; i < nut->stream_count; i++) {
_______________________________________________
NUT-devel mailing list
NUT-devel mplayerhq.hu
http://lists.mplayerhq.hu/mailman/listinfo/nut-devel
|