mpeg4: fix size argument to gst_adapter_flush().
authorWind Yuan <feng.yuan@intel.com>
Fri, 12 Oct 2012 08:44:05 +0000 (16:44 +0800)
committerGwenole Beauchesne <gwenole.beauchesne@intel.com>
Mon, 17 Dec 2012 13:56:11 +0000 (14:56 +0100)
Flush only consumed_size bytes from the GstAdapter.

Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c

index f408cd6..012d446 100644 (file)
@@ -956,8 +956,8 @@ decode_buffer(GstVaapiDecoderMpeg4 *decoder, GstBuffer *buffer)
 
                 consumed_size = packet.offset + packet.size; 
                 pos += consumed_size; 
-                if (gst_adapter_available(priv->adapter) >= pos)
-                    gst_adapter_flush(priv->adapter, pos);
+                if (gst_adapter_available(priv->adapter) >= consumed_size)
+                    gst_adapter_flush(priv->adapter, consumed_size);
             }
             else {
                 GST_WARNING("decode h263 packet failed\n");
@@ -977,8 +977,8 @@ decode_buffer(GstVaapiDecoderMpeg4 *decoder, GstBuffer *buffer)
                 GST_VAAPI_DECODER_STATUS_ERROR_NO_DATA == status) {
                 consumed_size = packet.offset + packet.size - pos; 
                 pos = packet.offset + packet.size; 
-                if (gst_adapter_available(priv->adapter) >= pos)
-                    gst_adapter_flush(priv->adapter, pos);
+                if (gst_adapter_available(priv->adapter) >= consumed_size)
+                    gst_adapter_flush(priv->adapter, consumed_size);
             }
             else {
                 GST_WARNING("decode mp4 packet failed\n");