summaryrefslogtreecommitdiffstats
path: root/ChangeLog
AgeCommit message (Collapse)AuthorFilesLines
2007-11-01Some XMP stuff added.Edgard Lima1-0/+21
Original commit message from CVS: Some XMP stuff added.
2007-10-31Now sending iptc tag in whole chunk. Ready to also send exif and xmp in the ↵Edgard Lima1-0/+28
same way (look at bug #486659). Original commit message from CVS: Now sending iptc tag in whole chunk. Ready to also send exif and xmp in the same way (look at bug #486659).
2007-10-31gst/librfb/rfbdecoder.c: Some refactoring in RAW encodingThijs Vermeir1-0/+5
Original commit message from CVS: * gst/librfb/rfbdecoder.c: Some refactoring in RAW encoding
2007-10-31gst/librfb/: Added copyrect encodingThijs Vermeir1-0/+13
Original commit message from CVS: * gst/librfb/d3des.h: * gst/librfb/gstrfbsrc.c: * gst/librfb/gstrfbsrc.h: * gst/librfb/rfbbuffer.h: * gst/librfb/rfbcontext.h: * gst/librfb/rfbdecoder.c: * gst/librfb/rfbdecoder.h: * gst/librfb/rfbutil.h: * gst/librfb/vncauth.h: Added copyrect encoding
2007-10-31sys/dvb/camswclient.c: Warn on failed write.Zaheer Abbas Merali1-0/+5
Original commit message from CVS: * sys/dvb/camswclient.c: Warn on failed write.
2007-10-30gst/equalizer/: Add small demo application based on the spectrum demo ↵Sebastian Dröge1-0/+14
applications that gets white noise as input, pu... Original commit message from CVS: * gst/equalizer/Makefile.am: * gst/equalizer/demo.c: (on_window_destroy), (on_configure_event), (on_gain_changed), (on_bandwidth_changed), (on_freq_changed), (draw_spectrum), (message_handler), (main): Add small demo application based on the spectrum demo applications that gets white noise as input, pushes it through an equalizer and paints the spectrum. For every equalizer band it's possible to set gain, bandwidth and frequency. * gst/equalizer/gstiirequalizer.c: (setup_filter): Add some guarding against too large or too small frequencies and bandwidths. Also improve debugging a bit.
2007-10-30gst/equalizer/gstiirequalizer.c: Replace filters with a bit better filters ↵Sebastian Dröge1-0/+16
for which we can actually find documentati... Original commit message from CVS: * gst/equalizer/gstiirequalizer.c: (gst_iir_equalizer_band_set_property), (gst_iir_equalizer_band_get_property), (gst_iir_equalizer_band_class_init), (arg_to_scale), (setup_filter), (gst_iir_equalizer_compute_frequencies): Replace filters with a bit better filters for which we can actually find documentation, which don't change anything on zero gain, etc. Make the frequency property of the bands writable, rename the band-width property to bandwidth and change the meaning to the frequency difference between bandedges, change the meaning of the gain property to dB instead of a weird scale between -1 and 1 that has no real meaning.
2007-10-30sys/dvb/dvbbasebin.c: Fix the build.Stefan Kost1-0/+5
Original commit message from CVS: * sys/dvb/dvbbasebin.c: Fix the build.
2007-10-30Changed kclass to "Parser/Extracter/Metadata", changed caps to "image/jpeg, ↵Edgard Lima1-0/+15
tags-extract=true/false" and changed prio... Original commit message from CVS: Changed kclass to "Parser/Extracter/Metadata", changed caps to "image/jpeg, tags-extract=true/false" and changed priority to GST_RANK_PRIMARY+1. Also, srcpad can only work in push mode until fixed to also work in pull mode.
2007-10-30Created new plugin ('medadata') and element ('metadataparse') that extract ↵Edgard Lima1-0/+22
metadata from images (look at bug #486659). Original commit message from CVS: Created new plugin ('medadata') and element ('metadataparse') that extract metadata from images (look at bug #486659).
2007-10-29sys/dvb/dvbbasebin.c: Uncomment the line that sets the pid filter. Wrong way ↵Zaheer Abbas Merali1-0/+6
to work-around driver issues. Original commit message from CVS: * sys/dvb/dvbbasebin.c: Uncomment the line that sets the pid filter. Wrong way to work-around driver issues.
2007-10-28ext/faac/gstfaac.c: Fix bitrate ranges and change enum nick for low ↵Tim-Philipp Müller1-0/+7
complexity profile from LOW to LC for consistency... Original commit message from CVS: * ext/faac/gstfaac.c: (gst_faac_profile_get_type), (gst_faac_class_init), (gst_faac_init): Fix bitrate ranges and change enum nick for low complexity profile from LOW to LC for consistency (#490060).
2007-10-27gst/interleave/interleave.c: Let's not call every request pad we create ↵Tim-Philipp Müller1-1/+12
"sink%d", that'll create problems if there's ... Original commit message from CVS: * gst/interleave/interleave.c: (gst_interleave_request_new_pad): Let's not call every request pad we create "sink%d", that'll create problems if there's to be more than one pad. Fixes #490682. * tests/check/Makefile.am: * tests/check/elements/.cvsignore: * tests/check/elements/interleave.c: Add unit test for the above.
2007-10-27gst/mpeg4videoparse/mpeg4videoparse.*: Improved version not damaging headers ↵Julien Moutte1-0/+12
using a simple state machine. Original commit message from CVS: 2007-10-27 Julien MOUTTE <julien@moutte.net> * gst/mpeg4videoparse/mpeg4videoparse.c: (gst_mpeg4vparse_align), (gst_mpeg4vparse_drain), (gst_mpeg4vparse_chain), (gst_mpeg4vparse_sink_setcaps), (gst_mpeg4vparse_sink_event), (gst_mpeg4vparse_cleanup), (gst_mpeg4vparse_change_state), (gst_mpeg4vparse_dispose), (gst_mpeg4vparse_base_init), (gst_mpeg4vparse_class_init), (gst_mpeg4vparse_init), (plugin_init): * gst/mpeg4videoparse/mpeg4videoparse.h: Improved version not damaging headers using a simple state machine.
2007-10-26ext/x264/gstx264enc.c: Fix build against the libx264 version that ships with ↵Tim-Philipp Müller1-0/+5
debian stable. Original commit message from CVS: * ext/x264/gstx264enc.c: Fix build against the libx264 version that ships with debian stable.
2007-10-26Add a simple MPEG4 ES parser.Julien Moutte1-0/+13
Original commit message from CVS: 2007-10-26 Julien MOUTTE <julien@moutte.net> * configure.ac: * gst/mpeg4videoparse/Makefile.am: * gst/mpeg4videoparse/mpeg4videoparse.c: (gst_mpeg4vparse_drain), (gst_mpeg4vparse_chain), (gst_mpeg4vparse_sink_setcaps), (gst_mpeg4vparse_sink_event), (gst_mpeg4vparse_cleanup), (gst_mpeg4vparse_change_state), (gst_mpeg4vparse_dispose), (gst_mpeg4vparse_base_init), (gst_mpeg4vparse_class_init), (gst_mpeg4vparse_init), (plugin_init): * gst/mpeg4videoparse/mpeg4videoparse.h: Add a simple MPEG4 ES parser.
2007-10-25Improve documentation, write some tests for multifilesrc/sink for upcoming ↵David Schleef1-0/+10
->good review. Original commit message from CVS: * gst/multifile/Makefile.am: * gst/multifile/gstmultifilesink.c: * gst/multifile/gstmultifilesrc.c: * tests/check/Makefile.am: * tests/check/elements/multifile.c: Improve documentation, write some tests for multifilesrc/sink for upcoming ->good review.
2007-10-23sys/dvb/gstdvbsrc.c: Actually use the code-rate-hp parameter for DVB-S.Zaheer Abbas Merali1-0/+8
Original commit message from CVS: * sys/dvb/gstdvbsrc.c: Actually use the code-rate-hp parameter for DVB-S. It turns out setting to AUTO does not always work ( especially in diseq situations). Set by default to FEC_AUTO.
2007-10-22gst/flv/gstflvparse.c: Don't emit no-more-pads for single pad scenarios as ↵Julien Moutte1-0/+8
the header is definitely not reliable. We ... Original commit message from CVS: 2007-10-22 Julien MOUTTE <julien@moutte.net> * gst/flv/gstflvparse.c: (gst_flv_parse_tag_audio), (gst_flv_parse_tag_video), (gst_flv_parse_tag_type): Don't emit no-more-pads for single pad scenarios as the header is definitely not reliable. We emit them for 2 pads scenarios though to speed up media discovery.
2007-10-19sys/dvb/dvbbasebin.c: Added proxy property of diseqc-sourceZaheer Abbas Merali1-0/+5
Original commit message from CVS: * sys/dvb/dvbbasebin.c: Added proxy property of diseqc-source
2007-10-18gst/equalizer/gstiirequalizer.c: Add a missing break.Sebastian Dröge1-0/+6
Original commit message from CVS: * gst/equalizer/gstiirequalizer.c: (gst_iir_equalizer_band_set_property): Add a missing break.
2007-10-18gst/equalizer/gstiirequalizer.*: Move bandwidth property to the separate ↵Sebastian Dröge1-0/+11
bands and add float64 support. Original commit message from CVS: * gst/equalizer/gstiirequalizer.c: (gst_iir_equalizer_band_set_property), (gst_iir_equalizer_band_get_property), (gst_iir_equalizer_band_class_init), (gst_iir_equalizer_band_init), (gst_iir_equalizer_band_get_type), (gst_iir_equalizer_class_init), (setup_filter), (gst_iir_equalizer_setup): * gst/equalizer/gstiirequalizer.h: Move bandwidth property to the separate bands and add float64 support.
2007-10-17ext/cdaudio/Makefile.am: Add another missing GST_LIBS.Tim-Philipp Müller1-0/+5
Original commit message from CVS: * ext/cdaudio/Makefile.am: Add another missing GST_LIBS.
2007-10-17gst/dvdspu/Makefile.am: Fix LIBS - we need to link against libgstreamer.Richard Hult1-0/+7
Original commit message from CVS: Patch by: Richard Hult <richard imendio com> * gst/dvdspu/Makefile.am: Fix LIBS - we need to link against libgstreamer.
2007-10-17sys/dvb/: Fix some warnings.Tim-Philipp Müller1-2/+8
Original commit message from CVS: * sys/dvb/camapplication.c: * sys/dvb/camresourcemanager.c: Fix some warnings.
2007-10-16gst/librfb/rfbdecoder.c: Add the set encodings client messageThijs Vermeir1-0/+5
Original commit message from CVS: * gst/librfb/rfbdecoder.c: Add the set encodings client message
2007-10-16gst/librfb/: remove the rfbbytestream dead codeThijs Vermeir1-0/+10
Original commit message from CVS: * gst/librfb/Makefile.am: * gst/librfb/rfb.h: * gst/librfb/rfbbytestream.c: * gst/librfb/rfbbytestream.h: * gst/librfb/rfbdecoder.c: * gst/librfb/rfbdecoder.h: remove the rfbbytestream dead code
2007-10-16sys/dvb/: Integrate SoC work done by Alessandro for the Freevo project.Alessandro Decina1-0/+37
Original commit message from CVS: patch by: Alessandro Decina * sys/dvb/Makefile.am: * sys/dvb/cam.c: * sys/dvb/cam.h: * sys/dvb/camapplication.c: * sys/dvb/camapplication.h: * sys/dvb/camapplicationinfo.c: * sys/dvb/camapplicationinfo.h: * sys/dvb/camconditionalaccess.c: * sys/dvb/camconditionalaccess.h: * sys/dvb/camdevice.c: * sys/dvb/camdevice.h: * sys/dvb/camresourcemanager.c: * sys/dvb/camresourcemanager.h: * sys/dvb/camsession.c: * sys/dvb/camsession.h: * sys/dvb/camswclient.c: * sys/dvb/camswclient.h: * sys/dvb/camtransport.c: * sys/dvb/camtransport.h: * sys/dvb/camutils.c: * sys/dvb/camutils.h: * sys/dvb/dvbbasebin.c: * sys/dvb/dvbbasebin.h: * sys/dvb/gstdvb.c: * sys/dvb/gstdvbsrc.c: * sys/dvb/gstdvbsrc.h: Integrate SoC work done by Alessandro for the Freevo project. Adds cam support to the dvb stack in GStreamer and a new element (actually a bin) called dvbbasebin that integrates dvbsrc and mpegtsparse to a) handle decryption and b) allow acquiring multiple channels on same transponder without knowing pid numbers.
2007-10-16gst/mpegtsparse/: Add request pad for getting the full transport stream ↵Alessandro Decina1-0/+9
coming in. Original commit message from CVS: patch by: Alessandro Decina * gst/mpegtsparse/mpegtspacketizer.c: * gst/mpegtsparse/mpegtsparse.c: * gst/mpegtsparse/mpegtsparse.h: Add request pad for getting the full transport stream coming in.
2007-10-14configure.ac: Update the highest allowed neon version from 0.26.99 to 0.27.99.Sebastian Dröge1-0/+6
Original commit message from CVS: * configure.ac: Update the highest allowed neon version from 0.26.99 to 0.27.99. No code changes are required to work with the newest neon version.
2007-10-10configure.ac: Require core CVS. This is implicit in the -base CVS ↵Tim-Philipp Müller1-0/+21
requirement already, so we might just well spell i... Original commit message from CVS: * configure.ac: Require core CVS. This is implicit in the -base CVS requirement already, so we might just well spell it out. Also, we do need at least 0.10.14 for gst_element_class_set_details_simple(). Make check for gmyth a bit more restrictive so things don't break if the next version changes API. * ext/alsaspdif/alsaspdifsink.c: Work around alsa alloca macros triggering 'always evaluates to true' warnings with gcc-4.2 and fix compilation with gcc-4.2. Also don't leak the device string. * ext/mpeg2enc/gstmpeg2enc.cc: * ext/soundtouch/gstpitch.cc: * gst/modplug/gstmodplug.cc: Fix compilation with g++4.2 and -Wall -Werror (also needs plugin define fix from core CVS). Fixes #462737.
2007-10-09gst/rtpmanager/gstrtpbin.c: Fix memleak. Fixes #484990.Laurent Glayal1-0/+8
Original commit message from CVS: Patch by: Laurent Glayal <spglegle at yahoo dot fr> * gst/rtpmanager/gstrtpbin.c: (create_stream), (gst_rtp_bin_class_init): Fix memleak. Fixes #484990.
2007-10-08gst/: Fix compiler warnings shown by Forte.Jan Schmidt1-0/+14
Original commit message from CVS: * gst/librfb/rfbbuffer.c: (rfb_buffer_new_and_alloc): * gst/librfb/rfbbuffer.h: * gst/librfb/rfbdecoder.c: (rfb_socket_get_buffer): * gst/mpegvideoparse/mpegvideoparse.c: (gst_mpegvideoparse_chain): * gst/nsf/nes6502.c: (nes6502_execute): * gst/real/gstrealaudiodec.c: (gst_real_audio_dec_setcaps): * gst/real/gstrealvideodec.c: (open_library): * gst/real/gstrealvideodec.h: * gst/rtpmanager/gstrtpsession.c: (create_recv_rtp_sink), (create_recv_rtcp_sink), (create_send_rtp_sink): Fix compiler warnings shown by Forte.
2007-10-08gst/rtpmanager/gstrtpbin.c: Fix caps refcounting for payload maps.Wim Taymans1-0/+21
Original commit message from CVS: * gst/rtpmanager/gstrtpbin.c: (get_pt_map), (gst_rtp_bin_clear_pt_map), (gst_rtp_bin_class_init): Fix caps refcounting for payload maps. When clearing payload maps, also clear sessions and streams payload maps. * gst/rtpmanager/gstrtpptdemux.c: (gst_rtp_pt_demux_get_caps), (gst_rtp_pt_demux_clear_pt_map), (gst_rtp_pt_demux_chain), (find_pad_for_pt): Implement clearing the payload map. * gst/rtpmanager/gstrtpsession.c: (gst_rtp_session_event_send_rtp_sink): Forward flush events instead of leaking them. * gst/rtpmanager/gstrtpssrcdemux.c: (gst_rtp_ssrc_demux_rtcp_sink_event): Correctly refcount events before pushing them.
2007-10-08ext/gio/gstgio.c: Use GIO function to get a list of supported URI schemes ↵Sebastian Dröge1-0/+6
instead of hard coding something. Original commit message from CVS: * ext/gio/gstgio.c: (gst_gio_get_supported_protocols): Use GIO function to get a list of supported URI schemes instead of hard coding something.
2007-10-05gst/rtpmanager/rtpsession.c: When reconsidering RTCP timeouts, set the next ↵Wim Taymans1-0/+7
timeout against the last report time inst... Original commit message from CVS: * gst/rtpmanager/rtpsession.c: (rtp_session_next_timeout), When reconsidering RTCP timeouts, set the next timeout against the last report time instead of the current clock time so that we don't end up reconsidering forever.
2007-10-05gst/rtpmanager/gstrtpjitterbuffer.c: Only peek at the tail element instead ↵Wim Taymans1-0/+20
of popping it off, which allows us to grea... Original commit message from CVS: * gst/rtpmanager/gstrtpjitterbuffer.c: (gst_rtp_jitter_buffer_chain), (gst_rtp_jitter_buffer_loop): Only peek at the tail element instead of popping it off, which allows us to greatly simplify things when the tail element changes. * gst/rtpmanager/gstrtpsession.c: (gst_rtp_session_event_recv_rtp_sink): * gst/rtpmanager/gstrtpssrcdemux.c: (gst_rtp_ssrc_demux_sink_event): Forward FLUSH events instead of leaking them. * gst/rtpmanager/rtpjitterbuffer.c: (rtp_jitter_buffer_reset_skew), (calculate_skew), (rtp_jitter_buffer_insert): * gst/rtpmanager/rtpjitterbuffer.h: Remove the tail-changed callback in favour of a simple boolean when we insert a buffer in the queue. Add method to peek the tail of the buffer.
2007-10-05gst/xingheader/gstxingmux.c: The size of the Xing header is actually 417 as ↵Gautier Portet1-0/+13
it's rounded to the next smaller integer.... Original commit message from CVS: Patch by: Gautier Portet <kassoulet at gmail dot com> * gst/xingheader/gstxingmux.c: The size of the Xing header is actually 417 as it's rounded to the next smaller integer. Fixes #397759. * gst/xingheader/gstxingmux.c: (xing_generate_header), (xing_push_header): Some random cleanup, add FIXMEs and TODOs and check if the newsegment event to the beginning was successful before pushing the header again.
2007-10-05gst/mpegtsparse/mpegtspacketizer.c: Don't skip PAT with version number 0. ↵Wai-Ming Ho1-0/+12
Fixes #483400. Original commit message from CVS: Patch by: Wai-Ming Ho <webregbox at yahoo dot co dot uk> * gst/mpegtsparse/mpegtspacketizer.c: (mpegts_packetizer_stream_new): Don't skip PAT with version number 0. Fixes #483400. * gst/mpegtsparse/mpegtsparse.c: (mpegts_parse_apply_pat): Make all values above 0 mark a referenced program as they can be incremented and only 1 had marked a referenced program before, causing actually referenced programs to be unreferenced.
2007-10-02gst/sdp/gstsdpdemux.h: Change signature of pt to fix compilation on some ↵Wim Taymans1-0/+5
platforms. Original commit message from CVS: * gst/sdp/gstsdpdemux.h: Change signature of pt to fix compilation on some platforms.
2007-10-02gst/rtpmanager/gstrtpjitterbuffer.c: Remove some old unused variables.Wim Taymans1-0/+19
Original commit message from CVS: * gst/rtpmanager/gstrtpjitterbuffer.c: (gst_rtp_jitter_buffer_flush_start), (gst_rtp_jitter_buffer_flush_stop), (gst_rtp_jitter_buffer_change_state), (apply_offset), (gst_rtp_jitter_buffer_loop): Remove some old unused variables. Don't add the latency to the skew corrected timestamp, latency is only used to sync against the clock. Improve debugging. * gst/rtpmanager/rtpjitterbuffer.c: (rtp_jitter_buffer_init), (rtp_jitter_buffer_reset_skew), (calculate_skew): * gst/rtpmanager/rtpjitterbuffer.h: Handle case where server timestamp goes backwards or wildly jumps by temporarily pausing the skew correction. Improve debugging.
2007-10-02gst/sdp/Makefile.am: Forgot to commit makefile.Wim Taymans1-0/+5
Original commit message from CVS: * gst/sdp/Makefile.am: Forgot to commit makefile.
2007-10-02ext/gio/gstgiosink.c: Update to API changes in GIO.Sebastian Dröge1-0/+5
Original commit message from CVS: * ext/gio/gstgiosink.c: (gst_gio_sink_start): Update to API changes in GIO.
2007-10-01gst/sdp/gstsdpdemux.c: Use new function in -base to get the default clock-rate.Wim Taymans1-0/+5
Original commit message from CVS: * gst/sdp/gstsdpdemux.c: (gst_sdp_demux_media_to_caps): Use new function in -base to get the default clock-rate.
2007-10-01Added SDP demuxer element. Fixes #426657.Wim Taymans1-0/+23
Original commit message from CVS: * configure.ac: * gst/sdp/gstsdpdemux.c: (_do_init), (gst_sdp_demux_base_init), (gst_sdp_demux_class_init), (gst_sdp_demux_init), (gst_sdp_demux_finalize), (gst_sdp_demux_set_property), (gst_sdp_demux_get_property), (find_stream_by_id), (find_stream_by_pt), (find_stream_by_udpsrc), (find_stream), (gst_sdp_demux_stream_free), (gst_sdp_demux_create_stream), (gst_sdp_demux_cleanup), (get_default_rate_for_pt), (gst_sdp_demux_parse_rtpmap), (gst_sdp_demux_media_to_caps), (new_session_pad), (request_pt_map), (gst_sdp_demux_do_stream_eos), (on_bye_ssrc), (on_timeout), (gst_sdp_demux_configure_manager), (gst_sdp_demux_stream_configure_udp), (gst_sdp_demux_stream_configure_udp_sink), (gst_sdp_demux_combine_flows), (gst_sdp_demux_stream_push_event), (gst_sdp_demux_handle_message), (gst_sdp_demux_start), (gst_sdp_demux_sink_event), (gst_sdp_demux_sink_chain), (gst_sdp_demux_change_state): * gst/sdp/gstsdpdemux.h: * gst/sdp/gstsdpelem.c: (plugin_init): Added SDP demuxer element. Fixes #426657.
2007-10-01gst/mpegtsparse/: Remove useless src pad that only results in not linked ↵mutex at runbox dot com1-0/+14
errors, fix a broken pointer dereference and... Original commit message from CVS: Patch by: mutex at runbox dot com * gst/mpegtsparse/mpegtspacketizer.c: (mpegts_packetizer_parse_adaptation_field_control): * gst/mpegtsparse/mpegtsparse.c: (mpegts_parse_base_init), (mpegts_parse_init), (mpegts_parse_push): * gst/mpegtsparse/mpegtsparse.h: Remove useless src pad that only results in not linked errors, fix a broken pointer dereference and make MAX_CONTINUITY constant conform to the standard to stop outputting corrupted data. Fixes #481276, #481279.
2007-09-29ext/mythtv/gstmythtvsrc.c: Re-apply docs patch from #468039; fix tab.Tim-Philipp Müller1-0/+8
Original commit message from CVS: * ext/mythtv/gstmythtvsrc.c: Re-apply docs patch from #468039; fix tab. * gst/mpegtsparse/.cvsignore: Ignore marshaller files generated at build time.
2007-09-29ext/gio/: Some minor cleanup and allow setting the location only when the ↵Sebastian Dröge1-0/+9
element is not playing or paused. Original commit message from CVS: * ext/gio/gstgiosink.c: (gst_gio_sink_base_init), (gst_gio_sink_set_property), (gst_gio_sink_render): * ext/gio/gstgiosrc.c: (gst_gio_src_base_init), (gst_gio_src_set_property): Some minor cleanup and allow setting the location only when the element is not playing or paused.
2007-09-29configure.ac: Update gio's pkg-config file name as currently in SVN.Sebastian Dröge1-0/+9
Original commit message from CVS: * configure.ac: Update gio's pkg-config file name as currently in SVN. * ext/neon/gstneonhttpsrc.c: (gst_neonhttp_src_set_location): Remove special casing for a NULL query string. g_strjoin won't add the separator if there's only one string.
2007-09-28gst/rtpmanager/gstrtpbin.c: Fix crasher in dispose.Wim Taymans1-0/+10
Original commit message from CVS: * gst/rtpmanager/gstrtpbin.c: (free_client): Fix crasher in dispose. * gst/rtpmanager/rtpjitterbuffer.c: (calculate_skew): Handle cases where input buffers have no timestamps so that no clock skew can be calculated, in this case interpollate timestamps based on rtp timestamp and assume a 0 clock skew.