From 944ce1be60e6ade88fb41c1914eecaaf54bd2786 Mon Sep 17 00:00:00 2001 From: Petri Hintukainen Date: Thu, 24 Nov 2011 12:40:33 +0200 Subject: Check fwrite return value --HG-- branch : point-release --- src/xine-engine/configfile.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/xine-engine/configfile.c b/src/xine-engine/configfile.c index ca82c7b9e..cc53e646c 100644 --- a/src/xine-engine/configfile.c +++ b/src/xine-engine/configfile.c @@ -1021,7 +1021,9 @@ void xine_config_save (xine_t *xine, const char *filename) { buf = (char *) malloc(config_stat.st_size + 1); if((rlen = fread(buf, 1, config_stat.st_size, f_config)) && ((off_t)rlen == config_stat.st_size)) { - (void) fwrite(buf, 1, rlen, f_backup); + if (rlen != fwrite(buf, 1, rlen, f_backup)) { + lprintf("backing up configfile to %s failed\n", temp); + } } free(buf); -- cgit v1.2.3 From 0d1157df4bfbb7722473c5d0214c2024bb98f680 Mon Sep 17 00:00:00 2001 From: Petri Hintukainen Date: Thu, 24 Nov 2011 12:44:04 +0200 Subject: Fixed aliasing --HG-- branch : point-release --- src/xine-engine/io_helper.c | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/src/xine-engine/io_helper.c b/src/xine-engine/io_helper.c index 22f34ffc2..eef843906 100644 --- a/src/xine-engine/io_helper.c +++ b/src/xine-engine/io_helper.c @@ -87,17 +87,19 @@ static int _x_io_tcp_connect_ipv4(xine_stream_t *stream, const char *host, int p for (i = 0; h->h_addr_list[i]; i++) { struct in_addr ia; - struct sockaddr_in sin; - + union { + struct sockaddr sa; + struct sockaddr_in in; + } saddr; memcpy (&ia, h->h_addr_list[i], 4); - sin.sin_family = AF_INET; - sin.sin_addr = ia; - sin.sin_port = htons(port); + saddr.in.sin_family = AF_INET; + saddr.in.sin_addr = ia; + saddr.in.sin_port = htons(port); #ifndef WIN32 - if (connect(s, (struct sockaddr *)&sin, sizeof(sin))==-1 && errno != EINPROGRESS) { + if (connect(s, &saddr.sa, sizeof(saddr.in))==-1 && errno != EINPROGRESS) { #else - if (connect(s, (struct sockaddr *)&sin, sizeof(sin))==-1 && WSAGetLastError() != WSAEWOULDBLOCK) { + if (connect(s, &saddr.sa, sizeof(saddr.in))==-1 && WSAGetLastError() != WSAEWOULDBLOCK) { if (stream) xprintf(stream->xine, XINE_VERBOSITY_DEBUG, "io_helper: WSAGetLastError() = %d\n", WSAGetLastError()); #endif /* WIN32 */ -- cgit v1.2.3 From 0f1e27fa5225249eccbdc1aec4d462e94d7d2b66 Mon Sep 17 00:00:00 2001 From: Kevin Kofler Date: Thu, 24 Nov 2011 23:37:50 +0100 Subject: Don't check for and include a52_internal.h: it's not actually used. --HG-- branch : point-release extra : rebase_source : 3cc7f85e6e39b1af46b7da40edcdebda000ef8ff --- configure.ac | 2 +- src/liba52/xine_a52_decoder.c | 6 ------ 2 files changed, 1 insertion(+), 7 deletions(-) diff --git a/configure.ac b/configure.ac index f18288691..9063e9415 100644 --- a/configure.ac +++ b/configure.ac @@ -1302,7 +1302,7 @@ if test "x$enable_a52dec" = "xno"; then AC_MSG_RESULT([a52dec support disabled]) elif test "x$external_a52dec" = "xyes"; then have_a52="yes" - AC_CHECK_HEADERS([a52dec/a52.h a52dec/a52_internal.h],, have_a52="no", + AC_CHECK_HEADERS([a52dec/a52.h],, have_a52="no", [ #ifdef HAVE_SYS_TYPES_H # include diff --git a/src/liba52/xine_a52_decoder.c b/src/liba52/xine_a52_decoder.c index 9e590f77d..b4b628c81 100644 --- a/src/liba52/xine_a52_decoder.c +++ b/src/liba52/xine_a52_decoder.c @@ -53,12 +53,6 @@ # include "a52.h" #endif -#ifdef HAVE_A52DEC_A52_INTERNAL_H -# include -#else -# include "a52_internal.h" -#endif - #include "buffer.h" #include "xineutils.h" -- cgit v1.2.3 From 5f4a4b5dcf03f3f05a82798d405a012f6ee19bba Mon Sep 17 00:00:00 2001 From: Petri Hintukainen Date: Fri, 25 Nov 2011 12:14:00 +0200 Subject: Added FOURCC codes for EAC3 --HG-- branch : point-release --- src/xine-engine/buffer_types.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/xine-engine/buffer_types.c b/src/xine-engine/buffer_types.c index 913b29115..20b2d0754 100644 --- a/src/xine-engine/buffer_types.c +++ b/src/xine-engine/buffer_types.c @@ -1187,6 +1187,8 @@ static const audio_db_t audio_db[] = { }, { { + ME_FOURCC('E', 'A', 'C', '3'), + ME_FOURCC('e', 'c', '-', '3'), 0 }, BUF_AUDIO_EAC3, -- cgit v1.2.3 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(-) 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(-) 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(-) 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(-) 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 From c9408fd26d777eb760911094b20cabe6ab5e7fe3 Mon Sep 17 00:00:00 2001 From: Darren Salt Date: Fri, 25 Nov 2011 10:38:15 +0000 Subject: Changelog update. --HG-- branch : point-release --- ChangeLog | 1 + 1 file changed, 1 insertion(+) diff --git a/ChangeLog b/ChangeLog index 39deb4c77..e73383382 100644 --- a/ChangeLog +++ b/ChangeLog @@ -2,6 +2,7 @@ xine-lib (1.1.20.1) 2011-??-?? * Various bug fixes. * Use the current ImageMagick API (if using ImageMagick). * Fix PVR plugin input building (needs V4L2). + * Fixes related to unknown audio & subtitle languages. xine-lib (1.1.20) 2011-11-13 * Imagine that there's a large poppy here. -- cgit v1.2.3