diff options
author | Sebastian Dröge <sebastian@centricular.com> | 2017-05-11 19:21:22 +0200 |
---|---|---|
committer | Sebastian Dröge <sebastian@centricular.com> | 2017-05-11 19:21:22 +0200 |
commit | 10f46931634a2671551155398c3c20e158c126bb (patch) | |
tree | 744daa3a9272472500c0938daee3f9bedb39ca32 | |
parent | 63492ee141eb1e2ef611bb9bd00fd50cd40cff0a (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.c | 19 |
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 |