Go to file
Henrik Gramner d1a6cb195f x86: Serialize rdtsc in read_time()
Improves the accuracy of measurements, especially in short sections.

To quote the Intel 64 and IA-32 Architectures Software Developer's Manual:
"The RDTSC instruction is not a serializing instruction. It does not necessarily
wait until all previous instructions have been executed before reading the counter.
Similarly, subsequent instructions may begin execution before the read operation
is performed. If software requires RDTSC to be executed only after all previous
instructions have completed locally, it can either use RDTSCP (if the processor
supports that instruction) or execute the sequence LFENCE;RDTSC."

SSE2 is a requirement for lfence so only use it on SSE2-capable systems.
Prefer lfence;rdtsc over rdtscp since rdtscp is supported on fewer systems.

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2015-07-09 00:10:13 +02:00
compat w32pthreads: use the condition variable API directly when targeting newer versions of Windows 2014-10-10 11:27:30 +03:00
doc doc: Use the succinct syntax for the channelmap example 2015-07-09 00:09:53 +02:00
libavcodec lavc: add Intel libmfx-based HEVC encoder 2015-07-08 23:40:11 +02:00
libavdevice xcbgrab: Explicitly include xcb/shape.h 2015-07-06 20:00:34 +02:00
libavfilter lavfi: Add library identifier 2015-07-01 00:13:58 +01:00
libavformat lavf/hevc: pad the RBSP buffer as required by the bistream reader 2015-07-08 23:36:10 +02:00
libavresample x86: check for AV_CPU_FLAG_AVXSLOW where useful 2015-05-31 12:07:11 +02:00
libavutil x86: Serialize rdtsc in read_time() 2015-07-09 00:10:13 +02:00
libswscale ppc: Restrict some Altivec implementations to Big Endian 2015-05-31 12:07:11 +02:00
presets presets: spelling error in libvpx 1080p50_60 2011-10-22 00:28:56 +02:00
tests h261: Signal freeze picture release for intra frames 2015-07-07 15:11:15 +02:00
tools cws2fws: Close file handles on error 2015-06-12 17:02:49 +01:00
.gitattributes Treat all '*.pnm' files as non-text file 2014-11-28 17:52:43 -05:00
.gitignore lavu: add an API function to return the Libav version string 2015-07-02 23:22:53 +02:00
arch.mak ppc: vsx: Implement float_dsp 2015-05-31 12:07:11 +02:00
avconv_dxva2.c avconv_dxva2: add hevc support 2015-01-27 09:06:05 +01:00
avconv_filter.c avconv: Add an option for automatically rotating video according to display matrix 2015-05-02 22:09:06 +03:00
avconv_opt.c avconv_opt: Check localtime() return value 2015-06-12 17:02:48 +01:00
avconv_vda.c avconv: vda: Unlock the pixel buffer once it is accessed 2015-07-09 00:10:13 +02:00
avconv_vdpau.c avconv_vdpau: allocate video surface of VDPAU-specified size 2014-12-25 20:47:49 +01:00
avconv.c avconv: do not stop processing the input packet on decoding error 2015-06-27 16:45:41 +02:00
avconv.h avconv: Add an option for automatically rotating video according to display matrix 2015-05-02 22:09:06 +03:00
avplay.c avplay: Add support for rotated video 2015-05-02 22:06:29 +03:00
avprobe.c avprobe: Print the display matrix from per-stream sidedata 2015-05-02 22:09:09 +03:00
Changelog lavc: add Intel libmfx-based HEVC encoder 2015-07-08 23:40:11 +02:00
cmdutils_common_opts.h avplay: Accept cpuflags option 2013-10-22 10:49:31 +02:00
cmdutils.c lavu: add an API function to return the Libav version string 2015-07-02 23:22:53 +02:00
cmdutils.h cmdutils: Mark exit_program as av_noreturn 2014-03-28 00:40:43 +01:00
common.mak build: export library dependencies in ${name}_FFLIBS 2014-05-20 00:43:51 +02:00
configure lavc: add Intel libmfx-based HEVC encoder 2015-07-08 23:40:11 +02:00
COPYING.GPLv2 Rename COPYING.GPL --> COPYING.GPLv2 and COPYING.LGPL --> COPYING.LGPLv2.1. 2009-06-05 09:51:31 +00:00
COPYING.GPLv3 Add configure option to upgrade (L)GPL to version 3. 2009-06-05 11:04:03 +00:00
COPYING.LGPLv2.1 cosmetics: Delete empty lines at end of file. 2012-02-09 12:26:45 +01:00
COPYING.LGPLv3 Add configure option to upgrade (L)GPL to version 3. 2009-06-05 11:04:03 +00:00
CREDITS partially rename FFmpeg to Libav 2011-03-16 21:54:39 +01:00
INSTALL doc: clarify configure features 2011-04-07 02:54:12 +02:00
library.mak build: Support executable only ldflags 2014-07-21 22:18:35 +02:00
LICENSE license: Mention that vf_interlace is GPL, not LGPL 2014-08-28 19:47:43 +02:00
Makefile lavu: add an API function to return the Libav version string 2015-07-02 23:22:53 +02:00
README doc: Add more information in the README 2014-08-16 00:49:22 +02:00
README.md doc: Add more information in the README 2014-08-16 00:49:22 +02:00
RELEASE Make the RELEASE file match with the most recent tag 2014-12-01 07:51:14 -05:00
version.sh Drop git- prefix from version labels 2011-06-19 19:41:23 +01:00

Libav

Libav is a collection of libraries and tools to process multimedia content such as audio, video, subtitles and related metadata.

Libraries

  • libavcodec provides implementation of a wider range of codecs.
  • libavformat implements streaming protocols, container formats and basic I/O access.
  • libavutil includes hashers, decompressors and miscellaneous utility functions.
  • libavfilter provides a mean to alter decoded Audio and Video through chain of filters.
  • libavdevice provides an abstraction to access capture and playback devices.
  • libavresample implements audio mixing and resampling routines.
  • libswscale implements color conversion and scaling routines.

Tools

  • avconv is a command line toolbox to manipulate, convert and stream multimedia content.
  • avplay is a minimalistic multimedia player.
  • avprobe is a simple analisys tool to inspect multimedia content.
  • Additional small tools such as aviocat, ismindex and qt-faststart.

Documentation

The offline documentation is available in the doc/ directory.

The online documentation is available in the main website and in the wiki.

Examples

Conding examples are available in the doc/example directory.

License

Libav codebase is mainly LGPL-licensed with optional components licensed under GPL. Please refer to the LICENSE file for detailed information.