summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDarren Salt <linux@youmustbejoking.demon.co.uk>2010-07-18 23:40:03 +0100
committerDarren Salt <linux@youmustbejoking.demon.co.uk>2010-07-18 23:40:03 +0100
commit33fc4bc00ae12749ff588ad438a5490d5edb4172 (patch)
treeada94cee2b8da2f796dced3f490333b255b6619f
parent84e3cfe768a494b5c99fd1aca5f58b1e12094236 (diff)
downloadxine-lib-33fc4bc00ae12749ff588ad438a5490d5edb4172.tar.gz
xine-lib-33fc4bc00ae12749ff588ad438a5490d5edb4172.tar.bz2
Recognise ScreamTracker files. ST3 is untested.
-rw-r--r--ChangeLog1
-rw-r--r--src/demuxers/demux_mod.c8
2 files changed, 9 insertions, 0 deletions
diff --git a/ChangeLog b/ChangeLog
index 70e7bdccb..1689d9d33 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -11,6 +11,7 @@ xine-lib (1.1.19) 2010-??-??
* Report stream buffer stats to the application.
* Recognise and handle the WebM container format.
(VP8 video is not yet supported.)
+ * Recognise ScreamTracker 2 & 3 files. (ST3 untested.)
xine-lib (1.1.18.1) 2010-03-06
* Oops. compat.c (for DXR3 support) was omitted.
diff --git a/src/demuxers/demux_mod.c b/src/demuxers/demux_mod.c
index 0439be7ee..55eca30c3 100644
--- a/src/demuxers/demux_mod.c
+++ b/src/demuxers/demux_mod.c
@@ -124,6 +124,14 @@ static int probe_mod_file(demux_mod_t *this) {
return 1;
}
+ /* ScreamTracker 2 */
+ if (!memcmp (header.buffer + 20, "!Scream!", 7))
+ return 1;
+
+ /* ScreamTracker 3 */
+ if (_X_ABE_32(header.values + 0x2C / sizeof (uint32_t)) == FOURCC_32('S', 'C', 'R', 'M'))
+ return 1;
+
return 0;
}