GstBuffer *newbuf;
gchar *utf8;
GstMapInfo map;
+ gboolean needs_unmap = TRUE;
sub_stream = (GstMatroskaTrackSubtitleContext *) stream;
utf8 = g_strdup ("invalid subtitle");
newbuf = gst_buffer_new_wrapped (utf8, strlen (utf8));
+ gst_buffer_unmap (*buf, &map);
gst_buffer_copy_into (newbuf, *buf,
GST_BUFFER_COPY_TIMESTAMPS | GST_BUFFER_COPY_FLAGS | GST_BUFFER_COPY_META,
0, -1);
- gst_buffer_unmap (*buf, &map);
gst_buffer_unref (*buf);
*buf = newbuf;
utf8 = g_markup_escape_text ((gchar *) map.data, map.size);
newbuf = gst_buffer_new_wrapped (utf8, strlen (utf8));
+ gst_buffer_unmap (*buf, &map);
gst_buffer_copy_into (newbuf, *buf,
GST_BUFFER_COPY_TIMESTAMPS | GST_BUFFER_COPY_FLAGS |
GST_BUFFER_COPY_META, 0, -1);
- gst_buffer_unmap (*buf, &map);
gst_buffer_unref (*buf);
*buf = newbuf;
+ needs_unmap = FALSE;
}
}
+ if (needs_unmap)
+ gst_buffer_unmap (*buf, &map);
+
return GST_FLOW_OK;
}