[Bug 735859] videomixer: Dynamically changing the FPS leads to an incorrect buffer time

GStreamer (bugzilla.gnome.org) bugzilla at gnome.org
Tue Sep 2 22:14:16 PDT 2014


https://bugzilla.gnome.org/show_bug.cgi?id=735859
  GStreamer | gst-plugins-good | git

--- Comment #4 from Andrei Sarakeev <sarakusha at gmail.com> 2014-09-03 05:14:08 UTC ---
gst_videomixer2_collected(...)
...
output_end_time =
      mix->ts_offset + gst_util_uint64_scale_round (mix->nframes + 1,
      GST_SECOND * GST_VIDEO_INFO_FPS_D (&mix->info),
      GST_VIDEO_INFO_FPS_N (&mix->info)) + mix->segment.start;
...

Example:

99 frames with 50fps
buffer(99)->pts = 00:01.98
buffer(99)->duration = 00:00.02
output_end_time = 0 + (100 * 1 / 50) = 2 * GST_SECOND;

caps negotiation

100th frame with 25fps
buffer(100)->pts = 00:02.00
buffer(100)->duration = 00:00.04
output_end_time = 0 + (101 * 1 / 25) = 4 * GST_SECOND; !!!


log (transition form framerate=(fraction)5000/167 to framerate=(fraction)25/1):

0:00:30.248874047 videomixer2.c:422:gst_videomixer2_update_converters:<mixer>
The output format will now be : 12 with colorimetry : 1:1:0:0 and chroma :
(null)

0:00:30.249005301
videomixer2.c:461:gst_videomixer2_update_converters:<mixer:sink_0> This pad
will not need conversion

0:00:30.249024772
videomixer2.c:461:gst_videomixer2_update_converters:<mixer:sink_1> This pad
will not need conversion

0:00:30.249469775 videomixer2.c:1662:gst_videomixer2_src_setcaps:<mixer:src>
set src caps: video/x-raw, format=(string)BGRA, width=(int)400,
height=(int)336, pixel-aspect-ratio=(fraction)1/1,
interlace-mode=(string)progressive, colorimetry=(string)1:1:0:0,
framerate=(fraction)25/1

[* note]
0:00:30.262908570 videomixer2.c:878:gst_videomixer2_fill_queues:<mixer>
output_start_time 0:00:30.026600000, output_end_time 0:00:36.000000000

0:00:30.263004319 videomixer2.c:986:gst_videomixer2_fill_queues:<mixer:sink_0>
Taking new buffer with start time 0:00:30.030000000

0:00:30.263081632 videomixer2.c:986:gst_videomixer2_fill_queues:<mixer:sink_1>
Taking new buffer with start time 0:00:30.040000000

[** note]
0:00:30.275772139 videomixer2.c:878:gst_videomixer2_fill_queues:<mixer>
output_start_time 0:00:36.000000000, output_end_time 0:00:36.040000000

0:00:30.275855789 videomixer2.c:1007:gst_videomixer2_fill_queues:<mixer:sink_0>
Too old buffer -- dropping
0:00:30.275875036 videomixer2.c:1007:gst_videomixer2_fill_queues:<mixer:sink_1>
Too old buffer -- dropping

... Too old buffer -- dropping

-- 
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