From 0debe9bd6ffb6f89a0756137837dcdc58fa84de0 Mon Sep 17 00:00:00 2001 From: Max Kellermann Date: Wed, 19 Oct 2011 22:11:50 +0200 Subject: pcm_utils: add function pcm_end_pointer() --- src/pcm_format.c | 3 ++- src/pcm_utils.h | 11 +++++++++++ 2 files changed, 13 insertions(+), 1 deletion(-) (limited to 'src') diff --git a/src/pcm_format.c b/src/pcm_format.c index 148cd70ed..6e1e0906d 100644 --- a/src/pcm_format.c +++ b/src/pcm_format.c @@ -22,6 +22,7 @@ #include "pcm_dither.h" #include "pcm_buffer.h" #include "pcm_pack.h" +#include "pcm_utils.h" static void pcm_convert_8_to_16(int16_t *out, const int8_t *in, @@ -61,7 +62,7 @@ pcm_convert_to_16(struct pcm_buffer *buffer, struct pcm_dither *dither, enum sample_format src_format, const void *src, size_t src_size, size_t *dest_size_r) { - const void *src_end = (const char *)src + src_size; + const void *src_end = pcm_end_pointer(src, src_size); unsigned num_samples; int16_t *dest; int32_t *dest32; diff --git a/src/pcm_utils.h b/src/pcm_utils.h index b6a6f3787..001423b37 100644 --- a/src/pcm_utils.h +++ b/src/pcm_utils.h @@ -24,6 +24,17 @@ #include +/** + * Add a byte count to the specified pointer. This is a utility + * function to convert a source pointer and a byte count to an "end" + * pointer for use in loops. + */ +static inline const void * +pcm_end_pointer(const void *p, size_t size) +{ + return (const char *)p + size; +} + /** * Check if the value is within the range of the provided bit size, * and caps it if necessary. -- cgit v1.2.3