mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2025-02-02 20:42:30 +00:00
Merge branch 'master' into 0.11
Conflicts: gst/gstbuffer.h gst/gstcaps.c gst/gstcaps.h gst/gstevent.c
This commit is contained in:
commit
8170c34c94
11 changed files with 54 additions and 39 deletions
12
gst/gst.c
12
gst/gst.c
|
@ -217,7 +217,7 @@ parse_debug_category (gchar * str, const gchar ** category)
|
|||
}
|
||||
|
||||
static gboolean
|
||||
parse_debug_level (gchar * str, gint * level)
|
||||
parse_debug_level (gchar * str, GstDebugLevel * level)
|
||||
{
|
||||
if (!str)
|
||||
return FALSE;
|
||||
|
@ -227,7 +227,7 @@ parse_debug_level (gchar * str, gint * level)
|
|||
|
||||
if (str[0] != NUL && str[1] == NUL
|
||||
&& str[0] >= '0' && str[0] < '0' + GST_LEVEL_COUNT) {
|
||||
*level = str[0] - '0';
|
||||
*level = (GstDebugLevel) (str[0] - '0');
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
|
@ -249,7 +249,7 @@ parse_debug_list (const gchar * list)
|
|||
gchar **values = g_strsplit (*walk, ":", 2);
|
||||
|
||||
if (values[0] && values[1]) {
|
||||
gint level;
|
||||
GstDebugLevel level;
|
||||
const gchar *category;
|
||||
|
||||
if (parse_debug_category (values[0], &category)
|
||||
|
@ -259,7 +259,7 @@ parse_debug_list (const gchar * list)
|
|||
|
||||
g_strfreev (values);
|
||||
} else {
|
||||
gint level;
|
||||
GstDebugLevel level;
|
||||
|
||||
if (parse_debug_level (*walk, &level))
|
||||
gst_debug_set_default_threshold (level);
|
||||
|
@ -909,9 +909,9 @@ parse_one_option (gint opt, const gchar * arg, GError ** err)
|
|||
}
|
||||
#ifndef GST_DISABLE_GST_DEBUG
|
||||
case ARG_DEBUG_LEVEL:{
|
||||
gint tmp = 0;
|
||||
GstDebugLevel tmp = GST_LEVEL_NONE;
|
||||
|
||||
tmp = strtol (arg, NULL, 0);
|
||||
tmp = (GstDebugLevel) strtol (arg, NULL, 0);
|
||||
if (tmp >= 0 && tmp < GST_LEVEL_COUNT) {
|
||||
gst_debug_set_default_threshold (tmp);
|
||||
}
|
||||
|
|
|
@ -381,7 +381,7 @@ typedef enum {
|
|||
* Combination of all possible fields that can be copied with
|
||||
* gst_buffer_copy_into().
|
||||
*/
|
||||
#define GST_BUFFER_COPY_ALL (GST_BUFFER_COPY_METADATA | GST_BUFFER_COPY_MEMORY)
|
||||
#define GST_BUFFER_COPY_ALL ((GstBufferCopyFlags)(GST_BUFFER_COPY_METADATA | GST_BUFFER_COPY_MEMORY))
|
||||
|
||||
/* copies memory or metadata into newly allocated buffer */
|
||||
void gst_buffer_copy_into (GstBuffer *dest, GstBuffer *src,
|
||||
|
|
|
@ -1116,7 +1116,7 @@ gst_caps_can_intersect (const GstCaps * caps1, const GstCaps * caps2)
|
|||
j = MIN (i, len1 - 1);
|
||||
/* subset index stays 0 until i reaches superset->structs->len, then it
|
||||
* counts up from 1 to subset->structs->len - 1 */
|
||||
k = MAX (0, i - j);
|
||||
k = (i > j) ? (i - j) : 0; /* MAX (0, i - j) */
|
||||
|
||||
/* now run the diagonal line, end condition is the left or bottom
|
||||
* border */
|
||||
|
@ -1187,7 +1187,7 @@ gst_caps_intersect_zig_zag (const GstCaps * caps1, const GstCaps * caps2)
|
|||
j = MIN (i, len1 - 1);
|
||||
/* caps2 index stays 0 until i reaches GST_CAPS_LEN (caps1), then it counts
|
||||
* up from 1 to GST_CAPS_LEN (caps2) - 1 */
|
||||
k = MAX (0, i - j);
|
||||
k = (i > j) ? (i - j) : 0; /* MAX (0, i - j) */
|
||||
|
||||
/* now run the diagonal line, end condition is the left or bottom
|
||||
* border */
|
||||
|
|
|
@ -77,7 +77,7 @@ debug_dump_get_element_state (GstElement * element)
|
|||
{
|
||||
gchar *state_name = NULL;
|
||||
const gchar *state_icons = "~0-=>";
|
||||
GstState state = 0, pending = 0;
|
||||
GstState state = GST_STATE_VOID_PENDING, pending = GST_STATE_VOID_PENDING;
|
||||
|
||||
gst_element_get_state (element, &state, &pending, 0);
|
||||
if (pending == GST_STATE_VOID_PENDING) {
|
||||
|
|
|
@ -41,7 +41,10 @@
|
|||
* Core and plug-in writers can add and remove pads with gst_element_add_pad()
|
||||
* and gst_element_remove_pad().
|
||||
*
|
||||
* A pad of an element can be retrieved by name with gst_element_get_pad().
|
||||
* An existing pad of an element can be retrieved by name with
|
||||
* gst_element_get_static_pad(). A new dynamic pad can be created using
|
||||
* gst_element_request_pad() with a #GstPadTemplate or
|
||||
* gst_element_get_request_pad() with the template name such as "src_%d".
|
||||
* An iterator of all pads can be retrieved with gst_element_iterate_pads().
|
||||
*
|
||||
* Elements can be linked through their pads.
|
||||
|
@ -1022,8 +1025,8 @@ _gst_element_request_pad (GstElement * element, GstPadTemplate * templ,
|
|||
* @element: a #GstElement to find a request pad of.
|
||||
* @name: the name of the request #GstPad to retrieve.
|
||||
*
|
||||
* Retrieves a pad from the element by name. This version only retrieves
|
||||
* request pads. The pad should be released with
|
||||
* Retrieves a pad from the element by name (e.g. "src_%d"). This version only
|
||||
* retrieves request pads. The pad should be released with
|
||||
* gst_element_release_request_pad().
|
||||
*
|
||||
* This method is slow and will be deprecated in the future. New code should
|
||||
|
@ -1129,6 +1132,8 @@ gst_element_get_request_pad (GstElement * element, const gchar * name)
|
|||
* request. Can be %NULL.
|
||||
*
|
||||
* Retrieves a request pad from the element according to the provided template.
|
||||
* Pad templates can be looked up using
|
||||
* gst_element_factory_get_static_pad_templates().
|
||||
*
|
||||
* If the @caps are specified and the element implements thew new
|
||||
* request_new_pad_full virtual method, the element will use them to select
|
||||
|
@ -1169,8 +1174,9 @@ gst_element_iterate_pad_list (GstElement * element, GList ** padlist)
|
|||
* gst_element_iterate_pads:
|
||||
* @element: a #GstElement to iterate pads of.
|
||||
*
|
||||
* Retrieves an iterattor of @element's pads. The iterator should
|
||||
* be freed after usage.
|
||||
* Retrieves an iterator of @element's pads. The iterator should
|
||||
* be freed after usage. Also more specialized iterators exists such as
|
||||
* gst_element_iterate_src_pads() or gst_element_iterate_sink_pads().
|
||||
*
|
||||
* Returns: (transfer full): the #GstIterator of #GstPad. Unref each pad
|
||||
* after use.
|
||||
|
|
|
@ -151,7 +151,7 @@ typedef enum {
|
|||
* Given a current state @cur and a target state @pending, calculate the next (intermediate)
|
||||
* #GstState.
|
||||
*/
|
||||
#define GST_STATE_GET_NEXT(cur,pending) ((cur) + __GST_SIGN ((gint)(pending) - (gint)(cur)))
|
||||
#define GST_STATE_GET_NEXT(cur,pending) ((GstState)((cur) + __GST_SIGN ((gint)(pending) - (gint)(cur))))
|
||||
/**
|
||||
* GST_STATE_TRANSITION:
|
||||
* @cur: A current state
|
||||
|
|
|
@ -626,7 +626,7 @@ typedef struct
|
|||
* @factory: a #GstElementFactory
|
||||
* @type: a #GstElementFactoryListType
|
||||
*
|
||||
* Check if @factory if of the given types.
|
||||
* Check if @factory is of the given types.
|
||||
*
|
||||
* Returns: %TRUE if @factory is of @type.
|
||||
*
|
||||
|
|
|
@ -309,13 +309,13 @@ gst_error_get_message (GQuark domain, gint code)
|
|||
const gchar *message = NULL;
|
||||
|
||||
if (domain == GST_CORE_ERROR)
|
||||
message = gst_error_get_core_error (code);
|
||||
message = gst_error_get_core_error ((GstCoreError) code);
|
||||
else if (domain == GST_LIBRARY_ERROR)
|
||||
message = gst_error_get_library_error (code);
|
||||
message = gst_error_get_library_error ((GstLibraryError) code);
|
||||
else if (domain == GST_RESOURCE_ERROR)
|
||||
message = gst_error_get_resource_error (code);
|
||||
message = gst_error_get_resource_error ((GstResourceError) code);
|
||||
else if (domain == GST_STREAM_ERROR)
|
||||
message = gst_error_get_stream_error (code);
|
||||
message = gst_error_get_stream_error ((GstStreamError) code);
|
||||
else {
|
||||
g_warning ("No error messages for domain %s", g_quark_to_string (domain));
|
||||
return g_strdup_printf (_("No error message for domain %s."),
|
||||
|
|
|
@ -803,7 +803,7 @@ gst_event_parse_buffer_size (GstEvent * event, GstFormat * format,
|
|||
|
||||
structure = GST_EVENT_STRUCTURE (event);
|
||||
if (format)
|
||||
*format =
|
||||
*format = (GstFormat)
|
||||
g_value_get_enum (gst_structure_id_get_value (structure,
|
||||
GST_QUARK (FORMAT)));
|
||||
if (minsize)
|
||||
|
@ -919,7 +919,7 @@ gst_event_parse_qos (GstEvent * event, GstQOSType * type,
|
|||
|
||||
structure = GST_EVENT_STRUCTURE (event);
|
||||
if (type)
|
||||
*type =
|
||||
*type = (GstQOSType)
|
||||
g_value_get_enum (gst_structure_id_get_value (structure,
|
||||
GST_QUARK (TYPE)));
|
||||
if (proportion)
|
||||
|
@ -1047,15 +1047,15 @@ gst_event_parse_seek (GstEvent * event, gdouble * rate,
|
|||
g_value_get_double (gst_structure_id_get_value (structure,
|
||||
GST_QUARK (RATE)));
|
||||
if (format)
|
||||
*format =
|
||||
*format = (GstFormat)
|
||||
g_value_get_enum (gst_structure_id_get_value (structure,
|
||||
GST_QUARK (FORMAT)));
|
||||
if (flags)
|
||||
*flags =
|
||||
*flags = (GstSeekFlags)
|
||||
g_value_get_flags (gst_structure_id_get_value (structure,
|
||||
GST_QUARK (FLAGS)));
|
||||
if (start_type)
|
||||
*start_type =
|
||||
*start_type = (GstSeekType)
|
||||
g_value_get_enum (gst_structure_id_get_value (structure,
|
||||
GST_QUARK (CUR_TYPE)));
|
||||
if (start)
|
||||
|
@ -1063,7 +1063,7 @@ gst_event_parse_seek (GstEvent * event, gdouble * rate,
|
|||
g_value_get_int64 (gst_structure_id_get_value (structure,
|
||||
GST_QUARK (CUR)));
|
||||
if (stop_type)
|
||||
*stop_type =
|
||||
*stop_type = (GstSeekType)
|
||||
g_value_get_enum (gst_structure_id_get_value (structure,
|
||||
GST_QUARK (STOP_TYPE)));
|
||||
if (stop)
|
||||
|
@ -1213,7 +1213,8 @@ gst_event_parse_step (GstEvent * event, GstFormat * format, guint64 * amount,
|
|||
|
||||
structure = GST_EVENT_STRUCTURE (event);
|
||||
if (format)
|
||||
*format = g_value_get_enum (gst_structure_id_get_value (structure,
|
||||
*format =
|
||||
(GstFormat) g_value_get_enum (gst_structure_id_get_value (structure,
|
||||
GST_QUARK (FORMAT)));
|
||||
if (amount)
|
||||
*amount = g_value_get_uint64 (gst_structure_id_get_value (structure,
|
||||
|
|
|
@ -300,10 +300,14 @@ gst_object_ref_sink (gpointer object)
|
|||
*
|
||||
* Make sure not to LOCK @oldobj because it might be unreffed
|
||||
* which could cause a deadlock when it is disposed.
|
||||
*
|
||||
* Since 0.10.36, this function operates atomically.
|
||||
*/
|
||||
void
|
||||
gst_object_replace (GstObject ** oldobj, GstObject * newobj)
|
||||
{
|
||||
GstObject *oldptr;
|
||||
|
||||
g_return_if_fail (oldobj != NULL);
|
||||
g_return_if_fail (*oldobj == NULL || GST_IS_OBJECT (*oldobj));
|
||||
g_return_if_fail (newobj == NULL || GST_IS_OBJECT (newobj));
|
||||
|
@ -316,14 +320,14 @@ gst_object_replace (GstObject ** oldobj, GstObject * newobj)
|
|||
newobj ? G_OBJECT (newobj)->ref_count : 0);
|
||||
#endif
|
||||
|
||||
if (G_LIKELY (*oldobj != newobj)) {
|
||||
if (newobj)
|
||||
gst_object_ref (newobj);
|
||||
if (*oldobj)
|
||||
gst_object_unref (*oldobj);
|
||||
|
||||
*oldobj = newobj;
|
||||
}
|
||||
if (newobj)
|
||||
g_object_ref (newobj);
|
||||
do {
|
||||
oldptr = *oldobj;
|
||||
} while (!g_atomic_pointer_compare_and_exchange ((void *) oldobj,
|
||||
oldptr, newobj));
|
||||
if (oldptr)
|
||||
g_object_unref (oldptr);
|
||||
}
|
||||
|
||||
/* dispose is called when the object has to release all links
|
||||
|
|
|
@ -1586,7 +1586,7 @@ gst_base_parse_check_media (GstBaseParse * parse)
|
|||
if (caps)
|
||||
gst_caps_unref (caps);
|
||||
|
||||
GST_DEBUG_OBJECT (parse, "media is video == %d", parse->priv->is_video);
|
||||
GST_DEBUG_OBJECT (parse, "media is video: %d", parse->priv->is_video);
|
||||
}
|
||||
|
||||
/* takes ownership of frame */
|
||||
|
@ -1862,10 +1862,14 @@ gst_base_parse_push_frame (GstBaseParse * parse, GstBaseParseFrame * frame)
|
|||
parse->priv->close_segment = NULL;
|
||||
}
|
||||
if (G_UNLIKELY (parse->priv->pending_segment)) {
|
||||
GstEvent *pending_segment;
|
||||
|
||||
pending_segment = parse->priv->pending_segment;
|
||||
parse->priv->pending_segment = NULL;
|
||||
|
||||
GST_DEBUG_OBJECT (parse, "%s push pending segment",
|
||||
parse->priv->pad_mode == GST_ACTIVATE_PULL ? "loop" : "chain");
|
||||
gst_pad_push_event (parse->srcpad, parse->priv->pending_segment);
|
||||
parse->priv->pending_segment = NULL;
|
||||
gst_pad_push_event (parse->srcpad, pending_segment);
|
||||
|
||||
/* have caps; check identity */
|
||||
gst_base_parse_check_media (parse);
|
||||
|
|
Loading…
Reference in a new issue