changeset 1668:778f078cda5a trunk

[svn] Partial sync with upstream.
author chainsaw
date Mon, 11 Sep 2006 13:15:31 -0700
parents 991fa4c7271d
children 07143b97314d
files ChangeLog Plugins/Input/wma/libffwma/wmadec.c
diffstat 2 files changed, 14 insertions(+), 3 deletions(-) [+]
line wrap: on
line diff
--- a/ChangeLog	Mon Sep 11 11:23:34 2006 -0700
+++ b/ChangeLog	Mon Sep 11 13:15:31 2006 -0700
@@ -1,3 +1,11 @@
+2006-09-11 18:23:34 +0000  
+  revision [2271]
+  fix a typo
+
+  Changes:        Modified:
+  +1 -1           trunk/configure.ac  
+
+
 2006-09-11 06:39:54 +0000  Yoshiki Yazawa <yaz@cc.rim.or.jp>
   revision [2269]
   - make fileinfo_recursive_get_image() breadth first search.
--- a/Plugins/Input/wma/libffwma/wmadec.c	Mon Sep 11 11:23:34 2006 -0700
+++ b/Plugins/Input/wma/libffwma/wmadec.c	Mon Sep 11 13:15:31 2006 -0700
@@ -278,7 +278,7 @@
     }
 
     bps = (float)s->bit_rate / (float)(s->nb_channels * s->sample_rate);
-    s->byte_offset_bits = av_log2((int)(bps * s->frame_len / 8.0)) + 2;
+    s->byte_offset_bits = av_log2((int)(bps * s->frame_len / 8.0 + 0.5)) + 2;
 
     /* compute high frequency value and choose if noise coding should
        be activated */
@@ -893,7 +893,10 @@
                     level = -level;
                 ptr += run;
                 if (ptr >= eptr)
-                    return -1;
+                {
+                    av_log(NULL, AV_LOG_ERROR, "overflow in spectral RLE, ignoring\n");
+                    break;
+                }
                 *ptr++ = level;
                 /* NOTE: EOB can be omitted */
                 if (ptr >= eptr)
@@ -1221,7 +1224,7 @@
                 goto fail;
             q = s->last_superframe + s->last_superframe_len;
             len = bit_offset;
-            while (len > 0) {
+            while (len > 7) {
                 *q++ = (get_bits)(&s->gb, 8);
                 len -= 8;
             }