qsvencoder: Fix for latency report when B-frame is enabled
authorSeungha Yang <seungha@centricular.com>
Fri, 8 Jul 2022 09:53:01 +0000 (18:53 +0900)
committerGStreamer Marge Bot <gitlab-merge-bot@gstreamer-foundation.org>
Fri, 8 Jul 2022 13:24:12 +0000 (13:24 +0000)
QSV runtime will introduce additional delay when B-frame is enabled

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2730>

subprojects/gst-plugins-bad/sys/qsv/gstqsvencoder.cpp

index f62f3c6..e3a6493 100644 (file)
@@ -1130,7 +1130,10 @@ gst_qsv_encoder_init_encode_session (GstQsvEncoder * self)
   }
 
   min_delay_frames = priv->task_pool->len;
-  max_delay_frames = priv->surface_pool->len + min_delay_frames;
+  /* takes the number of bframes into account */
+  if (param.mfx.GopRefDist > 1)
+    min_delay_frames += (param.mfx.GopRefDist - 1);
+  max_delay_frames = priv->surface_pool->len + priv->task_pool->len;
 
   min_latency = gst_util_uint64_scale (min_delay_frames * GST_SECOND,
       param.mfx.FrameInfo.FrameRateExtD, param.mfx.FrameInfo.FrameRateExtN);