Module: wine Branch: master Commit: 89d4e14c0a87cae4b2a92013db7f7890f075f30f URL: http://source.winehq.org/git/wine.git/?a=commit;h=89d4e14c0a87cae4b2a92013db...
Author: Bruno Jesus 00cpxxx@gmail.com Date: Tue Nov 22 04:14:59 2016 -0200
quartz: Take MP3 padding bit into account when calculating the block size.
Signed-off-by: Bruno Jesus 00cpxxx@gmail.com Signed-off-by: Andrew Eikum aeikum@codeweavers.com Signed-off-by: Alexandre Julliard julliard@winehq.org
---
dlls/quartz/mpegsplit.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-)
diff --git a/dlls/quartz/mpegsplit.c b/dlls/quartz/mpegsplit.c index 8d42bd8..41221d4 100644 --- a/dlls/quartz/mpegsplit.c +++ b/dlls/quartz/mpegsplit.c @@ -367,6 +367,7 @@ static HRESULT MPEGSplitter_init_audio(MPEGSplitterImpl *This, const BYTE *heade int freq_index; int mode_ext; int emphasis; + int padding; int lsf = 1; int mpeg1; int layer; @@ -391,6 +392,7 @@ static HRESULT MPEGSplitter_init_audio(MPEGSplitterImpl *This, const BYTE *heade
layer = 4-((header[1]>>1)&0x3); bitrate_index = ((header[2]>>4)&0xf); + padding = ((header[2]>>1)&0x1); freq_index = ((header[2]>>2)&0x3) + (mpeg1?(lsf*3):6); mode = ((header[3]>>6)&0x3); mode_ext = ((header[3]>>4)&0x3); @@ -419,12 +421,12 @@ static HRESULT MPEGSplitter_init_audio(MPEGSplitterImpl *This, const BYTE *heade
if (layer == 3) format->nBlockAlign = format->nAvgBytesPerSec * 8 * 144 / - (format->nSamplesPerSec<<lsf) + 1; + (format->nSamplesPerSec<<lsf) + padding; else if (layer == 2) format->nBlockAlign = format->nAvgBytesPerSec * 8 * 144 / - format->nSamplesPerSec + 1; + format->nSamplesPerSec + padding; else - format->nBlockAlign = 4 * (format->nAvgBytesPerSec * 8 * 12 / format->nSamplesPerSec + 1); + format->nBlockAlign = 4 * (format->nAvgBytesPerSec * 8 * 12 / format->nSamplesPerSec + padding);
format->wBitsPerSample = 0;