Wim Taymans
f505f778cc
pad: more preroll lock to basesink
...
Move the preroll lock to basesink where it belongs.
2011-03-04 17:25:02 +01:00
Wim Taymans
6c18c9508d
miniobject: more boxed type fixing
...
More miniobject fixing, leaks horribly somewhere..
2011-02-23 10:35:09 +01:00
Wim Taymans
1218511185
libs: cleanups for 0.11
...
Remove deprecated stuff, fix padding, rearrange methods.
2011-02-22 19:09:48 +01:00
Wim Taymans
0894ed2053
Merge branch 'master' into 0.11
2011-02-22 15:08:51 +01:00
Wim Taymans
238b9a57cc
Merge branch 'master' into 0.11
...
Conflicts:
configure.ac
gst/gstelement.c
gst/gstelement.h
gst/gstpad.c
gst/gstutils.c
libs/gst/base/Makefile.am
libs/gst/check/Makefile.am
libs/gst/controller/Makefile.am
libs/gst/dataprotocol/Makefile.am
libs/gst/net/Makefile.am
win32/common/libgstreamer.def
2011-02-22 14:11:59 +01:00
Thiago Santos
83597767b1
basetransform: Be smarter with pad allocs
...
Avoid doing unnecessary pad-allocs when on passthrough mode.
If multiple basetransform elements are on a pipeline, they
would do a pad-alloc for each received buffer, each element
would do this, so we would have lots of pad allocs on the
pipeline for a single buffer being pushed through it.
This patch attempts to reduce this amount by avoiding
doing pad-allocs if the element has already done it
after the last pushed buffer. So it will only be allowed
to do a new pad-alloc after it has pushed a buffer, so we get
1x1 pad-alloc and buffer ratio
https://bugzilla.gnome.org/show_bug.cgi?id=642373
2011-02-21 10:31:22 -03:00
Thiago Santos
3aaef921c5
basetransform: Check for pad alloc caps when suggestion is not fixed
...
If after computing the suggestion with downstream caps we still have
a non-fixed suggestion caps try to intersect with the input caps
of the pad alloc to avoid useless renegotiations.
https://bugzilla.gnome.org/show_bug.cgi?id=642130
2011-02-14 15:59:25 +01:00
Wim Taymans
f8828eace6
basesink: improve duration calculation
...
Keep track of the average distance between incomming timestamps and
use that to estimate the frame duration when buffers have no duration set on
them.
2011-02-14 15:17:45 +01:00
Wim Taymans
79665e8247
basesink: improve rate calculation
...
When there is no duration on input buffers, assume the rate is 1.0
instead of (the undefined) 0.0.
2011-02-14 15:17:44 +01:00
Wim Taymans
9661a713ba
basesink: improve average duration calculation
...
Improve the calculation of the duration. When we have no input duration set on
the input buffers stop is set to start and then we end up using a 0 duration in
the average calculation.
2011-02-14 15:17:44 +01:00
Wim Taymans
dc0120fe28
basesink: rename variable
...
Rename an internal variable to better reflact what its value means.
2011-02-14 15:17:44 +01:00
Wim Taymans
c8d1abdd00
basesink: fix some comments
2011-02-10 15:21:46 +01:00
Wim Taymans
d19f40c716
basesink: keep track of earliest QoS timestamp
...
Keep track of the earliest allowed timestamp according to the latest
QoS report and drop buffers before that time. Activate this filter
when throttling is enabled. We could later also activate this in the
other QoS cases.
See #638891
2011-02-10 15:21:46 +01:00
Wim Taymans
dad43fa004
basesink: use new QoS type
...
Use the new QoS type and send throttling QoS messages.
2011-02-10 15:21:46 +01:00
Wim Taymans
4ee5c61a2d
basesink: add property to configure a throttle-time
...
Add a property to configure the throttle time on a sink. The
property is not yet used.
See #638891
2011-02-10 15:21:45 +01:00
Tim-Philipp Müller
6c073ca2c7
gobject-introspection: another attempt to make g-i find the right libgstreamer
...
Turns out g-i puts the additional -L we specify at the end, helpfully.
https://bugzilla.gnome.org/show_bug.cgi?id=637549
2011-01-13 20:12:16 +00:00
Tim-Philipp Müller
1ae28ed41c
gobject-introspection: make g-ir-scanner try harder to find the right libgstreamer
...
It's not quite clear to me why g-ir-scanner doesn't get this info from
the pkg-config file, nor why libtool doesn't get it from the .la.
https://bugzilla.gnome.org/show_bug.cgi?id=637549
2011-01-11 14:41:27 +00:00
Wim Taymans
5c479aa3a4
basesrc: make sure we wait and release the live lock
...
Make sure we release the live lock and wait in all cases when we need to wait
for the playing or flushing state change.
Fixes #635785
2011-01-10 13:30:05 +01:00
Tim-Philipp Müller
655451db54
basesrc, basesink: add some FIXMEs for the type of the blocksize property
2011-01-02 16:59:18 +00:00
Wim Taymans
e444ffecf7
basesrc: fix deadlock
...
Only go into LIVE_WAIT when the are not live_running and only stop waiting when
live_running is TRUE. If we don't loop, we could deadlock when called from
outside of basesrc, such as baseaudiosrc.
Fixes #635785
2010-12-29 11:48:18 +01:00
Wim Taymans
ef44d4b539
basesink: also preroll async=false sinks
...
Also preroll async=false sinks after a flush.
2010-12-28 16:23:32 +01:00
Wim Taymans
041d33e5f5
basesink: fix typo
2010-12-21 10:35:40 +01:00
Edward Hervey
bf41fb056a
base: documentation fixups and annotation
2010-12-17 19:19:40 +01:00
Edward Hervey
5372e81c9a
basesrc: Use an atomic integer instead of a lock for checking tags presence
...
https://bugzilla.gnome.org/show_bug.cgi?id=636455
2010-12-17 10:59:25 +01:00
Sebastian Dröge
0a74684b41
basetransform: Handle downstream giving a buffer with new caps but invalid size
...
This can happen for example when downstream proposed new caps, later proposed
the previous caps again which in turn enables passthrough mode in upstream
elements and the wrong-sized buffer appears in an element where the caps
change never happened. Simply allocate a new buffer in this case.
See bug #635461 .
2010-12-16 10:58:33 +01:00
Wim Taymans
6da39bf508
basesink: improve last_stop calculation
...
Only update the last_stop value when we had a valid stop position for the
clipping or else the clipping code assumes the stop position extends to the end
of the segment, which makes the position reporting return weird values.
2010-12-14 19:00:14 +01:00
Wim Taymans
4fd63f0ce2
basesink: fix object type handling in queued preroll
...
Factor out the method to get the object type.
When preroll-queue-len > 0, use the right object type instead of ignoring
buffer-lists.
2010-12-14 15:54:41 +01:00
Edward Hervey
c62c009d7e
libs: Fix GIR build for srcdir != builddir
2010-12-11 10:10:04 +01:00
Stefan Kost
1de8b60034
docs: fix wrong use of Since: keyword
2010-12-08 12:17:35 +02:00
Tim-Philipp Müller
686b16756d
docs: libgstbase: more gobject introspection annotations
...
Many of these are superfluous and were added for clarity.
2010-12-07 18:37:04 +00:00
Wim Taymans
b2ab72b916
pad: remove get_caps_reffed variants
...
Make the _get_caps functions behave like the _get_caps_reffed variants and
remove the _reffed variants. This means that _get_caps doesn't return a writable
caps anymore and an explicit _make_writable() is needed before modifying the
caps.
2010-12-07 18:14:38 +01:00
Wim Taymans
ce0355e6d0
Merge branch 'master' into 0.11
2010-12-07 15:53:56 +01:00
Edward Hervey
d1eb8a14c5
libs: Add -I$(top_srcdir)/libs to g-ir-scanner commands
...
Without this, it will fail finding all headers.
2010-12-07 13:19:10 +01:00
Wim Taymans
99775e5271
more 0.10 -> 0.11
2010-12-06 13:21:45 +01:00
Edward Hervey
27c0bc93b7
basesink: Don't forget to unref the cached ClockId
2010-12-05 15:58:48 +01:00
Edward Hervey
01039b1671
gstdataqueue: Don't break ABI
...
The order of the field was wrong, and the size of the structure didn't
end up being the same.
2010-12-02 19:44:41 +01:00
Wim Taymans
a813aad0ac
basesink: rework position reporting code
...
Unify the different position reporting code paths to make it more
understandable.
Use start_time to get more accurate position reporting in paused.
Fix unit tests for more accurate reporting.
2010-12-02 19:10:46 +01:00
Wim Taymans
79570f49dc
basesink: perform wait_preroll in a while loop
...
We need to continue calling wait_preroll() as long as the need_preroll variable
is true.
2010-12-02 19:10:45 +01:00
Wim Taymans
9076d5688f
basesink: also preroll after a flush with async=false
...
Make sure to preroll after a flush even when we are async=false.
Add unit test.
Fixes #634965
2010-12-02 19:10:45 +01:00
Wim Taymans
19e5a54c9f
adapter: improve docs a little.
2010-12-02 19:10:45 +01:00
Edward Hervey
ece40dacbc
basesink: Re-using GstClockID instead of constantly recreating one
...
Makes _sink_wait_clock at least 2 times faster.
https://bugzilla.gnome.org/show_bug.cgi?id=632778
2010-12-02 19:04:56 +01:00
Edward Hervey
7115b77aab
basesink: Pass along miniobject type through various functions
...
Avoids doing useless GST_IS_*
https://bugzilla.gnome.org/show_bug.cgi?id=632778
2010-12-02 19:04:56 +01:00
Edward Hervey
606e59468d
basesink: Switch enable_last_buffer to an atomic int
...
Avoids having to take a lock to read/write it.
https://bugzilla.gnome.org/show_bug.cgi?id=632778
2010-12-02 19:04:56 +01:00
Edward Hervey
7cc08390b9
gstdataqueue: Only emit g_cond_signal when needed
...
Keep track of which cond we're waiting for and only emit when needed.
https://bugzilla.gnome.org/show_bug.cgi?id=632779
2010-12-02 19:04:55 +01:00
Evan Nemerson
4906671694
introspection: Include exported packages information in GIRs
...
https://bugzilla.gnome.org/show_bug.cgi?id=635389
2010-11-21 00:36:30 +00:00
Jonathan Matthew
754c3038be
basetransform: use input position for queries if we have no output position
2010-10-29 15:45:04 +02:00
Wim Taymans
ce919c0573
basetransform: fix reverse negotiation
...
When the downstream element suggests a new format, pass the suggestion
upstream if we can't convert to it.
Fixes #633147
2010-10-29 12:03:48 +01:00
Tim-Philipp Müller
07755fd5ee
bytereader: const-ify byte reader argument in peek/scan API
...
Because we can.
2010-10-22 12:04:09 +01:00
Mark Nauwelaerts
21c5064783
basesink: recompute correct running time for buffer ending flushing step
...
Prevents delaying/hanging when resuming PLAYING.
Fixes #632433 .
2010-10-20 18:46:39 +02:00
Tim-Philipp Müller
b0d7c61f18
docs: fix misc. gtk-doc warnings in libs
...
(for gtk-doc 1.15)
2010-10-16 19:19:47 +01:00