Commit graph

443 commits

Author SHA1 Message Date
Tim-Philipp Müller
9c9afee1cf baseaudiosink: default to enable-last-buffer=FALSE for audio sinks
There isn't really any good reason to get the last buffer from an
audio sink, so don't make the sink keep it around unnecessarily.
2011-01-02 17:21:54 +00:00
Havard Graff
60ff7c0eb4 baseaudiosink: protect against ringbuffer disappearing while in a query
Observed a case where the sink went to null-state during the query,
hence the ringbuffer-pointer was NULL, causing a crash.

Moving the ringbuffer-check code until after the query, and hold the
lock during the check and while using the spec-values. It should not matter
to the query wether the ringbuffer is present or not, and it actually
gets a time bit more time to get the ringbuffer set up in this case!

Fixes #635231
2010-12-29 12:29:40 +01:00
Evan Nemerson
8fb2c27ed0 introspection: Add information on exported packages to GIRs
https://bugzilla.gnome.org/show_bug.cgi?id=635392
2010-11-21 00:44:37 +00:00
Stefan Kost
83c14483ed various: add a missing G_PARAM_STATIC_STRINGS flag to object properties 2010-10-13 16:13:31 +03:00
Tim-Philipp Müller
751c34bffc audio: make public get_type() functions thread-safe 2010-10-08 11:34:58 +01:00
Tim-Philipp Müller
6b7af81e30 audio: fix enum value name in enums that are public API
So run-time bindings can introspect the names correctly (we abuse this
field as description field only in elements, not for public API
(where the description belongs into the gtk-doc chunk).

https://bugzilla.gnome.org/show_bug.cgi?id=629746
2010-10-08 11:34:58 +01:00
Wim Taymans
84dba3698d baseaudiosink: add Since markers
Fixes #630443
2010-09-24 13:09:28 +02:00
Havard Graff
3067a83df2 baseaudiosink: Added getter and setter for drift tolerance. 2010-09-24 13:06:35 +02:00
Wim Taymans
c89082b2dd baseaudiosink: subtract the render_delay from our latency
The latency reported by the base class includes the render_delay, which we don't
want to include when we start slaving our clocks.

See #630441
2010-09-24 12:54:47 +02:00
Sebastian Dröge
550d59354f ringbuffer: Use G_DEFINE_ABSTRACT_TYPE instead of manual GObject boilerplate code
This also makes the _get_type() function threadsafe.

Fixes bug #630440.
2010-09-23 23:58:50 +02:00
Wim Taymans
24226284b8 baseaudio: avoid taking extra ref on sink/src
Don't take an extra ref on the sink and source because that creates a reference
cycle. Instead, use the invalidate method of the clock when the sink and source
are freed. This way, we don't call into the time function anymore after the
objects are disposed.
2010-09-07 18:12:38 +02:00
Wim Taymans
c7972692d3 audioclock: add a function to invalidate the clock
Add a function to invalidate the time function of a clock. Useful for when the
function becomes invalid.
2010-09-07 18:12:38 +02:00
Tim-Philipp Müller
e776699036 build: use new AG_GST_PKG_CONFIG_PATH m4 macro from common
Sets up a GST_PKG_CONFIG_PATH variable for use in Makefile.am
(avoids trailing ':' in PKG_CONFIG_PATH used).
2010-08-14 19:12:37 +01:00
Tim-Philipp Müller
b61b83376a introspection: set PKG_CONFIG_PATH so that our in-tree libs come first when calling scanner
When calling gobject-introspection scanner, make sure our own
freshly-built libs within the source tree (well, build dir) come
first in the PKG_CONFIG_PATH. May or may not help to make sure
that it doesn't pick up older external plugins-base libs (or
.gir files) from outside the source tree / build directory as
dependencies of the introspected lib instead of using the
stuff we just built in a sibling directory.

https://bugzilla.gnome.org/show_bug.cgi?id=623698
2010-08-14 19:11:48 +01:00
Sebastian Dröge
b296c96169 baseaudiosink/baseaudiosrc: Post CLOCK-LOST/CLOCK-PROVIDE when going to/from READY
Otherwise the clocks are redistributed every time the pipeline
goes to PAUSED, which is quite expensive.
2010-08-04 15:19:42 +02:00
Wim Taymans
f9404c0b27 ringbuffer: improve debugging 2010-08-04 10:33:32 +02:00
Wim Taymans
2304ff9095 ringbuffer: whitespace fixes 2010-08-04 10:33:32 +02:00
Sebastian Dröge
ed271ff809 baseaudiosink: Post clock-provide and clock-lost messages when going from/to PLAYING 2010-07-16 17:40:45 +02:00
Sebastian Dröge
e84c7f02b4 baseaudiosrc: Post clock-provide and clock-lost messages when going from/to PLAYING 2010-07-16 17:40:45 +02:00
Sebastian Dröge
f1ac770f1b baseaudiosink: Use new gst_audio_clock_new_full() 2010-07-16 17:40:45 +02:00
Sebastian Dröge
32b0b0aef9 baseaudiosrc: Use new gst_audio_clock_new_full() 2010-07-16 17:40:45 +02:00
Sebastian Dröge
8989ad93d9 audioclock: API: Add gst_audio_clock_new_full() with a GDestroyNotify for the user_data
Elements usually use their own instance as instance data but the
clock can have a longer lifetime than their elements and the clock
doesn't own a reference of the element.

Fixes bug #623807.
2010-07-16 17:40:17 +02:00
Wim Taymans
2ced0a3d5d ringbuffer: check for ringbuffer state first
Check for the state of the ringbuffer before doing the checks of the other
buffer properties, when we're not started, we don't care about those values.
2010-06-25 17:21:57 +02:00
Sebastian Dröge
a5c35621c3 Revert "baseaudiosink: Allocate and free the clock in NULL->READY and reverse"
This reverts commit cea2644ed8.

Many audio sink assume that they can create a clock in
the instance init function and it will be there forever
and not be cleared by the state change functions.
2010-06-03 13:44:40 +02:00
Sebastian Dröge
cea2644ed8 baseaudiosink: Allocate and free the clock in NULL->READY and reverse 2010-06-03 10:23:22 +02:00
Vincent Untz
764c899215 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

Fixes #603710.
2010-04-03 14:03:45 +01:00
Tim-Philipp Müller
b37c993e4e gst-libs: more gobject-introspection fixes
Use right .pc file variable for compiler includes this time:
g-ir-compiler wants the girdirs not the typelibdirs as includes.
2010-03-30 23:46:10 +01:00
Tim-Philipp Müller
64cfa6bf73 gst-libs: fix up gobject-introspection some more
Use new girdir and typlibdir from core .pc files, so we can figure
out the right includes to pass to the gobject-introspection tools,
whether core is installed in the same prefix as gobject-introspection
or in a different prefix or uninstalled. This also keeps us from adding
bogus paths to the includes that only work if core is uninstalled.

Also add some missing includes/pkgs where needed.
2010-03-30 19:56:56 +01:00
Tim-Philipp Müller
58a92964c6 build: Makefile.am fixes
Mostly just add missing $(GST_BASE_CFLAGS), but also fix up order
of flags (see docs/random/moving-plugins).
2010-03-19 01:00:36 +00:00
Mark Nauwelaerts
dcc4b25686 baseaudiosink: arrange for a running ringbuffer/clock for _wait_eos
Fixes #612223.
2010-03-16 15:30:12 +01:00
Tim-Philipp Müller
e836151009 docs: more helper libraries docs fixes
Quieten gtk-doc a bit more.
2010-03-16 00:44:50 +00:00
Benjamin Otte
43b1683421 Add -Wmissing-declarations -Wmissing-prototypes to warning flags
Includes all the fixes necessary to make stuff compile again.
2010-03-11 13:50:31 +01:00
Sebastian Dröge
d5a4ca9962 build: Make some more rules silent if requested 2010-03-09 21:01:38 +00:00
Tim-Philipp Müller
e6d868c31c audiosrc: add gratuitious FIXME for use of generic G_TYPE_POINTER type 2010-01-27 00:42:37 +00:00
Sebastian Dröge
6dfc0270ec audio: Use rounding scaling functions for GST_CLOCK_TIME_TO_FRAMES and _FRAMES_TO_CLOCK_TIME
Fixes bug #607381.
2010-01-19 09:26:37 +01:00
Tim-Philipp Müller
848a7f2868 baseaudiosink: increase default drift tolerance to fix glitches with WMA
Increase default drift tolerance to 40ms to avoid glitches with decoders
or formats where there's a lot of timestamp jitter for some reason or
another (in this case: asf/wma), at least until we implement timestamp
smoothing.
2009-12-20 23:19:41 +00:00
Sebastian Dröge
51e2cafe0e audiofilter: Use G_DEFINE_ABSTRACT_TYPE_WITH_CODE
...and fix code style a bit.
2009-11-26 10:38:29 +01:00
Sebastian Dröge
3949cba47d audiofilter: Add _CAST variants of the cast macros 2009-11-26 10:38:28 +01:00
Wim Taymans
75c5aed1ba audiosink: add adjustement when slaving
Our calibration against the pipeline clock is done with the adjusted
ringbuffer time, so take the adjustement into account. Fixes some audio dropouts
when reusing audio sinks after switching clocks and slaving methods in a
pipeline.
2009-11-25 10:26:16 -06:00
Stefan Kost
9e8db533a1 debug: fix format string that was missing a var 2009-11-21 17:47:26 +02:00
Wim Taymans
0e6b9e596d baseaudiosink: fix initial calibration
When we are calibrating the internal clock against the external clock take into
account the time offset applied to our internal clock because we will subtract
that in the render_function again.
2009-11-18 17:11:03 +01:00
Mark Nauwelaerts
0fb680f680 baseaudiosrc: fix 'uninitialized' compiler warning 2009-11-18 12:37:44 +01:00
Wim Taymans
4f3f9a1054 basesrc: fix startup position in the ringbuffer
When we start and we need to produce the first sample, go to the next sample
that will be written into the ringbuffer instead of trying to go to sample 0.
We relied on rather small ringbuffer sizes to correctly go to the current
sample, which breaks whith large buffers.

Fixes #600945
2009-11-06 12:22:00 +01:00
Wim Taymans
d8942e2850 baseaudiosink: make drift tolerance configurable
Add drift-tolerance property (defaulting to 20ms) to handle resync after clock
drift or timestamp drift instead of relying on the latency-time value for clock
drift and 500ms for timestamp drift.
Remove warning about discont timestamp and simply resync. The warning is in some
cases not correct and is triggered more frequently now that we lower the
tolerance value.
2009-11-04 16:16:31 +01:00
Tim-Philipp Müller
6f4c1ac583 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-28 00:59:35 +00:00
Stefan Kost
f1c32d0fbb build: fix previous commit to fully accomodate the glib-gen.mak changes
I also renamed glib_enum_prefix to glib_gen_prefix as we also use that for the
marshallers. Also rename the rtsp-marshal.list to work with the unified prefix.
2009-10-16 10:56:56 +03:00
Stefan Kost
a89c1de0ea build: use gst-glib-gen.mak to fix the glib build rules. Fixes #598114
The build rules in glib-gen.mak were using pattern rules in a non save way.
2009-10-16 10:23:09 +03:00
Tommi Myöhänen
02cbde648c baseaudiosrc: fix timestamp comparission, Fixes #597407 2009-10-13 19:17:49 +03:00
Wim Taymans
5dbaccabca audioclock: whitespace fixes 2009-10-12 15:47:28 +02:00
Josep Torra
ccec231d2b audio: fix warnings building on macosx 2009-10-09 14:09:02 +02:00