diff options
author | phintuka <phintuka> | 2009-09-05 11:07:32 +0000 |
---|---|---|
committer | phintuka <phintuka> | 2009-09-05 11:07:32 +0000 |
commit | 4379d9d084413b8042090b13b0505f844a11c26d (patch) | |
tree | dc9914dd308129b4214d8922db8e457656501a87 | |
parent | 220009de72f1d8089666bbbed0d18d144025d8b9 (diff) | |
download | xineliboutput-4379d9d084413b8042090b13b0505f844a11c26d.tar.gz xineliboutput-4379d9d084413b8042090b13b0505f844a11c26d.tar.bz2 |
Fixed demux_ts_get_optional_data(DEMUX_OPTIONAL_DATA_SPULANG) :
- Use stream index when language is not known.
- Return DEMUX_OPTIONAL_UNSUPPORTED for non-existing channels.
-rw-r--r-- | xine/BluRay/demux_ts.c | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/xine/BluRay/demux_ts.c b/xine/BluRay/demux_ts.c index 4c79ee7f..b9dce7df 100644 --- a/xine/BluRay/demux_ts.c +++ b/xine/BluRay/demux_ts.c @@ -2257,10 +2257,16 @@ static int demux_ts_get_optional_data(demux_plugin_t *this_gen, case DEMUX_OPTIONAL_DATA_SPULANG: if (channel>=0 && channel<this->spu_langs_count) { - memcpy(str, this->spu_langs[channel].desc.lang, 3); - str[3] = 0;} - else + if (this->spu_langs[channel].desc.lang[0]) { + memcpy(str, this->spu_langs[channel].desc.lang, 3); + str[3] = 0; + } else + sprintf(str, "%3i", channel); + } + else { strcpy(str, "none"); + return DEMUX_OPTIONAL_UNSUPPORTED; + } return DEMUX_OPTIONAL_SUCCESS; default: |