diff options
-rw-r--r-- | libmpdemux/demux_mpg.c | 5 | ||||
-rw-r--r-- | mplayer.c | 2 |
2 files changed, 7 insertions, 0 deletions
diff --git a/libmpdemux/demux_mpg.c b/libmpdemux/demux_mpg.c index 4f57c89a3d..a3ae67506f 100644 --- a/libmpdemux/demux_mpg.c +++ b/libmpdemux/demux_mpg.c @@ -36,6 +36,7 @@ typedef struct mpg_demuxer { int a_stream_ids[MAX_A_STREAMS]; } mpg_demuxer_t; +extern char* dvdsub_lang; static int mpeg_pts_error=0; static int parse_psm(demuxer_t *demux, int len) { @@ -293,6 +294,10 @@ static int demux_mpg_read_packet(demuxer_t *demux,int id){ demux->s_streams[aid]=1; } + if(demux->sub->id > -1) + demux->sub->id &= 0x1F; + if(!dvdsub_lang && demux->sub->id == -1) + demux->sub->id = aid; if(demux->sub->id==aid){ ds=demux->sub; } @@ -3794,8 +3794,10 @@ if (stream->type==STREAMTYPE_DVDNAV && dvd_nav_still) vo_sub_last = vo_sub = NULL; #endif vobsub_id = -1; + if(dvdsub_lang) { dvdsub_id = -1; if (d_dvdsub) d_dvdsub->id = -1; + } // be careful! // if sub_changed is till on but subdata's been reset, bad things happen. |