From 7ead9a748d46057ad6ad8236aeab224f64a57de7 Mon Sep 17 00:00:00 2001 From: Jorge Rodriguez Date: Tue, 29 Jul 2014 23:09:41 -0700 Subject: [PATCH] Fix. Ring buffers are a height value. --- stb_resample.h | 2 +- tests/resample_test.cpp | 7 +++++++ 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/stb_resample.h b/stb_resample.h index c6eb1f3..fda8080 100644 --- a/stb_resample.h +++ b/stb_resample.h @@ -1248,7 +1248,7 @@ STBRDEF int stbr_resize_arbitrary(const void* input_data, int input_w, int input { stbr_info->horizontal_buffer = NULL; stbr_info->ring_buffer = STBR__NEXT_MEMPTR(stbr_info->decode_buffer, stbr_info->decode_buffer_texels * channels * sizeof(float), float); - stbr_info->encode_buffer = STBR__NEXT_MEMPTR(stbr_info->ring_buffer, stbr_info->ring_buffer_length_bytes * stbr__get_filter_texel_width(filter, input_w, output_w), float); + stbr_info->encode_buffer = STBR__NEXT_MEMPTR(stbr_info->ring_buffer, stbr_info->ring_buffer_length_bytes * stbr__get_filter_texel_width(filter, input_h, output_h), float); STBR_DEBUG_ASSERT((size_t)STBR__NEXT_MEMPTR(stbr_info->encode_buffer, stbr_info->channels * sizeof(float), unsigned char) == (size_t)tempmem + tempmem_size_in_bytes); } diff --git a/tests/resample_test.cpp b/tests/resample_test.cpp index bd40333..30787c8 100644 --- a/tests/resample_test.cpp +++ b/tests/resample_test.cpp @@ -157,6 +157,13 @@ void test_suite() sprintf(outname, "test-output/barbara-height-%d.jpg", i); resize_image("barbara.png", 1, (float)i / 100, STBR_FILTER_CATMULLROM, STBR_EDGE_CLAMP, outname); } + + for (int i = 50; i < 200; i += 10) + { + char outname[200]; + sprintf(outname, "test-output/barbara-width-height-%d.jpg", i); + resize_image("barbara.png", 100 / (float)i, (float)i / 100, STBR_FILTER_CATMULLROM, STBR_EDGE_CLAMP, outname); + } }