From 214d0b087667889188534f5d3190bf547cebffbf Mon Sep 17 00:00:00 2001 From: Eunhye Choi Date: Wed, 8 Jan 2020 17:20:59 +0900 Subject: [PATCH] queue2: handle overwriting the current range correctly - resolve the range handle issue side issue of below upstream patch. https://gitlab.freedesktop.org/gstreamer/gstreamer/commit/b3802f7a9e7988901367196dd3dc45cf4053d850 and the new patch is under reviewing. https://gitlab.freedesktop.org/gstreamer/gstreamer/issues/208 Change-Id: Id368b546cb6fd40b29681c4111037c2913d9cd80 --- plugins/elements/gstqueue2.c | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/plugins/elements/gstqueue2.c b/plugins/elements/gstqueue2.c index d2722fd..8a59976 100644 --- a/plugins/elements/gstqueue2.c +++ b/plugins/elements/gstqueue2.c @@ -2064,8 +2064,10 @@ gst_queue2_create_write (GstQueue2 * queue, GstBuffer * buffer) guint64 range_data_start, range_data_end; GstQueue2Range *range_to_destroy = NULL; +#ifndef TIZEN_FEATURE_QUEUE2_MODIFICATION if (range == queue->current) goto next_range; +#endif range_data_start = range->rb_offset; range_data_end = range->rb_writing_pos; @@ -2089,7 +2091,11 @@ gst_queue2_create_write (GstQueue2 * queue, GstBuffer * buffer) goto next_range; if (new_writing_pos > range_data_start) { +#ifdef TIZEN_FEATURE_QUEUE2_MODIFICATION + if (new_writing_pos >= range_data_end && range != queue->current) { +#else if (new_writing_pos >= range_data_end) { +#endif GST_DEBUG_OBJECT (queue, "Removing range: offset %" G_GUINT64_FORMAT ", wpos %" G_GUINT64_FORMAT, range->offset, range->writing_pos); @@ -2114,7 +2120,12 @@ gst_queue2_create_write (GstQueue2 * queue, GstBuffer * buffer) if (new_wpos_virt <= range_data_start) goto next_range; +#ifdef TIZEN_FEATURE_QUEUE2_MODIFICATION + if (new_wpos_virt > rb_size && new_writing_pos >= range_data_end + && range != queue->current) { +#else if (new_wpos_virt > rb_size && new_writing_pos >= range_data_end) { +#endif GST_DEBUG_OBJECT (queue, "Removing range: offset %" G_GUINT64_FORMAT ", wpos %" G_GUINT64_FORMAT, range->offset, range->writing_pos); -- 2.7.4