From 10f46931634a2671551155398c3c20e158c126bb Mon Sep 17 00:00:00 2001 From: =?utf8?q?Sebastian=20Dr=C3=B6ge?= Date: Thu, 11 May 2017 19:21:22 +0200 Subject: [PATCH] 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. --- gst/isomp4/gstqtmux.c | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/gst/isomp4/gstqtmux.c b/gst/isomp4/gstqtmux.c index c9fab7c..267d3d8 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 -- 2.7.4