summaryrefslogtreecommitdiff
path: root/gst
diff options
context:
space:
mode:
authorMichael Olbrich <m.olbrich@pengutronix.de>2013-10-14 16:14:42 +0200
committerOlivier CrĂȘte <olivier.crete@collabora.com>2014-06-03 14:59:30 -0400
commitc9ae275c7275e45fdfb4e1c33a7e319de473e0dc (patch)
treef172119b964536faa73df497830b32a1819bc113 /gst
parentdac4816823b8cf7eae60b13c3d3ac732464a4e38 (diff)
downloadgstreamer-plugins-bad-c9ae275c7275e45fdfb4e1c33a7e319de473e0dc.tar.gz
liveadder: handle gap buffer flag
Remove GAP flag unless both sides have gap data, ignore incoming data if it is gap data. https://bugzilla.gnome.org/show_bug.cgi?id=722397
Diffstat (limited to 'gst')
-rw-r--r--gst/liveadder/liveadder.c21
1 files changed, 12 insertions, 9 deletions
diff --git a/gst/liveadder/liveadder.c b/gst/liveadder/liveadder.c
index eed3f738f..1c3b7a0e0 100644
--- a/gst/liveadder/liveadder.c
+++ b/gst/liveadder/liveadder.c
@@ -1114,15 +1114,18 @@ gst_live_live_adder_chain (GstPad * pad, GstObject * parent, GstBuffer * buffer)
mix_duration = mix_end - mix_start;
- gst_buffer_map (oldbuffer, &oldmap, GST_MAP_WRITE);
- gst_buffer_map (buffer, &map, GST_MAP_READ);
- adder->func (oldmap.data +
- gst_live_adder_length_from_duration (adder, old_skip),
- map.data +
- gst_live_adder_length_from_duration (adder, skip),
- gst_live_adder_length_from_duration (adder, mix_duration));
- gst_buffer_unmap (oldbuffer, &oldmap);
- gst_buffer_unmap (buffer, &map);
+ if (!GST_BUFFER_FLAG_IS_SET (buffer, GST_BUFFER_FLAG_GAP)) {
+ GST_BUFFER_FLAG_UNSET (oldbuffer, GST_BUFFER_FLAG_GAP);
+ gst_buffer_map (oldbuffer, &oldmap, GST_MAP_WRITE);
+ gst_buffer_map (buffer, &map, GST_MAP_READ);
+ adder->func (oldmap.data +
+ gst_live_adder_length_from_duration (adder, old_skip),
+ map.data +
+ gst_live_adder_length_from_duration (adder, skip),
+ gst_live_adder_length_from_duration (adder, mix_duration));
+ gst_buffer_unmap (oldbuffer, &oldmap);
+ gst_buffer_unmap (buffer, &map);
+ }
skip += mix_duration;
}