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> 2004-11-27 Christophe Fergeau <teuf@gnome.org>
* gst/playback/gstplaybasebin.c: (setup_source): fixed a caps leak * gst/playback/gstplaybasebin.c: (setup_source): fixed a caps leak

View file

@ -1213,7 +1213,9 @@ gst_alsa_get_clock (GstElement * element)
static void static void
gst_alsa_set_clock (GstElement * element, GstClock * clock) 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 *********************************************************/ /*** AUDIO PROCESSING *********************************************************/

View file

@ -156,6 +156,7 @@ struct _GstAlsa {
/* clocking */ /* clocking */
GstAlsaClock * clock; /* our provided clock */ GstAlsaClock * clock; /* our provided clock */
GstClock * ext_clock; /* externally set clock. */
snd_pcm_uframes_t played; /* samples transmitted since last sync snd_pcm_uframes_t played; /* samples transmitted since last sync
This thing actually is our master clock. This thing actually is our master clock.
We will event insert silent samples or 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 * assumes that both calls return the same value. However they can be
* wildly different, since snd_pcm_delay goes deep into the kernel. * 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 /* FIXME: this is ugly because of the variables it uses but I
* don't know a better way to get this info */ * don't know a better way to get this info */
if (element->base_time > this->clock->start_time) { if (element->base_time > this->clock->start_time) {