summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTim-Philipp Müller <tim@centricular.com>2018-03-27 16:51:30 +0100
committerTim-Philipp Müller <tim@centricular.com>2018-03-27 17:46:12 +0100
commit8528dd5f916745c8583f3647c83fdf7beea6344f (patch)
tree08edbb32e2d9a40f269b2c08aee160ca1b41a718
parent48f8f33155530ddcd2e36e86793a38f8d24db3f0 (diff)
downloadgstreamer-plugins-bad-8528dd5f916745c8583f3647c83fdf7beea6344f.tar.gz
rtponviftimestamp: fix state change function init/reset
When starting up we need to initialise things *before* streaming starts, so before we chain up to the parent class in the state change function. And when we shut down the element, we need to reset things after streaming has stopped, so after we chain up to the parent class in the state change function. Possibly related to memory leak in: https://bugzilla.gnome.org/show_bug.cgi?id=794353
-rw-r--r--gst/onvif/gstrtponviftimestamp.c18
1 files changed, 9 insertions, 9 deletions
diff --git a/gst/onvif/gstrtponviftimestamp.c b/gst/onvif/gstrtponviftimestamp.c
index a9574837a..81b57dbc3 100644
--- a/gst/onvif/gstrtponviftimestamp.c
+++ b/gst/onvif/gstrtponviftimestamp.c
@@ -185,9 +185,12 @@ gst_rtp_onvif_timestamp_change_state (GstElement * element,
GstStateChangeReturn ret;
switch (transition) {
- case GST_STATE_CHANGE_PAUSED_TO_READY:
- purge_cached_buffer_and_events (self);
- gst_segment_init (&self->segment, GST_FORMAT_UNDEFINED);
+ case GST_STATE_CHANGE_READY_TO_PAUSED:
+ self->ntp_offset = self->prop_ntp_offset;
+ GST_DEBUG_OBJECT (self, "ntp-offset: %" GST_TIME_FORMAT,
+ GST_TIME_ARGS (self->ntp_offset));
+ self->set_d_bit = TRUE;
+ self->set_e_bit = FALSE;
break;
default:
break;
@@ -200,12 +203,9 @@ gst_rtp_onvif_timestamp_change_state (GstElement * element,
return ret;
switch (transition) {
- case GST_STATE_CHANGE_READY_TO_PAUSED:
- self->ntp_offset = self->prop_ntp_offset;
- GST_DEBUG_OBJECT (self, "ntp-offset: %" GST_TIME_FORMAT,
- GST_TIME_ARGS (self->ntp_offset));
- self->set_d_bit = TRUE;
- self->set_e_bit = FALSE;
+ case GST_STATE_CHANGE_PAUSED_TO_READY:
+ purge_cached_buffer_and_events (self);
+ gst_segment_init (&self->segment, GST_FORMAT_UNDEFINED);
break;
default:
break;