Commit graph

439 commits

Author SHA1 Message Date
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
Wim Taymans
a9c82f9472 ringbuffer: handle border cases in resampler 2009-06-11 19:13:28 +02:00
Wim Taymans
69b7fb3845 baseaudiosink: reset accum when dropping samples
When we are resampling and we drop samples because we paused, reset the accum
counter because it's now invalid.
2009-06-11 12:38:35 +02:00
Tim-Philipp Müller
249d9b4aa1 Don't include config.h multiple times when build audio testchannel app.
Fixes build problem on win32 (#585075).
2009-06-10 21:37:29 +01:00
Wim Taymans
38e59ec75d baseaudiosink: no need to cause discont when clipping
Remove the discont-when-clipping hack now that basesink provides us with
correctly clipped samples when stepping.
2009-06-09 12:09:15 +02:00
Wim Taymans
cb4952fc2e audiosink: don't align when we clip
Don't align samples when they were clipped. Not entirely correct but better than
nothing for now.
2009-06-08 17:26:59 +02:00
Andy Wingo
c7ca6abe53 add can-activate-pull property to baseaudiosink
* gst-libs/gst/audio/gstbaseaudiosink.c: Add can-activate-pull property
  to baseaudiosink.
2009-05-26 13:17:44 +02:00
Wim Taymans
81170c4989 audiosink: improve debug message 2009-05-21 10:48:49 +02:00
Wim Taymans
c68a361e31 audiosink: return the return value of wait_preroll
Return the value that _wait_preroll() returned instead of always WRONG_STATE.
2009-05-19 17:17:37 +02:00
Wim Taymans
b9723f6e1c audioclock: make our internal time monotonic
Make the internal time increase monotonically.
2009-05-13 21:38:56 +02:00
Wim Taymans
d655120ee6 audioclock: make sure values are ever increasing 2009-05-12 10:39:41 +02:00
Andy Wingo
9f74ce745f Revert "add can-activate-pull property to baseaudiosink"
This reverts commit c4074a2ee4.
2009-04-29 11:18:42 +02:00
Andy Wingo
219a31fa3c Revert "[baseaudiosink] add docs for can-activate-pull"
This reverts commit 416ce16f26.
2009-04-29 11:18:33 +02:00
Andy Wingo
416ce16f26 [baseaudiosink] add docs for can-activate-pull
* gst-libs/gst/audio/gstbaseaudiosink.c: Add documentation for
  can-activate-pull.
2009-04-28 18:48:33 +02:00
Andy Wingo
c4074a2ee4 add can-activate-pull property to baseaudiosink
* gst-libs/gst/audio/gstbaseaudiosink.c: Add can-activate-pull property
  to baseaudiosink.
2009-04-28 18:28:50 +02:00
Wim Taymans
32904de58f baseaudiosink: don't unparent the ringbuffer
when going to NULL, don't unparent the ringbuffer because we don't support going
back to 0 very well yet.
Fixes #579203
2009-04-17 11:03:32 +02:00
Stefan Kost
ab24d9d65c log: use G_GUINT64_FORMAT instead of llu 2009-04-15 00:02:39 +03:00
Wim Taymans
dffd1bcc97 baseaudiosrc: adjust the internal timestamp
Adjust the internal timestamp before comparing it against the adjusted clock
time.
Fixes #578506
2009-04-14 13:16:14 +02:00
Wim Taymans
0c4c1410f9 baseaudiosink: use new clock time methods
Use the unadjusted internal clock times to calculate the internal/external
offset when calibrating the clock.

When going to NULL, unparent and free the ringbuffer, like we do in the source
element.
See #578506
2009-04-14 13:12:59 +02:00
Wim Taymans
4231d54823 audioclock: add methods for the internal offset
Add two methods for getting the unadjusted time of the clock and one for
adjusting an internal time. We will need these methods for correctly handling
the time after a gst_audio_clock_reset().

Add a debug category and some debug lines to the audio clock.

API: gst_audio_clock_get_time()
API: gst_audio_clock_adjust()
API: GST_AUDIO_CLOCK_CAST()
2009-04-14 13:08:52 +02:00
Wim Taymans
251f152c20 baseaudiosink: use the internal clock time
We can't assume that the internal clock time is the same as the function we
installed on our provided clock because somebody might have changed it.
2009-04-10 21:50:55 +02:00
Wim Taymans
e6798c5cce ringbuffer: allow for custom commit functions
Allow subclasses to override the commit method.
2009-04-09 18:04:44 +02:00
Wim Taymans
cae2981f83 baseaudiosink: fix a small glitch after pause
After we pause the stream and interrupt the writeout to the ringbuffer, also adjust
the amount of output samples we consumed. We can't do this reliably with the
current API when we are doing trick modes but we can do the right thing for
normal playback.
2009-04-08 18:06:54 +02:00
Stefan Kost
ff9ee1dc5a audiofilter: don't leak pad-template
gst_element_class_add_pad_template() does not take ownership.
2009-04-07 22:39:07 +03:00
Tim-Philipp Müller
0267e79778 audiosrc: improve 'Dropped n samples' warning message 2009-03-25 11:27:44 +00:00
Stefan Kost
251e4d160a docs: don't put random stuff in tags.
Tags like Since: or Returns: can only be followed by more tags. gtk-doc has no
tag to append text again to the documentation body.
2009-02-26 10:09:59 +02:00
Stefan Kost
486fe43cb9 Add a FIXME 0.11. Make the log message a bit more detailed and add comments. 2009-02-02 18:05:42 +02:00
Stefan Kost
950d0c0a7d Link to the class, as we can't link to the members yet. 2009-01-31 18:44:32 +02:00
Jan Schmidt
63c9ede3d0 Extend and clean up git ignores 2009-01-23 23:16:11 +00:00
José Alburquerque
7431789249 gst-libs/gst/audio/gstaudioclock.*: Make gst_audio_clock_new use const gchar* to ease the wrapping of
Original commit message from CVS:
Patch by: José Alburquerque <jaalburqu svn gnome org>
* gst-libs/gst/audio/gstaudioclock.c: (gst_audio_clock_new):
* gst-libs/gst/audio/gstaudioclock.h:
Make gst_audio_clock_new use const gchar* to ease the wrapping of
C++ bindings. Fixes #566723.
2009-01-06 17:30:31 +00:00
Wim Taymans
0a4c1bc64c gst-libs/gst/audio/gstbaseaudiosink.c: Avoid holding the OBJECT_LOCK when calling ringbuffer functions that take the ...
Original commit message from CVS:
* gst-libs/gst/audio/gstbaseaudiosink.c:
(gst_base_audio_sink_change_state):
Avoid holding the OBJECT_LOCK when calling ringbuffer functions that
take the ringbuffer lock because rinbuffer lock > OBJECT_LOCK. We can do
this because the async_play method is deprecated and usually not called
anymore.
2009-01-05 17:13:13 +00:00
Edward Hervey
e2fcc71650 Switch glib-mkenum for gst-libs/gst/audio from multichannel- to audio- in order to wrap all enums declarations of tha...
Original commit message from CVS:
* gst-libs/gst/audio/Makefile.am:
* gst-libs/gst/audio/audio.c:
* gst-libs/gst/audio/multichannel.h:
* gst-libs/gst/audio/testchannels.c:
* win32/MANIFEST:
* win32/common/audio-enumtypes.c:
(gst_audio_channel_position_get_type),
(gst_ring_buffer_state_get_type),
(gst_ring_buffer_seg_state_get_type),
(gst_buffer_format_type_get_type), (gst_buffer_format_get_type):
* win32/common/audio-enumtypes.h:
* win32/common/multichannel-enumtypes.c:
* win32/common/multichannel-enumtypes.h:
* win32/vs6/grammar.dsp:
* win32/vs6/libgstaudio.dsp:
* win32/vs7/libgstaudio.vcproj:
* win32/vs8/libgstaudio.vcproj:
Switch glib-mkenum for gst-libs/gst/audio from multichannel- to
audio- in order to wrap all enums declarations of that library.
This modification should not matter since that header file is not a
public header (it will be included by public headers).
Modify win32 crap^Wfiles accordingly.
2008-12-31 11:20:26 +00:00
Edward Hervey
20adaa1328 gst-libs/gst/audio/: Complete Sebastien's commit from the 13th by exporting the _slave_method_get_type() methods.
Original commit message from CVS:
* gst-libs/gst/audio/gstbaseaudiosrc.h:
* gst-libs/gst/audio/gstbaseaudiosink.h:
Complete Sebastien's commit from the 13th by exporting the
_slave_method_get_type() methods.
2008-12-30 17:55:07 +00:00
Wim Taymans
a579eba73d gst-libs/gst/audio/gstbaseaudiosink.c: Pause the write thread before deactivating and releasing the ringbuffer to avo...
Original commit message from CVS:
* gst-libs/gst/audio/gstbaseaudiosink.c:
(gst_base_audio_sink_setcaps):
Pause the write thread before deactivating and releasing the ringbuffer
to avoid a deadlock when we do gapless playback with different sample
rates in playbin2.  Fixes #564929.
2008-12-20 12:45:03 +00:00
Sebastian Dröge
4ed1f5d6fd gst-libs/gst/audio/gstbaseaudiosrc.c: Make GstAudioSrcSlaveMethod get_type() function non-static as it's public now.
Original commit message from CVS:
* gst-libs/gst/audio/gstbaseaudiosrc.c:
Make GstAudioSrcSlaveMethod get_type() function non-static
as it's public now.
* win32/common/libgstaudio.def:
* win32/common/libgstnetbuffer.def:
Add some missing functions to the list of exported symbols.
2008-12-19 13:03:00 +00:00
Sebastian Dröge
04d9ff9a24 gst-libs/gst/audio/: API: Add GST_TYPE_BASE_AUDIO_(SRC|SINK)_SLAVE_METHOD to the public API. This is needed for the C...
Original commit message from CVS:
* gst-libs/gst/audio/gstbaseaudiosink.c:
(gst_base_audio_sink_slave_method_get_type),
(gst_base_audio_sink_class_init):
* gst-libs/gst/audio/gstbaseaudiosink.h:
* gst-libs/gst/audio/gstbaseaudiosrc.c:
(gst_base_audio_src_slave_method_get_type),
(gst_base_audio_src_class_init):
* gst-libs/gst/audio/gstbaseaudiosrc.h:
API: Add GST_TYPE_BASE_AUDIO_(SRC|SINK)_SLAVE_METHOD to the
public API. This is needed for the C++ bindings to be able
to use this base classes. Fixes bug #564200, #564206.
2008-12-13 06:57:09 +00:00
Wim Taymans
af354dbef3 gst-libs/gst/audio/gstbaseaudiosrc.c: Avoid nasty int overflows after about 12 hours and 25 minutes when these code p...
Original commit message from CVS:
* gst-libs/gst/audio/gstbaseaudiosrc.c:
(gst_base_audio_src_get_offset), (gst_base_audio_src_create):
Avoid nasty int overflows after about 12 hours and 25 minutes when these
code paths are triggered.
A free beer to Håvard Graff for finding this!
2008-11-27 16:47:41 +00:00
Wim Taymans
6983c1c85b gst-libs/gst/audio/gstbaseaudiosink.c: Really fix audiosink drain handling by keeping track of the running_time of th...
Original commit message from CVS:
* gst-libs/gst/audio/gstbaseaudiosink.c:
(gst_base_audio_sink_drain), (gst_base_audio_sink_event),
(gst_base_audio_sink_sync_latency), (gst_base_audio_sink_render),
(gst_base_audio_sink_change_state):
Really fix audiosink drain handling by keeping track of the running_time
of the last sample.
2008-11-25 10:32:49 +00:00
Stefan Kost
a8264f66c7 gst-libs/gst/audio/gstbaseaudiosink.c: Time is already in running_time. Remove base_time handling. Fixes audiosinks n...
Original commit message from CVS:
* gst-libs/gst/audio/gstbaseaudiosink.c:
Time is already in running_time. Remove base_time handling. Fixes
audiosinks not draining and thus chopping some audio in the end.
2008-11-24 20:11:52 +00:00
Stefan Kost
7f937c99d4 gst-libs/gst/audio/gstbaseaudiosink.c: Add one log message to check for audio_drained. Sync one log message with the ...
Original commit message from CVS:
* gst-libs/gst/audio/gstbaseaudiosink.c:
Add one log message to check for audio_drained. Sync one log message
with the condition. Send EOS after draining audio in pull mode.
2008-11-24 12:56:54 +00:00
Wim Taymans
e701e64005 gst-libs/gst/audio/gstbaseaudiosink.c: Use gst_base_sink_do_preroll() to wait for PLAYING and before waiting for the ...
Original commit message from CVS:
* gst-libs/gst/audio/gstbaseaudiosink.c:
(gst_base_audio_sink_sync_latency), (gst_base_audio_sink_render),
(gst_base_audio_sink_callback):
Use gst_base_sink_do_preroll() to wait for PLAYING and before waiting
for the latency to expire, fixes #559567.
2008-11-10 14:22:09 +00:00
Wim Taymans
6eed8ca285 gst-libs/gst/audio/gstaudiosink.c: Implement a separate activate functions to start monitoring the segments or, in pu...
Original commit message from CVS:
* gst-libs/gst/audio/gstaudiosink.c:
(gst_audioringbuffer_class_init), (gst_audioringbuffer_acquire),
(gst_audioringbuffer_activate), (gst_audioringbuffer_release),
(gst_audioringbuffer_stop):
Implement a separate activate functions to start monitoring the segments
or, in pull mode, pulling in data.
* gst-libs/gst/audio/gstbaseaudiosink.c:
(gst_base_audio_sink_init), (gst_base_audio_sink_dispose),
(gst_base_audio_sink_query_pad), (gst_base_audio_sink_query),
(gst_base_audio_sink_setcaps), (gst_base_audio_sink_callback),
(gst_base_audio_sink_activate_pull),
(gst_base_audio_sink_async_play),
(gst_base_audio_sink_change_state):
Implement pad and element convert query function.
Activate the ringbuffer.
Use the segment last_stop value as the offset to pull.
Use new basesink _do_preroll() method to preroll in the pulling thread.
Take appropriate locking in the pulling thread.
* gst-libs/gst/audio/gstringbuffer.h:
Update some docs.
2008-10-20 15:35:37 +00:00
Wim Taymans
a6b78893c0 Add methods to more accuratly control the pulling thread of a ringbuffer.
Original commit message from CVS:
* docs/libs/gst-plugins-base-libs-sections.txt:
* gst-libs/gst/audio/gstringbuffer.c: (gst_ring_buffer_convert),
(gst_ring_buffer_activate), (gst_ring_buffer_is_active):
* gst-libs/gst/audio/gstringbuffer.h:
Add methods to more accuratly control the pulling thread of a
ringbuffer.
Add format conversion helper code to the ringbuffer.
API: GstRingBuffer:gst_ring_buffer_activate()
API: GstRingBuffer:gst_ring_buffer_is_active()
API: GstRingBuffer:gst_ring_buffer_convert()
2008-10-17 13:19:05 +00:00
Wim Taymans
927999603a gst-libs/gst/audio/gstaudiosink.c: Signal thread startup earlier so that we can immediatly go into pull mode when we ...
Original commit message from CVS:
* gst-libs/gst/audio/gstaudiosink.c: (audioringbuffer_thread_func),
(gst_audioringbuffer_acquire), (gst_audioringbuffer_release),
(gst_audioringbuffer_stop):
Signal thread startup earlier so that we can immediatly go into pull
mode when we have to and block on preroll.
2008-10-16 15:44:37 +00:00
Wim Taymans
7bd29abb9d gst-libs/gst/audio/gstringbuffer.c: In pull mode we want the callback to prepull a buffer we can preroll on even when...
Original commit message from CVS:
* gst-libs/gst/audio/gstringbuffer.c:
(gst_ring_buffer_prepare_read):
In pull mode we want the callback to prepull a buffer we can preroll on
even when we are not yet playing.
2008-10-16 15:38:50 +00:00
Edward Hervey
57b0f5bef6 gst-libs/gst/audio/gstbaseaudiosrc.c: Fix debug statements (space between '%' and actual format).
Original commit message from CVS:
* gst-libs/gst/audio/gstbaseaudiosrc.c:
(gst_base_audio_src_create):
Fix debug statements (space between '%' and actual format).
2008-10-08 15:30:33 +00:00
Håvard Graff
11086cf6f8 gst-libs/gst/audio/gstbaseaudiosrc.c: Implement skew clock slaving. Fixes #552559.
Original commit message from CVS:
Patch by: Håvard Graff <havard dot graff at tandberg dot com>
* gst-libs/gst/audio/gstbaseaudiosrc.c:
(gst_base_audio_src_create):
Implement skew clock slaving. Fixes #552559.
2008-10-08 09:12:36 +00:00
Wim Taymans
dd01a1e56a gst-libs/gst/audio/: Fix include of config.h
Original commit message from CVS:
* gst-libs/gst/audio/multichannel.c:
* gst-libs/gst/audio/testchannels.c:
Fix include of config.h
2008-10-08 09:10:23 +00:00
Tim-Philipp Müller
b579580991 gst-libs/gst/audio/audio.h: Remove trailing comma from enum list, which causes problems with -pendantic (#550729).
Original commit message from CVS:
* gst-libs/gst/audio/audio.h: (GST_AUDIO_FIELD_SIGNED):
Remove trailing comma from enum list, which causes problems
with -pendantic (#550729).
2008-09-13 11:04:02 +00:00
Wim Taymans
265a494de5 gst-libs/gst/audio/gstaudiosrc.c: Disable a code path that is now called but causes a deadlock for some reason and is...
Original commit message from CVS:
* gst-libs/gst/audio/gstaudiosrc.c: (gst_audioringbuffer_stop):
Disable a code path that is now called but causes a deadlock for some
reason and is unneeded.
2008-09-04 16:25:06 +00:00
Wim Taymans
da76d5e7cb gst-libs/gst/audio/gstaudiosink.c: Since we now call stop, we trigger this code path that causes a deadlock is appare...
Original commit message from CVS:
* gst-libs/gst/audio/gstaudiosink.c: (gst_audioringbuffer_stop):
Since we now call stop, we trigger this code path that causes a deadlock
is apparently not needed.
2008-08-26 17:24:31 +00:00
Wim Taymans
440432612b gst-libs/gst/audio/gstringbuffer.c: Also allow the case where the ringbuffer was paused when we try to stop it so tha...
Original commit message from CVS:
* gst-libs/gst/audio/gstringbuffer.c: (gst_ring_buffer_start),
(gst_ring_buffer_stop):
Also allow the case where the ringbuffer was paused when we try to stop
it so that the basesrc stop function is still called.
2008-08-26 15:45:36 +00:00
Wim Taymans
510a5befc1 gst-libs/gst/audio/gstbaseaudiosrc.c: When not slaved to another clock also subtract the base_time from our internal ...
Original commit message from CVS:
* gst-libs/gst/audio/gstbaseaudiosrc.c:
(gst_base_audio_src_create):
When not slaved to another clock also subtract the base_time from our
internal clock time to get the running time.
2008-08-13 09:17:38 +00:00
Stefan Kost
5d2049cdb3 gst-libs/gst/audio/Makefile.am: Don't try to build that example anymore.
Original commit message from CVS:
* gst-libs/gst/audio/Makefile.am:
Don't try to build that example anymore.
2008-08-11 15:05:35 +00:00
Stefan Kost
3511b2772b gst-libs/gst/audio/: Move audiofiltertemplate to gst-template.
Original commit message from CVS:
* gst-libs/gst/audio/.cvsignore:
* gst-libs/gst/audio/Makefile.am:
* gst-libs/gst/audio/gstaudiofiltertemplate.c:
* gst-libs/gst/audio/make_filter:
Move audiofiltertemplate to gst-template.
2008-08-11 14:51:58 +00:00
Stefan Kost
01554ac056 More docs and shuffling. What can we do with the hundreds of #defines.
Original commit message from CVS:
* docs/libs/gst-plugins-base-libs-sections.txt:
* gst-libs/gst/audio/gstaudiosrc.h:
More docs and shuffling. What can we do with the hundreds of #defines.
2008-08-11 09:20:33 +00:00
Stefan Kost
f73aa5b817 gst-libs/gst/: Reducing number of dundocumented symbols.
Original commit message from CVS:
* gst-libs/gst/audio/audio.h:
* gst-libs/gst/audio/gstaudiofilter.h:
* gst-libs/gst/audio/gstringbuffer.h:
* gst-libs/gst/interfaces/propertyprobe.h:
* gst-libs/gst/tag/gsttagdemux.h:
Reducing number of dundocumented symbols.
2008-08-11 08:34:56 +00:00
Stefan Kost
26ad0ba982 gst-libs/gst/audio/audio.c: Fix doc comment syntax.
Original commit message from CVS:
* gst-libs/gst/audio/audio.c:
Fix doc comment syntax.
* gst-libs/gst/interfaces/propertyprobe.c:
Add more doc-comments and a FIXME: for the signal.
2008-08-11 07:16:30 +00:00
Frederic Crozat
89be246154 Make sure gettext returns translations in UTF-8 encoding rather than in the current locale encoding (#546822).
Original commit message from CVS:
Patch by: Frederic Crozat <fcrozat@mandriva.org>
* ext/alsa/gstalsaplugin.c: (plugin_init):
* ext/cdparanoia/gstcdparanoiasrc.c: (plugin_init):
* ext/gnomevfs/gstgnomevfs.c: (plugin_init):
* ext/ogg/gstoggdemux.c: (gst_ogg_demux_plugin_init):
* gst-libs/gst/audio/gstbaseaudiosrc.c: (_do_init):
* gst-libs/gst/pbutils/pbutils.c: (gst_pb_utils_init):
* gst-libs/gst/tag/tags.c: (gst_tag_register_tags_internal):
* gst/playback/gstdecodebin.c: (plugin_init):
* gst/playback/gstdecodebin2.c: (gst_decode_bin_plugin_init):
* gst/playback/gstplayback.c: (plugin_init):
* gst/playback/gstqueue2.c: (plugin_init):
* gst/playback/gsturidecodebin.c: (gst_uri_decode_bin_plugin_init):
* sys/v4l/gstv4l.c: (plugin_init):
Make sure gettext returns translations in UTF-8 encoding rather
than in the current locale encoding (#546822).
2008-08-07 15:58:58 +00:00
Wim Taymans
d2f328f55b gst-libs/gst/audio/gstbaseaudiosink.c: Report latency even if we are not live instead of hiding it.
Original commit message from CVS:
* gst-libs/gst/audio/gstbaseaudiosink.c:
(gst_base_audio_sink_query), (gst_base_audio_sink_skew_slaving),
(gst_base_audio_sink_render):
Report latency even if we are not live instead of hiding it.
Take ts-offset and render-delay of the basesink into account when
scheduling samples.
Rework the clipping code so that we can take the various offsets into
account and still do correct clipping.
2008-06-20 09:09:37 +00:00
Sebastian Dröge
0de81029c8 API: Make gst_audio_check_channel_positions() public.
Original commit message from CVS:
* docs/libs/gst-plugins-base-libs-sections.txt:
* gst-libs/gst/audio/multichannel.c:
(gst_audio_check_channel_positions):
* gst-libs/gst/audio/multichannel.h:
API: Make gst_audio_check_channel_positions() public.
* tests/check/libs/audio.c: (GST_START_TEST):
Add some simple checks for gst_audio_check_channel_positions().
2008-06-03 08:48:32 +00:00
Mark Nauwelaerts
9fa61c528d gst-libs/gst/audio/gstbaseaudiosrc.c: Add a gtk-doc chunk for the new properties to have a Since: indication.
Original commit message from CVS:
* gst-libs/gst/audio/gstbaseaudiosrc.c:
(gst_base_audio_src_class_init):
Add a gtk-doc chunk for the new properties to have a Since: indication.
2008-05-31 19:57:57 +00:00
Mark Nauwelaerts
c660bbd6dd gst-libs/gst/audio/gstbaseaudiosrc.c: Provide readable actual-buffer-time and actual-latency-time properties that ref...
Original commit message from CVS:
* gst-libs/gst/audio/gstbaseaudiosrc.c:
(gst_base_audio_src_class_init), (gst_base_audio_src_dispose),
(gst_base_audio_src_get_property), (gst_base_audio_src_setcaps),
(gst_base_audio_src_change_state):
Provide readable actual-buffer-time and actual-latency-time properties
that reflect the configured ringbuffer values. Fixes #524724.
2008-05-31 18:10:47 +00:00
Sebastian Dröge
45ef6b5e13 gst-libs/gst/audio/multichannel.c: Allow rear center together with rear left/right and other previously conflicting c...
Original commit message from CVS:
* gst-libs/gst/audio/multichannel.c:
(gst_audio_check_channel_positions),
(gst_audio_set_structure_channel_positions_list),
(gst_audio_fixate_channel_positions):
Allow rear center together with rear left/right and other previously
conflicting channel positions. The reason why they weren't allowed
was the channel mixing implementation in audioconvert.
Also take this into account when fixing channel layouts.
Allow setting channel positions for 1/2 channels when using
gst_audio_set_structure_channel_position().
* gst/audioconvert/gstchannelmix.c:
(gst_channel_mix_fill_compatible), (gst_channel_mix_detect_pos),
(gst_channel_mix_fill_one_other), (gst_channel_mix_fill_others),
(gst_channel_mix_fill_special), (gst_channel_mix_fill_matrix):
Major rewrite of the channel mixing.
We now allow previously	conflicting channel positions to appear
together (rear center and rear left/right for example).
Fixes bug #533817.
Rework the way channels are mixed together to take more possible
channel positions into account, properly mix from/to side channels
and don't assume that either center, left&right or nothing of a
specific position is available anymore.
* tests/check/elements/audioconvert.c: (GST_START_TEST):
Adjust unit tests with non-standard 1/2 channel layouts to the more
correct new behaviour.
Add a unit test for 5.1->Stereo downmixing.
2008-05-29 11:34:09 +00:00
Wim Taymans
35e4b75b86 gst-libs/gst/audio/gstaudioclock.*: Add method to inform the clock that the time starts from 0 again. We use this inf...
Original commit message from CVS:
* gst-libs/gst/audio/gstaudioclock.c: (gst_audio_clock_init),
(gst_audio_clock_reset), (gst_audio_clock_get_internal_time):
* gst-libs/gst/audio/gstaudioclock.h:
Add method to inform the clock that the time starts from 0 again. We use
this info to calculate a clock offset so that the time we report in
internal_time is monotonically increasing, as required by the clock base
class. Fixes #521761.
API: GstAudioClock::gst_audio_clock_reset()
* gst-libs/gst/audio/gstbaseaudiosink.c:
(gst_base_audio_sink_skew_slaving),
(gst_base_audio_sink_change_state):
* gst-libs/gst/audio/gstbaseaudiosrc.c:
(gst_base_audio_src_create), (gst_base_audio_src_change_state):
Reset reported time when we (re)create the ringbuffer.
2008-05-27 16:20:17 +00:00
Sebastian Dröge
d03bbd1e3e gst-libs/gst/audio/multichannel.c: Allow non-standard 2 channel layouts.
Original commit message from CVS:
* gst-libs/gst/audio/multichannel.c:
(gst_audio_check_channel_positions):
Allow non-standard 2 channel layouts.
* tests/check/elements/audioconvert.c: (GST_START_TEST):
Add some tests for converting and remapping non-standard 1 and 2
channel layouts.
2008-05-21 07:39:56 +00:00
Wim Taymans
f36d9d6b08 gst-libs/gst/audio/gstbaseaudiosink.c: We can only use our optimal calibration if we prerolled before the latency exp...
Original commit message from CVS:
* gst-libs/gst/audio/gstbaseaudiosink.c:
(gst_base_audio_sink_sync_latency):
We can only use our optimal calibration if we prerolled before the
latency expired.
2008-05-20 16:26:53 +00:00
Wim Taymans
d8dc371c0d ext/gnomevfs/gstgnomevfssrc.*: Set the ICY caps on the srcpad from where they get picked up by the base class now and...
Original commit message from CVS:
* ext/gnomevfs/gstgnomevfssrc.c: (gst_gnome_vfs_src_init),
(gst_gnome_vfs_src_finalize),
(gst_gnome_vfs_src_received_headers_callback),
(gst_gnome_vfs_src_create), (gst_gnome_vfs_src_stop):
* ext/gnomevfs/gstgnomevfssrc.h:
Set the ICY caps on the srcpad from where they get picked up by the base
class now and set on the outgoing buffers.
* gst-libs/gst/audio/gstbaseaudiosrc.c:
(gst_base_audio_src_create):
* sys/v4l/v4lsrc_calls.c: (gst_v4lsrc_buffer_new):
BaseSrc now sets the caps on outgoing buffers automatically.
2008-05-20 11:13:27 +00:00
Wim Taymans
95d162fb71 gst-libs/gst/audio/gstbaseaudiosink.c: Change the way in which the ringbuffer is started when dealing with a slaved c...
Original commit message from CVS:
* gst-libs/gst/audio/gstbaseaudiosink.c:
(gst_base_audio_sink_resample_slaving),
(gst_base_audio_sink_skew_slaving),
(gst_base_audio_sink_sync_latency), (gst_base_audio_sink_render),
(gst_base_audio_sink_async_play),
(gst_base_audio_sink_change_state):
Change the way in which the ringbuffer is started when dealing with a
slaved clock and latency. We now sync to the clock until we reach
upstream latency before starting the ringbuffer. This has the effect
that we can accurately align the master and slave clocks and let the
rate correction code take care of the initial drift or rounding errors
instead of leaving them uncorrected with the old approach.
2008-05-20 11:09:06 +00:00
Wim Taymans
0c9b13988c gst-libs/gst/audio/gstbaseaudiosink.c: Revert previous patch that attempted to more accurately calculate the initial ...
Original commit message from CVS:
* gst-libs/gst/audio/gstbaseaudiosink.c:
(gst_base_audio_sink_render), (gst_base_audio_sink_async_play):
Revert previous patch that attempted to more accurately calculate the
initial offset between master and slave clock. The best thing we can do
in general is take the time of both clocks as the diff since we don't
know when the actual preroll happened.
2008-05-12 08:45:11 +00:00
Wim Taymans
fc523e047c gst-libs/gst/audio/gstaudiosink.c: Choose to allocate one less segment but require one additional segment as latency.
Original commit message from CVS:
* gst-libs/gst/audio/gstaudiosink.c: (gst_audioringbuffer_acquire):
Choose to allocate one less segment but require one additional segment
as latency.
* gst-libs/gst/audio/gstaudiosrc.c: (gst_audioringbuffer_acquire):
No need to increment the number of segments in the source.
* gst-libs/gst/audio/gstbaseaudiosink.c:
(gst_base_audio_sink_get_time), (clock_convert_external),
(gst_base_audio_sink_resample_slaving),
(gst_base_audio_sink_skew_slaving),
(gst_base_audio_sink_none_slaving), (gst_base_audio_sink_render),
(gst_base_audio_sink_async_play):
Remove adding latency when returning the internal time while subtracting
it again when we use the value a little later.
When calculating the end timestamp, we are making a rounding error
with the current algorithm. Ensure that we don't accumulate these
rounding errors when aligning samples by not resampling at all if we
don't need to. Fixes #419351.
Make the initial calibration of the clock slaving a little more
predictable and accurate. Also handle the case where we don't do
clock slaving.
2008-05-09 16:38:10 +00:00