diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/demuxers/demux_qt.c | 12 | ||||
-rw-r--r-- | src/libdts/Makefile.am | 2 | ||||
-rw-r--r-- | src/libdts/bitstream.c | 2 | ||||
-rw-r--r-- | src/libdts/downmix.c | 2 | ||||
-rw-r--r-- | src/libdts/internal-dts.h (renamed from src/libdts/dts.h) | 0 | ||||
-rw-r--r-- | src/libdts/parse.c | 2 | ||||
-rw-r--r-- | src/libdts/xine_dts_decoder.c | 7 | ||||
-rw-r--r-- | src/xine-engine/input_cache.c | 6 | ||||
-rw-r--r-- | src/xine-utils/xmllexer.c | 15 | ||||
-rw-r--r-- | src/xine-utils/xmlparser.c | 4 |
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): |