From cdd8e021f12258cc5a3275f30c07f21dd44ebed9 Mon Sep 17 00:00:00 2001 From: Petri Hintukainen Date: Fri, 25 Nov 2011 12:16:36 +0200 Subject: demux_ts: Fixed incorrect check. Pointer to struct member is always non-NULL. --HG-- branch : point-release --- src/demuxers/demux_ts.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src/demuxers') diff --git a/src/demuxers/demux_ts.c b/src/demuxers/demux_ts.c index a5c715c62..683a24532 100644 --- a/src/demuxers/demux_ts.c +++ b/src/demuxers/demux_ts.c @@ -2348,7 +2348,7 @@ static int demux_ts_get_optional_data(demux_plugin_t *this_gen, { case DEMUX_OPTIONAL_DATA_AUDIOLANG: if ((channel >= 0) && (channel < this->audio_tracks_count)) { - if(this->audio_tracks[channel].lang) + if (this->audio_tracks[channel].lang[0]) strcpy(str, this->audio_tracks[channel].lang); else sprintf(str, "%3i", _x_get_audio_channel(this->stream)); -- cgit v1.2.3 From 679f7ef6e859d0b36e941e5721651001f5e8846e Mon Sep 17 00:00:00 2001 From: Petri Hintukainen Date: Fri, 25 Nov 2011 12:19:50 +0200 Subject: demux_ts: fixed DEMUX_OPTIONAL_DATA_AUDIOLANG when language is unknown --HG-- branch : point-release --- src/demuxers/demux_ts.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'src/demuxers') diff --git a/src/demuxers/demux_ts.c b/src/demuxers/demux_ts.c index 683a24532..ed1f789ba 100644 --- a/src/demuxers/demux_ts.c +++ b/src/demuxers/demux_ts.c @@ -2351,10 +2351,10 @@ static int demux_ts_get_optional_data(demux_plugin_t *this_gen, if (this->audio_tracks[channel].lang[0]) strcpy(str, this->audio_tracks[channel].lang); else - sprintf(str, "%3i", _x_get_audio_channel(this->stream)); + sprintf(str, "%3i", channel); } else { - snprintf(str, XINE_LANG_MAX, "%3i", _x_get_audio_channel(this->stream)); + strcpy(str, "none"); } return DEMUX_OPTIONAL_SUCCESS; -- cgit v1.2.3 From 2b00fb6cedea5e6a72777210eb20bc34a7a3893b Mon Sep 17 00:00:00 2001 From: Petri Hintukainen Date: Fri, 25 Nov 2011 12:28:20 +0200 Subject: demux_ts: fixed DEMUX_OPTIONAL_DATA_SPULANG when language is unknown --HG-- branch : point-release --- src/demuxers/demux_ts.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) (limited to 'src/demuxers') diff --git a/src/demuxers/demux_ts.c b/src/demuxers/demux_ts.c index ed1f789ba..b6f11c91f 100644 --- a/src/demuxers/demux_ts.c +++ b/src/demuxers/demux_ts.c @@ -2360,10 +2360,14 @@ static int demux_ts_get_optional_data(demux_plugin_t *this_gen, case DEMUX_OPTIONAL_DATA_SPULANG: if (channel>=0 && channelspu_langs_count) { - memcpy(str, this->spu_langs[channel].desc.lang, 3); - str[3] = 0;} - else + if (this->spu_langs[channel].desc.lang[0]) { + strcpy(str, this->spu_langs[channel].desc.lang); + } else { + sprintf(str, "%3i", channel); + } + } else { strcpy(str, "none"); + } return DEMUX_OPTIONAL_SUCCESS; default: -- cgit v1.2.3 From 364abb8eb2ea8fecc6fbbe2fe2cdd6c3fc2cf204 Mon Sep 17 00:00:00 2001 From: Petri Hintukainen Date: Fri, 25 Nov 2011 12:32:41 +0200 Subject: demux_ts: check if input plugin supports track languages when track language is unknown in demuxer --HG-- branch : point-release --- src/demuxers/demux_ts.c | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) (limited to 'src/demuxers') diff --git a/src/demuxers/demux_ts.c b/src/demuxers/demux_ts.c index b6f11c91f..084782f72 100644 --- a/src/demuxers/demux_ts.c +++ b/src/demuxers/demux_ts.c @@ -2348,10 +2348,14 @@ static int demux_ts_get_optional_data(demux_plugin_t *this_gen, { case DEMUX_OPTIONAL_DATA_AUDIOLANG: if ((channel >= 0) && (channel < this->audio_tracks_count)) { - if (this->audio_tracks[channel].lang[0]) + if (this->audio_tracks[channel].lang[0]) { strcpy(str, this->audio_tracks[channel].lang); - else + } else { + /* input plugin may know the language */ + if (this->input->get_capabilities(this->input) & INPUT_CAP_AUDIOLANG) + return DEMUX_OPTIONAL_UNSUPPORTED; sprintf(str, "%3i", channel); + } } else { strcpy(str, "none"); @@ -2363,6 +2367,9 @@ static int demux_ts_get_optional_data(demux_plugin_t *this_gen, if (this->spu_langs[channel].desc.lang[0]) { strcpy(str, this->spu_langs[channel].desc.lang); } else { + /* input plugin may know the language */ + if (this->input->get_capabilities(this->input) & INPUT_CAP_SPULANG) + return DEMUX_OPTIONAL_UNSUPPORTED; sprintf(str, "%3i", channel); } } else { -- cgit v1.2.3