summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--TODO2
-rw-r--r--include/Makefile.am3
-rw-r--r--include/xine.h.in7
-rw-r--r--src/demuxers/demux_ogg.c10
-rw-r--r--src/input/input_dvd.c8
5 files changed, 26 insertions, 4 deletions
diff --git a/TODO b/TODO
index e12185946..d56fdeba4 100644
--- a/TODO
+++ b/TODO
@@ -50,6 +50,8 @@ frontends
required for 1.0
----------------
+- rc4: provide long language strings via XINE_META_INFO_FULL_LANG in
+ ogg demuxer and DVD input
- update xine hacker's guide (article on post plugins still missing)
- xine bug tracking system?
- fix stream end detection for real streams
diff --git a/include/Makefile.am b/include/Makefile.am
index 4523ae373..cda4494e0 100644
--- a/include/Makefile.am
+++ b/include/Makefile.am
@@ -17,3 +17,6 @@ maintainer-clean-generic:
-@echo "This command is intended for maintainers to use;"
-@echo "it deletes files that may require special tools to rebuild."
-rm -f Makefile.in
+
+install-data-local: install-includeHEADERS
+ sed -e '/^\/\*_x_/d' xine.h > $(DESTDIR)$(includedir)/xine.h
diff --git a/include/xine.h.in b/include/xine.h.in
index fba66fe01..04dbe621a 100644
--- a/include/xine.h.in
+++ b/include/xine.h.in
@@ -17,7 +17,7 @@
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
*
- * $Id: xine.h.in,v 1.111 2003/12/21 14:11:09 mroi Exp $
+ * $Id: xine.h.in,v 1.112 2003/12/26 16:13:22 mroi Exp $
*
* public xine-lib (libxine) interface and documentation
*
@@ -37,6 +37,8 @@
* use xlockdisplay() or use two seperate connections to the x-server
*
*/
+/*_x_ Lines formatted like this one are xine-lib developer comments. */
+/*_x_ They will be removed from the installed version of this header. */
#ifndef HAVE_XINE_H
#define HAVE_XINE_H
@@ -798,7 +800,8 @@ int xine_get_audio_lang (xine_stream_t *stream, int channel,
char *lang);
int xine_get_spu_lang (xine_stream_t *stream, int channel,
char *lang);
-#define XINE_LANG_MAX 128
+/*_x_ increasing this number means an incompatible ABI breakage! */
+#define XINE_LANG_MAX 32
/*
* get position / length information
diff --git a/src/demuxers/demux_ogg.c b/src/demuxers/demux_ogg.c
index dc1d85ab2..751687f28 100644
--- a/src/demuxers/demux_ogg.c
+++ b/src/demuxers/demux_ogg.c
@@ -19,7 +19,7 @@
*/
/*
- * $Id: demux_ogg.c,v 1.128 2003/12/23 21:22:38 miguelfreitas Exp $
+ * $Id: demux_ogg.c,v 1.129 2003/12/26 16:13:21 mroi Exp $
*
* demultiplexer for ogg streams
*
@@ -1569,6 +1569,10 @@ static int demux_ogg_get_optional_data(demux_plugin_t *this_gen,
if (this->language[stream_num]) {
strncpy (str, this->language[stream_num], XINE_LANG_MAX);
str[XINE_LANG_MAX - 1] = '\0';
+ if (strlen(this->language[stream_num]) >= XINE_LANG_MAX)
+ /* the string got truncated */
+ str[XINE_LANG_MAX - 2] = str[XINE_LANG_MAX - 3] = str[XINE_LANG_MAX - 4] = '.';
+ /* TODO: provide long version in XINE_META_INFO_FULL_LANG */
return DEMUX_OPTIONAL_SUCCESS;
} else {
snprintf(str, XINE_LANG_MAX, "channel %d",channel);
@@ -1589,6 +1593,10 @@ static int demux_ogg_get_optional_data(demux_plugin_t *this_gen,
if (this->language[stream_num]) {
strncpy (str, this->language[stream_num], XINE_LANG_MAX);
str[XINE_LANG_MAX - 1] = '\0';
+ if (strlen(this->language[stream_num]) >= XINE_LANG_MAX)
+ /* the string got truncated */
+ str[XINE_LANG_MAX - 2] = str[XINE_LANG_MAX - 3] = str[XINE_LANG_MAX - 4] = '.';
+ /* TODO: provide long version in XINE_META_INFO_FULL_LANG */
return DEMUX_OPTIONAL_SUCCESS;
} else {
snprintf(str, XINE_LANG_MAX, "channel %d",channel);
diff --git a/src/input/input_dvd.c b/src/input/input_dvd.c
index 4e60ce84e..11031882c 100644
--- a/src/input/input_dvd.c
+++ b/src/input/input_dvd.c
@@ -18,7 +18,7 @@
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
*
- * $Id: input_dvd.c,v 1.178 2003/12/14 22:13:23 siggi Exp $
+ * $Id: input_dvd.c,v 1.179 2003/12/26 16:13:21 mroi Exp $
*
*/
@@ -1215,6 +1215,7 @@ static int dvd_plugin_get_optional_data (input_plugin_t *this_gen,
if(lang != 0xffff)
sprintf(data, " %c%c", lang >> 8, lang & 0xff);
+ /* TODO: provide long version in XINE_META_INFO_FULL_LANG */
else
sprintf(data, " %c%c", '?', '?');
return INPUT_OPTIONAL_SUCCESS;
@@ -1256,6 +1257,7 @@ static int dvd_plugin_get_optional_data (input_plugin_t *this_gen,
if(lang != 0xffff)
sprintf(data, " %c%c", lang >> 8, lang & 0xff);
+ /* TODO: provide long version in XINE_META_INFO_FULL_LANG */
else
sprintf(data, " %c%c", '?', '?');
return INPUT_OPTIONAL_SUCCESS;
@@ -1734,6 +1736,10 @@ static void *init_class (xine_t *xine, void *data) {
/*
* $Log: input_dvd.c,v $
+ * Revision 1.179 2003/12/26 16:13:21 mroi
+ * * cure the ABI breakage: XINE_LANG_MAX cannot be increased
+ * * add TODO items to provide a better solution
+ *
* Revision 1.178 2003/12/14 22:13:23 siggi
* API version bounce
*