Author: titmuss
Date: Tue Jan  6 10:00:25 2009
New Revision: 3700

URL: http://svn.slimdevices.com?rev=3700&root=Jive&view=rev
Log:
 r3...@harrypotter (orig r3699):  titmuss | 2009-01-06 17:59:13 +0000
  r3...@harrypotter (orig r3697):  titmuss | 2009-01-06 17:38:27 +0000
  Bug: 10542
  Description:
  Updated flac patch from Josh Coalson.
  
  
  r3...@harrypotter (orig r3698):  titmuss | 2009-01-06 17:44:03 +0000
  Bug: 10542
  Description:
  Updated flac patch from Josh Coalson.
  
  
 

Added:
    
7.4/branches/pango/squeezeos/poky/meta-squeezeos/packages/flac/flac-1.2.1/bitreader-1.2.1.patch
   (with props)
Removed:
    
7.4/branches/pango/squeezeos/poky/meta-squeezeos/packages/flac/flac-1.2.1/bitreader.patch
Modified:
    7.4/branches/pango/   (props changed)
    7.4/branches/pango/squeezeos/poky/meta-squeezeos/packages/flac/flac_1.2.1.bb
    7.4/branches/pango/squeezeplay/src/flac-1.2.1/src/libFLAC/bitreader.c
    
7.4/branches/pango/squeezeplay/src/flac-1.2.1/src/libFLAC/ia32/bitreader_asm.nasm

Propchange: 7.4/branches/pango/
------------------------------------------------------------------------------
--- svk:merge (original)
+++ svk:merge Tue Jan  6 10:00:25 2009
@@ -3,8 +3,8 @@
 bbe22326-0783-4b3a-ac2b-7ab96b24c8d9:/7.1/trunk:2920
 bbe22326-0783-4b3a-ac2b-7ab96b24c8d9:/7.2/trunk:2921
 bbe22326-0783-4b3a-ac2b-7ab96b24c8d9:/7.3/private-branches/jive-refresh:3653
-bbe22326-0783-4b3a-ac2b-7ab96b24c8d9:/7.3/trunk:3692
-bbe22326-0783-4b3a-ac2b-7ab96b24c8d9:/7.4/trunk:3693
+bbe22326-0783-4b3a-ac2b-7ab96b24c8d9:/7.3/trunk:3698
+bbe22326-0783-4b3a-ac2b-7ab96b24c8d9:/7.4/trunk:3699
 bbe22326-0783-4b3a-ac2b-7ab96b24c8d9:/branches/7.0:2013
 bbe22326-0783-4b3a-ac2b-7ab96b24c8d9:/branches/SN:1083
 bbe22326-0783-4b3a-ac2b-7ab96b24c8d9:/branches/scrolling:1378

Added: 
7.4/branches/pango/squeezeos/poky/meta-squeezeos/packages/flac/flac-1.2.1/bitreader-1.2.1.patch
URL: 
http://svn.slimdevices.com/7.4/branches/pango/squeezeos/poky/meta-squeezeos/packages/flac/flac-1.2.1/bitreader-1.2.1.patch?rev=3700&root=Jive&view=auto
==============================================================================
--- 
7.4/branches/pango/squeezeos/poky/meta-squeezeos/packages/flac/flac-1.2.1/bitreader-1.2.1.patch
 (added)
+++ 
7.4/branches/pango/squeezeos/poky/meta-squeezeos/packages/flac/flac-1.2.1/bitreader-1.2.1.patch
 Tue Jan  6 10:00:25 2009
@@ -1,0 +1,116 @@
+diff -r -U5 flac-1.2.1/src/libFLAC/bitreader.c 
flac-1.2.1-fix/src/libFLAC/bitreader.c
+--- flac-1.2.1/src/libFLAC/bitreader.c 2007-09-10 21:48:55.000000000 -0700
++++ flac-1.2.1-fix/src/libFLAC/bitreader.c     2009-01-06 08:10:14.000000000 
-0800
+@@ -749,11 +749,11 @@
+                * this is a repeat of the above logic adjusted for the fact we
+                * don't have a whole word.  note though if the client is 
feeding
+                * us data a byte at a time (unlikely), br->consumed_bits may 
not
+                * be zero.
+                */
+-              if(br->bytes) {
++              if(br->bytes*8 > br->consumed_bits) {
+                       const unsigned end = br->bytes * 8;
+                       brword b = (br->buffer[br->consumed_words] & 
(FLAC__WORD_ALL_ONES << (FLAC__BITS_PER_WORD-end))) << br->consumed_bits;
+                       if(b) {
+                               i = COUNT_ZERO_MSBS(b);
+                               *val += i;
+@@ -762,11 +762,11 @@
+                               FLAC__ASSERT(br->consumed_bits < 
FLAC__BITS_PER_WORD);
+                               return true;
+                       }
+                       else {
+                               *val += end - br->consumed_bits;
+-                              br->consumed_bits += end;
++                              br->consumed_bits = end;
+                               FLAC__ASSERT(br->consumed_bits < 
FLAC__BITS_PER_WORD);
+                               /* didn't find stop bit yet, have to keep 
going... */
+                       }
+               }
+               if(!bitreader_read_from_client_(br))
+@@ -872,11 +872,11 @@
+                        * this is a repeat of the above logic adjusted for the 
fact we
+                        * don't have a whole word.  note though if the client 
is feeding
+                        * us data a byte at a time (unlikely), 
br->consumed_bits may not
+                        * be zero.
+                        */
+-                      if(br->bytes) {
++                      if(br->bytes*8 > cbits) {
+                               const unsigned end = br->bytes * 8;
+                               brword b = (br->buffer[cwords] & 
(FLAC__WORD_ALL_ONES << (FLAC__BITS_PER_WORD-end))) << cbits;
+                               if(b) {
+                                       i = COUNT_ZERO_MSBS(b);
+                                       uval += i;
+@@ -886,11 +886,11 @@
+                                       FLAC__ASSERT(cbits < 
FLAC__BITS_PER_WORD);
+                                       goto break1;
+                               }
+                               else {
+                                       uval += end - cbits;
+-                                      cbits += end;
++                                      cbits = end;
+                                       FLAC__ASSERT(cbits < 
FLAC__BITS_PER_WORD);
+                                       /* didn't find stop bit yet, have to 
keep going... */
+                               }
+                       }
+                       /* flush registers and read; 
bitreader_read_from_client_() does
+@@ -1055,11 +1055,11 @@
+                        * this is a repeat of the above logic adjusted for the 
fact we
+                        * don't have a whole word.  note though if the client 
is feeding
+                        * us data a byte at a time (unlikely), 
br->consumed_bits may not
+                        * be zero.
+                        */
+-                      if(br->bytes) {
++                      if(br->bytes*8 > cbits) {
+                               const unsigned end = br->bytes * 8;
+                               brword b = (br->buffer[cwords] & 
~(FLAC__WORD_ALL_ONES >> end)) << cbits;
+                               if(b) {
+                                       i = COUNT_ZERO_MSBS(b);
+                                       uval += i;
+@@ -1068,11 +1068,11 @@
+                                       FLAC__ASSERT(cbits < 
FLAC__BITS_PER_WORD);
+                                       goto break1;
+                               }
+                               else {
+                                       uval += end - cbits;
+-                                      cbits += end;
++                                      cbits = end;
+                                       FLAC__ASSERT(cbits < 
FLAC__BITS_PER_WORD);
+                                       /* didn't find stop bit yet, have to 
keep going... */
+                               }
+                       }
+                       /* flush registers and read; 
bitreader_read_from_client_() does
+diff -r -U5 flac-1.2.1/src/libFLAC/ia32/bitreader_asm.nasm 
flac-1.2.1-fix/src/libFLAC/ia32/bitreader_asm.nasm
+--- flac-1.2.1/src/libFLAC/ia32/bitreader_asm.nasm     2007-03-29 
17:54:53.000000000 -0700
++++ flac-1.2.1-fix/src/libFLAC/ia32/bitreader_asm.nasm 2009-01-06 
08:20:31.000000000 -0800
+@@ -270,14 +270,15 @@
+       ;; ecx          cbits
+       ;; esi          cwords
+       ;; edi          uval
+       ;; ebp          br
+       mov     edx, [ebp + 12]         ;     edx <- br->bytes
+-      test    edx, edx
+-      jz      .read1                  ;     if(br->bytes) {  [NOTE: this case 
is rare so it doesn't have to be all that fast ]
++      shl     edx, 3                  ;     edx <- br->bytes*8
++      cmp     edx, ecx
++      jbe     .read1                  ;     if(br->bytes*8 > cbits) {  [NOTE: 
this case is rare so it doesn't have to be all that fast ]
+       mov     ebx, [ebp]
+-      shl     edx, 3                  ;       edx <- const unsigned end = 
br->bytes * 8;
++                                      ;       edx <- const unsigned end = 
br->bytes * 8;
+       mov     eax, [ebx + 4*esi]      ;       b = br->buffer[cwords]
+       xchg    edx, ecx                ;       [edx <- cbits , ecx <- end]
+       mov     ebx, 0xffffffff         ;       ebx <- FLAC__WORD_ALL_ONES
+       shr     ebx, cl                 ;       ebx <- FLAC__WORD_ALL_ONES >> 
end
+       not     ebx                     ;       ebx <- ~(FLAC__WORD_ALL_ONES >> 
end)
+@@ -294,11 +295,11 @@
+       add     ecx, byte 1             ;         cbits++; /* skip over stop 
bit */
+       jmp     short .break1           ;         goto break1;
+ .c1_next3:                            ;       } else {
+       sub     edi, ecx
+       add     edi, edx                ;         uval += end - cbits;
+-      add     ecx, edx                ;         cbits += end
++      mov     ecx, edx                ;         cbits = end
+                                       ;         /* didn't find stop bit yet, 
have to keep going... */
+                                       ;       }
+                                       ;     }
+ .read1:
+       ; flush registers and read; bitreader_read_from_client_() does

Propchange: 
7.4/branches/pango/squeezeos/poky/meta-squeezeos/packages/flac/flac-1.2.1/bitreader-1.2.1.patch
------------------------------------------------------------------------------
    svn:executable = *

Modified: 
7.4/branches/pango/squeezeos/poky/meta-squeezeos/packages/flac/flac_1.2.1.bb
URL: 
http://svn.slimdevices.com/7.4/branches/pango/squeezeos/poky/meta-squeezeos/packages/flac/flac_1.2.1.bb?rev=3700&root=Jive&r1=3699&r2=3700&view=diff
==============================================================================
--- 
7.4/branches/pango/squeezeos/poky/meta-squeezeos/packages/flac/flac_1.2.1.bb 
(original)
+++ 
7.4/branches/pango/squeezeos/poky/meta-squeezeos/packages/flac/flac_1.2.1.bb 
Tue Jan  6 10:00:25 2009
@@ -2,10 +2,10 @@
 SECTION = "libs"
 LICENSE = "Xiph"
 
-PR = "r3"
+PR = "r4"
 
 SRC_URI="${SOURCEFORGE_MIRROR}/flac/flac-${PV}.tar.gz \
-        file://bitreader.patch;patch=1"
+        file://bitreader-1.2.1.patch;patch=1"
 
 S = "${WORKDIR}/flac-${PV}"
 

Modified: 7.4/branches/pango/squeezeplay/src/flac-1.2.1/src/libFLAC/bitreader.c
URL: 
http://svn.slimdevices.com/7.4/branches/pango/squeezeplay/src/flac-1.2.1/src/libFLAC/bitreader.c?rev=3700&root=Jive&r1=3699&r2=3700&view=diff
==============================================================================
--- 7.4/branches/pango/squeezeplay/src/flac-1.2.1/src/libFLAC/bitreader.c 
(original)
+++ 7.4/branches/pango/squeezeplay/src/flac-1.2.1/src/libFLAC/bitreader.c Tue 
Jan  6 10:00:25 2009
@@ -1057,7 +1057,7 @@
                         * us data a byte at a time (unlikely), 
br->consumed_bits may not
                         * be zero.
                         */
-                       if(br->bytes) {
+                       if(br->bytes*8 > cbits) {
                                const unsigned end = br->bytes * 8;
                                brword b = (br->buffer[cwords] & 
~(FLAC__WORD_ALL_ONES >> end)) << cbits;
                                if(b) {
@@ -1070,7 +1070,7 @@
                                }
                                else {
                                        uval += end - cbits;
-                                       cbits += end;
+                                       cbits = end;
                                        FLAC__ASSERT(cbits < 
FLAC__BITS_PER_WORD);
                                        /* didn't find stop bit yet, have to 
keep going... */
                                }

Modified: 
7.4/branches/pango/squeezeplay/src/flac-1.2.1/src/libFLAC/ia32/bitreader_asm.nasm
URL: 
http://svn.slimdevices.com/7.4/branches/pango/squeezeplay/src/flac-1.2.1/src/libFLAC/ia32/bitreader_asm.nasm?rev=3700&root=Jive&r1=3699&r2=3700&view=diff
==============================================================================
--- 
7.4/branches/pango/squeezeplay/src/flac-1.2.1/src/libFLAC/ia32/bitreader_asm.nasm
 (original)
+++ 
7.4/branches/pango/squeezeplay/src/flac-1.2.1/src/libFLAC/ia32/bitreader_asm.nasm
 Tue Jan  6 10:00:25 2009
@@ -272,10 +272,11 @@
        ;; edi          uval
        ;; ebp          br
        mov     edx, [ebp + 12]         ;     edx <- br->bytes
-       test    edx, edx
-       jz      .read1                  ;     if(br->bytes) {  [NOTE: this case 
is rare so it doesn't have to be all that fast ]
+       shl     edx, 3                  ;     edx <- br->bytes*8
+       cmp     edx, ecx
+       jbe     .read1                  ;     if(br->bytes*8 > cbits) {  [NOTE: 
this case is rare so it doesn't have to be all that fast ]
        mov     ebx, [ebp]
-       shl     edx, 3                  ;       edx <- const unsigned end = 
br->bytes * 8;
+                                       ;       edx <- const unsigned end = 
br->bytes * 8;
        mov     eax, [ebx + 4*esi]      ;       b = br->buffer[cwords]
        xchg    edx, ecx                ;       [edx <- cbits , ecx <- end]
        mov     ebx, 0xffffffff         ;       ebx <- FLAC__WORD_ALL_ONES
@@ -296,7 +297,7 @@
 .c1_next3:                             ;       } else {
        sub     edi, ecx
        add     edi, edx                ;         uval += end - cbits;
-       add     ecx, edx                ;         cbits += end
+       mov     ecx, edx                ;         cbits = end
                                        ;         /* didn't find stop bit yet, 
have to keep going... */
                                        ;       }
                                        ;     }

_______________________________________________
Jive-checkins mailing list
Jive-checkins@lists.slimdevices.com
http://lists.slimdevices.com/cgi-bin/mailman/listinfo/jive-checkins

Reply via email to