summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/demuxers/demux_qt.c12
-rw-r--r--src/libdts/Makefile.am2
-rw-r--r--src/libdts/bitstream.c2
-rw-r--r--src/libdts/downmix.c2
-rw-r--r--src/libdts/internal-dts.h (renamed from src/libdts/dts.h)0
-rw-r--r--src/libdts/parse.c2
-rw-r--r--src/libdts/xine_dts_decoder.c7
-rw-r--r--src/xine-engine/input_cache.c6
-rw-r--r--src/xine-utils/xmllexer.c15
-rw-r--r--src/xine-utils/xmlparser.c4
10 files changed, 41 insertions, 11 deletions
diff --git a/src/demuxers/demux_qt.c b/src/demuxers/demux_qt.c
index f837a2272..0624dc673 100644
--- a/src/demuxers/demux_qt.c
+++ b/src/demuxers/demux_qt.c
@@ -918,9 +918,15 @@ static qt_error parse_trak_atom (qt_trak *trak,
trak->edit_list_table[j].media_time);
}
- } else if (current_atom == MDHD_ATOM)
- trak->timescale = BE_32(&trak_atom[i + 0x10]);
- else if (current_atom == STSD_ATOM) {
+ } else if (current_atom == MDHD_ATOM) {
+ int version;
+ debug_atom_load ("demux_qt: mdhd atom\n");
+
+ version = trak_atom[i+4];
+ if ( version > 1 ) continue; /* unsupported, undocumented */
+
+ trak->timescale = BE_32(&trak_atom[i + (version == 0 ? 0x10 : 0x18) ]);
+ } else if (current_atom == STSD_ATOM) {
debug_atom_load ("demux_qt: stsd atom\n");
#if DEBUG_ATOM_LOAD
diff --git a/src/libdts/Makefile.am b/src/libdts/Makefile.am
index 207755f1f..ea09aab2e 100644
--- a/src/libdts/Makefile.am
+++ b/src/libdts/Makefile.am
@@ -24,5 +24,5 @@ else
xineplug_decode_dts_la_LIBADD = $(XINE_LIB) -lm
endif
-noinst_HEADERS = bitstream.h dts.h dts_internal.h tables.h tables_adpcm.h \
+noinst_HEADERS = bitstream.h internal-dts.h dts_internal.h tables.h tables_adpcm.h \
tables_fir.h tables_huffman.h tables_quantization.h tables_vq.h
diff --git a/src/libdts/bitstream.c b/src/libdts/bitstream.c
index 8a5c4caac..50b2b9fe8 100644
--- a/src/libdts/bitstream.c
+++ b/src/libdts/bitstream.c
@@ -26,7 +26,7 @@
#include <inttypes.h>
-#include "dts.h"
+#include "internal-dts.h"
#include "dts_internal.h"
#include "bitstream.h"
diff --git a/src/libdts/downmix.c b/src/libdts/downmix.c
index 3614c5e8b..fe7136a72 100644
--- a/src/libdts/downmix.c
+++ b/src/libdts/downmix.c
@@ -27,7 +27,7 @@
#include <string.h>
#include <inttypes.h>
-#include "dts.h"
+#include "internal-dts.h"
#include "dts_internal.h"
#define CONVERT(acmod,output) (((output) << DTS_CHANNEL_BITS) + (acmod))
diff --git a/src/libdts/dts.h b/src/libdts/internal-dts.h
index 30f3a197b..30f3a197b 100644
--- a/src/libdts/dts.h
+++ b/src/libdts/internal-dts.h
diff --git a/src/libdts/parse.c b/src/libdts/parse.c
index 3806a5594..67067addb 100644
--- a/src/libdts/parse.c
+++ b/src/libdts/parse.c
@@ -34,7 +34,7 @@
#define M_PI 3.1415926535897932384626433832795029
#endif
-#include "dts.h"
+#include "internal-dts.h"
#include "dts_internal.h"
#include "bitstream.h"
diff --git a/src/libdts/xine_dts_decoder.c b/src/libdts/xine_dts_decoder.c
index 902d8c5b6..0ef9afa17 100644
--- a/src/libdts/xine_dts_decoder.c
+++ b/src/libdts/xine_dts_decoder.c
@@ -49,7 +49,12 @@
#include "xineutils.h"
#include "audio_out.h"
#include "buffer.h"
-#include "dts.h"
+
+#ifdef HAVE_DTS_H
+# include <dts.h>
+#else
+# include "internal-dts.h"
+#endif
#define MAX_AC5_FRAME 4096
diff --git a/src/xine-engine/input_cache.c b/src/xine-engine/input_cache.c
index a566e1f84..75c4beb43 100644
--- a/src/xine-engine/input_cache.c
+++ b/src/xine-engine/input_cache.c
@@ -74,7 +74,11 @@ static off_t cache_plugin_read(input_plugin_t *this_gen, char *buf, off_t len) {
if (len <= (this->buf_len - this->buf_pos)) {
/* all bytes are in the buffer */
switch (len) {
-#if !(defined(sparc) || defined(__sparc__) || defined __ia64__)
+#if defined(__i386__) || defined(__x86_64__)
+ /* These are restricted to x86 and amd64. Some other architectures don't
+ * handle unaligned accesses in the same way, quite possibly requiring
+ * extra code over and above simple byte copies.
+ */
case 8:
*((uint64_t *)buf) = *(uint64_t *)(&(this->buf[this->buf_pos]));
break;
diff --git a/src/xine-utils/xmllexer.c b/src/xine-utils/xmllexer.c
index 575c37611..754a006f9 100644
--- a/src/xine-utils/xmllexer.c
+++ b/src/xine-utils/xmllexer.c
@@ -120,6 +120,10 @@ int lexer_get_token(char * tok, int tok_size) {
state = 7;
break;
+ case '\'': /* " */
+ state = 12;
+ break;
+
case '-':
state = 10;
tok[tok_pos] = c;
@@ -322,6 +326,17 @@ int lexer_get_token(char * tok, int tok_size) {
}
break;
+ /* T_STRING (single quotes) */
+ case 12:
+ tok[tok_pos] = c;
+ lexbuf_pos++;
+ if (c == '\'') { /* " */
+ tok[tok_pos] = '\0'; /* FIXME */
+ return T_STRING;
+ }
+ tok_pos++;
+ break;
+
/* IDENT */
case 100:
switch (c) {
diff --git a/src/xine-utils/xmlparser.c b/src/xine-utils/xmlparser.c
index 47096705a..363c6381f 100644
--- a/src/xine-utils/xmlparser.c
+++ b/src/xine-utils/xmlparser.c
@@ -413,7 +413,7 @@ static int xml_parser_get_node (xml_node_t *current_node, char *root_name, int r
}
break;
- /* > expected */
+ /* ?> expected */
case 8:
switch (res) {
case (T_TI_STOP):
@@ -425,7 +425,7 @@ static int xml_parser_get_node (xml_node_t *current_node, char *root_name, int r
}
break;
- /* ?> expected */
+ /* > expected */
case 9:
switch (res) {
case (T_M_STOP_1):