From bcef106f73c0a27620c240a3db8315947ee83eb9 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Sebastian=20Dr=C3=B6ge?= Date: Wed, 25 Apr 2012 13:52:51 +0200 Subject: [PATCH] video: Fix latency query handling if the element's own max_latency is GST_CLOCK_TIME_NONE --- gst-libs/gst/video/gstvideodecoder.c | 4 +++- gst-libs/gst/video/gstvideoencoder.c | 6 ++++-- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/gst-libs/gst/video/gstvideodecoder.c b/gst-libs/gst/video/gstvideodecoder.c index 1a5a016..808e7ac 100644 --- a/gst-libs/gst/video/gstvideodecoder.c +++ b/gst-libs/gst/video/gstvideodecoder.c @@ -1169,7 +1169,9 @@ gst_video_decoder_src_query (GstPad * pad, GstObject * parent, GstQuery * query) GST_OBJECT_LOCK (dec); min_latency += dec->priv->min_latency; - if (max_latency != GST_CLOCK_TIME_NONE) { + if (dec->priv->max_latency == GST_CLOCK_TIME_NONE) { + max_latency = GST_CLOCK_TIME_NONE; + } else if (max_latency != GST_CLOCK_TIME_NONE) { max_latency += dec->priv->max_latency; } GST_OBJECT_UNLOCK (dec); diff --git a/gst-libs/gst/video/gstvideoencoder.c b/gst-libs/gst/video/gstvideoencoder.c index 67b426d..933fc6c 100644 --- a/gst-libs/gst/video/gstvideoencoder.c +++ b/gst-libs/gst/video/gstvideoencoder.c @@ -1043,8 +1043,10 @@ gst_video_encoder_src_query (GstPad * pad, GstObject * parent, GstQuery * query) GST_OBJECT_LOCK (enc); min_latency += priv->min_latency; - if (max_latency != GST_CLOCK_TIME_NONE) { - max_latency += priv->max_latency; + if (enc->priv->max_latency == GST_CLOCK_TIME_NONE) { + max_latency = GST_CLOCK_TIME_NONE; + } else if (max_latency != GST_CLOCK_TIME_NONE) { + max_latency += enc->priv->max_latency; } GST_OBJECT_UNLOCK (enc); -- 2.7.4