From 63dc65aa4418254d436c5dda71002ff6e2aa25c2 Mon Sep 17 00:00:00 2001 From: arpi Date: Wed, 26 Dec 2001 16:34:06 +0000 Subject: mpeg VDR vs. BIN fixed? git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@3771 b3059339-0415-0410-9bf9-f77b7e298cf2 --- libmpdemux/demux_mpg.c | 4 ++-- libmpdemux/demuxer.c | 13 ++++++++++++- 2 files changed, 14 insertions(+), 3 deletions(-) diff --git a/libmpdemux/demux_mpg.c b/libmpdemux/demux_mpg.c index 4592d2bc9b..1aa1f06c7f 100644 --- a/libmpdemux/demux_mpg.c +++ b/libmpdemux/demux_mpg.c @@ -278,8 +278,8 @@ do{ // sure: head=0x000001XX mp_dbg(MSGT_DEMUX,MSGL_DBG4,"*** head=0x%X\n",head); if(demux->synced==0){ - if(head==0x1BA) demux->synced=1; else - if(head==0x1BD || (head>=0x1C0 && head<=0x1EF)) demux->synced=3; // PES? + if(head==0x1BA) demux->synced=1; //else +// if(head==0x1BD || (head>=0x1C0 && head<=0x1EF)) demux->synced=3; // PES? } else if(demux->synced==1){ if(head==0x1BB || head==0x1BD || (head>=0x1C0 && head<=0x1EF)){ diff --git a/libmpdemux/demuxer.c b/libmpdemux/demuxer.c index 9fe88d0a96..28dfe196b3 100644 --- a/libmpdemux/demuxer.c +++ b/libmpdemux/demuxer.c @@ -441,9 +441,20 @@ if(file_format==DEMUXER_TYPE_UNKNOWN || file_format==DEMUXER_TYPE_FLI){ //=============== Try to open as MPEG-PS file: ================= if(file_format==DEMUXER_TYPE_UNKNOWN || file_format==DEMUXER_TYPE_MPEG_PS){ int pes=1; + int tmp; while(pes>=0){ demuxer=new_demuxer(stream,DEMUXER_TYPE_MPEG_PS,audio_id,video_id,dvdsub_id); - if(!pes) demuxer->synced=1; // hack! + + // try to pre-detect PES: + tmp=stream_read_dword(demuxer->stream); + if(tmp==0x1E0 || tmp==0x1C0){ + tmp=stream_read_word(demuxer->stream); + if(tmp>1 && tmp<=2048) pes=0; // demuxer->synced=3; // PES... + } + stream_seek(demuxer->stream,0); + + if(!pes) demuxer->synced=3; // hack! + num_elementary_packets100=0; num_elementary_packets101=0; num_elementary_packets1B6=0; -- cgit v1.2.3