diff options
author | 2006-01-02 20:40:25 +0000 | |
---|---|---|
committer | 2006-01-02 20:40:25 +0000 | |
commit | db69d933c116f80c3e02f1cbc0e2df28bf993d56 (patch) | |
tree | 19690fcfc52ce6713f2b8ecdf76e2ab8bef933f9 | |
parent | 6193679753e42999894580efe1f8b95bd0f8b304 (diff) |
don't reset dvdsub->id unless -slang is specified; assign default sub stream id when demux->sub->id is -1 (autodetect)
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@17287 b3059339-0415-0410-9bf9-f77b7e298cf2
-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. |