static GstStateChangeReturn gst_goo_encpcm_state_change (GstElement* element, GstStateChange transition) { g_assert (GST_IS_GOO_ENCPCM (element)); GstGooEncPcm* self = GST_GOO_ENCPCM (element); GstStateChangeReturn ret; switch (transition) { case GST_STATE_CHANGE_READY_TO_PAUSED: GST_DEBUG_OBJECT (self, "GST_STATE_CHANGE_READY_TO_PAUSED"); self->rate = 0; self->channels = 0; self->ts = 0; self->outcount = 0; gst_goo_adapter_clear (self->adapter); break; default: break; } ret = GST_ELEMENT_CLASS (parent_class)->change_state (element, transition); switch (transition) { case GST_STATE_CHANGE_PLAYING_TO_PAUSED: GST_OBJECT_LOCK (self); goo_component_set_state_pause (self->component); GST_OBJECT_UNLOCK (self); break; case GST_STATE_CHANGE_PAUSED_TO_READY: break; case GST_STATE_CHANGE_READY_TO_NULL: omx_stop (self); break; default: break; } return ret; }
static void gst_goo_encpcm_get_property (GObject* object, guint prop_id, GValue* value, GParamSpec* pspec) { g_assert (GST_IS_GOO_ENCPCM (object)); GstGooEncPcm* self = GST_GOO_ENCPCM (object); switch (prop_id) { case PROP_NUM_OUTPUT_BUFFERS: g_object_get_property (G_OBJECT (self->outport), "buffercount", value); break; case PROP_NUM_INPUT_BUFFERS: g_object_get_property (G_OBJECT (self->inport), "buffercount", value); break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); break; } return; }