Go to:
Gentoo Home
Documentation
Forums
Lists
Bugs
Planet
Store
Wiki
Get Gentoo!
Gentoo's Bugzilla – Attachment 53186 Details for
Bug 84864
new gstreamer + plugins causes skip in muine
Home
|
New
–
[Ex]
|
Browse
|
Search
|
Privacy Policy
|
[?]
|
Reports
|
Requests
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
Patch to fix skipping.
gstreamer-0.8.9-interrupts-fix.patch (text/plain), 3.72 KB, created by
Peter Johanson (RETIRED)
on 2005-03-11 08:22:16 UTC
(
hide
)
Description:
Patch to fix skipping.
Filename:
MIME Type:
Creator:
Peter Johanson (RETIRED)
Created:
2005-03-11 08:22:16 UTC
Size:
3.72 KB
patch
obsolete
>--- gst/gstqueue.c 2005-02-02 13:14:12.000000000 -0500 >+++ /home/brandon/Desktop/gstqueue.c 2005-03-11 10:45:10.962018304 -0500 >@@ -474,6 +474,8 @@ > static void > gst_queue_locked_flush (GstQueue * queue) > { >+ GST_CAT_LOG_OBJECT (queue_dataflow, queue, "Flushing contents..."); >+ > while (!g_queue_is_empty (queue->queue)) { > GstData *data = g_queue_pop_head (queue->queue); > >@@ -569,7 +571,9 @@ > > if (GST_IS_BUFFER (data)) > GST_CAT_LOG_OBJECT (queue_dataflow, queue, >- "adding buffer %p of size %d", data, GST_BUFFER_SIZE (data)); >+ "adding buffer %p of size %d and time %" GST_TIME_FORMAT, >+ data, GST_BUFFER_SIZE (data), >+ GST_TIME_ARGS (GST_BUFFER_TIMESTAMP (data))); > > /* We make space available if we're "full" according to whatever > * the user defined as "full". Note that this only applies to buffers. >@@ -657,11 +661,11 @@ > GstScheduler *sched; > > GST_CAT_DEBUG_OBJECT (queue_dataflow, queue, "interrupted"); >- GST_QUEUE_MUTEX_UNLOCK; > sched = gst_pad_get_scheduler (queue->sinkpad); > if (!sched || gst_scheduler_interrupt (sched, GST_ELEMENT (queue))) { >- goto out_unref; >+ goto ignore_interrupt; > } >+ GST_QUEUE_MUTEX_UNLOCK; > /* if we got here because we were unlocked after a > * flush, we don't need to add the buffer to the > * queue again */ >@@ -693,6 +697,7 @@ > } > } > >+ ignore_interrupt: > /* OK, we've got a serious issue here. Imagine the situation > * where the puller (next element) is sending an event here, > * so it cannot pull events from the queue, and we cannot >@@ -701,9 +706,16 @@ > * that, we handle pending upstream events here, too. */ > gst_queue_handle_pending_events (queue); > >- STATUS (queue, "waiting for item_del signal from thread using qlock"); >- g_cond_wait (queue->item_del, queue->qlock); >- STATUS (queue, "received item_del signal from thread using qlock"); >+ if (!queue->interrupt) { >+ STATUS (queue, >+ "waiting for item_del signal from thread using qlock"); >+ g_cond_wait (queue->item_del, queue->qlock); >+ STATUS (queue, "received item_del signal from thread using qlock"); >+ } else { >+ GST_CAT_DEBUG_OBJECT (queue_dataflow, queue, >+ "Not waiting, just adding buffer, after interrupt (bad!)"); >+ break; >+ } > } > > STATUS (queue, "post-full wait"); >@@ -848,6 +860,9 @@ > queue->cur_level.bytes -= GST_BUFFER_SIZE (data); > if (GST_BUFFER_DURATION (data) != GST_CLOCK_TIME_NONE) > queue->cur_level.time -= GST_BUFFER_DURATION (data); >+ GST_CAT_LOG_OBJECT (queue_dataflow, queue, >+ "Got buffer of time %" GST_TIME_FORMAT, >+ GST_TIME_ARGS (GST_BUFFER_TIMESTAMP (data))); > } > > /* Now that we're done, we can lose our own reference to >@@ -947,6 +962,7 @@ > if (GST_EVENT_SEEK_FLAGS (event) & GST_SEEK_FLAG_FLUSH) { > gst_queue_locked_flush (queue); > } >+ break; > default: > break; > } >@@ -974,10 +990,16 @@ > /* FIXME: this code assumes that there's no discont in the queue */ > switch (*fmt) { > case GST_FORMAT_BYTES: >- *value -= queue->cur_level.bytes; >+ if (*value >= queue->cur_level.bytes) >+ *value -= queue->cur_level.bytes; >+ else >+ *value = 0; > break; > case GST_FORMAT_TIME: >- *value -= queue->cur_level.time; >+ if (*value >= queue->cur_level.time) >+ *value -= queue->cur_level.time; >+ else >+ *value = 0; > break; > default: > /* FIXME */
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
Attachments on
bug 84864
: 53186