decoder->priv->packetized = TRUE;
decoder->priv->needs_format = FALSE;
+ decoder->priv->min_latency = 0;
+ decoder->priv->max_latency = GST_CLOCK_TIME_NONE;
+
gst_video_decoder_reset (decoder, TRUE, TRUE);
}
GST_OBJECT_LOCK (dec);
min_latency += dec->priv->min_latency;
- if (dec->priv->max_latency == GST_CLOCK_TIME_NONE) {
- max_latency = GST_CLOCK_TIME_NONE;
- } else if (max_latency != GST_CLOCK_TIME_NONE) {
+ if (max_latency != GST_CLOCK_TIME_NONE
+ && dec->priv->max_latency != GST_CLOCK_TIME_NONE) {
max_latency += dec->priv->max_latency;
+ } else if (dec->priv->max_latency != GST_CLOCK_TIME_NONE) {
+ max_latency = dec->priv->max_latency;
}
GST_OBJECT_UNLOCK (dec);
priv->qos_frame_duration = 0;
GST_OBJECT_UNLOCK (decoder);
- priv->min_latency = 0;
- priv->max_latency = 0;
-
if (priv->tags)
gst_tag_list_unref (priv->tags);
priv->tags = NULL;
priv->tags = NULL;
priv->tags_changed = FALSE;
- priv->min_latency = 0;
- priv->max_latency = 0;
-
g_list_foreach (priv->headers, (GFunc) gst_event_unref, NULL);
g_list_free (priv->headers);
priv->headers = NULL;
priv->headers = NULL;
priv->new_headers = FALSE;
+ priv->min_latency = 0;
+ priv->max_latency = GST_CLOCK_TIME_NONE;
+
gst_video_encoder_reset (encoder, TRUE);
}
GST_OBJECT_LOCK (enc);
min_latency += priv->min_latency;
- if (enc->priv->max_latency == GST_CLOCK_TIME_NONE) {
- max_latency = GST_CLOCK_TIME_NONE;
- } else if (max_latency != GST_CLOCK_TIME_NONE) {
+ if (max_latency != GST_CLOCK_TIME_NONE
+ && enc->priv->max_latency != GST_CLOCK_TIME_NONE) {
max_latency += enc->priv->max_latency;
+ } else if (enc->priv->max_latency != GST_CLOCK_TIME_NONE) {
+ max_latency = enc->priv->max_latency;
}
GST_OBJECT_UNLOCK (enc);