X-Git-Url: http://git.tuebingen.mpg.de/?p=paraslash.git;a=blobdiff_plain;f=wma_common.c;h=781db5f4a36678f14db97a165b02e8f41df3e8b8;hp=0df19ae9e0599707338b6c0e2273e4bd69b6d3d1;hb=64a9cf5877ab9ecf6410596d657914f26830d3f7;hpb=84c3f9183674c561772dc4064e1b32a1e76ea8a3 diff --git a/wma_common.c b/wma_common.c index 0df19ae9..781db5f4 100644 --- a/wma_common.c +++ b/wma_common.c @@ -1,5 +1,5 @@ /* - * Copyright (C) 2009 Andre Noll + * Copyright (C) 2009-2011 Andre Noll * * Licensed under the GPL v2. For licencing details see COPYING. */ @@ -21,15 +21,25 @@ #include "imdct.h" #include "wma.h" -const char *search_pattern(const char *pattern, int pattern_len, const char *buf, int buf_size) +/** + * Find the first occurrence of the given pattern. + * + * \param pattern The pattern to search for. + * \param pattern_len The length of the pattern in bytes. + * \param buf The buffer to search for the pattern. + * \param buf_size The number of bytes in \a buf. + */ +const char *search_pattern(const char *pattern, int pattern_len, + const char *buf, int buf_size) { const char *p, *end = buf + buf_size; + /* TODO: Use suffix arrays to speed up the search. */ for (p = buf; p + pattern_len < end; p++) { if (memcmp(p, pattern, pattern_len)) continue; PARA_DEBUG_LOG("found %d byte pattern@%d\n", - pattern_len, p - buf); + pattern_len, (int)(p - buf)); return p; } PARA_NOTICE_LOG("%d byte pattern not found\n", pattern_len); @@ -46,7 +56,7 @@ static int find_audio_stream_info(const char *buf, int len) if (!p) return -E_WMA_NO_GUID; - PARA_DEBUG_LOG("found audio stream guid@%0zx\n", p - buf); + PARA_DEBUG_LOG("found audio stream guid@%0x\n", (int)(p - buf)); return p - buf + 16; } @@ -125,6 +135,13 @@ const uint8_t log2_tab[256] = { 7, 7, 7, 7, 7, 7, 7, 7 }; +/** + * Compute the base-2 logarithm. + * + * \param v The value to compute the logarithm of. + * + * \return An integer approximation of log2(v). + */ int wma_log2(unsigned int v) { int n = 0;