mad: just flush data when seeing BADDATAPTR instead of going into error state
authorZaheer Merali <zaheerabbas@merali.org>
Thu, 19 Feb 2009 19:08:10 +0000 (19:08 +0000)
committerZaheer Merali <zaheerabbas@merali.org>
Thu, 19 Feb 2009 19:08:10 +0000 (19:08 +0000)
ext/mad/gstmad.c

index 59a6f262579a737c8579aeb7f74b984ade4661e9..0b78475d12f2727e0a945f4ac0757cb3dc0bfb87 100644 (file)
@@ -1392,6 +1392,7 @@ gst_mad_chain (GstPad * pad, GstBuffer * buffer)
         }
       }
 
+      GST_LOG ("sample rate %d", mad->frame.header.samplerate);
       GST_LOG ("decoding one frame now");
 
       if (mad_frame_decode (&mad->frame, &mad->stream) == -1) {
@@ -1408,6 +1409,9 @@ gst_mad_chain (GstPad * pad, GstBuffer * buffer)
             GST_LOG ("sync error, flushing unneeded data");
             goto next_no_samples;
           }
+        } else if (mad->stream.error == MAD_ERROR_BADDATAPTR) {
+          /* Flush data */
+          goto next_no_samples;
         }
         /* we are in an error state */
         mad->in_error = TRUE;