summaryrefslogtreecommitdiffstats
path: root/gst
diff options
context:
space:
mode:
Diffstat (limited to 'gst')
-rw-r--r--gst/cdxaparse/gstcdxastrip.c9
-rw-r--r--gst/cdxaparse/gstvcdparse.c9
2 files changed, 14 insertions, 4 deletions
diff --git a/gst/cdxaparse/gstcdxastrip.c b/gst/cdxaparse/gstcdxastrip.c
index 312c3028..240f971f 100644
--- a/gst/cdxaparse/gstcdxastrip.c
+++ b/gst/cdxaparse/gstcdxastrip.c
@@ -353,9 +353,14 @@ gst_cdxastrip_chain (GstPad * pad, GstData * data)
buf = GST_BUFFER (data);
if (cdxa->cache) {
- buf = gst_buffer_join (cdxa->cache, buf);
+ GstBuffer *new = NULL;
+
+ new = gst_buffer_join (cdxa->cache, buf);
+ gst_buffer_unref (cdxa->cache);
+ cdxa->cache = NULL;
+ gst_buffer_unref (buf);
+ buf = new;
}
- cdxa->cache = NULL;
while (buf && GST_BUFFER_SIZE (buf) >= GST_CDXA_SECTOR_SIZE) {
/* sync */
diff --git a/gst/cdxaparse/gstvcdparse.c b/gst/cdxaparse/gstvcdparse.c
index 312c3028..240f971f 100644
--- a/gst/cdxaparse/gstvcdparse.c
+++ b/gst/cdxaparse/gstvcdparse.c
@@ -353,9 +353,14 @@ gst_cdxastrip_chain (GstPad * pad, GstData * data)
buf = GST_BUFFER (data);
if (cdxa->cache) {
- buf = gst_buffer_join (cdxa->cache, buf);
+ GstBuffer *new = NULL;
+
+ new = gst_buffer_join (cdxa->cache, buf);
+ gst_buffer_unref (cdxa->cache);
+ cdxa->cache = NULL;
+ gst_buffer_unref (buf);
+ buf = new;
}
- cdxa->cache = NULL;
while (buf && GST_BUFFER_SIZE (buf) >= GST_CDXA_SECTOR_SIZE) {
/* sync */