g_free (subparse->state.current_language);
subparse->state.current_language = NULL;
}
+
+ g_mutex_clear (&subparse->seek_lock);
#endif
GST_CALL_PARENT (G_OBJECT_CLASS, dispose, (object));
}
subparse->state.language_list = NULL;
subparse->state.current_language = NULL;
subparse->state.langlist_msg_posted = FALSE;
+
+ g_mutex_init (&subparse->seek_lock);
#endif
}
goto beach;
}
+#ifdef TIZEN_FEATURE_SUBPARSE_MODIFICATION
+ g_mutex_lock (&self->seek_lock);
+#endif
/* Convert that seek to a seeking in bytes at position 0,
FIXME: could use an index */
ret = gst_pad_push_event (self->sinkpad,
GST_DEBUG_OBJECT (self, "segment after seek: %" GST_SEGMENT_FORMAT,
&self->segment);
- self->need_segment = TRUE;
} else {
GST_WARNING_OBJECT (self, "seek to 0 bytes failed");
}
+#ifdef TIZEN_FEATURE_SUBPARSE_MODIFICATION
+ g_mutex_unlock (&self->seek_lock);
+#endif
+
gst_event_unref (event);
break;
}
* it received via its video pads instead, so all is fine then too) */
ret = TRUE;
gst_event_unref (event);
+ /* in either case, let's not simply discard this event;
+ * trigger sending of the saved requested seek segment
+ * or the one taken here from upstream */
+#ifdef TIZEN_FEATURE_SUBPARSE_MODIFICATION
+ g_mutex_lock (&self->seek_lock);
+ self->need_segment = TRUE; /* upstream */
+ g_mutex_unlock (&self->seek_lock);
+#else
+ self->need_segment = TRUE; /* upstream */
+#endif
+
break;
}
case GST_EVENT_FLUSH_START: