Stefan Sauer
62a0d9dc39
controller: support control mapping for enums
...
Add a mapping for enum types (supporting sparse enums). Add a test.
2012-01-01 20:55:20 +01:00
Stefan Sauer
9dea3e37b1
controller: add more debug logging
2012-01-01 16:08:01 +01:00
Stefan Sauer
545c6c19a3
controller: remove obsolete FIXME comment
2011-12-31 15:26:26 +01:00
Stefan Sauer
fcef8d8046
control-sources: turn into GstObjects
...
This is a preparation for chaining them.
2011-12-31 09:57:49 +01:00
Tim-Philipp Müller
7f1103544d
registry: remove padding and signal vfuncs
...
And fix signal GTypes and marshaller. No one will ever
need to subclass our registry, so just remove the padding
and the signal vfuncs.
2011-12-30 19:37:31 +00:00
Tim-Philipp Müller
3e1c2f7f05
element: add LARGE padding to class structure
...
Four slots for expansion is not a lot.
2011-12-30 18:32:58 +00:00
Tim-Philipp Müller
be04f3945c
index: remove GstIndex and GstIndexFactory for now
...
There are many good use cases for GstIndex and we want
to add it back again in some form, but possibly not with
the current API, which is very powerful (maybe too powerful),
but also a bit confusing. At the very least we'd need to
make the API bindings-friendly.
2011-12-30 18:32:57 +00:00
Stefan Sauer
7d6e165007
gst: unref the two cotnroller types in _deinit()
2011-12-30 17:57:41 +01:00
Tim-Philipp Müller
8f7df5abac
math-compat: move static variable for NAN into #ifndef NAN block
...
And use G_GNUC_UNUSED instead of __attribute_used__
2011-12-30 12:59:46 +00:00
Stefan Sauer
eba636cc83
controller: use NAN instead of FP_NAN (which is the class)
...
Also add a fallback define to math-compat.h.
Fixes #666887
2011-12-30 13:33:48 +01:00
Edward Hervey
e136cc334f
Merge remote-tracking branch 'origin/master' into 0.11
2011-12-29 16:49:39 +01:00
Wim Taymans
aca4fabfad
gst: deinit meta flags too
2011-12-28 14:51:50 +01:00
Edward Hervey
a51c408161
gst: Initialize new GstMetaFlags in init_post()
2011-12-28 12:25:59 +01:00
Edward Hervey
2f82c74e68
gstquery: Small doc fixups
2011-12-28 12:02:55 +01:00
Matej Knopp
efdd0a2a82
win32: fix exported variables for VS 2010
...
https://bugzilla.gnome.org/show_bug.cgi?id=666219
2011-12-27 23:26:07 +00:00
Tim-Philipp Müller
95bd31443b
registry: move private bits into private struct
2011-12-26 18:41:13 +00:00
Tim-Philipp Müller
ee7f9f4228
value: micro-optimisation: avoid some unnecessary g_value_unset()
...
We know there's nothing to do here and can save us the function
calls and GValueTable lookups.
2011-12-26 11:27:07 +00:00
Stefan Sauer
39d6b7462f
controller: move GValue handling from control-sources to -binding
...
ControlSources are now gdouble based. A control source is mapped to a
particullar GObject property using a ControlBinding.
2011-12-25 20:48:14 +01:00
Stefan Sauer
a80401b22c
controller: move GstControlledProperty into a separate class
...
Add a GstControlBinding class. This is a preparation for making the
controlsources generate double valued control curves and do the gparamspec
mapping in the control binding. Now the API in GstObject is again mostly
for convenience.
2011-12-25 18:50:45 +01:00
Tim-Philipp Müller
f6a4af20b2
Merge remote-tracking branch 'origin/master' into 0.11
...
Conflicts:
libs/gst/base/gstbasetransform.c
libs/gst/controller/gstinterpolationcontrolsource.c
libs/gst/controller/gstlfocontrolsource.c
plugins/elements/gstfilesrc.c
Dit not merge controller or basetransform changes.
2011-12-25 11:58:12 +00:00
Wim Taymans
5125437606
bufferpool: cleanup metadata in reset_buffer
...
Use the reset_buffer vmethod to remove the unpooled metadata from the buffer.
2011-12-23 15:37:45 +01:00
Wim Taymans
8b202df55d
bufferpool: handle metadata in the pool
...
Mark all metadata on the allocated buffers with a POOLED flag. When a buffer
returns to the pool, remove all metadata that did not have the POOLED flag. This
makes sure that we never leave unknown metadata to the buffers in the pool.
2011-12-22 16:02:05 +01:00
Wim Taymans
87ada5664a
buffer: add foreach function for the metadata
2011-12-22 16:02:05 +01:00
Wim Taymans
974c708041
bufferlist: small doc fix
2011-12-22 16:02:05 +01:00
Wim Taymans
4bc7ff8e3e
meta: add metadata flags
...
Add metadata flags so that we can set extra properties of the metadata
2011-12-22 16:02:05 +01:00
Mark Nauwelaerts
f2d76b7e7b
pipeline: only have a top-level pipeline do pipeline management
...
Fixes #665390 .
2011-12-22 12:31:36 +01:00
Wim Taymans
0a8dd0a4e7
caps: rename variable for consistency
...
Rename the variable for GST_CAPS_NONE to _gst_caps_none for consistency and to
hie the fact that NONE caps are also accidentally empty caps.
2011-12-21 11:10:04 +01:00
Wim Taymans
8ff059ba59
caps: add ANY and EMPTY singletons
...
Add a singleton for ANY and EMPTY caps and make the GST_CAPS_ANY and
GST_CAPS_NONE point to them. This makes the API more consistent now
that the macro does not magically create a ref. It also solves some leaks in
places where the macro was used to register a padtemplate.
2011-12-20 13:24:06 +01:00
Wim Taymans
04e0912094
remove const in gst_type_find_register()
...
Remove the const from the GstCaps in gst_type_find_register() because the
function takes a ref to the caps.
2011-12-20 13:24:06 +01:00
Stefan Sauer
a630743d43
controller: remove unused parent_class varriable from controlsource
2011-12-20 11:38:19 +01:00
Stefan Sauer
503b739b23
controller: cleanup interpolation modes
...
Remove deprecated/unimplemented modes. Turn interpolation mode into a gobject
property. Update docs and examples.
2011-12-19 23:36:26 +01:00
Stefan Sauer
2c7a8b924a
controlsources: refactor interpolation control source
...
Move most of the code to a GstTimedValueControlSource. Split out the trigger
'interpolation mode' to a new control source class. Move tests and examples to
new api. Update docs.
Fixes #610338
2011-12-19 22:52:30 +01:00
Wim Taymans
079a86b78b
memory: make subclasses add other flags
...
Add GST_MAP_FLAG_LAST so that implementations can add additional flags when
mapping memory.
2011-12-19 17:00:18 +01:00
Tim-Philipp Müller
33a566bcc5
pad: allow NULL as filter caps argument with query_caps()
...
https://bugzilla.gnome.org/show_bug.cgi?id=666154
2011-12-14 12:13:36 +00:00
Tim-Philipp Müller
a81abdeee5
elementfactory: use new 'transfer floating' annotation for gst_element_factory_make()
...
Requires gobject-introspection 1.31.1 (older versions will
error out with that).
https://bugzilla.gnome.org/show_bug.cgi?id=664099
2011-12-12 12:11:40 +00:00
Tim-Philipp Müller
d83d9d35ee
Merge remote-tracking branch 'origin/master' into 0.11
2011-12-12 12:00:16 +00:00
Sebastian Dröge
36f999ab64
glib-compat: Add license boilerplate for LGPL
2011-12-12 11:55:52 +01:00
Wim Taymans
651e433427
pad: don't forward on NULL pads
...
The iterator can return NULL in some cases, avoid pushing on those
NULL pads.
2011-12-10 11:07:02 +01:00
Stefan Sauer
f2b5b79eeb
preset: allow applications to specify an extra preset dir
...
An extra application preset dir help to organize presets created for special
purposes. Fixes #660760
API: gst_preset_set_app_dir(), gst_preset_get_app_dir()
2011-12-09 16:15:27 +01:00
Tim-Philipp Müller
c33b50e00f
indexfactory: fix memory leak
...
Introduced by commit bd302bb6
pluginfeature: avoid duplicating feature->name
https://bugzilla.gnome.org/show_bug.cgi?id=459466
https://bugzilla.gnome.org/show_bug.cgi?id=665703
2011-12-06 23:54:59 +00:00
Wim Taymans
629a8d03ce
pad: put new event probe type next to other event types
2011-12-06 18:18:26 +01:00
Matej Knopp
8e6b5f79bd
Add GST_PAD_PROBE_TYPE_HANDLE_FLUSH
2011-12-06 18:18:26 +01:00
Stefan Sauer
eb1259b983
controller: fix gpointer vs. gpointer* mess up
2011-12-06 14:40:35 +01:00
Wim Taymans
c0e3974aa7
pad: remove GST_FLOW_RESEND
...
It is unused and undefined.
2011-12-06 14:24:15 +01:00
Stefan Sauer
4aafc381b2
controller: use _OBJECT logging variants more
2011-12-06 08:48:57 +01:00
Stefan Sauer
4b29d4f29a
controller: remove GstValueArray
...
Instead pass the values as arguments. This simplifies that code and helps
bindings.
2011-12-06 08:35:57 +01:00
Stefan Sauer
4783251b2e
controller: remove gst_object_get_value_arrays
...
One can easilly loop over the controlled properties manually. This is step 1 in
removing GstValueArray.
2011-12-06 08:35:10 +01:00
Matej Knopp
0e935321af
correct return value in gst_push_sticky
2011-12-05 17:11:07 +01:00
Wim Taymans
c2efd026db
make some macros into inline functions
2011-12-05 11:07:24 +01:00
Wim Taymans
be0e58a637
make some more macros as inline functions
...
Make some macros as inline functions for added type checking.
USe new gst_caps_take() in typefind
2011-12-05 10:24:34 +01:00
Tim-Philipp Müller
a1daf846f3
Merge remote-tracking branch 'origin/master' into 0.11
...
Conflicts:
gst/gstobject.h
libs/gst/check/gstcheck.h
libs/gst/controller/gstcontroller.c
plugins/elements/gstidentity.c
tools/gst-xmlinspect.c
2011-12-04 15:38:09 +00:00
Tim-Philipp Müller
2666450864
Suppress deprecation warnings in selected files, for g_static_rec_mutex_* mostly
...
GStaticRecMutex is part of our API/ABI, not much we can do here in 0.10.
2011-12-04 14:38:26 +00:00
Tim-Philipp Müller
5889260d5a
Work around deprecated thread API in glib master
...
Add private replacements for deprecated functions such as
g_mutex_new(), g_mutex_free(), g_cond_new() etc., mostly
to avoid the deprecation warnings. We can't change most of
these in 0.10 because they're part of our API and ABI.
2011-12-04 13:35:38 +00:00
Edward Hervey
b5792eea46
gstquery: Fix unitialized variable
2011-12-04 11:42:39 +01:00
Edward Hervey
bf19148acb
gstsegment: Initialize with proper type
2011-12-04 11:32:57 +01:00
Tim-Philipp Müller
fef18639db
g_thread_init() is deprecated in glib master
...
It's not needed any longer.
2011-12-03 17:40:53 +00:00
Tim-Philipp Müller
ff96aeee84
tagsetter: update for thread API deprecations in glib master
2011-12-03 16:02:36 +00:00
Tim-Philipp Müller
4b18f0a5c3
taglist: update for thread API deprecations in glib master
2011-12-03 15:36:58 +00:00
Tim-Philipp Müller
ad0a465f93
taglist: remove gst_tag_list_get_{char,uchar}
...
Those are unused and should never be used anywhere anyway
really.
2011-12-03 15:18:21 +00:00
Tim-Philipp Müller
ca179625f8
g_thread_create() is deprecated in GLib master, use g_thread_try_new() instead
2011-12-03 13:58:51 +00:00
Tim-Philipp Müller
18291a6b40
Merge remote-tracking branch 'origin/master' into 0.11
...
Conflicts:
gst/gstbus.c
gst/gstevent.c
libs/gst/base/gstbasetransform.c
2011-12-01 23:35:26 +00:00
Wim Taymans
f95e77afc6
taglist: make some tags of type GstSample
...
Make the image and attachment tags of type GstSample so that we can include
extra caps and info along with the buffer data.
2011-12-01 18:50:32 +01:00
Wim Taymans
5477399881
sample: remove const
...
The writability of the structure is ensured by the refcount of the parent
miniobject and we're fine if the parent is writable.
2011-12-01 18:49:34 +01:00
Wim Taymans
facf937276
sample: add new sample miniobject
...
Add a new simple miniobject that is a combination of a GstBuffer, GstCaps,
GstSegment and other arbitrary info organized in a GstStructure. This object can
be used to exchange samples between an element and the application or for
storing album art in tags etc.
2011-12-01 16:37:46 +01:00
Stefan Sauer
e34d796e41
bus: use GST_MESSAGE_SOURCE_NAME() which also takes care of src=NULL.
2011-12-01 16:25:07 +01:00
Wim Taymans
dc23684b12
buffer: add copy flag for meta
...
Add a flag to control if the meta should be copied or not instead of always
copying.
2011-12-01 15:34:06 +01:00
Tim-Philipp Müller
4b57054ae2
info: move FIXME log level after WARNING
...
So it's now ERROR < WARNING < FIXME < INFO and *:5 becomes *:6.
2011-11-30 12:46:10 +00:00
Tim-Philipp Müller
c9bd4e4e96
event: warn and fail instead of creating newsegment events in GST_FORMAT_UNDEFINED
2011-11-30 00:24:32 +00:00
Wim Taymans
09514f251e
bin: keep the element flags up-to-date
...
Keep the require/provide_clock flags up to date.
2011-11-29 15:53:01 +01:00
Wim Taymans
1754ee91ad
element: add indexable flag
...
Remove the is_indexable method check and use an element flag to check if the
element can use an index.
2011-11-28 18:13:27 +01:00
Wim Taymans
40616aeb63
element: use flags for require/provide clock
...
Remove the _require/_provide_clock() methods and use element flags to mark
elements instead of looking at the implementation of the vmethod.
2011-11-28 17:22:44 +01:00
Wim Taymans
d65773b5fa
element: clean up element flags
...
Clean up the element flags
2011-11-28 16:54:55 +01:00
Wim Taymans
06b08e9877
event: add sticky custom quark
2011-11-28 15:35:21 +01:00
Wim Taymans
5a4957eef6
caps: _CAPS_FLAGS_ -> CAPS_FLAG_
2011-11-28 14:24:16 +01:00
Vincent Penquerc'h
c0ba7985bd
gstelement: add gst_element_class_add_pad_template_from_static
...
This function helps ensure the pad template is unreffed
without having to complicate the calling code.
https://bugzilla.gnome.org/show_bug.cgi?id=662664
2011-11-28 13:09:07 +00:00
Wim Taymans
da74724fd5
pad: Handle sticky event errors
...
Use GstFlowReturn to internally pass events between pads.
When we sticky events cause an error, translate this error into a GstFlowReturn.
Caps events will, for example, generate a NOT_NEGOTIATED return when the event
function returns an error.
This allows us then to refuse sending buffers if one of the sticky events is
refused and generate a correct error return value.
2011-11-28 14:07:24 +01:00
Edward Hervey
4839131502
gstmeta: Some more docs
2011-11-28 11:15:27 +01:00
Wim Taymans
9cbb135954
event: add custom downstream sticky event
2011-11-28 10:55:28 +01:00
Matej Knopp
62dce62e00
caps: fix compilation warning
...
GST_STATIC_CAPS is missing initializer for GstMiniObject's n_weak_refs and
weak_refs resulting in compilation warning (llvm-gcc -Wall)
https://bugzilla.gnome.org/show_bug.cgi?id=664927
2011-11-27 22:34:54 +00:00
Stefan Sauer
52e3861e91
warnings: avoid set-but-unused warnings with load-save disabled
2011-11-27 20:39:42 +01:00
Tim-Philipp Müller
7eb796d447
uri: fix wrong G_GNUC_MALLOC
...
_get_protocols() points to const memory in 0.10
despite the non-const return value.
2011-11-26 19:45:48 +00:00
Tim-Philipp Müller
2d7f9cfe92
Merge remote-tracking branch 'origin/master' into 0.11
...
Conflicts:
gst/gstbuffer.h
gst/gstbufferlist.h
gst/gstcaps.h
gst/gstdatetime.h
gst/gstelementfactory.h
gst/gstevent.h
gst/gstghostpad.h
gst/gstindexfactory.h
gst/gstiterator.h
gst/gstmessage.h
gst/gstminiobject.h
gst/gstpipeline.h
gst/gstquery.h
gst/gstsegment.h
gst/gststructure.h
gst/gsttaglist.h
gst/gsturi.h
gst/gstvalue.h
libs/gst/base/gstbitreader.h
libs/gst/base/gstbytereader.h
libs/gst/base/gstbytewriter.h
Note: can't use G_GNUC_MALLOC with GstCaps return
values in 0.11 because of the EMPTY+ANY singletons.
2011-11-26 19:44:23 +00:00
Tim-Philipp Müller
c8380cb0d2
gst: sprinkle some G_GNUC_MALLOC
...
Maybe gcc can do something clever with that, or at least
warn us if we don't save the return value somewhere.
2011-11-26 18:57:44 +00:00
Tim-Philipp Müller
33078aaeb7
buffer: add gst_buffer_{set,get}_qdata()
...
Allows people/us to attach arbitrary metadata to buffers.
https://bugzilla.gnome.org/show_bug.cgi?id=664720
API: gst_buffer_set_qdata()
API: get_buffer_get_qdata()
2011-11-25 17:42:07 +00:00
Wim Taymans
933e8b230c
pad: fix blocking probe emission
...
If we are dealing with a blocking probe, only then check if one the
blocking flags of the hook matches.
Add some more debug.
Make the pad unit test less racy.
2011-11-25 07:11:24 +01:00
Wim Taymans
fef887639c
utils: fix debug of query result
2011-11-25 05:54:09 +01:00
René Stadler
4865607011
query: fix typo in doc
...
Causes a warning from the introspection scanner.
2011-11-24 22:53:09 +01:00
Sebastian Dröge
0280a3c29f
pad: Remove g_warning() if pad accepted caps that are not a subset of the pad caps
...
This check is correct but unfortunately it's impossible to implement
in a threadsafe way because the caps could have changed in the meantime.
Fixes bug #659606 .
2011-11-24 11:15:29 +01:00
Wim Taymans
407f45dc7f
event: add STICKY_MULTY events
...
Add a new event flag for sticky events so that multiple events of that type can
be stored on a pad at the same time. Change the _get_sticky_event() function to
loop over the multiple events of a type.
Change the foreach function to make it possible to removed and modify the sticky
events on a pad.
Use an variable size array now to store the events. This could later be
optimized some more.
2011-11-23 18:05:00 +01:00
Wim Taymans
b7e4eeb0b0
bus: handle NULL message src in debug
2011-11-23 18:05:00 +01:00
Wim Taymans
03cdd32b33
bufferlist: avoid reading past the array
...
When the foreach function told us to remove the buffer from the list, decrease
the length of the array or else we might read past the last item in the array.
2011-11-23 18:05:00 +01:00
Wim Taymans
31b79556b8
pad: take peerpad correctly
...
Don't take the peerpad too early, it might change because of the
probes.
2011-11-23 08:17:36 +01:00
Wim Taymans
dd65aae9a1
pad: rework sticky events
...
Rewrite sticky events, trying to make it a bit more simple.
When sticky events are pushed on a srcpad, store them in the sticky event
array and mark the event with received = FALSE.
When the sticky event is successfully sent to the peer pad, make
received = TRUE.
Keep a PENDING_EVENTS pad flag that is set when one of the events is in
the received = FALSE state for some reason.
when activating a sinkpad, mark all events received = FALSE on the peer
srcpad.
When pushing a buffer, check the PENDING_EVENTS flag and if it is set, push all
events to the peer pad first.
2011-11-22 18:40:49 +01:00
Wim Taymans
165af7c903
gst: add new flags
2011-11-22 18:40:49 +01:00
Wim Taymans
9c8d323d07
padd return value from _mini_object_replace()
2011-11-22 12:45:41 +01:00
Matej Knopp
6ea74a0572
Fix printf format compiler warnings on OSX/64bit
...
https://bugzilla.gnome.org/show_bug.cgi?id=664491
2011-11-22 00:51:06 +00:00
Wim Taymans
d890017021
pad: fix locking order error
2011-11-21 17:43:51 +01:00
Wim Taymans
fda5685a15
ghostpad: fix print format
2011-11-21 17:43:04 +01:00
Wim Taymans
6e0a724394
pad: Add destroy notify to pad functions
...
Add _full variants of the pad function setters that take a destroy notify.
Make some macros that make the old method name pass NULL to this new
function.
2011-11-21 15:47:01 +01:00
Wim Taymans
2f1ed65339
pad: Merge pad mode activation functions
...
Add the pad mode to the activate function so that we can reuse the same function
for all activation modes. This makes the core logic smaller and allows for some
elements to make their activation code easier. It would allow us to add more
scheduling modes later without having to add more activate functions.
2011-11-21 13:29:05 +01:00