mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2025-01-10 17:35:59 +00:00
basetransform: Avoid useless codepath
If QoS is disabled, skip the whole computation (avoids calculating values which won't be needed) Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3034>
This commit is contained in:
parent
3890e49772
commit
b2701418d7
1 changed files with 10 additions and 2 deletions
|
@ -2034,6 +2034,7 @@ default_submit_input_buffer (GstBaseTransform * trans, gboolean is_discont,
|
||||||
GstFlowReturn ret = GST_FLOW_OK;
|
GstFlowReturn ret = GST_FLOW_OK;
|
||||||
GstClockTime running_time;
|
GstClockTime running_time;
|
||||||
GstClockTime timestamp;
|
GstClockTime timestamp;
|
||||||
|
gboolean qos_enabled;
|
||||||
|
|
||||||
if (G_UNLIKELY (!gst_base_transform_reconfigure_unlocked (trans)))
|
if (G_UNLIKELY (!gst_base_transform_reconfigure_unlocked (trans)))
|
||||||
goto not_negotiated;
|
goto not_negotiated;
|
||||||
|
@ -2056,6 +2057,14 @@ default_submit_input_buffer (GstBaseTransform * trans, gboolean is_discont,
|
||||||
if (!priv->negotiated && !priv->passthrough && (bclass->set_caps != NULL))
|
if (!priv->negotiated && !priv->passthrough && (bclass->set_caps != NULL))
|
||||||
goto not_negotiated;
|
goto not_negotiated;
|
||||||
|
|
||||||
|
GST_OBJECT_LOCK (trans);
|
||||||
|
qos_enabled = priv->qos_enabled;
|
||||||
|
GST_OBJECT_UNLOCK (trans);
|
||||||
|
|
||||||
|
/* Skip all qos handling if disabled */
|
||||||
|
if (!qos_enabled)
|
||||||
|
goto no_qos;
|
||||||
|
|
||||||
/* can only do QoS if the segment is in TIME */
|
/* can only do QoS if the segment is in TIME */
|
||||||
if (trans->segment.format != GST_FORMAT_TIME)
|
if (trans->segment.format != GST_FORMAT_TIME)
|
||||||
goto no_qos;
|
goto no_qos;
|
||||||
|
@ -2077,8 +2086,7 @@ default_submit_input_buffer (GstBaseTransform * trans, gboolean is_discont,
|
||||||
proportion = priv->proportion;
|
proportion = priv->proportion;
|
||||||
/* check for QoS, don't perform conversion for buffers
|
/* check for QoS, don't perform conversion for buffers
|
||||||
* that are known to be late. */
|
* that are known to be late. */
|
||||||
need_skip = priv->qos_enabled &&
|
need_skip = earliest_time != -1 && running_time <= earliest_time;
|
||||||
earliest_time != -1 && running_time <= earliest_time;
|
|
||||||
GST_OBJECT_UNLOCK (trans);
|
GST_OBJECT_UNLOCK (trans);
|
||||||
|
|
||||||
if (need_skip) {
|
if (need_skip) {
|
||||||
|
|
Loading…
Reference in a new issue