From 48e77721372360e7dec0686f5fe2c3b543d308de Mon Sep 17 00:00:00 2001 From: Darren Salt Date: Wed, 18 Apr 2007 16:22:40 +0100 Subject: Limit common-case buffer copying optimisation to i386 & amd64. This fixes reported alignment issues on ARM. (We could require correct alignment on some architectures, but this is easier.) --- src/xine-engine/input_cache.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'src') 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; -- cgit v1.2.3 From 4c626f20165720587630525ebf86133fb2ad8b51 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Diego=20=27Flameeyes=27=20Petten=C3=B2?= Date: Wed, 18 Apr 2007 21:52:06 +0200 Subject: Use the proper dts.h file. --- src/libdts/bitstream.c | 2 +- src/libdts/downmix.c | 2 +- src/libdts/parse.c | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) (limited to 'src') 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 -#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 #include -#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/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" -- cgit v1.2.3 From 837894b153407936105bf5b358f235b6600bbd42 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Diego=20=27Flameeyes=27=20Petten=C3=B2?= Date: Sat, 21 Apr 2007 16:57:43 +0200 Subject: Add support for MDHD version 1 atom in demux_qt. [bug #1679398] --- src/demuxers/demux_qt.c | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) (limited to 'src') 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 -- cgit v1.2.3