X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=gst%2Fgstelement.c;h=64aa39a04fd1db11d99c795e5e1e8d83e2e29869;hb=1ec811471797c2ef944122dcdb5218f2b13eeebc;hp=80ecf4447c7648bc0f87e9ddb3ec75bdd940493c;hpb=d106390adce5cee837d2d0aab377d758a45a4b2d;p=platform%2Fupstream%2Fgstreamer.git diff --git a/gst/gstelement.c b/gst/gstelement.c index 80ecf44..64aa39a 100644 --- a/gst/gstelement.c +++ b/gst/gstelement.c @@ -403,7 +403,7 @@ gst_element_set_clock_func (GstElement * element, GstClock * clock) /** * gst_element_set_clock: * @element: a #GstElement to set the clock for. - * @clock: the #GstClock to set for the element. + * @clock: (transfer none) (allow-none): the #GstClock to set for the element. * * Sets the clock for the element. This function increases the * refcount on the clock. Any previously set clock on the object @@ -444,7 +444,7 @@ gst_element_set_clock (GstElement * element, GstClock * clock) * Elements in a pipeline will only have their clock set when the * pipeline is in the PLAYING state. * - * Returns: (transfer full): the #GstClock of the element. unref after usage. + * Returns: (transfer full) (nullable): the #GstClock of the element. unref after usage. * * MT safe. */ @@ -640,9 +640,8 @@ gst_element_get_index (GstElement * element) * Adds a pad (link point) to @element. @pad's parent will be set to @element; * see gst_object_set_parent() for refcounting information. * - * Pads are not automatically activated so elements should perform the needed - * steps to activate the pad in case this pad is added in the PAUSED or PLAYING - * state. See gst_pad_set_active() for more information about activating pads. + * Pads are automatically activated when added in the PAUSED or PLAYING + * state. * * The pad and the element should be unlocked when calling this function. * @@ -685,9 +684,6 @@ gst_element_add_pad (GstElement * element, GstPad * pad) /* check for active pads */ if (!active && (GST_STATE (element) > GST_STATE_READY || GST_STATE_NEXT (element) == GST_STATE_PAUSED)) { - g_warning ("adding inactive pad '%s' to running element '%s', you need to " - "use gst_pad_set_active(pad,TRUE) before adding it.", - GST_STR_NULL (pad_name), GST_ELEMENT_NAME (element)); gst_pad_set_active (pad, TRUE); } @@ -751,7 +747,7 @@ no_direction: /** * gst_element_remove_pad: * @element: a #GstElement to remove pad from. - * @pad: (transfer full): the #GstPad to remove from the element. + * @pad: (transfer none): the #GstPad to remove from the element. * * Removes @pad from @element. @pad will be destroyed if it has not been * referenced elsewhere using gst_object_unparent(). @@ -1427,6 +1423,28 @@ gst_element_class_add_static_pad_template (GstElementClass * klass, } /** + * gst_element_class_add_static_pad_template_with_gtype: + * @klass: the #GstElementClass to add the pad template to. + * @static_templ: #GstStaticPadTemplate to add as pad template to the element class. + * @pad_type: The #GType of the pad to create + * + * Adds a pad template to an element class based on the static pad template + * @templ. This is mainly used in the _class_init functions of element + * implementations. If a pad template with the same name already exists, + * the old one is replaced by the new one. + * + * Since: 1.14 + */ +void +gst_element_class_add_static_pad_template_with_gtype (GstElementClass * klass, + GstStaticPadTemplate * static_templ, GType pad_type) +{ + gst_element_class_add_pad_template (klass, + gst_pad_template_new_from_static_pad_template_with_gtype (static_templ, + pad_type)); +} + +/** * gst_element_class_add_metadata: * @klass: class to set metadata for * @key: the key to set @@ -1712,7 +1730,7 @@ gst_element_class_get_request_pad_template (GstElementClass * } /* get a random pad on element of the given direction. - * The pad is random in a sense that it is the first pad that is (optionaly) linked. + * The pad is random in a sense that it is the first pad that is (optionally) linked. */ static GstPad * gst_element_get_random_pad (GstElement * element, @@ -2223,6 +2241,10 @@ gst_element_is_locked_state (GstElement * element) * Locks the state of an element, so state changes of the parent don't affect * this element anymore. * + * Note that this is racy if the state lock of the parent bin is not taken. + * The parent bin might've just checked the flag in another thread and as the + * next step proceed to change the child element's state. + * * MT safe. * * Returns: %TRUE if the state was changed, %FALSE if bad parameters were given @@ -2426,7 +2448,7 @@ interrupted: if (pending) *pending = GST_STATE_VOID_PENDING; - GST_CAT_INFO_OBJECT (GST_CAT_STATES, element, "interruped"); + GST_CAT_INFO_OBJECT (GST_CAT_STATES, element, "interrupted"); GST_OBJECT_UNLOCK (element); @@ -2964,14 +2986,14 @@ gst_element_change_state (GstElement * element, GstStateChange transition) case GST_STATE_CHANGE_SUCCESS: GST_CAT_DEBUG_OBJECT (GST_CAT_STATES, element, "element changed state SUCCESS"); - /* we can commit the state now which will proceeed to + /* we can commit the state now which will proceed to * the next state */ ret = gst_element_continue_state (element, ret); break; case GST_STATE_CHANGE_NO_PREROLL: GST_CAT_DEBUG_OBJECT (GST_CAT_STATES, element, "element changed state NO_PREROLL"); - /* we can commit the state now which will proceeed to + /* we can commit the state now which will proceed to * the next state */ ret = gst_element_continue_state (element, ret); break; @@ -3204,8 +3226,8 @@ was_ok: * * Retrieves the factory that was used to create this element. * - * Returns: (transfer none): the #GstElementFactory used for creating this - * element. no refcounting is needed. + * Returns: (transfer none) (nullable): the #GstElementFactory used for creating this + * element or %NULL if element has not been registered (static element). no refcounting is needed. */ GstElementFactory * gst_element_get_factory (GstElement * element) @@ -3332,7 +3354,7 @@ gst_element_set_bus_func (GstElement * element, GstBus * bus) /** * gst_element_set_bus: * @element: a #GstElement to set the bus of. - * @bus: (transfer none): the #GstBus to set. + * @bus: (transfer none) (allow-none): the #GstBus to set. * * Sets the bus of the element. Increases the refcount on the bus. * For internal use only, unless you're testing elements. @@ -3359,7 +3381,8 @@ gst_element_set_bus (GstElement * element, GstBus * bus) * Returns the bus of the element. Note that only a #GstPipeline will provide a * bus for the application. * - * Returns: (transfer full): the element's #GstBus. unref after usage. + * Returns: (transfer full) (nullable): the element's #GstBus. unref after + * usage. * * MT safe. */ @@ -3483,7 +3506,7 @@ _match_context_type (GstContext * c1, const gchar * context_type) * * Gets the context with @context_type set on the element or NULL. * - * Returns: (transfer full): A #GstContext or NULL + * Returns: (transfer full) (nullable): A #GstContext or NULL * * Since: 1.8 */