summaryrefslogtreecommitdiff
path: root/libavutil/internal.h
Commit message (Collapse)AuthorAge
* libavutil: move FFALIGN macro from common.h to macros.hJanne Grunau2015-12-14
| | | | | | | | | Include macros.h explicitly in common.h so that external code using FFALIGN does not break. It was already implicitly included through version.h. Include macros.h in lls.h and internal.h for FFALIGN. lls.h was including common.h only for FFALIGN and internal.h was missing the include for FFALIGN. `make checkheaders` did not catch it because it's an internal header.
* configure: Support MSVC 2015Luca Barbato2015-06-08
| | | | | | | | | | | The C runtime C99 compatibility had been improved a lot and it now rejects some of the compatibility defines provided for the older versions. Many thanks to Ray for the time spent testing. Bug-Id: 864 CC: libav-stable@libav.org
* lavu: move internal define to the only places where it is usedVittorio Giovara2014-11-24
|
* cosmetics: Write NULL pointer equality checks more compactlyGabriel Dume2014-08-15
| | | | Signed-off-by: Diego Biurrun <diego@biurrun.de>
* imgutils: Do not declare avpriv_set_systematic_pal2 in the public headerDiego Biurrun2014-08-04
|
* lavu: add CHK_OFFS as AV_CHECK_OFFSET to check struct member offsetsJanne Grunau2014-04-24
|
* avutil: remove timer.h include from internal.hJanne Grunau2014-01-25
| | | | Added libavutil/timer.h include to all files with {START,STOP}_TIMER.
* configure: Prefix libc-related variables with "libc_"Diego Biurrun2013-12-09
| | | | Simplifies host/target libc detection splitting.
* msvc/icl: Use __declspec(deprecated)Alex Smith2013-09-20
| | | | | | | | | | | Prior to this on msvc/icl there was no handling of deprecated functions and the deprecated warning was disabled. After enabling there are a number of warnings relating to the CRT and the use of the non-secure versions of several functions. Defining _CRT_SECURE_NO_WARNINGS silences these warnings. Signed-off-by: Martin Storsjö <martin@martin.st>
* libavutil: Make avpriv_open a library-internal function on msvcrtMartin Storsjö2013-08-10
| | | | | | | | | | | | | | | Add one copy of the function into each of the libraries, similarly to what we do for log2_tab. When using static libs, only one copy of the file_open.o object file gets included, while when using shared libraries, each of them get a copy of its own. This fixes DLL builds with a statically linked C runtime, where each DLL effectively has got its own instance of the C runtime, where file descriptors can't be shared across runtimes. On systems not using msvcrt, the function is not duplicated. Signed-off-by: Martin Storsjö <martin@martin.st>
* libavutil: Enable the MSVC DLL symbol loading workaround in shared builds as ↵Martin Storsjö2013-08-10
| | | | | | | | | | | | | | | well This used to only be necessary in static builds (when using the dynamically linked C runtime), since the _imp prefixed symbols do exist when linking to the actual DLL. When building testprogs, however, the current library (e.g. libavutil for some of the testprogs) is linked statically. This fixes make fate on DLL builds when using the dynamically linked C runtime. Signed-off-by: Martin Storsjö <martin@martin.st>
* libavutil: add avpriv_open() to open files with close-on-exec flagRémi Denis-Courmont2013-08-07
| | | | Signed-off-by: Anton Khirnov <anton@khirnov.net>
* build: Add _Pragma macro to disable deprecated declaration warningsDiego Biurrun2013-08-02
|
* msvc: Move linker pragma from config.h to libavutil/internal.hMartin Storsjö2013-05-08
| | | | | | | This makes linking succeed for tools that include config.h but don't link to libavutil. Signed-off-by: Martin Storsjö <martin@martin.st>
* Add av_log_{ask_for_sample|missing_feature} replacements to libavutilDiego Biurrun2013-03-13
| | | | | This allows reporting missing features and requesting samples from all libraries in a standard way; with a simplified API.
* avutil: Ensure that emms_c is always defined, even on non-x86Diego Biurrun2013-02-14
|
* avutil: Move emms code to x86-specific headerDiego Biurrun2013-02-14
|
* lavu: avoid clashing definition of ELuca Barbato2013-02-12
| | | | | E is usually defined as a shorthand for AV_OPT_FLAG_ENCODING_PARAM. Rename the single expansion E(x) now used in libavutil to E1.
* dsputil: Move LOCAL_ALIGNED macros to libavutilDiego Biurrun2013-02-08
|
* x86: Add a Yasm-based emms() replacementMartin Storsjö2013-01-18
| | | | | | | This provides a fallback when building with Yasm enabled, but neither inline assembly, nor the _mm_empty intrinsic are available or enabled. Signed-off-by: Diego Biurrun <diego@biurrun.de>
* remove #defines to prevent use of discouraged external functionsJanne Grunau2012-11-25
| | | | | | | | | | | Preventing the use of discouraged or 'insecure' external functions through defines in an internal header is not a good solution. The header is not guaranteed to be included universally which makes overlooking bad use of said functions during review more likely. There are cases were those functions either are the most straight forward solution or even have to be used. Using malloc or free is required if the allocation or release is done by other libraries.
* Add support for building shared libraries with MSVCMartin Storsjö2012-10-18
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This requires the makedef perl script by Derek, from the c89-to-c99 repo. That scripts produces a .def file, listing the symbols to be exported, based on the gcc version scripts and the built object files. To properly load non-function symbols from DLL files, the data symbol declarations need to have the attribute __declspec(dllimport) when building the calling code. (On mingw, the linker can fix this up automatically, which is why it has not been an issue so far. If this attribute is omitted, linking actually succeeds, but reads from the table will not produce the desired results at runtime.) MSVC seems to manage to link DLLs (and run properly) even if this attribute is present while building the library itself (which normally isn't recommended) - other object files in the same library manage to link to the symbol (with a small warning at link time, like "warning LNK4049: locally defined symbol _avpriv_mpa_bitrate_tab imported" - it doesn't seem to be possible to squelch this warning), and the definition of the tables themselves produce a warning that can be squelched ("warning C4273: 'avpriv_mpa_bitrate_tab' : inconsistent dll linkage, see previous definition of 'avpriv_mpa_bitrate_tab'). In this setup, mingw isn't able to link object files that refer to data symbols with __declspec(dllimport) without those symbols actually being linked via a DLL (linking avcodec.dll ends up with errors like "undefined reference to `__imp__avpriv_mpa_freq_tab'"). The dllimport declspec isn't needed at all in mingw, so we simply choose not to declare it for other compilers than MSVC that requires it. (If ICL support later requires it, the condition can be extended later to include both of them.) This also implies that code that is built to link to a certain library as a DLL can't link to the same library as a static library. Therefore, we only allow building either static or shared but not both at the same time. (That is, static libraries as such can be, and actually are, built - this is used for linking the test tools to internal symbols in the libraries - but e.g. libavformat built to link to libavcodec as a DLL cannot link statically to libavcodec.) Also, linking to DLLs is slightly different from linking to shared libraries on other platforms. DLLs use a thing called import libraries, which is basically a stub library allowing the linker to know which symbols exist in the DLL and what name the DLL will have at runtime. In mingw/gcc, the import library is usually named libfoo.dll.a, which goes next to a static library named libfoo.a. This allows gcc to pick the dynamic one, if available, from the normal -lfoo switches, just as it does for libfoo.a vs libfoo.so on Unix. On MSVC however, you need to literally specify the name of the import library instead of the static library. Signed-off-by: Martin Storsjö <martin@martin.st>
* Allow use of strncpy()Mans Rullgard2012-10-03
| | | | | | | | There are cases where strncpy() does exactly what is required. A blanket ban forces more convoluted solutions to be used in those cases and has been a cause of bugs. Signed-off-by: Mans Rullgard <mans@mansr.com>
* x86: Split inline and external assembly #ifdefsDiego Biurrun2012-08-31
|
* dict: move struct AVDictionary definition to dict.cMans Rullgard2012-08-10
| | | | | | | This makes struct AVDictionary fully opaque now that nothing needs to access it directly any more. Signed-off-by: Mans Rullgard <mans@mansr.com>
* libavutil: remove unused av_abort() macroMans Rullgard2012-08-09
| | | | Signed-off-by: Mans Rullgard <mans@mansr.com>
* libavutil: drop offsetof() fallback definitionMans Rullgard2012-08-09
| | | | | | | | | The only compiler I have that does not define the standard offsetof() macro is "Bruce's C Compiler", a simple compiler for producing 8/16-bit 8086 code, usually for use in early stages of PC booting. Signed-off-by: Mans Rullgard <mans@mansr.com>
* libavutil: drop fallback definitions of INTxx_MIN/MAXMans Rullgard2012-08-09
| | | | | | | This list is incomplete (we also use UINT16_MAX), so there does not appear to be any system we care about that needs these. Signed-off-by: Mans Rullgard <mans@mansr.com>
* Move MASK_ABS macro to libavcodec/mathops.hMans Rullgard2012-08-09
| | | | | | | | | | | | This macro is only used in two places, both in libavcodec, so this is a more sensible place for it. Two small tweaks to the macro are made: - removing the trailing semicolon - dropping unnecessary 'volatile' from the x86 asm Signed-off-by: Mans Rullgard <mans@mansr.com>
* x86: move MANGLE() and related macros to libavutil/x86/asm.hMans Rullgard2012-08-09
| | | | | | These x86-specific macros do not belong in generic code. Signed-off-by: Mans Rullgard <mans@mansr.com>
* lavu: use intrinsics for emms on systems lacking inline asm supportRonald S. Bultje2012-07-10
| | | | | Signed-off-by: Diego Biurrun <diego@biurrun.de> Signed-off-by: Martin Storsjö <martin@martin.st>
* x86: place some inline asm under #if HAVE_INLINE_ASMRonald S. Bultje2012-06-25
| | | | Signed-off-by: Mans Rullgard <mans@mansr.com>
* doxygen: misc consistency, spelling and wording fixesDiego Biurrun2011-12-12
|
* avutil: Don't allow using strcasecmp/strncasecmpReimar Döffinger2011-11-06
| | | | Signed-off-by: Martin Storsjö <martin@martin.st>
* Move metadata API from lavf to lavu.Anton Khirnov2011-06-08
| | | | | | Rename it to AVDictionary, since it will be used as such. Tags documentation and metadata conversion API is lavf-specific, so remains there.
* Remove unnecessary LIBAVFORMAT_BUILD #ifdef.Diego Biurrun2011-06-05
|
* Move emms_c() from libavcodec to libavutil.Ronald S. Bultje2011-05-24
|
* Ban strncpy() it's too easy to misuse.Alex Converse2011-05-08
|
* Remove unnecessary icc version checksMans Rullgard2011-03-23
| | | | | | | | With unknown attribute warnings disabled, these checks are no longer needed. Removing them improves readability while having no effect on generated code. Signed-off-by: Mans Rullgard <mans@mansr.com>
* Replace FFmpeg with Libav in licence headersMans Rullgard2011-03-19
| | | | Signed-off-by: Mans Rullgard <mans@mansr.com>
* Frame-based multithreading framework using pthreadsAlexander Strange2011-02-09
| | | | | | See doc/multithreading.txt for details on use in codecs. Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
* Rename attribute_used to av_used and move it to attributes.hMans Rullgard2011-01-31
| | | | | | This is consistent with most of the other attribute macros. Signed-off-by: Mans Rullgard <mans@mansr.com>
* Replace dprintf with av_dlogLuca Barbato2011-01-29
| | | | dprintf clashes with POSIX.1-2008
* Intel C compiler 12.0 does not suport these attributes: may_alias, ↵Carl Eugen Hoyos2010-11-10
| | | | | | force_align_arg_pointer and alloc_size. Originally committed as revision 25716 to svn://svn.ffmpeg.org/ffmpeg/trunk
* Use attribute force_align_arg_pointer only on x86_32.Carl Eugen Hoyos2010-07-17
| | | | Originally committed as revision 24290 to svn://svn.ffmpeg.org/ffmpeg/trunk
* Improve FF_SYMVER documentationMåns Rullgård2010-06-30
| | | | Originally committed as revision 23911 to svn://svn.ffmpeg.org/ffmpeg/trunk
* Fix grammar errors in documentationMåns Rullgård2010-06-30
| | | | Originally committed as revision 23904 to svn://svn.ffmpeg.org/ffmpeg/trunk
* Document FF_SYMVER and attribute_usedMichael Niedermayer2010-06-16
| | | | Originally committed as revision 23622 to svn://svn.ffmpeg.org/ffmpeg/trunk
* Fix symbol version compat wrappers on systems with export prefixesMåns Rullgård2010-06-15
| | | | Originally committed as revision 23615 to svn://svn.ffmpeg.org/ffmpeg/trunk
* Add compatibility wrappers for functions moved from lavf to lavcMåns Rullgård2010-06-15
| | | | | | | | When symbol versioning is enabled, moving symbols from one library to another breaks binary compatibility. This adds wrappers with the old version tag for the av_*packet functions recently moved to lavc. Originally committed as revision 23611 to svn://svn.ffmpeg.org/ffmpeg/trunk