summaryrefslogtreecommitdiffstats
path: root/sys
diff options
context:
space:
mode:
authorBenjamin Otte <otte@gnome.org>2004-01-14 00:53:52 +0000
committerBenjamin Otte <otte@gnome.org>2004-01-14 00:53:52 +0000
commit9a9f767369ed4ddc8803e62bfcdb9403813220d5 (patch)
tree46d7e710a9ae199b81fe480b33e21223c778176b /sys
parentf4c6604e6c4295d1c580860386f7e69ea50dcdaa (diff)
use element time.
Original commit message from CVS: 2004-01-14 Benjamin Otte <in7y118@public.uni-hamburg.de> * ext/aalib/gstaasink.c: (gst_aasink_chain): * ext/alsa/gstalsasink.c: (gst_alsa_sink_check_event): * ext/esd/esdsink.c: (gst_esdsink_chain): * ext/libcaca/gstcacasink.c: (gst_cacasink_chain): * ext/mas/massink.c: (gst_massink_chain): * ext/sdl/sdlvideosink.c: (gst_sdlvideosink_chain): * gst/matroska/matroska-demux.c: (gst_matroska_demux_parse_index), (gst_matroska_demux_parse_metadata): * gst/mpegstream/gstmpegparse.c: (gst_mpeg_parse_loop), (gst_mpeg_parse_release_locks): * gst/tcp/gsttcpsink.c: (gst_tcpsink_chain): * gst/udp/gstudpsink.c: (gst_udpsink_chain): * gst/videotestsrc/gstvideotestsrc.c: (gst_videotestsrc_get): * sys/oss/gstosssink.c: (gst_osssink_init), (gst_osssink_chain), (gst_osssink_change_state): * sys/v4l/gstv4lmjpegsink.c: (gst_v4lmjpegsink_chain): * sys/ximage/ximagesink.c: (gst_ximagesink_chain): * sys/xvideo/xvideosink.c: (gst_xvideosink_chain), (gst_xvideosink_release_locks): * sys/xvimage/xvimagesink.c: (gst_xvimagesink_chain): use element time. * ext/alsa/gstalsaclock.c: (gst_alsa_clock_start), (gst_alsa_clock_stop): * gst-libs/gst/audio/audioclock.c: (gst_audio_clock_set_active), (gst_audio_clock_get_internal_time): simplify for use with new clocking code. * testsuite/alsa/Makefile.am: * testsuite/alsa/sinesrc.c: (sinesrc_init), (sinesrc_force_caps): fix testsuite for new caps system
Diffstat (limited to 'sys')
-rw-r--r--sys/oss/gstosssink.c58
1 files changed, 3 insertions, 55 deletions
diff --git a/sys/oss/gstosssink.c b/sys/oss/gstosssink.c
index dd0a2f36..58bb16b9 100644
--- a/sys/oss/gstosssink.c
+++ b/sys/oss/gstosssink.c
@@ -204,7 +204,6 @@ gst_osssink_init (GstOssSink *osssink)
osssink->bufsize = 4096;
osssink->chunk_size = 4096;
- osssink->resync = FALSE;
osssink->mute = FALSE;
osssink->sync = TRUE;
osssink->provided_clock = gst_audio_clock_new ("ossclock", gst_osssink_get_time, osssink);
@@ -339,20 +338,6 @@ gst_osssink_chain (GstPad *pad, GstData *_data)
gst_audio_clock_set_active (GST_AUDIO_CLOCK (osssink->provided_clock), FALSE);
gst_pad_event_default (pad, event);
return;
- case GST_EVENT_DISCONTINUOUS:
- {
- gint64 value;
-
- ioctl (GST_OSSELEMENT (osssink)->fd, SNDCTL_DSP_RESET);
- if (gst_event_discont_get_value (event, GST_FORMAT_TIME, &value)) {
- if (!gst_clock_handle_discont (osssink->clock, value))
- gst_audio_clock_set_active (GST_AUDIO_CLOCK (osssink->provided_clock), FALSE);
- osssink->handled = 0;
- }
- osssink->resync = TRUE;
-
- break;
- }
default:
gst_pad_event_default (pad, event);
return;
@@ -372,44 +357,7 @@ gst_osssink_chain (GstPad *pad, GstData *_data)
if (GST_OSSELEMENT (osssink)->fd >= 0) {
if (!osssink->mute) {
guchar *data = GST_BUFFER_DATA (buf);
- gint size = GST_BUFFER_SIZE (buf);
- gint to_write = 0;
-
- if (osssink->clock) {
- gint delay = 0;
- gint64 queued;
- GstClockTimeDiff jitter;
-
- delay = gst_osssink_get_delay (osssink);
- queued = delay * GST_SECOND / GST_OSSELEMENT (osssink)->bps;
-
- if (osssink->resync && osssink->sync) {
- GstClockID id = gst_clock_new_single_shot_id (osssink->clock, buftime - queued);
-
- gst_element_clock_wait (GST_ELEMENT (osssink), id, &jitter);
- gst_clock_id_free (id);
-
- if (jitter >= 0) {
- gst_clock_handle_discont (osssink->clock, buftime - queued + jitter);
- to_write = size;
- gst_audio_clock_set_active ((GstAudioClock*)osssink->provided_clock, TRUE);
- osssink->resync = FALSE;
- }
- }
- else {
- to_write = size;
- }
- }
- /* no clock, try to be as fast as possible */
- else {
- audio_buf_info ospace;
-
- ioctl (GST_OSSELEMENT (osssink)->fd, SNDCTL_DSP_GETOSPACE, &ospace);
-
- if (ospace.bytes >= size) {
- to_write = size;
- }
- }
+ gint to_write = GST_BUFFER_SIZE (buf);
while (to_write > 0) {
gint done = write (GST_OSSELEMENT (osssink)->fd, data,
@@ -425,6 +373,8 @@ gst_osssink_chain (GstPad *pad, GstData *_data)
osssink->handled += done;
}
}
+ } else {
+ g_warning ("muting osssinks unimplemented wrt clocks!");
}
}
@@ -583,13 +533,11 @@ gst_osssink_change_state (GstElement *element)
case GST_STATE_READY_TO_PAUSED:
break;
case GST_STATE_PAUSED_TO_PLAYING:
- osssink->resync = TRUE;
break;
case GST_STATE_PLAYING_TO_PAUSED:
if (GST_FLAG_IS_SET (element, GST_OSSSINK_OPEN))
ioctl (GST_OSSELEMENT (osssink)->fd, SNDCTL_DSP_RESET, 0);
gst_audio_clock_set_active (GST_AUDIO_CLOCK (osssink->provided_clock), FALSE);
- osssink->resync = TRUE;
break;
case GST_STATE_PAUSED_TO_READY:
if (GST_FLAG_IS_SET (element, GST_OSSSINK_OPEN))