Commit graph

9956 commits

Author SHA1 Message Date
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
Sebastian Dröge
40732dd308 queue2: Integrate into coreplugins 2009-10-29 11:30:11 +01:00
Sebastian Dröge
08e3cb531c queue2: Move struct declarations to a separate header 2009-10-29 11:21:36 +01:00
Sebastian Dröge
9236921a34 queue2: Move queue2 to gstreamer coreplugins
Fixes bug #599996.
2009-10-29 11:18:20 +01:00
Tim-Philipp Müller
d98dc4788c Remove GST_DEBUG_FUNCPTR where they're pointless
There's not much point in using GST_DEBUG_FUNCPTR with GObject
virtual functions such as get_property, set_propery, finalize and
dispose, since they'll never be used by anyone anyway. Saves a
few bytes and possibly a sixteenth of a polar bear.
2009-10-29 11:17:18 +01:00
Wim Taymans
141e06b547 queue2: add custom acceptcaps function 2009-10-29 11:17:17 +01:00
Mark Nauwelaerts
f766708c17 queue2: post error message when pausing task if so appropriate
If a downstream element returns an error while upstream has already
put all data into queue2 (including EOS), upstream will no longer
chain into queue2, so it is up to queue2 to perform some
EOS handling / message posting in such cases.  See #589991.
2009-10-29 11:17:17 +01:00
Wim Taymans
ec81bbf713 queue2: fix leak and improve buffering
Keep track of the max requested position and compare this to the write position
in the temp file to get the current amount of buffered data.
Fix memleak of all incomming buffers.

Fixes #588551
2009-10-29 11:17:17 +01:00