diff options
Diffstat (limited to 'firmware/mp3data.c')
-rw-r--r-- | firmware/mp3data.c | 20 |
1 files changed, 10 insertions, 10 deletions
diff --git a/firmware/mp3data.c b/firmware/mp3data.c index 260412b68a..bca8560188 100644 --- a/firmware/mp3data.c +++ b/firmware/mp3data.c | |||
@@ -122,39 +122,39 @@ static bool mp3headerinfo(struct mp3info *info, unsigned long header) | |||
122 | int freqindex; | 122 | int freqindex; |
123 | 123 | ||
124 | /* MPEG Audio Version */ | 124 | /* MPEG Audio Version */ |
125 | switch(header & VERSION_MASK) { | 125 | switch((header & VERSION_MASK) >> 19) { |
126 | case 0: | 126 | case 0: |
127 | /* MPEG version 2.5 is not an official standard */ | 127 | /* MPEG version 2.5 is not an official standard */ |
128 | info->version = MPEG_VERSION2_5; | 128 | info->version = MPEG_VERSION2_5; |
129 | bittable = MPEG_VERSION2 - 1; /* use the V2 bit rate table */ | 129 | bittable = MPEG_VERSION2 - 1; /* use the V2 bit rate table */ |
130 | break; | 130 | break; |
131 | 131 | ||
132 | case (1L << 19): | 132 | case 1: |
133 | return false; | 133 | return false; |
134 | 134 | ||
135 | case (2L << 19): | 135 | case 2: |
136 | /* MPEG version 2 (ISO/IEC 13818-3) */ | 136 | /* MPEG version 2 (ISO/IEC 13818-3) */ |
137 | info->version = MPEG_VERSION2; | 137 | info->version = MPEG_VERSION2; |
138 | bittable = MPEG_VERSION2 - 1; | 138 | bittable = MPEG_VERSION2 - 1; |
139 | break; | 139 | break; |
140 | 140 | ||
141 | case (3L << 19): | 141 | case 3: |
142 | /* MPEG version 1 (ISO/IEC 11172-3) */ | 142 | /* MPEG version 1 (ISO/IEC 11172-3) */ |
143 | info->version = MPEG_VERSION1; | 143 | info->version = MPEG_VERSION1; |
144 | bittable = MPEG_VERSION1 - 1; | 144 | bittable = MPEG_VERSION1 - 1; |
145 | break; | 145 | break; |
146 | } | 146 | } |
147 | 147 | ||
148 | switch(header & LAYER_MASK) { | 148 | switch((header & LAYER_MASK) >> 17) { |
149 | case 0: | 149 | case 0: |
150 | return false; | 150 | return false; |
151 | case (1L << 17): | 151 | case 1: |
152 | info->layer = 2; | 152 | info->layer = 2; |
153 | break; | 153 | break; |
154 | case (2L << 17): | 154 | case 2: |
155 | info->layer = 1; | 155 | info->layer = 1; |
156 | break; | 156 | break; |
157 | case (3L << 17): | 157 | case 3: |
158 | info->layer = 0; | 158 | info->layer = 0; |
159 | break; | 159 | break; |
160 | } | 160 | } |
@@ -174,7 +174,7 @@ static bool mp3headerinfo(struct mp3info *info, unsigned long header) | |||
174 | return false; | 174 | return false; |
175 | 175 | ||
176 | info->padding = (header & 0x0200)?1:0; | 176 | info->padding = (header & 0x0200)?1:0; |
177 | 177 | ||
178 | /* Calculate number of bytes, calculation depends on layer */ | 178 | /* Calculate number of bytes, calculation depends on layer */ |
179 | switch(info->layer) { | 179 | switch(info->layer) { |
180 | case 0: | 180 | case 0: |