plugins/elements/gstqueue.*: In queue, when EOS is received, if minimum threshold...
authorTommi Myöhänen <ext-tommi.myohanen@nokia.com>
Wed, 29 Mar 2006 11:02:33 +0000 (11:02 +0000)
committerWim Taymans <wim.taymans@gmail.com>
Wed, 29 Mar 2006 11:02:33 +0000 (11:02 +0000)
commit92064c7169e877708427f99e2b994e68f29157c7
tree449856883fad9c4a0f0e6904f6e705d1906a146b
parent30ae52d1b98a9e9a2e6f5cc0a0129a2ec4c5e52a
plugins/elements/gstqueue.*: In queue, when EOS is received, if minimum threshold > max_size - current_level, there i...

Original commit message from CVS:
Patch by Tommi Myöhänen <ext-tommi dot myohanen at nokia dot com>
* plugins/elements/gstqueue.c: (gst_queue_init),
(gst_queue_locked_flush), (gst_queue_handle_sink_event),
(gst_queue_set_property):
* plugins/elements/gstqueue.h:
In queue, when EOS is received, if minimum threshold > max_size -
current_level, there is chance that queue blocks forever in conditional item
del wait. This is because the queue is not emptied completely due to minimum
threshold.
Here is another approach. Instead of setting cur_levels to max in EOS, just
zero all minimum threshold levels. This should make sure that queue gives out
all data. When going to READY (stop) state, just reset the original minimum
threshold levels.
Fixes #336336.
ChangeLog
plugins/elements/gstqueue.c
plugins/elements/gstqueue.h