summaryrefslogtreecommitdiffstats
path: root/libmpdemux
diff options
context:
space:
mode:
authorarpi <arpi@b3059339-0415-0410-9bf9-f77b7e298cf2>2001-12-26 16:34:06 +0000
committerarpi <arpi@b3059339-0415-0410-9bf9-f77b7e298cf2>2001-12-26 16:34:06 +0000
commit63dc65aa4418254d436c5dda71002ff6e2aa25c2 (patch)
tree48fdbdac57321f1111f0db5dad32c10edcbe0d11 /libmpdemux
parentcd20c67951f070475e1fe1eedb264b331387c781 (diff)
downloadmpv-63dc65aa4418254d436c5dda71002ff6e2aa25c2.tar.bz2
mpv-63dc65aa4418254d436c5dda71002ff6e2aa25c2.tar.xz
mpeg VDR vs. BIN fixed?
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@3771 b3059339-0415-0410-9bf9-f77b7e298cf2
Diffstat (limited to 'libmpdemux')
-rw-r--r--libmpdemux/demux_mpg.c4
-rw-r--r--libmpdemux/demuxer.c13
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;