summaryrefslogtreecommitdiffstats
path: root/libmpdemux
diff options
context:
space:
mode:
authorarpi <arpi@b3059339-0415-0410-9bf9-f77b7e298cf2>2001-12-01 22:09:18 +0000
committerarpi <arpi@b3059339-0415-0410-9bf9-f77b7e298cf2>2001-12-01 22:09:18 +0000
commitc5347864c0603d3595d6aaa93ca69e13e15fc408 (patch)
tree74047b5eb6f7d8d58e31d7f47a8bc8032a1d4be1 /libmpdemux
parentb16f56cac1a6c089da6f17e653c46390b336872a (diff)
downloadmpv-c5347864c0603d3595d6aaa93ca69e13e15fc408.tar.bz2
mpv-c5347864c0603d3595d6aaa93ca69e13e15fc408.tar.xz
combined PS/PES sync to allow .VDR playback from stdin
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@3256 b3059339-0415-0410-9bf9-f77b7e298cf2
Diffstat (limited to 'libmpdemux')
-rw-r--r--libmpdemux/demux_mpg.c14
1 files changed, 4 insertions, 10 deletions
diff --git a/libmpdemux/demux_mpg.c b/libmpdemux/demux_mpg.c
index ece051f812..4592d2bc9b 100644
--- a/libmpdemux/demux_mpg.c
+++ b/libmpdemux/demux_mpg.c
@@ -278,15 +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;
-#if 0
- else if(head>=0x1C0 && head<=0x1EF){
- demux->synced=2;
- mp_msg(MSGT_DEMUX,MSGL_V,"Mpeg PES stream synced at 0x%X (%d)!\n",demux->filepos,demux->filepos);
- num_elementary_packets100=0; // requires for re-sync!
- num_elementary_packets101=0; // requires for re-sync!
- }
-#endif
+ 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)){
@@ -296,7 +289,7 @@ do{
num_elementary_packets101=0; // requires for re-sync!
} else demux->synced=0;
} // else
- if(demux->synced==2){
+ if(demux->synced>=2){
ret=demux_mpg_read_packet(demux,head);
if(!ret)
if(--max_packs==0){
@@ -304,6 +297,7 @@ do{
mp_msg(MSGT_DEMUX,MSGL_ERR,MSGTR_DoesntContainSelectedStream);
return 0;
}
+ if(demux->synced==3) demux->synced=(ret==1)?2:0; // PES detect
} else {
if(head>=0x100 && head<0x1B0){
if(head==0x100) ++num_elementary_packets100; else