Commit graph

409 commits

Author SHA1 Message Date
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
Sebastian Dröge
df9b8b57b3 introspection: Build pkgconfig before all libraries and set PKG_CONFIG_PATH
This way g-ir-scanner can find the gstreamer-*-0.10 pkg-config files.
2009-09-13 11:19:50 +02:00
Tim-Philipp Müller
e4e8417eeb ringbuffer: fix build against core that has debugging disabled
The macro is called GST_DISABLE_GST_DEBUG, not GST_DISABLE_DEBUG.
2009-09-11 10:03:56 +01:00
Stefan Kost
312d7d8014 ringbuffer: add human readable format names when logging
Add string array with human readable names for format and type to be used in log
statements.
2009-09-10 23:01:36 +03:00
Wim Taymans
35cddfb1e3 baseaudiosink: add ugly backward compat hack
Check for pulsesink < 0.10.17 because it includes code that is now included in
baseaudiosink. Disable that code in baseaudiosink to be compatible with the
older version.
2009-09-10 12:40:01 +02:00
Wim Taymans
06be2b8632 baseaudiosink: take clock time in setcaps
Take the time of the clock so that the last_time field is set. This is important
for sinks that restart their internal ringbuffer after a caps change and need to
know the last know position.
2009-09-09 18:26:03 +02:00
Wim Taymans
451789735c audioclock: add some more debug 2009-09-09 18:26:03 +02:00
Wim Taymans
fe47c6c4d5 baseaudiosink: correct for clock reset
When going to NULL, we reset the ringbuffer so that it starts beck from 0. We
also make sure that the clock is updated with the elapsed time so that it
alsways increments even when the ringbuffer goes back to 0. When this happened
we need to adjust the sample position for the reset ringbuffer.

Fixes #594136
2009-09-09 16:19:32 +02:00
Wim Taymans
47550f6984 baseaudiosink: whitespace fixes 2009-09-09 16:17:02 +02:00
Wim Taymans
70f01fd797 ringbuffer: add more debug 2009-09-09 16:16:40 +02:00
Håvard Graff
058776bcf1 baseaudiosrc: improve slave skew resync
The old one did the mistake of not actually advancing the ringbuffer, it just
adjusted the segbase, introducing the whole lenght of the ringbuffer as an
extra delay in the pipeline.

Also make sure that the resync can never go back in time, producing the same
timestamps that has already been produced, as this can cause severe problems
for sinks and other synching mechanisms.

Fixes #594256
2009-09-08 12:59:20 +02:00
Sebastian Dröge
40aba9e0dc introduction: Fix out-of-tree build 2009-09-05 13:46:58 +02:00
Sebastian Dröge
c53499c62b audio: Remove debug echo 2009-09-05 13:09:17 +02:00
Sebastian Dröge
93e19acfec audio: Fix build of introspection data by using dependency order for the headers/sources 2009-09-05 13:08:19 +02:00
Sebastian Dröge
7e90e0846c introspection: Strip Gst prefix from all types/functions 2009-09-05 12:31:47 +02:00
Sebastian Dröge
7794caf9f8 introspection: Fix build if gir-repository is not installed 2009-09-05 11:49:41 +02:00
Sebastian Dröge
d91f5000e1 libs: Add nodist headers and sources to the introspection files 2009-09-05 11:31:48 +02:00
Sebastian Dröge
403f353bba audio: Add gobject-introspection support 2009-09-05 11:09:33 +02:00
Eero Nurkkala
8ad8591e41 ringbuffer: Improve audiosink startup performance
When we start the ringbuffer, immediatly continue processing samples if the
writer prepared some for us.

Fixes #545807
2009-08-24 13:30:11 +02:00
Tim-Philipp Müller
0021e6b765 Revert inlines that cause compiler warnings and are not needed anyway 2009-08-08 17:51:10 +01:00
Edward Hervey
9329b8be72 gst-libs: Remove dead assignments and resulting unused variables. 2009-08-08 15:54:57 +02:00
Wim Taymans
090808a295 baseaudiosrc: change default slave method
Set the default slave method to the much better skew slaving algortihm.
2009-08-06 12:58:58 +02:00
Olivier Crête
429d3555a2 audiofilter: Don't assert on slightly different caps
Plugins should not assert on incompatible caps, caps negotiation will
fail anyway.
2009-07-30 14:34:05 +01:00
Olivier Crête
4e88633de4 audiosink: Add stream-status messages
Fixes #587695
2009-07-20 12:54:37 +02:00
Olivier Crête
cc0da016f8 audiosrc: Add stream-status messages
See #587695
2009-07-20 12:54:37 +02:00
Stefan Kost
0e967f1b14 multichannel: rewrite the new doc comment a bit
Its part of the audio lib.
2009-06-29 17:49:58 +03:00
Wim Taymans
8601862e27 ringbuffer: add vmethod to clear the ringbuffer
Add a vmethod so that subclasses can be notified when they should clear the data
in the ringbuffer.
2009-06-29 15:17:25 +02:00
Stefan Kost
57a7d6f699 docs: add basic section docs for multichannel and relocate the ones for audio
Add section docs for multichannel, so that it has a short desc in the toc too.
Move the section docs in adio up, so that the follow the copyright like
elsewhere.
2009-06-27 23:25:09 +03:00
Wim Taymans
ffd90dda89 audiosrc: fix get_offset
When we need to jump to the most recently captured sample, jump to where the
next sample will be written instead of to some old data.

Fixes #581460
2009-06-17 14:00:23 +02:00
Wim Taymans
57a13f28de audiosink: free the ringbuffer when going to NULL
Unparent and free the ringbuffer when going to NULL, like we do with the
audiosrc element. We can do this now because we correctly manage the time
jumping back to 0.
2009-06-17 13:18:18 +02:00
Wim Taymans
e4492c24ea audio: correctly handle short read/writes 2009-06-17 13:17:30 +02:00
René Stadler
2c5f455423 baseaudiosrc: add some extra logging for buffer timestamps 2009-06-17 12:36:50 +02:00
Tim-Philipp Müller
70089160f8 audiosink, audiosrc: do the class_ref()s in the right class_init functions
Spotted by Philip Jägenstedt. Hopefully fixes #585970 for real.
2009-06-16 14:14:26 +01:00
Tim-Philipp Müller
3767cb6005 audiosink,audiosrc: ref the audio ring buffer class and type in class_init
Hack around thread-safety issues in GObject and our racy _get_type()
functions (we could easily fix the _get_type() functions, but we still
need to hack around the GObject class races until we require a newer
GLib version, I think).
2009-06-15 15:39:09 +01:00
Wim Taymans
a5491ba218 audiosrc: return FALSE when receiving a SEEK event
When receiving a seek event, return FALSE as we don't implement seeking.
2009-06-15 12:57:39 +02:00