/* * default memory allocator for libavcodec * Copyright (c) 2002 Fabrice Bellard. * * This library is CC_free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ /** * @file mem.c * default memory allocator for libavcodec. */ #include "avcodec.h" /* here we can use OS dependant allocation functions */ #undef CC_malloc #undef CC_free #undef CC_realloc #ifdef HAVE_MALLOC_H #include "CC_alloc.h" #endif /* you can redefine av_malloc and av_free in your project to use your memory allocator. You do not need to suppress this file because the linker will do it automatically */ #ifdef __GNUC__ #define _aligned_malloc __mingw_aligned_malloc #define _aligned_realloc __mingw_aligned_realloc #define _aligned_free __mingw_aligned_free #endif void* av_malloc(unsigned int size) { return _aligned_malloc(size,16); } void* av_realloc(void *ptr, unsigned int size) { if (!ptr) return av_malloc(size); else if (size==0) { av_free(ptr); return NULL; } else return _aligned_realloc(ptr,size,16); } void av_free(void *ptr) { _aligned_free(ptr); }