if (!gst_buffer_get_size (*buf) || !gst_buffer_map (*buf, &map, GST_MAP_READ))
return GST_FLOW_OK;
+ /* Need \0-terminator at the end */
+ if (map.data[map.size - 1] != '\0') {
+ newbuf = gst_buffer_new_and_alloc (map.size + 1);
+
+ /* Copy old buffer and add a 0 at the end */
+ gst_buffer_fill (newbuf, 0, map.data, map.size);
+ gst_buffer_memset (newbuf, map.size, 0, 1);
+ 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_unref (*buf);
+ *buf = newbuf;
+ gst_buffer_map (*buf, &map, GST_MAP_READ);
+ }
+
if (!sub_stream->invalid_utf8) {
if (g_utf8_validate ((gchar *) map.data, map.size - 1, NULL)) {
goto next;
gst_buffer_map (*buf, &map, GST_MAP_READ);
next:
- /* Need \0-terminator at the end */
- if (map.data[map.size - 1] != '\0') {
- newbuf = gst_buffer_new_and_alloc (map.size + 1);
-
- /* Copy old buffer and add a 0 at the end */
- gst_buffer_fill (newbuf, 0, map.data, map.size);
- gst_buffer_memset (newbuf, map.size, 0, 1);
- 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_unref (*buf);
- *buf = newbuf;
- gst_buffer_map (*buf, &map, GST_MAP_READ);
- }
if (sub_stream->check_markup) {
/* caps claim markup text, so we need to escape text,