# HG changeset patch # User nicodvb # Date 1147469646 0 # Node ID e98125844f2de6de9d6adaf77f7992262e3c0083 # Parent 6853dc0411c1279278f86e1e8179c7d11b3b3f5b don't allocate (and demux_push() immediately) demux_packet()s > MAX_PACK_SIZE; releasing immediately audio packets (before the pes is complete) doesn't make any sense and deteriorates interleaving diff -r 6853dc0411c1 -r e98125844f2d libmpdemux/demux_ts.c --- a/libmpdemux/demux_ts.c Fri May 12 20:26:05 2006 +0000 +++ b/libmpdemux/demux_ts.c Fri May 12 21:34:06 2006 +0000 @@ -2823,6 +2823,8 @@ if(*dp == NULL) { + if(*buffer_size > MAX_PACK_BYTES) + *buffer_size = MAX_PACK_BYTES; *dp = new_demux_packet(*buffer_size); //es->size *dp_offset = 0; if(! *dp) @@ -2930,7 +2932,7 @@ (*dp)->pos = stream_tell(demuxer->stream); (*dp)->pts = es->pts; - if(is_audio) + if(*dp_offset >= MAX_PACK_BYTES) { retv = fill_packet(demuxer, ds, dp, dp_offset, si); return 1; @@ -3002,7 +3004,7 @@ } stream_skip(stream, junk); - if(is_audio) + if(*dp_offset >= MAX_PACK_BYTES) { (*dp)->pts = tss->last_pts; retv = fill_packet(demuxer, ds, dp, dp_offset, si);