[NUT-devel] [nut]: r195 - trunk/libnut/muxer.c
ods15
subversion at mplayerhq.hu
Fri Nov 10 08:02:20 CET 2006
Author: ods15
Date: Fri Nov 10 08:02:20 2006
New Revision: 195
Modified:
trunk/libnut/muxer.c
Log:
add ability in muxer to clear syncpoint cache if possible, allows for very
long streams to be muxed with no "memleak".
Modified: trunk/libnut/muxer.c
==============================================================================
--- trunk/libnut/muxer.c (original)
+++ trunk/libnut/muxer.c Fri Nov 10 08:02:20 2006
@@ -313,6 +313,12 @@
if (n) { i--; break; }
}
back_ptr = (nut->last_syncpoint - s->s[i].pos) / 16;
+ if (!nut->mopts.write_index) { // clear some syncpoit cache if possible
+ s->len -= i;
+ memmove(s->s, s->s + i, s->len * sizeof(syncpoint_t));
+ memmove(s->pts, s->pts + i * nut->stream_count, s->len * nut->stream_count * sizeof(uint64_t));
+ memmove(s->eor, s->eor + i * nut->stream_count, s->len * nut->stream_count * sizeof(uint64_t));
+ }
for (i = 0; i < nut->stream_count; i++) {
nut->sc[i].last_pts = convert_ts(nut, pts, nut->tb[timebase], TO_TB(i));
More information about the NUT-devel
mailing list