Commit graph

128 commits

Author SHA1 Message Date
Benjamin Otte
6fb4cda8fb controller: Fix gst_interpolation_control_source_find_control_point_iter
The logic in that function is broken. Various NULL-checking bandaids for
guaranteed non-NULL variables didn't even help there.

This patch updates the function to check if a previous item exists
before fetching it instead of after. This makes all other tests
unnecessary.
In particular, it makes the check for an empty list unnecessary, because
for empty lists the only iter is the begin iter (and the end iter) and
so the new check catches that case.

https://bugzilla.gnome.org/show_bug.cgi?id=616846
2010-04-26 16:46:11 +02:00
Sebastian Dröge
69992811f4 lfocontrolsource: Use correct setter for double GValues 2010-04-15 22:05:38 +02:00
Tim-Philipp Müller
c4a4f2dad2 libs: point gobject-introspection scanner to .la files
Point g-ir-scanner to the .la file of our library, which hopefully
makes it find the right dependencies in all cases (ie. our locally
built libgstreamer and not the system-installed one). This is also
how it's done in Gtk+ and how it's documented in the wiki, see
http://live.gnome.org/GObjectIntrospection/AutotoolsIntegration

Based on patches by Vincent Untz and Alan Knowles.

Fixes #603710.
2010-04-03 13:41:52 +01:00
Tim-Philipp Müller
1a72c2f01b libs: don't use fancy shell features when invoking gobject-introspection scanner
It's POSIX, but tcsh doesn't seem to support it.
2010-03-25 15:54:19 +00:00
Tim-Philipp Müller
8cc7274163 libs: fix PKG_CONFIG_PATH used when calling gobject-introspection scanner
Our own pkgconfig directory should come first, so that pkg-config uses
the in-tree libgstreamer and not some external one when --pkg=gstreamer-0.10
is passed to g-ir-scanner.

See #603710.
2010-03-25 13:48:19 +00:00
Sebastian Dröge
32b1ea4769 controller: Mark property_name in GstValueArray as const
This won't and should not be changed from any API
2010-03-17 12:18:18 +01:00
Sebastian Dröge
1d316d75bb interpolationcontrolsource: Don't pass NULL to the GSequence API 2010-03-12 15:40:37 +01:00
Benjamin Otte
7e7f51f617 Fixes for -Wmissing-declarations -Wmissing-prototypes
Also adds those flags to the configure warning flags

https://bugzilla.gnome.org/show_bug.cgi?id=611692
2010-03-11 10:59:57 +01:00
Benjamin Otte
a9d1a493a7 Fixes for -Wwrite-strings
This changes some APIs in compatible ways:
- Some functions now take "const char *" arguments, not "char *"
- Some structs now have "conts char *" members, not "char *"
The changes may cause warnings when compiling with the right warning
flags. You've been warned.

Also adds -Wwrite-strings as a warning flag in configure.ac.

https://bugzilla.gnome.org/show_bug.cgi?id=611692
2010-03-10 20:50:10 +01:00
Benjamin Otte
e8f65e8bff Make code safe for -Wredundant-decls
Adds that warning to configure.ac

Includes a tiny change of the GST_BOILERPLATE_FULL() macro:
The get_type() function is no longer declared before being defined.

https://bugzilla.gnome.org/show_bug.cgi?id=611692
2010-03-10 20:45:33 +01:00
Sebastian Dröge
ce74a1ae19 build: Make some more rules silent if requested 2010-03-09 20:57:17 +00:00
Sebastian Dröge
e6ff20c416 lfocontrolsource: Optimize get_value_array()
Don't convert from GValue to the actual type for every single
value.
2010-03-09 20:57:16 +00:00
Sebastian Dröge
c6e7cf626a interpolationcontrolsource: Optimize get_value_array()
This makes it >10x faster if more than a single value is requested
by not searching in the GSequence for every value and converting
the value from GValue to the real value type.
2010-03-09 20:57:16 +00:00
Sebastian Dröge
b30c7d370e interpolationcontrolsource: Don't pass NULL pointers to GSequence API
This causes assertion failures. Fixes bug #610444.
2010-02-19 14:31:54 +01:00
Sebastian Dröge
82f380704a interpolationcontrolsource: Add const qualifiers to values in the _set functions
The values are not modified and are copied, a const before the parameter
should make this even more obvious.
2010-02-19 14:31:54 +01:00
Sebastian Dröge
4f840e05fd controller: Add some FIXME 0.11 comments 2010-02-19 14:31:54 +01:00
Edward Hervey
27284628e4 optimisation : Use g_object_newv where possible.
This avoids:
* triple-checking for the GType when type-checking is enabled (see #597260)
* Avoids going through an expensive no-argument checking which landed in
  glib-2.22
* Avoids going through 2 extrac functions (g_object_new -> g_object_new_valist)
2009-10-28 09:31:17 +01:00
Stefan Kost
382ad3baa6 controller: just cast in internal API where we have checked parameters already 2009-10-18 23:18:58 +03:00
Stefan Kost
a4e4916632 controller: use g_slice for controlled property structures
Use g_slide instead of nomal g_new, Also don't init struct with 0 as we need to
init it anyway with the real values.
Also join the 3 flags checks into one.
2009-10-18 23:15:07 +03:00
Stefan Kost
cd31173b79 docs: fix controller sections docs 2009-10-14 17:58:22 +03:00
Sebastian Dröge
3c1f41ee7d introspection: Build pkgconfig before all libraries and set PKG_CONFIG_PATH
This way g-ir-scanner can find the gstreamer-0.10 pkg-config file.
2009-09-12 14:35:09 +02:00
Sebastian Dröge
741a946134 introspection: Strip Gst prefix from all types/functions 2009-09-05 12:30:07 +02:00
Sebastian Dröge
4b7518a4e5 introspection: Fix out-of-tree build 2009-09-05 12:04:59 +02:00
Sebastian Dröge
9f16dc384e introspection: Fix build if gir-repository is not installed 2009-09-05 11:51:55 +02:00
Sebastian Dröge
bd6c7c97bf controller: Add gobject-introspection support 2009-09-05 10:28:47 +02:00
Edward Hervey
53b09c392a libs/controller: Set default gst debugging category. 2009-06-29 12:07:36 +02:00
Stefan Kost
04ece69838 controller: add G_LIKELY and join two if for same condition
A G_LIKELY for the sequence!=NULL checks. Join two ifs to an if-else. Add
indent guides to keep indent form breaking the function declaration
2009-05-22 14:21:39 +03:00
Jan Schmidt
2437a08666 controller: Silence a warning from the GSequence being NULL.
Fix a warning that occurs when the self->priv->values is NULL and
the code tries to retrieve an iterator from it. The warning was showing
up in the checks for the volume element.
2009-05-22 09:43:02 +01:00
Stefan Kost
6784355d52 controller: fix assertion when freeing the control source 2009-05-20 17:33:18 +03:00
Sebastian Dröge
10743802be controller: Use ordered GSequence instead of GList
This makes lookups and insertions O(log n) instead of
always O(n) for insertions and O(n) in worst case for
lookups.

Fixes bug #582564.
2009-05-14 22:13:47 +02:00
Stefan Kost
dd3c9ab6b6 controller: factor out duplicated code and add a description for it.
Also fix typo in the tests while reviewing them.
2009-04-14 22:08:56 +03:00
Sebastian Dröge
d12034ab4b gst: Use g_once_init* or G_DEFINE_TYPE 2009-04-04 10:59:39 +02:00
Edward Hervey
14b356b439 controller: remove dead assignment.
The value of prop is being overwritten just after without being read.
2009-04-03 12:57:24 +02:00
Stefan Kost
b118e869a2 controller: Fix generation of control-change arrays.
When generating arrays of control changes timestamp variable was used instead
the local ts variable that we increment when stepping through the array.
Pointed out by Martin Pokorny.
2009-03-20 11:28:37 +02:00
Stefan Kost
e31a7709c3 controller: remove unused variable 2009-02-05 13:42:30 +02:00
Stefan Kost
6a310840af Add todo comments. 2009-01-29 17:46:52 +02:00
Stefan Kost
a91d1953a3 Don't check timestamp here, its done in the called function anyway. 2009-01-26 21:29:02 +02:00
Jan Schmidt
e89ce19497 Update a bunch of gitignores to clean up my git status output 2009-01-23 16:08:40 +00:00
Stefan Kost
7dd8b92448 gst/gstdebugutils.c: Add some ideas, how to make the graph smaller.
Original commit message from CVS:
* gst/gstdebugutils.c:
Add some ideas, how to make the graph smaller.
* gst/gstutils.c:
Add a comment from a debug session.
* libs/gst/base/gstbasetransform.c:
Log more context.
* libs/gst/controller/gstinterpolationcontrolsource.c:
Indet.
* plugins/elements/gstcapsfilter.c:
Fix typo in docs.
2009-01-01 21:27:06 +00:00
Stefan Kost
1f8d758f27 libs/gst/controller/gstcontroller.c: Aggregate return value for gst_controller_sync_values(). More info in logging. A...
Original commit message from CVS:
* libs/gst/controller/gstcontroller.c:
Aggregate return value for gst_controller_sync_values(). More info in
logging. Always set values on first sync-call.
* libs/gst/controller/gstcontrolsource.c:
Microoptimizations.
* libs/gst/controller/gsthelper.c:
Fix return code and comment.
2008-12-09 09:56:25 +00:00
Sebastian Dröge
8e8a5cbf11 libs/gst/controller/: Use gst_guint64_to_gdouble instead of gst_util_guint64_to_gdouble as it is mapped to a cast on ...
Original commit message from CVS:
* libs/gst/controller/gstinterpolation.c:
* libs/gst/controller/gstlfocontrolsource.c:
Use gst_guint64_to_gdouble instead of gst_util_guint64_to_gdouble
as it is mapped to a cast on non-win32 platforms.
2008-11-17 21:43:06 +00:00
Stefan Kost
627c40985b libs/gst/controller/: Keep last-value and only call set_property if value has changed. This supresses all the g_objec...
Original commit message from CVS:
* libs/gst/controller/gstcontroller.c:
* libs/gst/controller/gstcontrollerprivate.h:
Keep last-value and only call set_property if value has changed. This
supresses all the g_object_notifies we would trigger otherwise. It
also allows the user to chage the value while there is no controller
change.
2008-11-17 21:41:35 +00:00
Sebastian Dröge
10caec03ce libs/gst/controller/gstinterpolationcontrolsource.c: Don't use declarations after statements.
Original commit message from CVS:
* libs/gst/controller/gstinterpolationcontrolsource.c:
(_list_find_sorted_custom):
Don't use declarations after statements.
2008-07-08 11:20:22 +00:00
Stefan Kost
b1b4a78ffc libs/gst/controller/gstinterpolationcontrolsource.c: Optimize list handling. Use own find function. Exploit that fact...
Original commit message from CVS:
* libs/gst/controller/gstinterpolationcontrolsource.c:
Optimize list handling. Use own find function. Exploit that fact that
the list is sorted. Also pass back the node before, so that we can
insert quickly. Have a fast path for append.
2008-06-29 16:11:24 +00:00
Stefan Kost
8d6056b7b1 libs/gst/controller/gstcontroller.c: Revert one change, that make ret value possible uninitialized.
Original commit message from CVS:
* libs/gst/controller/gstcontroller.c:
Revert one change, that make ret value possible uninitialized.
2008-06-20 08:36:46 +00:00
Stefan Kost
73151ffc11 libs/gst/controller/gstcontroller.c: Use freeze/thaw notify to sync notify emission a bit (its also more efficient). ...
Original commit message from CVS:
* libs/gst/controller/gstcontroller.c:
Use freeze/thaw notify to sync notify emission a bit (its also more
efficient). Move debug output to LOG (is called a lot in a loop).
Always unset g_values if the have been initialized.
2008-06-20 08:32:36 +00:00
Stefan Kost
27243ac326 Rewrite handling of default values. Fix overflow with unsigned types in linear interpolation. Remove now obsolete _fi...
Original commit message from CVS:
* libs/gst/controller/gstinterpolation.c:
* libs/gst/controller/gstinterpolationcontrolsource.c:
* tests/check/libs/controller.c:
Rewrite handling of default values. Fix overflow with unsigned types
in linear interpolation. Remove now obsolete _first_value() function.
Add more tests. Fixes #538201.
2008-06-20 08:17:08 +00:00
Stefan Kost
e3399e60a2 libs/gst/controller/gstcontroller.c: Add parameter guards.
Original commit message from CVS:
* libs/gst/controller/gstcontroller.c:
Add parameter guards.
2008-05-27 20:19:17 +00:00
Sebastian Dröge
18d8507c0b libs/gst/controller/: Move some private declarations into private headers.
Original commit message from CVS:
* libs/gst/controller/gstcontrollerprivate.h:
* libs/gst/controller/gsthelper.c:
* libs/gst/controller/gstinterpolation.c:
* libs/gst/controller/gstinterpolationcontrolsource.c:
(gst_interpolation_control_source_set_interpolation_mode):
* libs/gst/controller/gstinterpolationcontrolsourceprivate.h:
* libs/gst/controller/lib.c:
Move some private declarations into private headers.
2008-05-03 15:25:25 +00:00
Stefan Kost
4a638e29d9 Add GST_PARAM_CONTROLLABLE and GST_PARAM_USER_SHIFT. Move paramspec docs to own section.
Original commit message from CVS:
* docs/gst/gstreamer-docs.sgml:
* docs/gst/gstreamer-sections.txt:
* gst/gstparamspecs.c:
* gst/gstparamspecs.h:
Add GST_PARAM_CONTROLLABLE and GST_PARAM_USER_SHIFT. Move paramspec
docs to own section.
* gst/gstvalue.c:
This now only documents GValue.
* docs/libs/gstreamer-libs-sections.txt:
* libs/gst/controller/gstcontroller.h:
Remove GST_PARAM_CONTROLLABLE.
2008-04-15 06:16:33 +00:00