summaryrefslogtreecommitdiffstats
path: root/libmpdemux
diff options
context:
space:
mode:
authorUoti Urpala <uau@glyph.nonexistent.invalid>2010-05-21 23:57:29 +0300
committerUoti Urpala <uau@glyph.nonexistent.invalid>2010-05-22 10:11:15 +0300
commitb3a688d45ff463592c73c425d68532f8f9b7880d (patch)
tree92b21c9ceb01b999053c9dd7fce5cf1662f495e1 /libmpdemux
parentde5566f0b5420fbdbf0dc37f225be01cfd04cf66 (diff)
downloadmpv-b3a688d45ff463592c73c425d68532f8f9b7880d.tar.bz2
mpv-b3a688d45ff463592c73c425d68532f8f9b7880d.tar.xz
options: move -alang and -slang to option struct
The option field corresponding to -slang is now called "sub_lang" instead of the old misleading global name "dvdsub_lang". The code handling -slang in subreader.c looks rather broken; disable it instead of converting it to use the option field.
Diffstat (limited to 'libmpdemux')
-rw-r--r--libmpdemux/demux_mpg.c4
-rw-r--r--libmpdemux/demux_ogg.c5
-rw-r--r--libmpdemux/demux_ts.c14
3 files changed, 11 insertions, 12 deletions
diff --git a/libmpdemux/demux_mpg.c b/libmpdemux/demux_mpg.c
index 5801e5f1fd..ddc5d218dd 100644
--- a/libmpdemux/demux_mpg.c
+++ b/libmpdemux/demux_mpg.c
@@ -26,6 +26,7 @@
#include "config.h"
#include "mp_msg.h"
+#include "options.h"
#include "stream/stream.h"
#include "demuxer.h"
@@ -57,7 +58,6 @@ typedef struct mpg_demuxer {
int a_stream_ids[MAX_A_STREAMS];
} mpg_demuxer_t;
-extern char* dvdsub_lang;
static int mpeg_pts_error=0;
off_t ps_probe = 0;
@@ -482,7 +482,7 @@ static int demux_mpg_read_packet(demuxer_t *demux,int id){
if(demux->sub->id > -1)
demux->sub->id &= 0x1F;
- if(!dvdsub_lang && demux->sub->id == -1)
+ if(!demux->opts->sub_lang && demux->sub->id == -1)
demux->sub->id = aid;
if(demux->sub->id==aid){
ds=demux->sub;
diff --git a/libmpdemux/demux_ogg.c b/libmpdemux/demux_ogg.c
index e872ad5156..4234eb9498 100644
--- a/libmpdemux/demux_ogg.c
+++ b/libmpdemux/demux_ogg.c
@@ -163,8 +163,6 @@ typedef struct ogg_demuxer {
#define PACKET_LEN_BITS2 0x02
#define PACKET_IS_SYNCPOINT 0x08
-extern char *dvdsub_lang, *audio_lang;
-
//-------- subtitle support - should be moved to decoder layer, and queue
// - subtitles up in demuxer buffer...
@@ -449,7 +447,8 @@ static void demux_ogg_check_comments(demuxer_t *d, ogg_stream_t *os,
sh->lang = strdup(val);
}
// check for -slang if subs are uninitialized yet
- if (os->text && d->sub->id < 0 && demux_ogg_check_lang(val, dvdsub_lang)) {
+ if (os->text && d->sub->id < 0
+ && demux_ogg_check_lang(val, d->opts->sub_lang)) {
d->sub->id = index;
d->opts->sub_id = index;
mp_msg(MSGT_DEMUX, MSGL_V,
diff --git a/libmpdemux/demux_ts.c b/libmpdemux/demux_ts.c
index c0dd2e632d..adef44913c 100644
--- a/libmpdemux/demux_ts.c
+++ b/libmpdemux/demux_ts.c
@@ -28,6 +28,7 @@
#include "config.h"
#include "mp_msg.h"
+#include "options.h"
#include "stream/stream.h"
#include "demuxer.h"
@@ -60,7 +61,6 @@ int ts_prog;
int ts_keep_broken=0;
off_t ts_probe = 0;
int audio_substream_id = -1;
-extern char *dvdsub_lang, *audio_lang; //for -alang
typedef enum
{
@@ -1007,17 +1007,17 @@ static demuxer_t *demux_open_ts(demuxer_t * demuxer)
params.prog = ts_prog;
params.probe = ts_probe;
- if(dvdsub_lang != NULL)
+ if(demuxer->opts->sub_lang != NULL)
{
- strncpy(params.slang, dvdsub_lang, 3);
+ strncpy(params.slang, demuxer->opts->sub_lang, 3);
params.slang[3] = 0;
}
else
memset(params.slang, 0, 4);
- if(audio_lang != NULL)
+ if(demuxer->opts->audio_lang != NULL)
{
- strncpy(params.alang, audio_lang, 3);
+ strncpy(params.alang, demuxer->opts->audio_lang, 3);
params.alang[3] = 0;
}
else
@@ -2937,10 +2937,10 @@ static int ts_parse(demuxer_t *demuxer , ES_stream_t *es, unsigned char *packet,
int asgn = 0;
uint8_t *lang;
- if(dvdsub_lang)
+ if(demuxer->opts->sub_lang)
{
if ((lang = pid_lang_from_pmt(priv, pid)))
- asgn = (strncmp(lang, dvdsub_lang, 3) == 0);
+ asgn = (strncmp(lang, demuxer->opts->sub_lang, 3) == 0);
}
else //no language specified with -slang
asgn = 1;