Age | Commit message (Collapse) | Author | Files | Lines |
|
hardcoding values where possible. Fixes bug #522212.
Original commit message from CVS:
* ext/alsaspdif/alsaspdifsink.c:
* ext/gsm/gstgsm.c:
* ext/jack/gstjack.c:
* ext/libmms/gstmms.c:
* ext/neon/gstneonhttpsrc.c:
* ext/shout/gstshout.c:
* ext/timidity/gsttimidity.c:
* ext/timidity/gstwildmidi.c:
* gst/nuvdemux/gstnuvdemux.c:
* gst/tta/gsttta.c:
Use GST_LICENSE, GST_PACKAGE_NAME and GST_PACKAGE_ORIGIN instead
of hardcoding values where possible. Fixes bug #522212.
|
|
rtpmanager.
Original commit message from CVS:
Patch by: Olivier Crete <tester at tester dot ca>
* gst/rtpmanager/rtpsession.c: (find_add_conflicting_addresses),
(check_collision), (obtain_source), (rtp_session_create_new_ssrc),
(rtp_session_create_source), (rtp_session_process_rtp),
(rtp_session_process_sr), (rtp_session_process_rr),
(rtp_session_process_sdes), (rtp_session_process_bye),
(rtp_session_send_bye_locked), (rtp_session_send_bye),
(rtp_session_on_timeout):
* gst/rtpmanager/rtpsession.h:
Implement collision and loop detection in rtpmanager.
Fixes #520626.
* gst/rtpmanager/rtpsource.c: (rtp_source_reset),
(rtp_source_init):
* gst/rtpmanager/rtpsource.h:
Add method to reset stats.
|
|
thread in PAUSED because it might be blocked d...
Original commit message from CVS:
Based on patch by: Ole André Vadla Ravnås <ole.andre.ravnas@tandberg.com>
* gst/rtpmanager/gstrtpsession.c: (gst_rtp_session_init),
(rtcp_thread), (start_rtcp_thread), (stop_rtcp_thread),
(join_rtcp_thread), (gst_rtp_session_change_state):
Avoid a deadlock when joining the RTCP thread in PAUSED because it might
be blocked downstream. Also avoid spawning multiple rtcp threads.
Fixes #520894.
|
|
have no timestamps.
Original commit message from CVS:
Patch by: Stefan Kost <ensonic@users.sf.net>
* gst/rtpmanager/rtpjitterbuffer.c: (calculate_skew):
Don't try to reset the clock skew when we have no timestamps.
Fixes #519005.
|
|
Original commit message from CVS:
* gst/mpegtsparse/gstmpegdesc.h:
* gst/mpegtsparse/mpegtspacketizer.c:
Add parsing of cable delivery system descriptor.
|
|
This include marking several symbols static...
Original commit message from CVS:
* ext/alsa/gstalsamixertrack.c: (gst_alsa_mixer_track_get_type):
* ext/alsa/gstalsasink.c: (set_hwparams):
* ext/alsa/gstalsasrc.c: (set_hwparams):
* ext/gio/gstgio.c: (gst_gio_uri_handler_get_uri):
* ext/ogg/gstoggmux.h:
* ext/ogg/gstogmparse.c:
* gst-libs/gst/audio/audio.c:
* gst-libs/gst/fft/kiss_fft_f64.c: (kiss_fft_f64_alloc):
* gst-libs/gst/pbutils/missing-plugins.c:
(gst_missing_uri_sink_message_new),
(gst_missing_element_message_new),
(gst_missing_decoder_message_new),
(gst_missing_encoder_message_new):
* gst-libs/gst/rtp/gstbasertppayload.c:
* gst-libs/gst/rtp/gstrtcpbuffer.c:
(gst_rtcp_packet_bye_get_reason):
* gst/audioconvert/gstaudioconvert.c:
* gst/audioresample/gstaudioresample.c:
* gst/ffmpegcolorspace/imgconvert.c:
* gst/playback/test.c: (gen_video_element), (gen_audio_element):
* gst/typefind/gsttypefindfunctions.c:
* gst/videoscale/vs_4tap.c:
* gst/videoscale/vs_4tap.h:
* sys/v4l/gstv4lelement.c:
* sys/v4l/gstv4lsrc.c: (gst_v4lsrc_get_any_caps):
* sys/v4l/v4l_calls.c:
* sys/v4l/v4lsrc_calls.c: (gst_v4lsrc_capture_init),
(gst_v4lsrc_try_capture):
* sys/ximage/ximagesink.c: (gst_ximagesink_check_xshm_calls),
(gst_ximagesink_ximage_new):
* sys/xvimage/xvimagesink.c: (gst_xvimagesink_check_xshm_calls),
(gst_xvimagesink_xvimage_new):
* tests/check/elements/audioconvert.c:
* tests/check/elements/audioresample.c:
(fail_unless_perfect_stream):
* tests/check/elements/audiotestsrc.c: (setup_audiotestsrc):
* tests/check/elements/decodebin.c:
* tests/check/elements/gdpdepay.c: (setup_gdpdepay),
(setup_gdpdepay_streamheader):
* tests/check/elements/gdppay.c: (setup_gdppay), (GST_START_TEST),
(setup_gdppay_streamheader):
* tests/check/elements/gnomevfssink.c: (setup_gnomevfssink):
* tests/check/elements/multifdsink.c: (setup_multifdsink):
* tests/check/elements/textoverlay.c:
* tests/check/elements/videorate.c: (setup_videorate):
* tests/check/elements/videotestsrc.c: (setup_videotestsrc):
* tests/check/elements/volume.c: (setup_volume):
* tests/check/elements/vorbisdec.c: (setup_vorbisdec):
* tests/check/elements/vorbistag.c:
* tests/check/generic/clock-selection.c:
* tests/check/generic/states.c: (setup), (teardown):
* tests/check/libs/cddabasesrc.c:
* tests/check/libs/video.c:
* tests/check/pipelines/gio.c:
* tests/check/pipelines/oggmux.c:
* tests/check/pipelines/simple-launch-lines.c:
(simple_launch_lines_suite):
* tests/check/pipelines/streamheader.c:
* tests/check/pipelines/theoraenc.c:
* tests/check/pipelines/vorbisdec.c:
* tests/check/pipelines/vorbisenc.c:
* tests/examples/seek/scrubby.c:
* tests/examples/seek/seek.c: (query_positions_elems),
(query_positions_pads):
* tests/icles/stress-xoverlay.c: (myclock):
Correct all relevant warnings found by the sparse semantic code
analyzer. This include marking several symbols static, using
NULL instead of 0 for pointers and using "foo (void)" instead
of "foo ()" for declarations.
* win32/common/libgstrtp.def:
Add gst_rtp_buffer_set_extension_data to the symbol definition file.
|
|
chunks are followed by real data again. Fixes...
Original commit message from CVS:
Patch by: Jens Granseuer <jensgr at gmx dot net>
* gst/mve/gstmvedemux.c: (gst_mve_audio_data),
(gst_mve_demux_get_type):
Fix audio discontinuity that happens when silent chunks are
followed by real data again. Fixes bug #519905.
|
|
is for even if on same pid.
Original commit message from CVS:
* gst/mpegtsparse/mpegtsparse.c:
Only send PMTs to program pads that the PMT is for even if
on same pid.
As a by-product, we now no longer hardcode any psi pid numbers.
Also remove pcr stream from old pmt when we apply a new pmt.
|
|
chain call.
Original commit message from CVS:
* gst/selector/gstoutputselector.c:
Fix changing to same pad twice before a chain call.
|
|
like aggregator in 0.8.
Original commit message from CVS:
* gst/selector/gstinputselector.c:
* gst/selector/gstinputselector.h:
Added "select-all" property to make it work like aggregator in 0.8.
* gst/selector/gstoutputselector.c:
Fix resend-latest behavoiur.
* tests/check/Makefile.am:
* tests/check/elements/.cvsignore:
* tests/check/elements/selector.c:
Add unit tests for selector.
|
|
building C++ code.
Original commit message from CVS:
* configure.ac:
* ext/mpeg2enc/Makefile.am:
* ext/soundtouch/Makefile.am:
* gst/modplug/Makefile.am:
Check for and define ERROR_CXXFLAGS and GST_CXXFLAGS and use them
when building C++ code.
|
|
Fixes bug #517937.
Original commit message from CVS:
Patch by: Jens Granseuer <jensgr at gmx dot net>
* gst/librfb/gstrfbsrc.c: (gst_rfb_property_set_version):
* gst/librfb/rfbdecoder.c: (rfb_decoder_message_set_encodings),
(rfb_decoder_state_set_encodings):
* gst/mpegtsparse/mpegtspacketizer.c:
(mpegts_packetizer_parse_nit), (mpegts_packetizer_parse_sdt),
(mpegts_packetizer_parse_eit):
* sys/fbdev/gstfbdevsink.c: (gst_fbdevsink_getcaps),
(gst_fbdevsink_setcaps), (gst_fbdevsink_render):
Some C89 fixes, moving variable declarations to the beginning
of a block. Fixes bug #517937.
|
|
517571.
Original commit message from CVS:
Patch by: Olivier Crete <tester at tester dot ca>
* gst/rtpmanager/gstrtpbin.c: (new_ssrc_pad_found):
Fix small memory leak, leaking caps. Fixes #bug 517571.
|
|
Original commit message from CVS:
* gst/tta/Makefile.am:
Link tta plugin with libm. Fixes bug #517391.
|
|
when doing synchronisation. Fixes #516160.
Original commit message from CVS:
Patch by: Olivier Crete <tester@tester.ca>
* gst/rtpmanager/gstrtpbin.c: (gst_rtp_bin_associate):
Ignore streams that did not receive an SR packet when doing
synchronisation. Fixes #516160.
|
|
Patch based on an idea by Jan Schmidt, f...
Original commit message from CVS:
* gst/dvdspu/gstdvdspu.c: (gst_dvd_spu_handle_new_spu_buf):
Set n_line_ctrl_i to 0 whenever we free line_ctrl_i. Patch based
on an idea by Jan Schmidt, fixes bug #516436.
|
|
GST_DEBUG is enabled and also actually o...
Original commit message from CVS:
* gst/mpegtsparse/gstmpegdesc.c:
* gst/mpegtsparse/gstmpegdesc.h:
* gst/mpegtsparse/mpegtsparse.c:
Make sure the gstmpegdesc debug lines do not critical
when GST_DEBUG is enabled and also actually output.
Thanks to Alessandro Decina for spotting.
Fixes #516448
|
|
Re-Fixes #516061.
Original commit message from CVS:
Patch by: Josep Torra Valles <josep@fluendo.com>
* gst/h264parse/gsth264parse.c: (gst_h264_parse_chain_reverse):
Fix potential buffer leak in reverse mode. Re-Fixes #516061.
|
|
Fixes #516061.
Original commit message from CVS:
Patch by: Josep Torra Valles <josep@fluendo.com>
* gst/h264parse/gsth264parse.c: (gst_h264_parse_chain_reverse):
Fix potential buffer leak in reverse mode. Fixes #516061.
|
|
Original commit message from CVS:
* gst/mpegvideoparse/mpegvideoparse.c:
(mpegvideoparse_handle_sequence), (mpegvideoparse_drain_avail),
(gst_mpegvideoparse_change_state):
Fix leaking caps.
Fix potential buffer leak in forward mode.
Cleanup queues when going to READY. Fixes #515815.
|
|
Original commit message from CVS:
* ext/xvid/gstxvidenc.c:
* gst/vmnc/vmncdec.c:
* sys/glsink/glimagesink.c:
* sys/glsink/gstgldisplay.c:
Fix some finalize leaks by chaining up to the parent method.
|
|
Original commit message from CVS:
* gst/librfb/gstrfbsrc.c: (gst_rfb_src_dispose):
Free the rfb decoder on finalize. Fixes bug #515721.
|
|
distcheck, so let's not do that
Original commit message from CVS:
* gst/selector/Makefile.am:
Listing the marshal.h in the nodist_HEADERS breaks distcheck, so
let's not do that
* tests/check/Makefile.am:
Disable the crashing cdaudio plugin from the states test so I can make
pre-releases.
|
|
Original commit message from CVS:
* configure.ac:
* docs/plugins/Makefile.am:
* docs/plugins/gst-plugins-bad-plugins-docs.sgml:
* docs/plugins/gst-plugins-bad-plugins-sections.txt:
* docs/plugins/gst-plugins-bad-plugins.args:
* docs/plugins/gst-plugins-bad-plugins.hierarchy:
* docs/plugins/inspect/plugin-multifile.xml:
* gst/multifile/Makefile.am:
* gst/multifile/gstmultifile.c:
* gst/multifile/gstmultifilesink.c:
* gst/multifile/gstmultifilesink.h:
* gst/multifile/gstmultifilesrc.c:
* gst/multifile/gstmultifilesrc.h:
* gst/multifile/multifile.vproj:
* tests/check/Makefile.am:
* tests/check/elements/multifile.c:
Remove multifile plugin, which has moved to -good
|
|
Original commit message from CVS:
* gst/multifile/gstmultifilesink.c:
* gst/multifile/gstmultifilesrc.c:
Use g_file_[sg]et_contents() instead of using stdio functions.
Should be less error prone.
* tests/check/elements/multifile.c:
Create a temporary directory using standard functions instead of
creating a directory in the current dir.
|
|
Original commit message from CVS:
* configure.ac:
* docs/plugins/Makefile.am:
* docs/plugins/gst-plugins-bad-plugins-docs.sgml:
* docs/plugins/gst-plugins-bad-plugins-sections.txt:
* docs/plugins/gst-plugins-bad-plugins.args:
* docs/plugins/gst-plugins-bad-plugins.hierarchy:
* docs/plugins/inspect/plugin-spectrum.xml:
* gst/spectrum/.cvsignore:
* gst/spectrum/Makefile.am:
* gst/spectrum/README:
* gst/spectrum/demo-audiotest.c:
* gst/spectrum/demo-osssrc.c:
* gst/spectrum/gstspectrum.c:
* gst/spectrum/gstspectrum.h:
* gst/spectrum/spectrum.vcproj:
* tests/check/Makefile.am:
* tests/check/elements/spectrum.c:
Remove spectrum plugin, which has moved to -good
|
|
Original commit message from CVS:
* configure.ac:
* docs/plugins/Makefile.am:
* docs/plugins/gst-plugins-bad-plugins-docs.sgml:
* docs/plugins/gst-plugins-bad-plugins-sections.txt:
* docs/plugins/inspect/plugin-equalizer.xml:
* gst/equalizer/.cvsignore:
* gst/equalizer/Makefile.am:
* gst/equalizer/demo.c:
* gst/equalizer/gstiirequalizer.c:
* gst/equalizer/gstiirequalizer.h:
* gst/equalizer/gstiirequalizer10bands.c:
* gst/equalizer/gstiirequalizer10bands.h:
* gst/equalizer/gstiirequalizer3bands.c:
* gst/equalizer/gstiirequalizer3bands.h:
* gst/equalizer/gstiirequalizernbands.c:
* gst/equalizer/gstiirequalizernbands.h:
* tests/check/Makefile.am:
* tests/check/elements/.cvsignore:
* tests/check/elements/equalizer.c:
Remove the equalizer plugin, which has moved to -good
|
|
-ugly.
Original commit message from CVS:
* configure.ac:
* docs/plugins/gst-plugins-bad-plugins-docs.sgml:
* docs/plugins/gst-plugins-bad-plugins-sections.txt:
* docs/plugins/inspect/plugin-xingheader.xml:
* gst/xingheader/Makefile.am:
* gst/xingheader/gstxingmux.c:
* gst/xingheader/gstxingmux.h:
* tests/check/Makefile.am:
* tests/check/elements/.cvsignore:
* tests/check/elements/xingmux.c:
* tests/check/elements/xingmux_testdata.h:
Remove the xingmux plugin, as the element has moved into
mpegaudioparse in -ugly.
|
|
audiowsincband respectively, in the gst-plug...
Original commit message from CVS:
* docs/plugins/Makefile.am:
* docs/plugins/gst-plugins-bad-plugins-docs.sgml:
* docs/plugins/gst-plugins-bad-plugins-sections.txt:
* docs/plugins/gst-plugins-bad-plugins.args:
* docs/plugins/gst-plugins-bad-plugins.hierarchy:
* gst/filter/Makefile.am:
* gst/filter/filter.vcproj:
* gst/filter/gstbpwsinc.c:
* gst/filter/gstbpwsinc.h:
* gst/filter/gstfilter.c:
* gst/filter/gstfilter.h:
* gst/filter/gstlpwsinc.c:
* gst/filter/gstlpwsinc.h:
* tests/check/Makefile.am:
* tests/check/elements/bpwsinc.c:
* tests/check/elements/lpwsinc.c:
Remove lpwsinc and bpwsinc elements - they've become
audiowsinclimit and audiowsincband respectively, in the
gst-plugins-good audiofx plugin.
|
|
Original commit message from CVS:
* ext\neon\gstneonhttpsrc.c:
Include unistd.h only if _HAVE_UNISTD_H is defined
* gst\mpegvideoparse\mpegvideoparse.c:
Use G_GUINT64_CONSTANT GLIB macro for constant
* sys\dshowsrcwrapper\gstdshowaudiosrc.c:
* sys\dshowsrcwrapper\gstdshowvideosrc.c:
* sys\dshowdecwrapper\gstdshowaudiodec.c:
* sys\dshowdecwrapper\gstdshowaudiodec.h:
* sys\dshowdecwrapper\gstdshowdecwrapper.c:
* sys\dshowdecwrapper\gstdshowdecwrapper.h:
* sys\dshowdecwrapper\gstdshowvideodec.c
* sys\dshowdecwrapper\gstdshowvideodec.h:
Add a DirectShow decoder wrapper.
* win32\MANIFEST:
Add new win32 files to MANIFEST
* win32\vs6\gst_plugins_bad.dsw:
* win32\vs6\libgstdshow.dsp:
* win32\vs6\libgstdshowdecwrapper.dsp:
* win32\vs6\libgstflv.dsp:
Add new projects to bad workspace
|
|
Original commit message from CVS:
* gst/mpegtsparse/mpegtspacketizer.c:
Parse component descriptor.
* gst/mpegtsparse/mpegtsparse.c:
Add SI pids to every program (but hardcoded currently).
|
|
Original commit message from CVS:
* gst/multifile/gstmultifilesink.c:
Add a fixme comment.
* gst/selector/gstoutputselector.c:
Fix same leak as in input-selector.
* tests/icles/output-selector-test.c:
Improve the test.
|
|
Original commit message from CVS:
* gst/spectrum/gstspectrum.c:
Improve the docs.
|
|
Original commit message from CVS:
* gst/filter/gstlpwsinc.c:
Fix typo in the long description of the element.
|
|
Original commit message from CVS:
* gst/xingheader/Makefile.am:
Put CFLAGS and LIBS in the right order
|
|
Original commit message from CVS:
* gst/mpegtsparse/mpegtsparse.c:
Handle latency queries in src pads.
|
|
to say whether the table is for the actua...
Original commit message from CVS:
* gst/mpegtsparse/mpegtspacketizer.c:
Add flag to both sdt and nit structures to say
whether the table is for the actual network/ts
or not.
|
|
Original commit message from CVS:
Patch by: Josep Torre Valles <josep@fluendo.com>
* gst/mpegvideoparse/mpegvideoparse.c: (gst_mpegvideoparse_flush):
Flush packetizer too.
|
|
linked. Fixes #512826.
Original commit message from CVS:
* gst/selector/gstinputselector.c: (gst_selector_pad_event):
Don't leak event on pads that are not linked. Fixes #512826.
|
|
confusion.
Original commit message from CVS:
* configure.ac:
Bump core/base requirements to released versions, to avoid confusion.
* gst/deinterlace/Makefile.am:
* gst/deinterlace/gstdeinterlace.c: (gst_deinterlace_set_caps):
Use the new GstVideoFormat API to get strides, plane offsets etc..
For Y42B we still need to calculate these ourselves, since the lib
in -base doesn't know about this format yet and we can't bump the
requirement to CVS right now. Fix the Y42B stride, offset and size
calculations for odd widths and heights while we're at it though
(to match those in videotestsrc).
|
|
buffer caps when we receive a new payload...
Original commit message from CVS:
Patch by: Thijs Vermeir <thijsvermeir at gmail dot com>
* gst/rtpmanager/gstrtpjitterbuffer.c:
(gst_rtp_jitter_buffer_chain):
Try to get the new clock-rate from the buffer caps when we receive a new
payload type instead of always firing the signal. Fixes #512774.
|
|
the opposite of input-selectoo (was switc...
Original commit message from CVS:
* configure.ac:
* docs/plugins/Makefile.am:
* docs/plugins/gst-plugins-bad-plugins-docs.sgml:
* docs/plugins/gst-plugins-bad-plugins-sections.txt:
* docs/plugins/gst-plugins-bad-plugins.args:
* docs/plugins/gst-plugins-bad-plugins.hierarchy:
* docs/plugins/gst-plugins-bad-plugins.interfaces:
* docs/plugins/gst-plugins-bad-plugins.signals:
* docs/plugins/inspect/plugin-metadata.xml:
* docs/plugins/inspect/plugin-selector.xml:
* docs/plugins/inspect/plugin-soundtouch.xml:
* docs/plugins/inspect/plugin-switch.xml:
* gst/selector/.cvsignore:
* gst/selector/Makefile.am:
* gst/selector/gstinputselector.c:
* gst/selector/gstinputselector.h:
* gst/selector/gstoutputselector.c:
* gst/selector/gstoutputselector.h:
* gst/selector/gstselector-marshal.list:
* gst/selector/gstselector.c:
* gst/selector/selector.vcproj:
* gst/switch/.cvsignore:
* gst/switch/Makefile.am:
* gst/switch/gstswitch-marshal.list:
* gst/switch/gstswitch.c:
* gst/switch/gstswitch.h:
* gst/switch/switch.vcproj:
* tests/icles/.cvsignore:
* tests/icles/Makefile.am:
* tests/icles/output-selector-test.c:
Replace the switch plugin with the selector plugin. Add output-
selector as the opposite of input-selectoo (was switch). Add a test
for output-selector. Add docs for the elements. The vcproj needs
update. Fixes #500142.
|
|
warning if debugging is disabled (not bullet pr...
Original commit message from CVS:
* gst/h264parse/gsth264parse.c: (gst_h264_parse_chain_forward):
Try to avoid 'unused variable' compiler warning if debugging is
disabled (not bullet proof, but seems to do for now). (#512654)
|
|
base class already does this for us.
Original commit message from CVS:
* gst/filter/gstbpwsinc.c: (gst_bpwsinc_class_init):
* gst/filter/gstlpwsinc.c: (gst_lpwsinc_class_init):
Don't implement get_unit_size() ourselves, the GstAudioFilter base
class already does this for us.
|
|
provided with caps but with a signal.
Original commit message from CVS:
Patch by: Olivier Crete <tester@tester.ca>
* gst/rtpmanager/gstrtpbin.c: (gst_rtp_bin_associate),
(create_stream), (payload_type_change), (new_ssrc_pad_found):
Also handle lip-sync when the clock-rate is not provided with caps but
with a signal.
|
|
extend it so that a clock-rate can be provided...
Original commit message from CVS:
Patch by: Olivier Crete <tester@tester.ca>
* gst/rtpmanager/gstrtpjitterbuffer.c:
(gst_jitter_buffer_sink_parse_caps), (gst_rtp_jitter_buffer_chain):
* gst/rtpmanager/rtpjitterbuffer.c: (calculate_skew),
(rtp_jitter_buffer_insert):
* gst/rtpmanager/rtpjitterbuffer.h:
Remove the fixed clock-rate from the jitterbuffer and extend it so that
a clock-rate can be provided with each buffer instead. Fixes #511686.
|
|
Original commit message from CVS:
Patch by: Olivier Crete <tester@tester.ca>
* gst/rtpmanager/gstrtpjitterbuffer.c:
(gst_rtp_jitter_buffer_init), (gst_rtp_jitter_buffer_change_state),
(gst_rtp_jitter_buffer_chain), (gst_rtp_jitter_buffer_loop):
Remove old unused variable.
Track pt on input buffers and get the clock-rate when it changes.
Ignore packets with unknown clock-rate. See #511686.
|
|
calculation was totally wrong.
Original commit message from CVS:
* gst/mpegtsparse/mpegtspacketizer.c:
The logic for the guard interval calculation was totally wrong.
Fixed.
|
|
Fixes #511920
Original commit message from CVS:
Patch by: Olivier Crete <tester@tester.ca>
* gst/rtpmanager/rtpsource.c: Fix unref of buffer using the
wrong function. Fixes #511920
|
|
descriptor length not stored in the byte af...
Original commit message from CVS:
* gst/mpegtsparse/gstmpegdesc.h:
* gst/mpegtsparse/mpegtspacketizer.c:
Fix network name descriptor, the length is actually the
descriptor length not stored in the byte after.
Fix bounds checking to be more correct.
|