gecko/media/libvpx/vpx_mem/vpx_mem.h
Jan Gerber 7daba17fb2 Bug 918550 - Update libvpx to 1.3.0 r=glandium,cpearce
This updates our in-tree copy of libvpx to the
v1.3.0 git tag (2e88f2f2ec777259bda1714e72f1ecd2519bceb5)
libvpx 1.3.0 adds support for VP9. VP9 support is built
but not yet exposed with this commit.

Our update.sh script is replaced with update.py that can
update the build system to a given git commit.
 - checkout out upstream git
 - create platform dependend config files
 - add/remove changed libvpx files
 - update moz.build
 - warn about new build categories in libvpx
2013-12-06 03:19:00 -08:00

174 lines
5.7 KiB
C

/*
* Copyright (c) 2010 The WebM project authors. All Rights Reserved.
*
* Use of this source code is governed by a BSD-style license
* that can be found in the LICENSE file in the root of the source
* tree. An additional intellectual property rights grant can be found
* in the file PATENTS. All contributing project authors may
* be found in the AUTHORS file in the root of the source tree.
*/
#ifndef __VPX_MEM_H__
#define __VPX_MEM_H__
#include "vpx_config.h"
#if defined(__uClinux__)
# include <lddk.h>
#endif
/* vpx_mem version info */
#define vpx_mem_version "2.2.1.5"
#define VPX_MEM_VERSION_CHIEF 2
#define VPX_MEM_VERSION_MAJOR 2
#define VPX_MEM_VERSION_MINOR 1
#define VPX_MEM_VERSION_PATCH 5
/* end - vpx_mem version info */
#ifndef VPX_TRACK_MEM_USAGE
# define VPX_TRACK_MEM_USAGE 0 /* enable memory tracking/integrity checks */
#endif
#ifndef VPX_CHECK_MEM_FUNCTIONS
# define VPX_CHECK_MEM_FUNCTIONS 0 /* enable basic safety checks in _memcpy,
_memset, and _memmove */
#endif
#ifndef REPLACE_BUILTIN_FUNCTIONS
# define REPLACE_BUILTIN_FUNCTIONS 0 /* replace builtin functions with their
vpx_ equivalents */
#endif
#include <stdlib.h>
#include <stddef.h>
#if defined(__cplusplus)
extern "C" {
#endif
/*
vpx_mem_get_version()
provided for runtime version checking. Returns an unsigned int of the form
CHIEF | MAJOR | MINOR | PATCH, where the chief version number is the high
order byte.
*/
unsigned int vpx_mem_get_version(void);
/*
vpx_mem_set_heap_size(size_t size)
size - size in bytes for the memory manager to allocate for its heap
Sets the memory manager's initial heap size
Return:
0: on success
-1: if memory manager calls have not been included in the vpx_mem lib
-2: if the memory manager has been compiled to use static memory
-3: if the memory manager has already allocated its heap
*/
int vpx_mem_set_heap_size(size_t size);
void *vpx_memalign(size_t align, size_t size);
void *vpx_malloc(size_t size);
void *vpx_calloc(size_t num, size_t size);
void *vpx_realloc(void *memblk, size_t size);
void vpx_free(void *memblk);
void *vpx_memcpy(void *dest, const void *src, size_t length);
void *vpx_memset(void *dest, int val, size_t length);
void *vpx_memmove(void *dest, const void *src, size_t count);
/* special memory functions */
void *vpx_mem_alloc(int id, size_t size, size_t align);
void vpx_mem_free(int id, void *mem, size_t size);
/* Wrappers to standard library functions. */
typedef void *(* g_malloc_func)(size_t);
typedef void *(* g_calloc_func)(size_t, size_t);
typedef void *(* g_realloc_func)(void *, size_t);
typedef void (* g_free_func)(void *);
typedef void *(* g_memcpy_func)(void *, const void *, size_t);
typedef void *(* g_memset_func)(void *, int, size_t);
typedef void *(* g_memmove_func)(void *, const void *, size_t);
int vpx_mem_set_functions(g_malloc_func g_malloc_l
, g_calloc_func g_calloc_l
, g_realloc_func g_realloc_l
, g_free_func g_free_l
, g_memcpy_func g_memcpy_l
, g_memset_func g_memset_l
, g_memmove_func g_memmove_l);
int vpx_mem_unset_functions(void);
/* some defines for backward compatibility */
#define DMEM_GENERAL 0
// (*)<
#if REPLACE_BUILTIN_FUNCTIONS
# ifndef __VPX_MEM_C__
# define memalign vpx_memalign
# define malloc vpx_malloc
# define calloc vpx_calloc
# define realloc vpx_realloc
# define free vpx_free
# define memcpy vpx_memcpy
# define memmove vpx_memmove
# define memset vpx_memset
# endif
#endif
#if CONFIG_MEM_TRACKER
#include <stdarg.h>
/*from vpx_mem/vpx_mem_tracker.c*/
extern void vpx_memory_tracker_dump();
extern void vpx_memory_tracker_check_integrity(char *file, unsigned int line);
extern int vpx_memory_tracker_set_log_type(int type, char *option);
extern int vpx_memory_tracker_set_log_func(void *userdata,
void(*logfunc)(void *userdata,
const char *fmt, va_list args));
# ifndef __VPX_MEM_C__
# define vpx_memalign(align, size) xvpx_memalign((align), (size), __FILE__, __LINE__)
# define vpx_malloc(size) xvpx_malloc((size), __FILE__, __LINE__)
# define vpx_calloc(num, size) xvpx_calloc(num, size, __FILE__, __LINE__)
# define vpx_realloc(addr, size) xvpx_realloc(addr, size, __FILE__, __LINE__)
# define vpx_free(addr) xvpx_free(addr, __FILE__, __LINE__)
# define vpx_memory_tracker_check_integrity() vpx_memory_tracker_check_integrity(__FILE__, __LINE__)
# define vpx_mem_alloc(id,size,align) xvpx_mem_alloc(id, size, align, __FILE__, __LINE__)
# define vpx_mem_free(id,mem,size) xvpx_mem_free(id, mem, size, __FILE__, __LINE__)
# endif
void *xvpx_memalign(size_t align, size_t size, char *file, int line);
void *xvpx_malloc(size_t size, char *file, int line);
void *xvpx_calloc(size_t num, size_t size, char *file, int line);
void *xvpx_realloc(void *memblk, size_t size, char *file, int line);
void xvpx_free(void *memblk, char *file, int line);
void *xvpx_mem_alloc(int id, size_t size, size_t align, char *file, int line);
void xvpx_mem_free(int id, void *mem, size_t size, char *file, int line);
#else
# ifndef __VPX_MEM_C__
# define vpx_memory_tracker_dump()
# define vpx_memory_tracker_check_integrity()
# define vpx_memory_tracker_set_log_type(t,o) 0
# define vpx_memory_tracker_set_log_func(u,f) 0
# endif
#endif
#if !VPX_CHECK_MEM_FUNCTIONS
# ifndef __VPX_MEM_C__
# include <string.h>
# define vpx_memcpy memcpy
# define vpx_memset memset
# define vpx_memmove memmove
# endif
#endif
#ifdef VPX_MEM_PLTFRM
# include VPX_MEM_PLTFRM
#endif
#if defined(__cplusplus)
}
#endif
#endif /* __VPX_MEM_H__ */