ext/vorbis/vorbisdec.c: Correctly flush decoder samples even if we could not copy...
authorWim Taymans <wim.taymans@gmail.com>
Mon, 24 Oct 2005 17:40:37 +0000 (17:40 +0000)
committerWim Taymans <wim.taymans@gmail.com>
Mon, 24 Oct 2005 17:40:37 +0000 (17:40 +0000)
Original commit message from CVS:
* ext/vorbis/vorbisdec.c: (vorbis_handle_data_packet):
Correctly flush decoder samples even if we could not
copy them to an output buffer. Fixes #319618.

ChangeLog
ext/vorbis/vorbisdec.c

index d827777..3f6d863 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2005-10-24  Wim Taymans  <wim@fluendo.com>
+
+       * ext/vorbis/vorbisdec.c: (vorbis_handle_data_packet):
+       Correctly flush decoder samples even if we could not
+       copy them to an output buffer. Fixes #319618.
+
 2005-10-24  Julien MOUTTE  <julien@moutte.net>
 
        * sys/ximage/ximagesink.c: (gst_ximagesink_setcaps):
index 73c0ecb..c6f934b 100644 (file)
@@ -810,11 +810,11 @@ vorbis_handle_data_packet (GstVorbisDec * vd, ogg_packet * packet)
   if (vd->granulepos != -1)
     vd->granulepos += sample_count;
 
-  vorbis_synthesis_read (&vd->vd, sample_count);
-
   result = vorbis_dec_push (vd, out);
 
 done:
+  vorbis_synthesis_read (&vd->vd, sample_count);
+
   /* granulepos is the last sample in the packet */
   if (packet->granulepos != -1)
     vd->granulepos = packet->granulepos;