[Bug 744096] compositor, videoaggregator: ignores input timestamps if input buffers have no duration

GStreamer (bugzilla.gnome.org) bugzilla at gnome.org
Sun Feb 8 17:05:25 PST 2015


https://bugzilla.gnome.org/show_bug.cgi?id=744096
  GStreamer | gst-plugins-bad | git master

Matthew Waters <ystreet00> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |ystreet00 at gmail.com

--- Comment #4 from Matthew Waters <ystreet00 at gmail.com> 2015-02-09 01:02:33 UTC ---
(In reply to comment #3)
> Review of attachment 296379 [details]:
> 
> I think independent of this, videoaggregator should also not do any
> calculations with the framerate at all. It's never going to give useful
> results.

How do you calculate output buffer start/duration then?

> Also we probably need different behaviour for live than for non-live pipelines
> (if input durations are -1). In live pipelines you want to take the newest
> buffer that is available and does not start after the end time of the output
> buffer, even if you didn't receive any newer buffers to be able to calculate
> the duration of the previous buffer.

So you want to put the latest buffer into the output buffer.  The only way you
can reliably do that is by waiting until you get a newer buffer on the sink pad
that is ahead of the end time or wait until the timeout runs out.

> In non-live pipelines you always want to
> wait until the next buffer so you know the duration of the previous one and
> know which of the two to place into the current output buffer.

How do you choose which buffer for the non-live case?  The buffer closest to
the start? end? middle? random? of the output buffer's timespan.

> ::: gst-libs/gst/video/gstvideoaggregator.c
> @@ +1002,2 @@
>        if (end_time == -1) {
> +        if (start_time > output_end_time) {
> 
> output_end_time is in rnning time, start_time a buffer timestamp. That seems
> not ideal to compare :)

It's what all the other time comparisons do in that function...

-- 
Configure bugmail: https://bugzilla.gnome.org/userprefs.cgi?tab=email
------- 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