[Bug 797130] decklink: sometimes displays a flashed frame of a previously played sequence

GStreamer (GNOME Bugzilla) bugzilla at gnome.org
Wed Sep 12 10:14:42 UTC 2018


https://bugzilla.gnome.org/show_bug.cgi?id=797130

--- Comment #3 from Matthew Waters (ystreet00) <ystreet00 at gmail.com> ---
(In reply to Sebastian Dröge (slomo) from comment #2)
> Review of attachment 373616 [details] [review]:
> 
> Generally makes sense, just some comments. Also this code becomes constantly
> more complicated, that's annoying :)
> 
> ::: sys/decklink/gstdecklinkvideosink.cpp
> @@ +537,2 @@
>    clock = gst_element_get_clock (GST_ELEMENT_CAST (self));
> +  if (!clock || clock != self->output->clock) {
> 
> Are you sure this even works without a clock in PLAYING?

Well, the element doesn't allow no clock in playing so I don't think that
really applies.  The code doesn't actually sample from the external clock, only
from the internal clock which is not something I changed.

> @@ +618,3 @@
> +
> +  if (GST_CLOCK_TIME_IS_VALID (self->paused_start_time)) {
> +    /* only valid whil we're in PAUSED and most likely without a set clock,
> 
> missing 'e' in while :)
> 
> @@ +928,3 @@
> +      /* cause sometimes decklink stops without notifying us... */
> +      guint64 wait_time = g_get_monotonic_time () + G_TIME_SPAN_SECOND;
> +      g_cond_wait_until (&self->output->cond, &self->output->lock,
> wait_time);
> 
> Looks like this should get a separate commit?

Maybe, it mostly happens from a previous run that I interrupted (Ctrl-C)
without a clean shutdown where we won't get a notification normally through the
associated callback.

> @@ +956,3 @@
>    // Sample the clocks again to get the most accurate values
>    // after we started scheduled playback
> +  if (clock) {
> 
> And otherwise? We would still do calculations without a clock or not?

Overall calculations without a clock are also fine. It will simply take the
internal clock values and not offset from the timestamps provided.

-- 
You are receiving this mail because:
You are the QA Contact for the bug.
You are the assignee for the bug.


More information about the gstreamer-bugs mailing list