diff options
author | Benjamin Otte <otte@gnome.org> | 2004-01-14 00:53:52 +0000 |
---|---|---|
committer | Benjamin Otte <otte@gnome.org> | 2004-01-14 00:53:52 +0000 |
commit | 9a9f767369ed4ddc8803e62bfcdb9403813220d5 (patch) | |
tree | 46d7e710a9ae199b81fe480b33e21223c778176b /sys | |
parent | f4c6604e6c4295d1c580860386f7e69ea50dcdaa (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.c | 58 |
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)) |