GNOME Bugzilla – Bug 657941
deinterlace: send QoS messages when dropping a frame
Last modified: 2012-06-12 14:53:48 UTC
send QoS messages when dropping a frame
Created attachment 195391 [details] [review] deinterlace: send QoS messages when dropping a frame
I tried backporting this to good plugins 0.10.29 where it applies minus last two hunks in gst_deinterlace_do_qos but it segfaults like this: Program received signal SIGSEGV, Segmentation fault.
+ Trace 228319
Thread 3074423664 (LWP 1600)
That would imply the buffer is either not a buffer, or was already disposed. When you say the last two hunks did not apply, did you apply them by hand ? I tested the patch by randomly fiddling with the timestamp so the code would arbitrarily drop random frames and did not get a crash. If you can double check the two hunks are applied, can you please give me the gstdeinterlace.c file you have ? There might be lifetime changes in deinterlace between our versions :/
Created attachment 195465 [details] Patched deinterlace 0.10.29. No, it seems last two hunks are not really applicable so them not applying looked like a non-issue. But maybe I am mistaking, please have a look.
Right, one of the calls to _do_qos is still passing a GstClockTime instead of a const GstBuffer*, this hunk appears to not have been applied: @@ -1869,7 +1888,7 @@ restart: } /* Check if we need to drop the frame because of QoS */ - if (!gst_deinterlace_do_qos (self, GST_BUFFER_TIMESTAMP (buf))) { + if (!gst_deinterlace_do_qos (self, buf)) { self->cur_field_idx--; gst_buffer_unref (gst_deinterlace_pop_history (self)); gst_buffer_unref (outbuf); Alternatively, if you post the original gstdeinterlace.[hc] you're using, I can post back a patched version, since the code seems to have changed a fair bit between our versions.
Doh, sorry, this is what happens when you try to shuffle to many thing at the same time. I assumed code is not there because in the patch last two hunks have no function names so I assumed they were parts of a much grown gst_deinterlace_do_qos. I am rebuilding a fixed version and will let you know how it fares.
This works fine now, I even see QOS messages originating from deinterlace being sent.
Great! Please note that I'm not done checking through the elements that might need changing, I'm now looking at the starting-before-the-source issue, which is higher priority, and will get back to QoS later. Cheers
Can this be upstreamed please?
It still applies! :) FWI, there's some cleanup/factoring that's been waiting for a while as well on https://bugzilla.gnome.org/show_bug.cgi?id=658241 about the QoS API. commit bdcf532a942b9806d3c9293062549eed62937d21 Author: Vincent Penquerc'h <vincent.penquerch@collabora.co.uk> Date: Thu Sep 1 15:41:26 2011 +0100 deinterlace: send QoS messages when dropping a frame https://bugzilla.gnome.org/show_bug.cgi?id=657941 Also pushed on master, though deinterlace isn't ported yet.