Commit graph

9913 commits

Author SHA1 Message Date
Sebastian Dröge
0ed24bc50e utils: API: Add multiplication and addition functions for fractions
gst_util_fraction_add()
gst_util_fraction_multiply()

These work on plain integers instead of GValues to
keep the overhead as low as possible.
2009-11-16 09:56:32 +01:00
Sebastian Dröge
e4257e8d5f gstutils: API: Add fraction helper functions
gst_util_greatest_common_divisor()
gst_util_double_to_fraction()
gst_util_fraction_to_double()

Using these instead of going over GValue has much lower overhead.

Also add float<->fraction transform functions for GValue.
2009-11-16 09:56:32 +01:00
Stefan Kost
c84d17bcaf debug: add more debug logging to help tracking parsing errors 2009-11-13 15:46:40 +02:00
Ole André Vadla Ravnås
73f2d464b7 miniobject: avoid race when recycling buffers
Avoid a race where a miniobject is recycled and quickly freed, which causes the
g_type_free_instance() to be called on the same object twice.

Ref the object before calling the finalize method and check if we still need to
free it afterward.

Also add a unit test for this case.

Fixes #601587
2009-11-13 11:45:48 +01:00
Stefan Kost
4d17d331bf whitespace: remove blanks in doc-comment 2009-11-12 17:02:40 +02:00
Руслан Ижбулатов
b1d57a8b05 registry: Import _priv_gst_dll_handle into gstregistry.c
Fixes bug #601668.
2009-11-12 13:00:07 +01:00
Руслан Ижбулатов
516d4a984f tests: Do not list libgstcheck as a requirement for tests/examples/manual
Fixes bug #601669.
2009-11-12 12:52:46 +01:00
Jan Schmidt
f83ea8233b basesink: Fix treating base_time as unsigned in position calculation
Element base_time is a signed quantity, which leads to basesink returning
a position of 0 when dealing with a negative base time - which are quite
legal when clocks (such as the audio clock) are close to 0.

This doesn't manifest in normal pipelines, of course - but can happen
(at least) when manually setting the base time on a pipeline.
2009-11-11 17:12:19 +00:00
Sebastian Dröge
039ef83523 registry: API: Add gst_{default,}_registry_get_feature_list_cookie()
This returns the internal feature list cookie, which changes every
time a feature is added or removed. This can be used by elements
to check if they should update their cached feature lists.
2009-11-10 18:17:26 +01:00
Thiago Santos
1a50186630 queue2: fix printf format
Cast the variable to gint to conform to the printf format used.
It is casted rather than changing the format because the
message is created with a cast to gint too.
2009-11-10 11:55:34 -03:00
Thiago Santos
245089c9bd queue2: avoid crashing due to negative percent
queue2 would crash when using small buffer sizes because
it would overflow when calculating the percentage, resulting
in the buffering GstMessage not being created and trying to be
used. This patch uses a gint64 instead of a gint to do the
percentage math, making it harder to overflow.
2009-11-10 10:10:56 -03:00
Thiago Santos
5c7104c002 queue2: Fix small doc typo 2009-11-10 09:52:30 -03:00
Tim-Philipp Müller
dfc792c904 registrychunks: fix compilation with debugging disabled
Add ugly ifdef to fix unused variable warning when compiling with
debug logging disabled.
2009-11-10 00:58:37 +00:00
Stefan Kost
ab5abab603 planning: add thoughts about foreign registry cache updates 2009-11-09 16:33:05 +02:00
Stefan Kost
ccd1a2e8ad inspect: allow to get plugin-install-info for all installed plugins
If no plugin is given, print the info for all plugins. This can be used as a
starting point to generate a profile about what the gstreamer installation can
potentialy handle (e.g. for MTP or DLNA).
2009-11-09 14:57:54 +02:00
Wim Taymans
2ffbb1a374 docs: don't forget to unref the pad 2009-11-09 12:42:35 +01:00
Tim-Philipp Müller
ed86995cd8 gst-launch: wake up less often to check if we've been interrupted
Check if we've been interrupted only four times per second instead
of twenty times per second, to wake up the cpu less often and
save power (see bug #600922).
2009-11-07 20:22:49 +00:00
Tim-Philipp Müller
8abd61339d gstconfig.h: add define to force printf format checking for debug messages
Force printf format checking for debug messages if GST_DISABLE_PRINTF_EXTENSION
is defined. This is useful to quickly check code for printf format mismatches
in debugging messages that would usually not be caught (with glibc+gcc and
printf extensions being used).

To use: make clean; make CFLAGS='-g -O2 -DGST_DISABLE_PRINTF_EXTENSION'
2009-11-05 21:23:22 +00:00
Edward Hervey
70a08107fd tests: Make sure we use the local libgstbase and not a stray outside one.
Theoretically we should also do this for all local libraries to make sure
we don't test with a 'stray' outside library.
2009-11-05 21:09:28 +01:00
Tim-Philipp Müller
2d177f9ee7 docs: fix typo 2009-11-05 18:39:15 +00:00
Tim-Philipp Müller
6afa355856 taglist: avoid looking up GstTagInfo twice in a row
Pass the info structure to our internal function if already available.
Also clean up warnings for unknown tags.
2009-11-05 18:39:15 +00:00
Edward Hervey
6f7519704d gstregistrychunks: We're certain plugin_name is an intern string.
The only place this method is called from creates the plugin_name argument
with g_intern_string().
Shaves off 1% from registry loading.
2009-11-05 18:55:30 +01:00
Bastien Nocera
9581e5887c implement buffering-left argument to buffer messages
Using the current fill level of the queue, and the average input
rate, we can determine how long it will take to finish downloading
the whole stream to the temporary file.

Fixes #600726
2009-11-05 15:22:35 +01:00
Wim Taymans
7da9eb0f74 query: whitespace fixes 2009-11-05 15:14:13 +01:00
Wim Taymans
473594b3a4 ghostpad: fix locking 2009-11-05 14:02:28 +01:00
Stefan Kost
0467799f22 ghostpad: don't release mutex twice 2009-11-05 14:30:48 +02:00
Stefan Kost
df2341684f ghostpad: skip type check in internal api 2009-11-05 14:30:48 +02:00
Wim Taymans
64a4037f63 pad: indentation fix 2009-11-05 12:36:10 +01:00
Stefan Kost
f63ecd04a8 pad: rename new api from _refed to _reffed.
Due to popular demand rename the new api as we still can.
API: gst_pad_get_caps_reffed(), gst_pad_peer_get_caps_reffed()
2009-11-05 12:54:32 +02:00
Stefan Kost
211b2e4338 element: access padtemplate list directly to avoid call and type check. 2009-11-04 22:42:52 +02:00
Sebastian Dröge
82f66b4036 event: Add a FIXME 0.11 for having flush events that don't reset running time 2009-11-04 18:59:23 +01:00
Jan Schmidt
94bb0ee718 registrychunks: Fix a printf compile warning on 64-bit platforms 2009-11-04 17:52:21 +00:00
Sebastian Dröge
6042793c26 ghostpad: Make sure that nobody sets the proxypad or ghostpad itself as target
Doing this will lead to very interesting crashes, like stack overflows.
2009-11-04 17:17:17 +01:00
Jan Schmidt
f425b2711f plugin loader: Don't fail after a short read/write
The logic to handle short reads/writes was incorrect, causing the
packet handler to attempt to handle incomplete packets.

Grow the packet transmit buffer in proportion to observed usage,
causing fewer reallocs.

Add some more debug in the registry chunks code.
2009-11-04 11:36:20 +00:00
Jan Schmidt
cebbcb1cdf plugin loader: Don't crash on bogus plugin details
When invalid registry chunks are received from the child, and parsing
fails, don't access an invalid plugin pointer. Instead attempt to
figure out which plugin caused the problem and blacklist it.
2009-11-04 11:36:20 +00:00
Jan Schmidt
35e1103446 gst-indent: Use the same logic to find gnuindent as the git hook 2009-11-04 11:36:19 +00:00
Stefan Kost
69ea131cfa build: include stdio.h for FILE 2009-11-03 17:30:14 +02:00
Tim-Philipp Müller
5f8b121619 docs: add another example to the gst-launch man page
Add an example that shows how to refer to specific pads by name
when constructing a pipeline string. Fixes #600382.
2009-11-03 01:23:03 +00:00
Tim-Philipp Müller
5790c33fe4 gsttypefind: avoid one more run-time type check 2009-11-02 08:50:04 +00:00
Sebastian Dröge
f9e3b72ff6 structure: API: Add gst_structure_id_has_field{,_typed} 2009-11-02 09:24:10 +01:00
Edward Hervey
0aff2c55b7 gsttypefind: Use _CAST variants when the type has alredy been checked.
This avoids checking the type n_typefinders * 4 times when loading the
registry.
2009-11-02 08:30:24 +01:00
Sebastian Dröge
15229ab669 ghostpad: Implement iterate internal links
The internally linked pad of the ghost pad is its
proxy pad, which is the pad that is linked to the ghost
pads target.
2009-11-01 11:24:40 +01:00
Sebastian Dröge
28493b04ec parser: Make sure that signal user data is freed by setting a GClosureNotify
...instead of using a second mechanism and storing the user data
inside the GObjects qdata.
2009-10-31 16:56:17 +01:00
Sebastian Dröge
02d044e291 parser: Use GSlice for allocating the structs 2009-10-31 16:49:03 +01:00
Sebastian Dröge
5b5718cd20 parser: Always get DelayedLink information from the objects qdata
This makes sure that it is always valid.
2009-10-31 16:43:26 +01:00
Edward Hervey
a6cbe26164 po: queue2 has moved to core 2009-10-31 09:48:19 +01:00
Sebastian Dröge
9ff8c9a7bb queue2: Add to the docs 2009-10-29 11:41:33 +01:00
Sebastian Dröge
22fbce48bb queue2: Use "Queue 2" as long name 2009-10-29 11:38:21 +01:00
Sebastian Dröge
0f1c4ab188 queue2: Use GST_BOILERPLATE_FULL() and add pad templates/set details in base_init 2009-10-29 11:35:08 +01:00
Sebastian Dröge
5c821a0df5 queue2: Use gst_element_class_set_details_simple() 2009-10-29 11:30:57 +01:00