summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMatthias Vogelgesang <matthias.vogelgesang@kit.edu>2015-02-10 14:44:00 +0100
committerMatthias Vogelgesang <matthias.vogelgesang@kit.edu>2015-02-10 14:44:00 +0100
commit5f348c5f740e28a56bf17dafdbe32de3febebde3 (patch)
treefed29c8148e0b378a85dcd2b2ddf1aeffff3b1e5
parent02aca13f192f5b49ed4ccce28fcf62ea29b2e2fe (diff)
downloadlibufodecode-5f348c5f740e28a56bf17dafdbe32de3febebde3.tar.gz
libufodecode-5f348c5f740e28a56bf17dafdbe32de3febebde3.tar.bz2
libufodecode-5f348c5f740e28a56bf17dafdbe32de3febebde3.tar.xz
libufodecode-5f348c5f740e28a56bf17dafdbe32de3febebde3.zip
Fix for new DMA filling
deadbeefs and other magic numbers can appear now ...
-rw-r--r--src/ufodecode.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/src/ufodecode.c b/src/ufodecode.c
index 03c4404..9f5851a 100644
--- a/src/ufodecode.c
+++ b/src/ufodecode.c
@@ -716,10 +716,13 @@ int ufo_decoder_get_next_frame(UfoDecoder *decoder,
pos += advance == 0 ? 1 : advance;
/* if bytes left and we see fill bytes, skip them */
- if (((pos + 2) < num_words) && ((raw[pos] == 0x0) && (raw[pos+1] == 0x1111111))) {
+ if (((pos + 2) < num_words) && ((raw[pos] == 0x0) && ((raw[pos+1] == 0x1111111) || raw[pos+1] == 0x0))) {
pos += 2;
- while ((pos < num_words) && ((raw[pos] == 0x89abcdef) || (raw[pos] == 0x1234567)))
+ while ((pos < num_words) &&
+ ((raw[pos] == 0x89abcdef) || (raw[pos] == 0x1234567) ||
+ (raw[pos] == 0x0) || (raw[pos] == 0xdeadbeef) || (0x98badcfe))) /* new filling ... */ {
pos++;
+ }
}
decoder->current_pos = pos;