if (version == 1 && layer == 1)
frames = 384;
- else if (version == 2 && layer == 1 && spec->info.rate < 32000)
+ else if (version == 2 && layer == 1 && spec->info.rate <= 12000)
frames = 768;
- else if (version == 2 && layer == 2 && spec->info.rate < 32000)
+ else if (version == 2 && layer == 2 && spec->info.rate <= 12000)
frames = 2304;
- else
+ else {
+ /* MPEG-1 layer 2,3, MPEG-2 with or without extension,
+ * MPEG-2 layer 3 low sample freq. */
frames = 1152;
+ }
return frames * 4;
}
if (version == 1 && layer == 1)
dst[five] = 0x04;
else if ((version == 1 && (layer == 2 || layer == 3)) ||
- (version == 2 && spec->info.rate >= 32000))
+ (version == 2 && spec->info.rate >= 12000))
dst[five] = 0x05;
- else if (version == 2 && layer == 1 && spec->info.rate < 32000)
+ else if (version == 2 && layer == 1 && spec->info.rate < 12000)
dst[five] = 0x08;
- else if (version == 2 && layer == 2 && spec->info.rate < 32000)
+ else if (version == 2 && layer == 2 && spec->info.rate < 12000)
dst[five] = 0x09;
- else if (version == 2 && layer == 3 && spec->info.rate < 32000)
+ else if (version == 2 && layer == 3 && spec->info.rate < 12000)
dst[five] = 0x0A;
else
g_return_val_if_reached (FALSE);