Commit graph

7162 commits

Author SHA1 Message Date
Nate Bogdanowicz 6b717600b5 gstpipeline: fix failed assertion caused by seeking pipeline with NULL clock
Under certain GST_STATE_CHANGED_PAUSED_TO_PLAYING transitions, a pipeline with
a NULL clock will fail an assertion due to an unchecked call to gst_object_ref().
This is fixed by simply adding a check and only ref-ing if the clock is not NULL.

https://bugzilla.gnome.org/show_bug.cgi?id=693065
2013-02-05 14:23:20 +01:00
Wim Taymans ea6b05d126 structure: change argument name for docs 2013-02-05 13:44:06 +01:00
Stefan Sauer f989e6f2d7 debugutils: fix order of caps on an unnegotiated link
headlabel is the sink_pad (where the link points to) and not the other way around.
2013-02-04 10:31:46 +01:00
Stefan Sauer fba696eb05 docs: update the controller docs
Add the control bindings to the docs. Add a little more detail.
2013-02-01 22:00:18 +01:00
Simon Feltman d2b03a4537 g-i: add built enumtypes headers and sources to gir creation
Add gstenumtypes.h/c for inclusion with g-ir-scanner. This fixes
problems where introspection based bindings think GstState is
typeless due to the GType not being included as an annotation.

https://bugzilla.gnome.org/show_bug.cgi?id=691185
2013-01-27 20:55:38 +00:00
Niv Sardi 4b3aee5698 gst_pad_check_reconfigure: only remove flag if set.
the code ifed a debug statement, that can't be right. anyway, the way it is,
we don't really need that branch, as we set the flag to unset only if set
(and that can't fail) hence the end result is always to unset the flag.

Signed-off-by: Niv Sardi <xaiki@evilgiggle.com>

Fixes https://bugzilla.gnome.org/show_bug.cgi?id=691985
2013-01-24 15:41:35 +01:00
Tim-Philipp Müller c0926dc7cc pad: add gst_pad_get_stream_id() utility function
API: gst_pad_get_stream_id()
2013-01-19 12:51:56 +00:00
Tim-Philipp Müller 64eee27ebc Use GST_*_1_0 environment variables everywhere
The _1_0 suffixed environment variables override the
non-suffixed ones, so if we're in an environment that
sets the _1_0 suffixed ones, such as jhbuild, we need
to set those to make sure ours actually always get
used.
2013-01-15 13:47:32 +00:00
Tim-Philipp Müller b836ddf8c6 pipeline: add allow-none annotation for gst_pipeline_new()'s name property 2013-01-15 09:42:20 +00:00
Stefan Sauer 5898042610 controlbinding: hide one unused typedef
This is not used internally.
2013-01-10 11:34:14 +01:00
Stefan Sauer 06cf9deafe docs: improve api docs for controlsource and -binding 2013-01-10 11:33:42 +01:00
Tim-Philipp Müller 1506784215 docs: minor systemsclock doc fix 2013-01-04 12:27:38 +00:00
Tim-Philipp Müller 22036ef1c4 caps, structure, taglist: micro-optimisations
Avoid some unnecessary GValue copying by making use of
gst_structure_id_take_value() where possible.
2012-12-22 16:55:26 +00:00
Tim-Philipp Müller 172011d1f5 gstvalue: some micro-optimisations
Avoid unnecessary value copying, and unnecessary init/unset
cycles which all go through the value table. There's a bunch
of places where we copy a value and then unset it in the next
line, instead of just taking over the source value.
2012-12-22 16:38:58 +00:00
Wim Taymans b163c09104 bin: add flag to disable resync state change
Add a GST_BIN_FLAG_NO_RESYNC that disables a resync when an element is added,
removed or linked in the bin. This is interesting for complex bins that
dynamically add elements to themselves and want to manage the state of those
elements without interference from resyncs.

See https://bugzilla.gnome.org/show_bug.cgi?id=690420
2012-12-21 16:36:37 +01:00
Wim Taymans 49344ecad4 systemclock: add OTHER clock type
Add an OTHER clock type so that subclasses are able to mark themselves as
using some other clock source than the realtime or monotonic clock.
2012-12-20 16:40:04 +01:00
Wim Taymans 5f2fbb6370 add debug category
Adding a debug category is nicer than logging to the default category
2012-12-14 11:09:30 +01:00
Wim Taymans 63cc762626 element: improve debug 2012-12-14 11:08:57 +01:00
Wim Taymans 21830d66c6 plugin: protect against NULL filename in debug
See https://bugzilla.gnome.org/show_bug.cgi?id=689948
2012-12-10 12:00:40 +01:00
Wim Taymans 064145c097 bufferpool: clarify docs 2012-12-06 09:48:08 +01:00
Wim Taymans 12f835ca43 caps: fix docs 2012-12-05 14:56:48 +01:00
Wim Taymans c33be7ec77 message: add reset-time type string 2012-11-30 10:41:51 +01:00
Wim Taymans b7e7c9108a bin: remove some casts 2012-11-30 10:41:36 +01:00
Tim-Philipp Müller 8c08af2345 gst: don't require gthread-2.0
We don't need to link to gthread-2.0 any longer, since all
the normal thread-related stuff is in GLib proper, and we
don't use g_thread_init() any more.

https://bugzilla.gnome.org/show_bug.cgi?id=689043
2012-11-26 00:26:34 +00:00
Tim-Philipp Müller 0378c40ed3 docs: remove all mention of g_thread_init()
It's been deprecated since GLib 2.32 and isn't needed any
longer.
2012-11-25 23:26:47 +00:00
Alessandro Decina b6c13c7557 event: fix annotation for gst_event_parse_stream_start 2012-11-23 21:10:55 +01:00
Tim-Philipp Müller 374cc3ff06 pad: document more pad probe values 2012-11-23 13:36:09 +00:00
Tim-Philipp Müller 32f96b922b pad: don't use parenthesis for ORed pad probe flag enums
glib-mkenum doesn't like them for some reason.

https://bugzilla.gnome.org/show_bug.cgi?id=688804
2012-11-23 12:47:25 +00:00
Olivier Crête fba984c350 pad: Put all of the probe types in the enum so they work with bindings
https://bugzilla.gnome.org/show_bug.cgi?id=688804
2012-11-23 13:30:15 +01:00
Sebastian Dröge cf6cfdc058 value: Make G-I happy by hiding gst_g_thread_get_type() 2012-11-20 15:39:35 +01:00
Sebastian Dröge da0f9977f0 value: Use the GLib GType for GThread if compiling against GLib 2.35.3 or newer 2012-11-20 15:06:14 +01:00
Sebastian Dröge 9326124581 gst: Don't set the locale in gst_init()
The function init_pre() in gstreamer/gst/gst.c calls setlocale(LC_ALL, ""),
which sets the locale to the values specified in the environment.  This is
wrong for two reasons:

1. It is absolutely not the task of a library to decide on the correct locale
for a program.  Some programs change the locale for various (good or bad)
reasons, and libraries should respect that.  Programs where GStreamer's
overwriting of the locale causes bugs include Emacs [1, 2], Sublime Text [3],
and Lua [4].

[1] http://debbugs.gnu.org/cgi/bugreport.cgi?bug=12392
[2] http://bugzilla.novell.com/show_bug.cgi?id=779426
[3] http://www.sublimetext.com/forum/viewtopic.php?f=3&t=8543
[4] https://github.com/pavouk/lgi/issues/19

Note that setting the locale can cause problems for programs that are not even
linked against GStreamer.  In the case of Emacs, for example, GStreamer seems
to be initialized through GTK via libcanberra.

2. Setting the locale is not thread-safe, and therefore should not be done in a
library.

https://bugzilla.gnome.org/show_bug.cgi?id=685650
2012-11-20 12:56:12 +01:00
Tim-Philipp Müller af3a273c08 gstcompat.h: move more deprecated API into the deprecated section
https://bugzilla.gnome.org/show_bug.cgi?id=675598
2012-11-17 00:21:37 +00:00
Philippe Normand de58036de5 task: documentation update
GStaticRecMutex usage has been replaced by GRecMutex, reflect this
change in the documentation.
2012-11-14 12:25:30 +01:00
Tim-Philipp Müller abc805ca95 tests: gst_adapter_prev_timestamp -> gst_adapter_prev_pts
https://bugzilla.gnome.org/show_bug.cgi?id=675598
2012-11-13 23:11:34 +00:00
Tim-Philipp Müller cf59bacf6d structure: re-indent header file
Tabs to spaces.
2012-11-13 20:45:48 +00:00
Sebastian Dröge 08e0fcd7b2 value: API: Add boxed type for GThread 2012-11-12 11:40:59 +01:00
Sebastian Rasmussen 7691a82f3a info: fix compiler warning when debugging disabled
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=688130
2012-11-12 09:29:58 +01:00
Matthew Waters 718b6b2471 bufferpool: lock before unlock in _get_config
Fixes deadlock on Windows

Fixes https://bugzilla.gnome.org/show_bug.cgi?id=687896
2012-11-08 09:08:09 +01:00
Tim-Philipp Müller 666c8c11c6 Fix FSF address
https://bugzilla.gnome.org/show_bug.cgi?id=687520
2012-11-03 20:44:48 +00:00
Tim-Philipp Müller 37e405763c pad: downgrade 'creating random stream-id' debug log message
No need for it to be a warning.
2012-10-29 11:30:30 +00:00
Tim-Philipp Müller bab8ed6b8a pluginfeature: add gst_plugin_feature_get_plugin_name()
API: gst_plugin_feature_get_plugin_name()

https://bugzilla.gnome.org/show_bug.cgi?id=571832
2012-10-28 15:53:19 +00:00
Tim-Philipp Müller 3d5f6202af info: allow setting of GST_DEBUG levels by name
e.g. GST_DEBUG=*:INFO,*src:LOG
2012-10-27 14:40:14 +01:00
Thibault Saunier 58560931db gst: make us of the new gst_debug_set_threshold_from_string function
https://bugzilla.gnome.org/show_bug.cgi?id=679152
2012-10-27 13:43:00 +01:00
Thibault Saunier e513ed1810 info: add a function to set debug threshold from a GST_DEBUG-style string
Use the same format as with the GST_DEBUG environment variable.

API: gst_debug_set_threshold_from_string()

https://bugzilla.gnome.org/show_bug.cgi?id=679152
2012-10-27 13:42:51 +01:00
Sebastian Dröge e683cf0596 event: Allow GST_CLOCK_TIME_NONE as duration for GAP events 2012-10-24 11:46:39 +02:00
Miguel Angel Cabrera Moya 3ae671fb9b allocator: fix memory leak in _fallback_mem_copy
https://bugzilla.gnome.org/show_bug.cgi?id=686658
2012-10-22 19:59:29 +01:00
Miguel Angel Cabrera Moya ef552507fa preset: remove variable not read
https://bugzilla.gnome.org/show_bug.cgi?id=686659
2012-10-22 19:55:43 +01:00
Sebastian Dröge 32d7d5923b info: Don't use GST_DEBUG() in gst_debug_add_log_function() and related functions unconditionally
If GStreamer was not initialized yet this will cause g_warnings().
2012-10-22 10:26:49 +02:00
Tim-Philipp Müller bf2452d776 g_type_init() is no longer required and deprecated in glib >= 2.35.0
https://bugzilla.gnome.org/show_bug.cgi?id=686456
2012-10-20 12:56:30 +01:00
Michael Smith 017b34079e GstSample: fix typo in G-I annotations, allows creating GstSamples from bindings. 2012-10-19 13:37:08 -07:00
Sebastian Dröge 3690f9a830 poll: Fix compiler warning about constness
passing argument 1 of 'g_mutex_lock' discards 'const' qualifier from pointer target type
passing argument 1 of 'g_mutex_unlock' discards 'const' qualifier from pointer target type
2012-10-18 15:31:49 +02:00
Tim-Philipp Müller 28604c197b bin, pipeline: use gst_element_class_set_static_metadata()
So the strings aren't copied.
2012-10-17 16:49:19 +01:00
Sebastian Dröge 1c4fe1bf1a element: API: Add GstElement::post_message() vfunc
Conflicts:
	gst/gstelement.h
2012-10-16 12:35:56 +02:00
Wim Taymans 67a575ba08 query: buffering time left is in milliseconds 2012-10-11 17:09:29 +02:00
Sebastian Dröge 3f9516cef8 pad: Downgrade GST_WARNING to GST_INFO
It's usually not a problem if a query fails if there's no peer,
especially as it will happen during pad linking (caps query)
quite often and spams the logs.
2012-10-10 11:34:27 +02:00
Wim Taymans 1d6ae92be7 pad: small docs fixes and remove a 0.11 fixme 2012-10-09 10:24:34 +02:00
Wim Taymans d630a115f9 pad: resend dropped events
If we try to push sticky events but a probe dropped them, we don't mark
the event as received and mark the pad as PENDING_EVENTS. This ensures
that we resend the event the next time. For this we need to let the
custom flow return from the probe trickle up to
gst_pad_push_event_unchecked() so that we can differentiate between
OK and DROPPED probe returns.
2012-10-05 09:51:58 +02:00
Wim Taymans 0ae3492f6b pad: don't store sticky events on flushing/EOS pads
Don't store sticky events on flushing or EOS pads. This was done
correctly for source pads but not for sink pads.
2012-10-05 09:51:29 +02:00
Wim Taymans ebacdfbaa6 meta: don't put essential logic in g_return_val_* 2012-10-03 13:49:34 +02:00
Wim Taymans 10c8586902 meta: handle multiple implementation registration
First check that we can actually register the implementation before
making a GstMetaInfo. If we can't register we would otherwise end
up with an undefined type and an invalid GstMetaInfo.

It's possible that type registration fails because another metadata
with the same implementation name was already registered.
2012-10-03 13:35:20 +02:00
Wim Taymans 5d64c5ce5a docs: some 0.10 -> 1.0 changes 2012-10-02 13:22:35 +02:00
Tim-Philipp Müller 507fc9cea7 value: avoid duplicates when intersecting lists
Fixes negotiation taking a ridiculous amount of
time (multiple 10s of seconds on a core2) when
there are duplicate entries in lists.

Could have a negative performance impact on other
scenarios because we now have to iterate the
dest list to avoid duplicates, but we don't
have a lot of lists any more these days, and
they tend to be small anyway. The negatives
are hopefully countered by the positive effects
of reducing the list length early on in the
process. And in any case, it's the right thing
to do.

Based on patch by Andre Moreira Magalhaes.

https://bugzilla.gnome.org/show_bug.cgi?id=684981
2012-09-29 14:35:58 +01:00
Olivier Crête fd846a7c64 miniobject: Always reject WRITE locks on READONLY miniobjects
Verify that mapping a read-only memory as read doesnt make it writable
2012-09-28 17:12:14 -04:00
Wim Taymans ef012f8e58 pad: fix activate docs 2012-09-28 10:41:54 +02:00
Olivier Blin 4710b36bda info: do not register printf extension for %p
This happened when glib was not using system printf, and caused the
internal gstreamer printf extensions to be used for all %p printfs,
causing crashes.

https://bugzilla.gnome.org/show_bug.cgi?id=684970
2012-09-27 23:58:32 +01:00
Wim Taymans 2cf4689503 ghostpad: also ref the internal pad for activate functions
Also take a ref to the internal pad in the activate functions
2012-09-27 11:06:06 +02:00
Olivier Crête e60ee132ce proxypad: Hold a reference to the internal pad while pushing through it
https://bugzilla.gnome.org/show_bug.cgi?id=684809
2012-09-27 10:53:45 +02:00
Mark Nauwelaerts 5e928fa56e uri: use proper 'transfer floating' annotation
https://bugzilla.gnome.org/show_bug.cgi?id=664099
2012-09-26 14:15:01 +02:00
Mark Nauwelaerts cc41130664 segment: mark GstSegmentFlags as flags rather than enum
... which really makes a difference when trying to serialize
a flags value which is a combination of flags, which is hard
to do as an enum type.
2012-09-26 10:55:48 +02:00
Sebastian Dröge 24cad1a91c elementfactory: Fail if no valid element factory metadata is set 2012-09-25 15:10:32 +02:00
Sebastian Dröge cfc7661f65 plugin: Fail if no valid plugin metadata is set 2012-09-25 15:10:32 +02:00
Tim-Philipp Müller e7a77927ff taglist: fix typo in translated string
Spotted by Chris Leonard.

https://bugzilla.gnome.org/show_bug.cgi?id=684755
2012-09-25 13:14:53 +01:00
Sebastian Dröge 4638a49db8 pluginfeature: Remove 0.11.9X->1.0.0 version mangling 2012-09-25 09:27:59 +02:00
Mark Nauwelaerts a722212dc9 object: update controller documentation 2012-09-21 21:13:13 +02:00
Olivier Crête 945e0d2be9 pad: Remove pad probes only once
Also add test to make sure that if a pad probe is removed while it's
callback is running, the cleanup_hook isn't called again if it
returns GST_PAD_PROBE_REMOVE
2012-09-20 15:24:33 -04:00
Olivier Crête 25b3e02b94 pad: Add functions to safely access GstProbeInfo data pointer
This is so that introspection based bindings can access it.

https://bugzilla.gnome.org/show_bug.cgi?id=684402
2012-09-20 15:24:33 -04:00
Sebastian Dröge 8f51345296 pad: Fix refcount bug by unreffing the correct variable 2012-09-18 12:46:37 +02:00
Tim-Philipp Müller ca90ea6e55 Remove GST_USE_UNSTABLE_API guard and defines 2012-09-17 13:35:26 +01:00
Sebastian Dröge de635d089f pad: Add parent parameter to the link and unlink functions
Fixes part of bug #683995.
2012-09-17 13:24:36 +02:00
Tim-Philipp Müller c2175db889 sample: add serialisation/deserialisation functions for GstSample
Since these things are inside taglists now, it would be good to be
able to print them and deserialise them.

https://bugzilla.gnome.org/show_bug.cgi?id=681322
2012-09-16 23:20:46 +01:00
Olivier Crête bc5cc2eb07 pad: don't try to pretty-print event after we've given away ownership
Might cause crashes with debug logging enabled.

https://bugzilla.gnome.org/show_bug.cgi?id=683996
2012-09-14 01:28:46 +01:00
Tim-Philipp Müller 19d4ec4aca gstcompat: fix backwards compat macro for gst_message_new_duration
Name it properly, so it, like, works. Clearly no one actually
used that..
2012-09-14 00:30:37 +01:00
Tim-Philipp Müller c2a25bcd0f taglist: add warning when we get something else than a sample for a sample tag
Facilitate GstBuffer -> GstSample transition for some tags,
could be hard to catch otherwise when creating tags, since
it'll only be apparent later when someone tries to read the
tags.
2012-09-13 00:38:21 +01:00
Andreas Frisch 0bc87ee5d9 elementfactory: don't crash if no element klass has been set
https://bugzilla.gnome.org/show_bug.cgi?id=683865
2012-09-12 22:53:41 +01:00
Tim-Philipp Müller bc758c9330 error: don't tell people to file a bug for negotiation errors 2012-09-12 21:23:22 +01:00
Tim-Philipp Müller 221d46f438 pad: expose gst_pad_mode_get_name() and use it in baseparse 2012-09-11 19:51:02 +01:00
Mark Nauwelaerts 4af5e05309 query: adjust test logic for scheduling mode with flagS 2012-09-11 17:27:03 +02:00
Mark Nauwelaerts d1567a82ac query: add convenience API to query for scheduling mode and flags 2012-09-11 17:00:09 +02:00
Wim Taymans 00c6fa74f5 events: remove STREAM_CONFIG
We won't be able to implement this so it's better to move it out of the way.
2012-09-11 16:29:12 +02:00
Wim Taymans e85dc9cfc8 utils: allow NULL stream_id also when 0 srcpads
We usually first create the stream_id for the stream_start event and then add
the pad to the element. This means that this functions should work when there
are no pads on the element yet.
2012-09-11 11:34:11 +02:00
Tim-Philipp Müller a85991eeb8 baseparse, typefind: only activate in pull mode if upstream is seekable
Upstream might support pull mode, but only sequential pulls,
which isn't gonna do much for us.

https://bugzilla.gnome.org/show_bug.cgi?id=634927
2012-09-11 01:40:53 +01:00
Tim-Philipp Müller dad67b7af0 sample: free info structure with sample if there is one and fix copy with NULL info structure 2012-09-10 16:52:46 +01:00
Mark Nauwelaerts edb8bc8865 memory: add padding to GstMapInfo 2012-09-10 12:20:15 +02:00
Mark Nauwelaerts 7fa322d437 gst: remove some defunct commented code 2012-09-10 12:15:54 +02:00
Wim Taymans 8f282de37d pad: check sticky events also after pad block
Recheck for sticky events after doing a pad block because the pad block could
have caused a relink and then we need to resend the events to the newly linked
pad.

Fixes things like switching of visualisations.
2012-09-03 11:07:10 +02:00
Tim-Philipp Müller f712a9596c message: rename GST_MESSAGE_DURATION -> GST_MESSAGE_DURATION_CHANGED
The duration should be re-queried via a query using the
normal path, we don't want applications to use the value
from the message itself, since it might no match what a
duration query done from the sink upstream might yield.

Also disables duration caching in GstBin. It should be
added back again at some point.
2012-09-02 01:18:58 +01:00
Tim-Philipp Müller 5d062480df pluginfeature: disable version mangling for post-1.0.0 release
Just in case we don't grep for FIXME 1.0 before the release.
2012-09-01 23:02:10 +01:00
Jan Schmidt 5aefdbaf10 gstpad: make some debug statements more verbose 2012-08-31 06:25:38 -07:00
Jan Schmidt 8d8608c23b ghostpad: Make some debugging more verbose
Also, remove an unnecessary #include in input-selector
2012-08-31 06:25:37 -07:00