Don't assume reading the duration field advances the buffer 12 bytes, instead check the return value and seek accordingly.  Improves (fixes?) seeking in sample submitted by Lear.

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@16595 a1c6a512-1295-4272-9138-f99709370657
diff --git a/apps/codecs/wma.c b/apps/codecs/wma.c
index a4a78c2..03b0006 100644
--- a/apps/codecs/wma.c
+++ b/apps/codecs/wma.c
@@ -389,6 +389,10 @@
     datap += 4;
     *duration = get_short_le(datap);
 
+    /*the get_timestamp function advances us 12-13 bytes past the packet start, 
+      need to undo this here so that we stay synced with the packet*/
+    ci->seek_buffer(ci->curpos-bytesread);
+
     return send_time;
 }
 
@@ -430,8 +434,6 @@
         }
 
         if ((time+duration>=ms && time<=ms) || count > 10) {
-            /*the get_timestamp function advances us 12 bytes past the packet start*/
-            ci->seek_buffer(ci->curpos-12);
             DEBUGF("Found our packet! Now at %d packet\n", packet_num);
             return time;
         } else {