diff --git a/gst/equalizer/gstiirequalizer.c b/gst/equalizer/gstiirequalizer.c index 53286df380..8c6d90d205 100644 --- a/gst/equalizer/gstiirequalizer.c +++ b/gst/equalizer/gstiirequalizer.c @@ -824,13 +824,6 @@ gst_iir_equalizer_transform_ip (GstBaseTransform * btrans, GstBuffer * buf) if (G_UNLIKELY (channels < 1 || equ->process == NULL)) return GST_FLOW_NOT_NEGOTIATED; - BANDS_LOCK (equ); - if (equ->need_new_coefficients) { - update_coefficients (equ); - set_passthrough (equ); - } - BANDS_UNLOCK (equ); - if (gst_base_transform_is_passthrough (btrans)) return GST_FLOW_OK; @@ -838,8 +831,23 @@ gst_iir_equalizer_transform_ip (GstBaseTransform * btrans, GstBuffer * buf) timestamp = gst_segment_to_stream_time (&btrans->segment, GST_FORMAT_TIME, timestamp); - if (GST_CLOCK_TIME_IS_VALID (timestamp)) + if (GST_CLOCK_TIME_IS_VALID (timestamp)) { + GstIirEqualizerBand **filters = equ->bands; + guint f, nf = equ->freq_band_count; + gst_object_sync_values (GST_OBJECT (equ), timestamp); + /* sync values for bands too */ + for (f = 0; f < nf; f++) { + gst_object_sync_values (GST_OBJECT (filters[f]), timestamp); + } + } + + BANDS_LOCK (equ); + if (equ->need_new_coefficients) { + update_coefficients (equ); + set_passthrough (equ); + } + BANDS_UNLOCK (equ); data = gst_buffer_map (buf, &size, NULL, GST_MAP_WRITE); equ->process (equ, data, size, channels); diff --git a/gst/matroska/matroska-ids.c b/gst/matroska/matroska-ids.c index 5bed5e6dd3..8e6239594a 100644 --- a/gst/matroska/matroska-ids.c +++ b/gst/matroska/matroska-ids.c @@ -107,6 +107,7 @@ gst_matroska_track_init_subtitle_context (GstMatroskaTrackContext ** p_context) (*p_context)->type = GST_MATROSKA_TRACK_TYPE_SUBTITLE; subtitle_context->invalid_utf8 = FALSE; + subtitle_context->seen_markup_tag = FALSE; return TRUE; }