diff --git a/libmpdemux/demux_ts.c b/libmpdemux/demux_ts.c index 40890b915b..aa6176b09c 100644 --- a/libmpdemux/demux_ts.c +++ b/libmpdemux/demux_ts.c @@ -570,6 +570,8 @@ static off_t ts_detect_streams(demuxer_t *demuxer, tsdemux_init_t *param) if((es.type == PES_PRIVATE1) && (! audio_found)) { pptr = &pes_priv1[es.pid]; + if(pptr->pos < 64*1024) + { tmpbuf = (char*) realloc(pptr->buf, pptr->pos + es.size); if(tmpbuf != NULL) { @@ -583,6 +585,7 @@ static off_t ts_detect_streams(demuxer_t *demuxer, tsdemux_init_t *param) es.type = AUDIO_A52; } } + } } is_audio = IS_AUDIO(es.type) || ((es.type==SL_PES_STREAM) && IS_AUDIO(es.subtype));