Commit graph

7101 commits

Author SHA1 Message Date
Sebastian Dröge
26add2d13c gst: Add better support for static plugins
API: GST_PLUGIN_STATIC_DECLARE()
API: GST_PLUGIN_STATIC_REGISTER()

Based on a patch by Håvard Graff <havard.graff@tandberg.com>.

This now allows GST_PLUGIN_DEFINE() to create a static plugin if
GST_PLUGIN_BUILD_STATIC is defined. The resulting plugin can be
statically linked or dynamically linked during compilation but
can't be dynamically loaded during runtime.

Also adds GST_PLUGIN_STATIC_DECLARE() and GST_PLUGIN_STATIC_REGISTER(),
which allows to register a static linked plugin easily.
It is still required to manually register every single statically linked
plugin from inside the application as this can't be automated in a portable
way.

A new configure parameter --enable-static-plugins was added that allows
to build all plugins we build here as static plugins.

Fixes bug #667305.
2013-04-15 16:09:39 +02:00
Sebastian Dröge
c942fb3848 caps: Fix gst_static_caps_get(GST_STATIC_CAPS_NONE)
https://bugzilla.gnome.org/show_bug.cgi?id=696435
2013-04-15 08:20:04 +02:00
Wim Taymans
7452a47c71 taglist: avoid triggering an assertion
When deserialization of the structure fails, return a NULL taglist instead of
asserting.
2013-04-13 12:08:55 +01:00
Wim Taymans
e9d7f8cb37 bufferpool: fix docs 2013-04-04 16:40:22 +02:00
Nicolas Dufresne
c697912fcb segment: Fix seeking when position is slightly outside the segment
Very often, when the end of a segment is detected by demuxer, the position
is slightly outside the segment boundaries. Currently, if that is the case
the base will be set to NONE instead of normal accumulation. This would
break non-flushing seeks in oggdemux and most likely other demuxers.

Fixes https://bugzilla.gnome.org/show_bug.cgi?id=696899
2013-04-04 10:12:37 +02:00
Tim-Philipp Müller
f3293d37ce message: accept NULL error argument in gst_message_parse_{error,warning,info}
And simplify code a bit while at it.

https://bugzilla.gnome.org/show_bug.cgi?id=693704
2013-02-13 16:56:12 +00:00
Tim 'mithro' Ansell
926719a0bc gstvalue: Adding offset to GstSegment serialize/deserialize.
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=693587
2013-02-11 14:21:49 +01:00
Wim Taymans
d5f6642cd7 bin: remove old comment
The iterators now return a GValue and not the object directly anymore.
2013-02-07 12:55:21 +01:00
Wim Taymans
40e150ba8d bin: reset GValue from iterator after usage 2013-02-07 12:55:14 +01:00
Stefan Sauer
030103596e 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-05 18:42:43 +00:00
Stefan Sauer
e52bebfa57 docs: update the controller docs
Add the control bindings to the docs. Add a little more detail.
2013-02-05 18:42:43 +00:00
Nate Bogdanowicz
25c6490109 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:28:36 +01:00
Simon Feltman
dc7eca6264 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 21:00:25 +00:00
Niv Sardi
36d8f6b925 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:43:35 +01:00
Tim-Philipp Müller
0712bec95b pipeline: add allow-none annotation for gst_pipeline_new()'s name property 2013-01-17 10:33:57 +00:00
Stefan Sauer
e4f420640a controlbinding: hide one unused typedef
This is not used internally.
2013-01-17 09:33:16 +00:00
Stefan Sauer
4ad67a66f1 docs: improve api docs for controlsource and -binding 2013-01-17 09:33:12 +00:00
Tim-Philipp Müller
6b078905b4 docs: update since markers for new NO_RESYNC flag 2013-01-04 12:50:47 +00:00
Tim-Philipp Müller
b5364a76c3 docs: minor systemsclock doc fix 2013-01-04 12:30:39 +00:00
Wim Taymans
87a3fa5595 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
2013-01-04 12:24:01 +00:00
Wim Taymans
d75f4499e4 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.
2013-01-04 12:23:17 +00:00
Wim Taymans
b11439c0df add debug category
Adding a debug category is nicer than logging to the default category
2012-12-14 15:33:32 +01:00
Wim Taymans
45692eb014 element: improve debug 2012-12-14 15:33:08 +01:00
Wim Taymans
d2c80488e1 plugin: protect against NULL filename in debug
See https://bugzilla.gnome.org/show_bug.cgi?id=689948
2012-12-10 13:44:47 +00:00
Wim Taymans
767018e971 bufferpool: clarify docs 2012-12-10 13:44:41 +00:00
Wim Taymans
28ae8612e6 caps: fix docs 2012-12-10 13:44:33 +00:00
Wim Taymans
5c29fac651 message: add reset-time type string 2012-12-10 13:44:19 +00:00
Tim-Philipp Müller
9fd8140c65 docs: remove all mention of g_thread_init()
It's been deprecated since GLib 2.32 and isn't needed any
longer.
2012-11-28 15:10:09 +00:00
Alessandro Decina
cae0c24cc0 event: fix annotation for gst_event_parse_stream_start 2012-11-24 13:56:14 +00:00
Tim-Philipp Müller
74029db89e pad: document more pad probe values 2012-11-24 13:56:09 +00:00
Tim-Philipp Müller
cefa4caf5e 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-24 13:55:54 +00:00
Olivier Crête
86132dcb6d 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-24 13:55:20 +00:00
Matthew Waters
b24ce63b71 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:11:03 +01:00
Tim-Philipp Müller
1badfb8627 pad: downgrade 'creating random stream-id' debug log message
No need for it to be a warning.
2012-10-30 23:33:13 +00: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