diff options
author | eugeni <eugeni@b3059339-0415-0410-9bf9-f77b7e298cf2> | 2008-02-19 19:41:22 +0000 |
---|---|---|
committer | eugeni <eugeni@b3059339-0415-0410-9bf9-f77b7e298cf2> | 2008-02-19 19:41:22 +0000 |
commit | cfa0af8f17f82b9656e374c0b12040fc7601f821 (patch) | |
tree | 9b6723ca7c6d8f8dc8d5b4c1b7bd67a27eca43b0 /libmpdemux/demux_lavf.c | |
parent | 67352a6575f2c0b4dd65140f40c35336eda81c06 (diff) | |
download | mpv-cfa0af8f17f82b9656e374c0b12040fc7601f821.tar.bz2 mpv-cfa0af8f17f82b9656e374c0b12040fc7601f821.tar.xz |
Support -slang in lavf demuxer.
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@26032 b3059339-0415-0410-9bf9-f77b7e298cf2
Diffstat (limited to 'libmpdemux/demux_lavf.c')
-rw-r--r-- | libmpdemux/demux_lavf.c | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/libmpdemux/demux_lavf.c b/libmpdemux/demux_lavf.c index 135909efa4..e6feb13e92 100644 --- a/libmpdemux/demux_lavf.c +++ b/libmpdemux/demux_lavf.c @@ -46,6 +46,8 @@ #define PROBE_BUF_SIZE 2048 extern char *audio_lang; +extern char *dvdsub_lang; +extern int dvdsub_id; static unsigned int opt_probesize = 0; static unsigned int opt_analyzeduration = 0; static char *opt_format; @@ -433,7 +435,14 @@ static void handle_stream(demuxer_t *demuxer, AVFormatContext *avfc, int i) { memcpy(sh_sub->extradata, codec->extradata, codec->extradata_size); sh_sub->extradata_len = codec->extradata_size; } - demuxer->sub->sh = demuxer->s_streams[priv->sub_streams++]; + if (demuxer->sub->id == -1 + || (demuxer->sub->id == -2 && (dvdsub_lang && st->language[0] && !strncmp(dvdsub_lang, st->language, 3))) + || demuxer->sub->id == priv->sub_streams) { + dvdsub_id = i; + demuxer->sub->id = priv->sub_streams; + demuxer->sub->sh = sh_sub; + } + priv->sub_streams++; break; } case CODEC_TYPE_ATTACHMENT:{ |