videoencoder: Handle all matching force-keyunit events at once
authorSebastian Dröge <sebastian@centricular.com>
Wed, 3 Jun 2020 17:17:06 +0000 (20:17 +0300)
committerGStreamer Merge Bot <gitlab-merge-bot@gstreamer-foundation.org>
Fri, 5 Jun 2020 10:04:43 +0000 (10:04 +0000)
commit401d56a6a749be2e1594aebcfa50a316bdec157e
tree31b3780b027baa5ea10dc288ed340f41186bed2e
parent9b1f1f431a28bc38c5370c363308cd40d4b8af24
videoencoder: Handle all matching force-keyunit events at once

Previously we only handled one event at a time, which could lead to the
following two suboptimal situations:
- frame 0 at 20ms, frame 1 at 40ms and two force-keyunit events at 10ms
  and 15ms. We would create a new keyframe for both of the frames.
- 100 force-keyunit events with running-time NONE would cause all
  following 100 frames to be made into a keyframe.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/684>
gst-libs/gst/video/gstvideoencoder.c