Bruno Jesus : quartz: Take MP3 padding bit into account when calculating the block size.

Alexandre Julliard julliard at winehq.org
Tue Nov 22 16:34:01 CST 2016


Module: wine
Branch: master
Commit: 89d4e14c0a87cae4b2a92013db7f7890f075f30f
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=89d4e14c0a87cae4b2a92013db7f7890f075f30f

Author: Bruno Jesus <00cpxxx at 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 at gmail.com>
Signed-off-by: Andrew Eikum <aeikum at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at 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;
 




More information about the wine-cvs mailing list