schrodec: Fix resync bug due to adapter API change
authorDavid Schleef <ds@schleef.org>
Thu, 17 Sep 2009 23:54:57 +0000 (16:54 -0700)
committerDavid Schleef <ds@schleef.org>
Fri, 18 Sep 2009 00:03:41 +0000 (17:03 -0700)
gst_adapter_masked_scan_uint32() changed slightly from when
this element was in Schroedinger.  Oops.

ext/schroedinger/gstschrodec.c

index 1dcca7a..9284810 100644 (file)
@@ -545,6 +545,7 @@ gst_schro_dec_scan_for_sync (GstBaseVideoDecoder * base_video_decoder,
 {
   GstAdapter *adapter = base_video_decoder->input_adapter;
   int n_available;
+  int ret;
 
   n_available = gst_adapter_available (adapter) - offset;
 
@@ -556,10 +557,14 @@ gst_schro_dec_scan_for_sync (GstBaseVideoDecoder * base_video_decoder,
     }
   }
 
-  n_available -= 3;
+  n = MIN (n, n_available - 3);
 
-  return gst_adapter_masked_scan_uint32 (adapter, 0xffffffff, 0x42424344,
-      offset, MIN (n, n_available - 3));
+  ret = gst_adapter_masked_scan_uint32 (adapter, 0xffffffff, 0x42424344,
+      offset, n);
+  if (ret == -1) {
+    return n;
+  }
+  return ret;
 }