diff options
author | nicodvb <nicodvb@b3059339-0415-0410-9bf9-f77b7e298cf2> | 2006-05-12 21:34:06 +0000 |
---|---|---|
committer | nicodvb <nicodvb@b3059339-0415-0410-9bf9-f77b7e298cf2> | 2006-05-12 21:34:06 +0000 |
commit | e32c4c57120a8f70e16a2a4e0ce03a320afb2bed (patch) | |
tree | 65ff2d3d61c4d2634997c3b00b7c66126e6627fc /libmpdemux | |
parent | dd9d768293ec27b56c1d64287de5b156cb6fecf2 (diff) | |
download | mpv-e32c4c57120a8f70e16a2a4e0ce03a320afb2bed.tar.bz2 mpv-e32c4c57120a8f70e16a2a4e0ce03a320afb2bed.tar.xz |
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
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@18462 b3059339-0415-0410-9bf9-f77b7e298cf2
Diffstat (limited to 'libmpdemux')
-rw-r--r-- | libmpdemux/demux_ts.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/libmpdemux/demux_ts.c b/libmpdemux/demux_ts.c index 3320926976..1f9e0a0378 100644 --- a/libmpdemux/demux_ts.c +++ b/libmpdemux/demux_ts.c @@ -2823,6 +2823,8 @@ static int ts_parse(demuxer_t *demuxer , ES_stream_t *es, unsigned char *packet, 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 @@ static int ts_parse(demuxer_t *demuxer , ES_stream_t *es, unsigned char *packet, (*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 @@ static int ts_parse(demuxer_t *demuxer , ES_stream_t *es, unsigned char *packet, } 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); |