FFmpeg git repo
Go to file
Wan-Teh Chang 3f55752cd5 configure: add -fPIE instead of -pie to C flags for ThreadSanitizer
-pie was added to C flags for ThreadSanitizer in commit
19f251a288. Under clang 3.8.0, the -pie
flag causes a compiler warning and a linker error when running configure
--toolchain=clang-tsan. Here is an excerpt from config.log:

clang ... -fsanitize=thread -pie -std=c11 -fomit-frame-pointer -pthread -c -o /tmp/ffconf.hL61stP9.o /tmp/ffconf.YO6ZaSFG.c
clang: warning: argument unused during compilation: '-pie'
clang -fsanitize=thread -pie -Wl,--as-needed -Wl,-z,noexecstack -o /tmp/ffconf.W5c2e41l /tmp/ffconf.hL61stP9.o -lbz2 -pthread
/usr/bin/ld: /tmp/ffconf.hL61stP9.o: relocation R_X86_64_PC32 against undefined symbol `atan2f@@GLIBC_2.2.5' can not be used when making a shared object; recompile with -fPIC
/usr/bin/ld: final link failed: Bad value
clang: error: linker command failed with exit code 1 (use -v to see invocation)

To be conservative, I changed -pie to -fPIE. But the documentation seems
to imply just -fsanitize=thread is enough:

http://clang.llvm.org/docs/ThreadSanitizer.html
https://github.com/google/sanitizers/wiki/ThreadSanitizerCppManual

Signed-off-by: Wan-Teh Chang <wtc@google.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-12-13 00:41:39 +01:00
compat compat/atomics: rename header guards 2016-12-02 20:08:54 -03:00
doc avcodec: Add max_pixels options 2016-12-10 22:24:10 +01:00
libavcodec avcodec/cuvid: fix compilation with msvc11 2016-12-12 13:09:55 +01:00
libavdevice Merge commit '0b1bd1b2057d41fd0ccba7317911c484a50f9207' 2016-11-18 10:20:14 +01:00
libavfilter avfilter/af_ashowinfo: properly show input channel layout for unknown channel layouts 2016-12-10 11:57:12 +01:00
libavformat lavf/mov: Accept multiple fourcc for AVID 1:1. 2016-12-12 12:26:21 +01:00
libavresample Bump minor versions after 3.2 branchpoint to seperate release 2016-10-26 20:52:42 +02:00
libavutil avutil: fix data race in av_get_cpu_flags() 2016-12-13 00:07:20 +01:00
libpostproc Bump minor versions after 3.2 branchpoint to seperate release 2016-10-26 20:52:42 +02:00
libswresample swresample/resample_template: Add filter values in parallel 2016-12-10 02:44:21 +01:00
libswscale swscale: add gbr(a)p16 output support 2016-12-01 21:37:25 +01:00
presets
tests fate: Add h264 test for frame num gaps 2016-12-12 13:33:52 +00:00
tools zmqsend: Initialize ret to 0 2016-12-05 11:27:13 -08:00
.gitattributes
.gitignore Merge commit '6641819feedb086ebba3d2be89b8d33980f367e1' 2016-06-26 15:43:05 +02:00
.travis.yml
CONTRIBUTING.md Add CONTRIBUTING.md 2016-09-18 10:02:13 +01:00
COPYING.GPLv2
COPYING.GPLv3
COPYING.LGPLv2.1
COPYING.LGPLv3
CREDITS
Changelog configure: fail if autodetect-libraries are requested but not found 2016-12-10 19:29:37 +01:00
INSTALL.md
LICENSE.md lavfi/f_ebur128: relicense to LGPL 2016-11-27 20:46:20 +01:00
MAINTAINERS MAINTAINERS: Add Vittorio to "Developers with git write access who are currently not maintaining any specific part" 2016-11-25 02:07:43 +01:00
Makefile Merge commit '6641819feedb086ebba3d2be89b8d33980f367e1' 2016-06-26 15:43:05 +02:00
README.md Add CONTRIBUTING.md 2016-09-18 10:02:13 +01:00
RELEASE RELEASE: Update for past 3.2 branch 2016-10-26 20:52:43 +02:00
arch.mak mips: rename mipsdspr1 to mipsdsp 2015-12-04 02:35:42 +01:00
cmdutils.c cmdutils: remove duplicate windows.h include 2016-11-16 15:06:16 +01:00
cmdutils.h cmdutils: add show_demuxers and show_muxers 2016-11-08 01:56:31 +01:00
cmdutils_common_opts.h cmdutils: add show_demuxers and show_muxers 2016-11-08 01:56:31 +01:00
cmdutils_opencl.c
common.mak Merge commit 'c5fd4b50610f62cbb3baa4f4108139363128dea1' 2016-06-27 19:39:46 +02:00
configure configure: add -fPIE instead of -pie to C flags for ThreadSanitizer 2016-12-13 00:41:39 +01:00
ffmpeg.c ffmpeg: assert return value is initialized 2016-12-01 12:01:51 +01:00
ffmpeg.h Merge commit '50722b4f0cbc5940e9e6e21d113888436cc89ff5' 2016-11-13 15:33:39 +01:00
ffmpeg_cuvid.c doc: fix spelling errors 2016-10-21 23:58:47 +02:00
ffmpeg_dxva2.c Merge commit '18c506e9e6e8df8b1d496d093077b8240ea68c28' 2016-06-26 15:34:01 +02:00
ffmpeg_filter.c ffmpeg_filter: fix several logic failures 2016-11-24 16:27:55 +01:00
ffmpeg_opt.c Avoid using the term "file" and prefer "url" in some docs and comments 2016-12-05 21:30:12 +01:00
ffmpeg_qsv.c ffmpeg_qsv: Fix hwaccel transcoding 2016-11-13 17:49:48 +00:00
ffmpeg_vaapi.c ffmpeg_vaapi: fix choice of decoder_format 2016-09-29 01:23:52 +02:00
ffmpeg_vdpau.c Merge commit 'f72db3f2f3a8c83a4f5dede8fa03434b2bf676c6' 2016-06-26 15:29:39 +02:00
ffmpeg_videotoolbox.c
ffplay.c ffplay: fix sws_scale possible out of bounds array access 2016-12-10 23:22:11 +01:00
ffprobe.c lavc: Add spherical packet side data API 2016-12-07 14:40:06 -05:00
ffserver.c ffserver: Check chunk size 2016-12-05 21:30:12 +01:00
ffserver_config.c ffsrever: Make the status page bitexact if any stream is bitexact 2016-11-29 19:26:26 +01:00
ffserver_config.h ffsrever: Make the status page bitexact if any stream is bitexact 2016-11-29 19:26:26 +01:00
library.mak Merge commit 'c5fd4b50610f62cbb3baa4f4108139363128dea1' 2016-06-27 19:39:46 +02:00
version.sh version.sh: Fix spurious rebuilds. 2016-03-10 09:53:10 +01:00

README.md

FFmpeg README

FFmpeg 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.
  • libswresample implements audio mixing and resampling routines.
  • libswscale implements color conversion and scaling routines.

Tools

  • ffmpeg is a command line toolbox to manipulate, convert and stream multimedia content.
  • ffplay is a minimalistic multimedia player.
  • ffprobe is a simple analysis tool to inspect multimedia content.
  • ffserver is a multimedia streaming server for live broadcasts.
  • 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

Coding examples are available in the doc/examples directory.

License

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

Contributing

Patches should be submitted to the ffmpeg-devel mailing list using git format-patch or git send-email. Github pull requests should be avoided because they are not part of our review process and will be ignored.