summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSebastian Dröge <sebastian@centricular.com>2017-05-11 19:21:22 +0200
committerSebastian Dröge <sebastian@centricular.com>2017-05-11 19:21:22 +0200
commit10f46931634a2671551155398c3c20e158c126bb (patch)
tree744daa3a9272472500c0938daee3f9bedb39ca32
parent63492ee141eb1e2ef611bb9bd00fd50cd40cff0a (diff)
qtmux: In prefill mode, only pad buffers with > 0 sized memories as needed
Adding a 0-byte memory has not much effect. Also add some debug output.
-rw-r--r--gst/isomp4/gstqtmux.c19
1 files changed, 12 insertions, 7 deletions
diff --git a/gst/isomp4/gstqtmux.c b/gst/isomp4/gstqtmux.c
index c9fab7c12..267d3d8fd 100644
--- a/gst/isomp4/gstqtmux.c
+++ b/gst/isomp4/gstqtmux.c
@@ -4096,13 +4096,18 @@ gst_qt_mux_add_buffer (GstQTMux * qtmux, GstQTPad * pad, GstBuffer * buf)
goto bail;
}
- mem = gst_allocator_alloc (NULL, fill_size, NULL);
- gst_memory_map (mem, &map, GST_MAP_WRITE);
- memset (map.data, 0, map.size);
- gst_memory_unmap (mem, &map);
- last_buf = gst_buffer_make_writable (last_buf);
- gst_buffer_append_memory (last_buf, mem);
- buffer_size = required_buffer_size;
+ if (fill_size > 0) {
+ GST_DEBUG_OBJECT (qtmux,
+ "Padding buffer by %u bytes to reach required %u bytes", fill_size,
+ required_buffer_size);
+ mem = gst_allocator_alloc (NULL, fill_size, NULL);
+ gst_memory_map (mem, &map, GST_MAP_WRITE);
+ memset (map.data, 0, map.size);
+ gst_memory_unmap (mem, &map);
+ last_buf = gst_buffer_make_writable (last_buf);
+ gst_buffer_append_memory (last_buf, mem);
+ buffer_size = required_buffer_size;
+ }
}
/* duration actually means time delta between samples, so we calculate