Anton Khirnov [Thu, 12 Jan 2012 08:26:11 +0000 (09:26 +0100)]
nellymoserdec: SAMPLE_FMT -> AV_SAMPLE_FMT
Anton Khirnov [Thu, 12 Jan 2012 08:25:05 +0000 (09:25 +0100)]
mpegvideo_enc: ifdef out/replace references to deprecated codec flags.
Anton Khirnov [Thu, 12 Jan 2012 08:12:59 +0000 (09:12 +0100)]
riff: remove references to sonic codec ids
They are deprecated and will be purged on next major bump.
Kostya Shishkov [Thu, 12 Jan 2012 09:01:33 +0000 (10:01 +0100)]
indeo4: add some missing static and const qualifiers
From the patch by Reimar Döffinger.
Christophe GISQUET [Sun, 1 Jan 2012 17:33:22 +0000 (18:33 +0100)]
rv34: DC-only inverse transform
When decoding coefficients, detect whether the block is DC-only, and take
advantage of this knowledge to perform DC-only inverse transform.
This is achieved by:
- first, changing the 108x4 element modulo_three_table into a 108 element
table (kind of base4), and accessing each value using mask and shifts.
- then, checking low bits for 0 (as they represent the presence of higher
frequency coefficients)
Also provide x86 SIMD code for the DC-only inverse transform.
Signed-off-by: Kostya Shishkov <kostya.shishkov@gmail.com>
Anton Khirnov [Sat, 31 Dec 2011 16:15:50 +0000 (17:15 +0100)]
avconv: use AVFrame.width/height/format instead of corresponding AVCodecContext fields
Anton Khirnov [Sat, 31 Dec 2011 15:20:10 +0000 (16:20 +0100)]
lavfi: move version macros to a new installed header version.h
Anton Khirnov [Fri, 30 Dec 2011 19:56:06 +0000 (20:56 +0100)]
vsrc_buffer: release the buffer on uninit.
Paul B Mahol [Wed, 11 Jan 2012 19:19:00 +0000 (19:19 +0000)]
rgb2rgb: rgb12tobgr12()
Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
Alex Converse [Wed, 11 Jan 2012 22:03:57 +0000 (14:03 -0800)]
latmdec: Check AudioSpecificConfig length before decoding extradata.
This is different than a normal get_bits() over read because
decode_audio_specific_config() creates its own GetBitContext.
Fixes Bug 170.
Henrik Gramner [Wed, 11 Jan 2012 17:40:34 +0000 (17:40 +0000)]
fft: init functions with INIT_XMM/YMM.
This is required to handle clobbering of XMM registers on Win64
correctly. Fixes FFT and all tests depending on FFT on Win64.
Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
Signed-off-by: Janne Grunau <janne-libav@jannau.net>
Justin Ruggles [Tue, 10 Jan 2012 20:17:39 +0000 (15:17 -0500)]
pcmenc: set frame_size to 0.
This indicates that the actual frame size is based on the buf_size passed to
avcodec_encode_audio().
Justin Ruggles [Mon, 9 Jan 2012 18:49:52 +0000 (13:49 -0500)]
gsm demuxer: use generic seeking instead of a gsm-specific function.
Since packets all contain only a single block, the generic seek function can
be used while still maintaining block-accuracy.
Justin Ruggles [Mon, 9 Jan 2012 18:48:46 +0000 (13:48 -0500)]
gsm demuxer: return packets with only 1 gsm block at a time.
fixes stream copy of raw gsm to mov.
tested with QuickTime.
Justin Ruggles [Mon, 9 Jan 2012 00:50:31 +0000 (19:50 -0500)]
avcodec: add GSM parser
The WAVE demuxer returns packets with many blocks per frame, which needs to be
parsed into single blocks. This has a side-effect of fixing the timestamps.
Diego Biurrun [Wed, 11 Jan 2012 09:50:35 +0000 (10:50 +0100)]
doc: Replace ffmpeg references in avserver config file by avconv.
Diego Biurrun [Wed, 11 Jan 2012 09:49:49 +0000 (10:49 +0100)]
doc: Fix names of av_log color environment variables.
Diego Biurrun [Mon, 12 Dec 2011 20:21:24 +0000 (21:21 +0100)]
Fix a bunch of platform name and other typos.
Reinhard Tartler [Wed, 11 Jan 2012 08:32:56 +0000 (09:32 +0100)]
Add some missing changelog entries and release 0.8_beta2
Signed-off-by: Reinhard Tartler <siretart@tauware.de>
Reinhard Tartler [Tue, 10 Jan 2012 16:52:50 +0000 (17:52 +0100)]
No longer build libpostproc by default
update documentation to inform developers that it may be removed in a
later release.
Signed-off-by: Reinhard Tartler <siretart@tauware.de>
Janne Grunau [Wed, 11 Jan 2012 00:34:30 +0000 (01:34 +0100)]
wtv: fix memleaks during normal operation
Janne Grunau [Tue, 10 Jan 2012 16:21:52 +0000 (17:21 +0100)]
threads: add CODEC_CAP_AUTO_THREADS for libvpx and xavs
Janne Grunau [Fri, 9 Sep 2011 12:26:32 +0000 (14:26 +0200)]
rv34: frame-level multi-threading
Statistics for bourne.rmvb -an -f null
1 thread: 37.12s user 0.03s system 99% cpu 37.174 total
2 threads: 47.63s user 0.24s system 185% cpu 25.807 total
4 threads: 41.21s user 0.30s system 327% cpu 12.674 total
Janne Grunau [Tue, 10 Jan 2012 14:08:20 +0000 (15:08 +0100)]
mpegvideo: claim ownership of referenced pictures
Under certain conditions pictures could be released before they were
returned with frame-threading. Broken mv computation in the upcoming
rv34 frame-threading patch was caused by this.
To prevent contexts from running out of available pictures the loop
releasing "unused" pictures has to be run for B frames too.
Alex Converse [Tue, 10 Jan 2012 21:07:09 +0000 (13:07 -0800)]
aacsbr: prevent out of bounds memcpy().
Fixes Libav Bug 195.
This doesn't make the code handle sample rate or upsample/downsample
change properly but this is still a good sanity check.
Based on change by Michael Niedermayer.
Signed-off-by: Alex Converse <alex.converse@gmail.com>
Justin Ruggles [Tue, 10 Jan 2012 13:48:23 +0000 (08:48 -0500)]
ipmovie: fix pts for CODEC_ID_INTERPLAY_DPCM
frame sample count calculation was incorrect
Justin Ruggles [Tue, 10 Jan 2012 14:24:21 +0000 (09:24 -0500)]
sierravmd: fix audio pts
The duration of the first packet was being calculated incorrectly, leading to
an incorrect timestamp offset.
Aneesh Dogra [Tue, 10 Jan 2012 18:08:03 +0000 (23:38 +0530)]
bethsoftvideo: Use bytestream2 functions to prevent buffer overreads.
Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
Paul B Mahol [Tue, 10 Jan 2012 16:06:02 +0000 (16:06 +0000)]
bmpenc: support for PIX_FMT_RGB444
Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
Ronald S. Bultje [Sun, 20 Nov 2011 23:54:15 +0000 (15:54 -0800)]
swscale: fix crash in fast_bilinear code when compiled with -mred-zone.
Additional comments from Måns Rullgard have been integrated
by Reinhard Tartler.
Signed-off-by: Reinhard Tartler <siretart@tauware.de>
Oka Motofumi [Tue, 10 Jan 2012 14:39:04 +0000 (06:39 -0800)]
swscale: specify register type.
Fixes a compilation failure on win64.
Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
Janne Grunau [Mon, 9 Jan 2012 01:06:59 +0000 (02:06 +0100)]
rv34: use get_bits_left()
It is not necessary to store the bit stream length in a RV34DecContext
field.
Anton Khirnov [Mon, 2 Jan 2012 14:02:46 +0000 (15:02 +0100)]
avconv: reinitialize the filtergraph on resolution change.
This is a hopefully temporary solution until lavfi can properly deal
with resolution changes.
Anton Khirnov [Tue, 3 Jan 2012 10:18:00 +0000 (11:18 +0100)]
vsrc_buffer: error on changing frame parameters.
Anton Khirnov [Tue, 10 Jan 2012 08:13:32 +0000 (09:13 +0100)]
avconv: fix -copyinkf.
This option only applies to streamcopy, but is currently processed only
when encoding.
Martin Storsjö [Tue, 10 Jan 2012 14:37:40 +0000 (16:37 +0200)]
fate: Update file checksums after the mov muxer change in
a78dbada55d6
Signed-off-by: Martin Storsjö <martin@martin.st>
Martin Storsjö [Mon, 9 Jan 2012 16:35:01 +0000 (18:35 +0200)]
movenc: Don't store a nonzero creation time if nothing was set by the caller
If the creation time is stored in the file as a zero, the
mov demuxer skips exporting the creation time. Currently,
files muxed without a creation time get demuxed with a
Jan 1st 1970 creation timestamp.
Signed-off-by: Martin Storsjö <martin@martin.st>
Paul B Mahol [Mon, 9 Jan 2012 23:37:24 +0000 (23:37 +0000)]
bmpdec: support for rgb444 with bitfields compression
Do not display garbage for invalid/unsupported bitfields values.
Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
Paul B Mahol [Tue, 10 Jan 2012 02:54:34 +0000 (02:54 +0000)]
rgb2rgb: allow conversion for <15 bpp
Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
Luca Barbato [Sun, 8 Jan 2012 16:49:43 +0000 (17:49 +0100)]
doc: fix stray reference to FFmpeg
Luca Barbato [Sat, 7 Jan 2012 09:59:35 +0000 (10:59 +0100)]
v4l2: use C99 struct initializer
Remove some unneeded memsets.
Luca Barbato [Thu, 5 Jan 2012 11:17:45 +0000 (12:17 +0100)]
v4l2: poll the file descriptor
Instead of busy waiting use poll();
Luca Barbato [Wed, 4 Jan 2012 14:06:10 +0000 (15:06 +0100)]
v4l2: support compressed formats
Let pass the codec name to -pixel_format and introduce -input_format.
Laurentiu Ion [Tue, 10 Jan 2012 01:21:17 +0000 (03:21 +0200)]
kmvc: Use bytestream2 functions to prevent buffer overreads.
Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
Gaurav Narula [Thu, 29 Dec 2011 21:20:22 +0000 (02:50 +0530)]
fate: Add tests for more AAC features.
al15_44 uses independent coupling.
al18_44 uses PNS (perceptual noise substitution).
am05_44 uses main prediction and independent coupling.
Signed-off-by: Alex Converse <alex.converse@gmail.com>
Alex Converse [Fri, 6 Jan 2012 22:49:11 +0000 (14:49 -0800)]
aacps: Add missing newline in error message.
Alex Converse [Fri, 6 Jan 2012 02:39:20 +0000 (18:39 -0800)]
fate: Add tests for vc1/wmapro in ism.
Alex Converse [Sat, 7 Jan 2012 01:23:49 +0000 (17:23 -0800)]
aacdec: Add a fate test for 5.1 channel SBR.
Alex Converse [Sat, 7 Jan 2012 01:22:45 +0000 (17:22 -0800)]
aacdec: Turn off PS for multichannel files that use PCE based configs.
Fixes al_sbr_cm_48_5.1.mp4.
Diego Biurrun [Sat, 7 Jan 2012 19:27:31 +0000 (20:27 +0100)]
cabac: remove put_cabac_u/ueg from cabac-test.
The functions are not used in any part of Libav, therefore testing them in the
cabac-test is unnecessary. Since this makes them unused, remove the functions.
Paul B Mahol [Mon, 9 Jan 2012 01:24:33 +0000 (01:24 +0000)]
swscale: RGB4444 and BGR444 input
Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
Mike Melanson [Sun, 8 Jan 2012 03:59:07 +0000 (19:59 -0800)]
FATE: add test for xWMA demuxer.
(Does not attempt to decode percetual audio data inside.)
Code coverage: libavformat/xwma.c: 3% -> 75%
Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
Mike Melanson [Sun, 8 Jan 2012 03:59:08 +0000 (19:59 -0800)]
FATE: add test for SMJPEG demuxer and associated IMA ADPCM audio decoder.
(Don't attempt to decode JPEG data.)
Code coverage: libavformat/smjpeg.c: 0% -> 69%
libavcodec/adpcm.c: 0% -> 10% (fresh run); 92.4% -> 93% following a FATE run
Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
Vitor Sessak [Thu, 5 Jan 2012 19:26:33 +0000 (20:26 +0100)]
mpegaudiodec: optimized iMDCT transform
Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
Vitor Sessak [Wed, 4 Jan 2012 20:43:47 +0000 (21:43 +0100)]
mpegaudiodec: change imdct window arrangment for better pointer alignment
Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
Vitor Sessak [Wed, 4 Jan 2012 20:32:47 +0000 (21:32 +0100)]
mpegaudiodec: move imdct and windowing function to mpegaudiodsp
Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
Vitor Sessak [Tue, 3 Jan 2012 20:40:57 +0000 (21:40 +0100)]
mpegaudiodec: interleave iMDCT buffer to simplify future SIMD implementations
Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
Ronald S. Bultje [Mon, 9 Jan 2012 00:37:43 +0000 (16:37 -0800)]
swscale: convert yuy2/uyvy/nv12/nv21ToY/UV from inline asm to yasm.
Also implement SSE2/AVX variants.
Mike Melanson [Sun, 8 Jan 2012 03:59:09 +0000 (19:59 -0800)]
FATE: test to exercise WTV demuxer.
Does not attempt to decode perceptual codecs inside.
Code coverage: libavformat/wtv.c: 0% -> 71%
Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
Daniel Huang [Sun, 8 Jan 2012 19:14:37 +0000 (13:14 -0600)]
mjpegdec: K&R formatting cosmetics
Signed-off-by: Diego Biurrun <diego@biurrun.de>
Diego Biurrun [Tue, 3 Jan 2012 11:20:59 +0000 (12:20 +0100)]
swscale: K&R formatting cosmetics for code examples
Diego Biurrun [Fri, 30 Dec 2011 17:37:16 +0000 (18:37 +0100)]
swscale: K&R reformatting cosmetics for header files
Mike Melanson [Sun, 8 Jan 2012 03:59:06 +0000 (19:59 -0800)]
FATE test: cvid-grayscale; ensures that the grayscale Cinepak variant is exercised.
Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
Aneesh Dogra [Sun, 8 Jan 2012 19:57:58 +0000 (01:27 +0530)]
bfi: Use bytestream2 functions to prevent buffer overreads.
Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
Laurentiu Ion [Sun, 8 Jan 2012 21:05:37 +0000 (23:05 +0200)]
dpcm: Fix invalid writes
Fixes bug: #152
Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
Aneesh Dogra [Sun, 8 Jan 2012 19:19:46 +0000 (00:49 +0530)]
utvideo: frame multithreading.
>> time ./avconv -i file.avi -f null -
Before : real 0m7.784s
After : real 0m3.662s
Tested on a Intel Core i3 Processor (2 cores, 4 threads).
Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
Chris Evans [Thu, 5 Jan 2012 20:25:41 +0000 (21:25 +0100)]
vorbis: An additional defense in the Vorbis codec.
Fixes Bug: #190
Chromium Bug: #100543
Related to CVE-2011-3893
Signed-off-by: Reinhard Tartler <siretart@tauware.de>
Reinhard Tartler [Thu, 5 Jan 2012 20:40:18 +0000 (21:40 +0100)]
vorbisdec: Fix decoding bug with channel handling
Fixes Bug: #191
Chromium Bug: #101458
CVE-2011-3895
Signed-off-by: Reinhard Tartler <siretart@tauware.de>
Diego Biurrun [Sat, 7 Jan 2012 19:46:09 +0000 (20:46 +0100)]
cabac: Move code only used within the CABAC test program into the test program.
Diego Biurrun [Sat, 7 Jan 2012 17:37:28 +0000 (18:37 +0100)]
vp56: Drop unnecessary cabac.h #include.
Diego Biurrun [Sat, 7 Jan 2012 20:36:31 +0000 (21:36 +0100)]
h264-test: Initialize AVCodecContext.av_class.
This fixes a segfault on startup.
Also remove a commented-out and completely unused variable.
Diego Biurrun [Sat, 7 Jan 2012 18:17:15 +0000 (19:17 +0100)]
build: Skip compiling network.h and rtsp.h if networking is not enabled.
rtsp.h relies on network.h and the latter conditionally defines fallback OS
structures that rely on configure tests, which are only run if networking
is enabled.
Diego Biurrun [Sat, 7 Jan 2012 18:07:42 +0000 (19:07 +0100)]
cosmetics: drop some pointless parentheses
Andrey Utkin [Sat, 7 Jan 2012 20:38:00 +0000 (22:38 +0200)]
Disable annoying warning without changing behavior
Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
Diego Biurrun [Fri, 30 Dec 2011 22:14:14 +0000 (23:14 +0100)]
faq: Solutions for common problems with sample paths when running FATE.
Justin Ruggles [Sat, 7 Jan 2012 16:25:04 +0000 (11:25 -0500)]
avcodec: attempt to clarify the CODEC_CAP_DELAY documentation
Justin Ruggles [Sat, 31 Dec 2011 00:35:45 +0000 (19:35 -0500)]
avcodec: fix avcodec_encode_audio() documentation.
the previous documentation indicated how many bytes are read from the input,
not how many samples are read.
Mike Melanson [Sat, 7 Jan 2012 17:29:35 +0000 (09:29 -0800)]
FATE: xmv-demux test; exercise the XMV demuxer without decoding the perceptual codecs inside.
Code coverage:
libavformat/xmv.c: 3% -> 91%
Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
Paul B Mahol [Sat, 7 Jan 2012 17:31:31 +0000 (17:31 +0000)]
vqf: recognize more metadata chunks
Do not create tags for non-char chunks.
Create readable tag for DSIZ chunk.
Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
Mike Melanson [Sat, 7 Jan 2012 17:29:32 +0000 (09:29 -0800)]
FATE test: BMV demuxer and associated video and audio decoders.
Code coverage:
libavcodec/bmv.c: 0% -> 75%
libavformat/bmv.c: 0% -> 85%
Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
Mike Melanson [Sat, 7 Jan 2012 17:29:34 +0000 (09:29 -0800)]
FATE: indeo4 video decoder test.
Code coverage:
libavcodec/indeo4.c: 0% -> 78%
Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
Mike Melanson [Sat, 7 Jan 2012 17:29:33 +0000 (09:29 -0800)]
FATE: update xxan-wc4 test to a sample with more code coverage.
The previous sample used for this test only contained type 0 frames.
Replace it with a sample that also features type 1 frames.
Code coverage:
libavcodec/xxan.c: 72% -> 89%
Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
Mike Melanson [Sat, 7 Jan 2012 17:29:30 +0000 (09:29 -0800)]
Change the recent h264_mp4toannexb bitstream filter test to output to an elementary stream rather than a program stream.
Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
Justin Ruggles [Fri, 6 Jan 2012 21:01:07 +0000 (16:01 -0500)]
g722enc: validate AVCodecContext.trellis
Justin Ruggles [Fri, 6 Jan 2012 20:32:44 +0000 (15:32 -0500)]
g722enc: set frame_size, and also handle an odd number of input samples
The fate reference is updated because the previous test skipped a sample in
each encode() call due each input frame having an odd number of samples.
Justin Ruggles [Fri, 6 Jan 2012 04:34:09 +0000 (23:34 -0500)]
g722enc: split encoding into separate functions for trellis vs. no trellis
Vitor Sessak [Tue, 3 Jan 2012 20:25:59 +0000 (21:25 +0100)]
mpegaudiodec: Use clearer pointer math
Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
Michael Niedermayer [Fri, 6 Jan 2012 16:34:22 +0000 (17:34 +0100)]
tta: Fix returned error code at EOF
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Signed-off-by: Justin Ruggles <justin.ruggles@gmail.com>
Michael Niedermayer [Fri, 6 Jan 2012 16:30:05 +0000 (17:30 +0100)]
tta: fix off be 1 error in the end detection.
Fixes use of uninitialized values.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Signed-off-by: Justin Ruggles <justin.ruggles@gmail.com>
Justin Ruggles [Fri, 6 Jan 2012 23:14:24 +0000 (18:14 -0500)]
tta: fix 24-bit decoding.
Decode to the correct output buffer.
Paul B Mahol [Fri, 6 Jan 2012 01:09:06 +0000 (03:09 +0200)]
ipmovie: Add param change side data if the video dimensions have changed
Signed-off-by: Martin Storsjö <martin@martin.st>
Paul B Mahol [Fri, 6 Jan 2012 01:07:31 +0000 (03:07 +0200)]
interplayvideo: Handle changed video dimensions on the fly
Signed-off-by: Martin Storsjö <martin@martin.st>
Martin Storsjö [Fri, 6 Jan 2012 01:06:25 +0000 (03:06 +0200)]
libavcodec: Handle param change side data in avcodec_decode_video2, too
Also call avcodec_set_dimensions on dimension param change packets.
Signed-off-by: Martin Storsjö <martin@martin.st>
Martin Storsjö [Fri, 6 Jan 2012 01:05:27 +0000 (03:05 +0200)]
libavcodec: Move apply_param_change up above avcodec_decode_video2
This is in preparation to calling it from avcodec_decode_video2.
Signed-off-by: Martin Storsjö <martin@martin.st>
Janne Grunau [Fri, 6 Jan 2012 00:21:36 +0000 (01:21 +0100)]
indeo3: check motion vectors for validity
Fixes null pointer dereferences in fuzzed files found by Oana Stratulat.
Signed-off-by: Janne Grunau <janne-libav@jannau.net>
Michael Niedermayer [Tue, 20 Dec 2011 21:06:35 +0000 (22:06 +0100)]
indeo5: Fix null pointer dereference.
Bug found by: Oana Stratulat
Signed-off-by: Janne Grunau <janne-libav@jannau.net>
Janne Grunau [Thu, 5 Jan 2012 21:12:35 +0000 (22:12 +0100)]
electronicarts: check bytes per sample for validity
Prevents division by zero.
Laurentiu Ion [Fri, 6 Jan 2012 18:42:00 +0000 (20:42 +0200)]
flicvideo: fix invalid reads
Prevent invalid reads using bytestream2 functions.
Fixes bug #126.
Signed-off-by: Justin Ruggles <justin.ruggles@gmail.com>
Chris Evans [Thu, 5 Jan 2012 20:25:41 +0000 (21:25 +0100)]
vorbis: Avoid some out-of-bounds reads
Fixes Bug: #190
Chromium Bug: #100543
Related to CVE-2011-3893
Signed-off-by: Reinhard Tartler <siretart@tauware.de>
Paul B Mahol [Fri, 6 Jan 2012 17:18:07 +0000 (17:18 +0000)]
vqf: add more known extensions
Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>