diff options
author | Jens Arnold <amiconn@rockbox.org> | 2005-06-18 11:26:14 +0000 |
---|---|---|
committer | Jens Arnold <amiconn@rockbox.org> | 2005-06-18 11:26:14 +0000 |
commit | b0287720b1f4a3e39dbd003fda2eebdfe22ad1ed (patch) | |
tree | 69b78efc72adb07273ecd40cf534cef812fd81e4 /firmware | |
parent | e2cd58145d90eac8e33f6e3684e73cf2b83692d3 (diff) | |
download | rockbox-b0287720b1f4a3e39dbd003fda2eebdfe22ad1ed.tar.gz rockbox-b0287720b1f4a3e39dbd003fda2eebdfe22ad1ed.zip |
Fixed MPEG header validation for layer 1 on iriver, and simplified it for archos.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@6746 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'firmware')
-rw-r--r-- | firmware/mp3data.c | 11 |
1 files changed, 5 insertions, 6 deletions
diff --git a/firmware/mp3data.c b/firmware/mp3data.c index 6e553eb94a..e899125013 100644 --- a/firmware/mp3data.c +++ b/firmware/mp3data.c | |||
@@ -105,18 +105,17 @@ static bool is_mp3frameheader(unsigned long head) | |||
105 | return false; | 105 | return false; |
106 | if (!(head & LAYER_MASK)) /* no layer? */ | 106 | if (!(head & LAYER_MASK)) /* no layer? */ |
107 | return false; | 107 | return false; |
108 | #if CONFIG_HWCODEC != MASNONE | ||
109 | /* The MAS can't decode layer 1, so treat layer 1 data as invalid */ | ||
110 | if ((head & LAYER_MASK) == LAYER_MASK) | ||
111 | return false; | ||
112 | #endif | ||
108 | if ((head & BITRATE_MASK) == BITRATE_MASK) /* bad bitrate? */ | 113 | if ((head & BITRATE_MASK) == BITRATE_MASK) /* bad bitrate? */ |
109 | return false; | 114 | return false; |
110 | if (!(head & BITRATE_MASK)) /* no bitrate? */ | 115 | if (!(head & BITRATE_MASK)) /* no bitrate? */ |
111 | return false; | 116 | return false; |
112 | if ((head & SAMPLERATE_MASK) == SAMPLERATE_MASK) /* bad sample rate? */ | 117 | if ((head & SAMPLERATE_MASK) == SAMPLERATE_MASK) /* bad sample rate? */ |
113 | return false; | 118 | return false; |
114 | if (((head >> 19) & 1) == 1 && | ||
115 | ((head >> 17) & 3) == 3 && | ||
116 | ((head >> 16) & 1) == 1) | ||
117 | return false; | ||
118 | if ((head & 0xffff0000) == 0xfffe0000) | ||
119 | return false; | ||
120 | 119 | ||
121 | return true; | 120 | return true; |
122 | } | 121 | } |