ext/alsa/: Make alsasink actually honor gst_element_set_clock and use that clock instead of ist internal one.

Original commit message from CVS:
2004-11-28  Martin Soto  <martinsoto@users.sourceforge.net>

* ext/alsa/gstalsasink.c (gst_alsa_sink_loop):
* ext/alsa/gstalsa.h:
* ext/alsa/gstalsa.c (gst_alsa_set_clock):
Make alsasink actually honor gst_element_set_clock and use that
clock instead of ist internal one.
This commit is contained in:
Martin Soto 2004-11-28 13:35:44 +00:00
parent 2b204597ba
commit a931717c2e
4 changed files with 13 additions and 2 deletions

View file

@ -1,3 +1,11 @@
2004-11-28 Martin Soto <martinsoto@users.sourceforge.net>
* ext/alsa/gstalsasink.c (gst_alsa_sink_loop):
* ext/alsa/gstalsa.h:
* ext/alsa/gstalsa.c (gst_alsa_set_clock):
Make alsasink actually honor gst_element_set_clock and use that
clock instead of ist internal one.
2004-11-27 Christophe Fergeau <teuf@gnome.org>
* gst/playback/gstplaybasebin.c: (setup_source): fixed a caps leak

View file

@ -1213,7 +1213,9 @@ gst_alsa_get_clock (GstElement * element)
static void
gst_alsa_set_clock (GstElement * element, GstClock * clock)
{ /* we need this function just so everybody knows we use a clock */
{
/* we need this function just so everybody knows we use a clock */
GST_ALSA (element)->ext_clock = clock;
}
/*** AUDIO PROCESSING *********************************************************/

View file

@ -156,6 +156,7 @@ struct _GstAlsa {
/* clocking */
GstAlsaClock * clock; /* our provided clock */
GstClock * ext_clock; /* externally set clock. */
snd_pcm_uframes_t played; /* samples transmitted since last sync
This thing actually is our master clock.
We will event insert silent samples or

View file

@ -405,7 +405,7 @@ sink_restart:
* assumes that both calls return the same value. However they can be
* wildly different, since snd_pcm_delay goes deep into the kernel.
*/
if (gst_element_get_clock (element) == GST_CLOCK (this->clock)) {
if (this->ext_clock == GST_CLOCK (this->clock)) {
/* FIXME: this is ugly because of the variables it uses but I
* don't know a better way to get this info */
if (element->base_time > this->clock->start_time) {