Commit Graph

2484 Commits

Author SHA1 Message Date
Martin Storsjö
8a3d9ca603 libavcodec: Add an OpenH264 encoder wrapper
Compared to existing, common opensource H264 encoders, this can be
useful since it has got a different license (BSD instead of GPL).

Performance- and qualitywise it is comparable to x264 in ultrafast
mode.

Hooking it up as an encoder in libavcodec also simplifies comparing
it against other common encoders.

This requires OpenH264 1.3 or newer. Since the OpenH264 API and ABI
changes frequently, only releases are supported.

To take advantage of the OpenH264 patent offer, the OpenH264 library
must not be redistributed, but downloaded at runtime at the end-user's
system.

Signed-off-by: Martin Storsjö <martin@martin.st>
2015-01-06 19:58:44 +02:00
Agostino Sarubbo
fe08299868 build: Use -Werror=format-security
Reduce the chance of introducing a class of bugs quite hard to track.
2015-01-05 15:35:39 +01:00
Martin Storsjö
f4d4e66a24 configure: Remap -L to -libpath for msvc
This allows using libraries that are detected via pkg-config with
msvc. (The libraries themselves may have to be built with MSVC
though.)

Signed-off-by: Martin Storsjö <martin@martin.st>
2015-01-04 19:57:34 +02:00
Martin Storsjö
8ebf02f8f5 libavformat: Only use MoveFileExA when targeting the desktop API subset
The MoveFileExA is available in the headers regardless which API
subset is targeted, but it is missing in the Windows Phone link
libraries. When targeting Windows Store apps, the function is
available both in the headers and in the link libraries, and thus
there is no indication for the build system that this function
should be avoided - such an indication is only given by the
Windows App Certification Kit, which forbids using the MoveFileExA
function.

Therefore check the WINAPI_FAMILY defines instead, to figure out
which API subset is targeted.

Signed-off-by: Martin Storsjö <martin@martin.st>
2014-12-19 23:24:47 +02:00
Martin Storsjö
f963f80399 arm: Use .data.rel.ro for const data with relocations
Signed-off-by: Martin Storsjö <martin@martin.st>
2014-12-09 11:43:25 +02:00
Vittorio Giovara
7834a54c66 configure: enable vda hwaccel by default
Following the old thread suggestions.
Vittorio
2014-12-03 12:54:23 +00:00
Martin Storsjö
79fd186a50 lavf: Use MoveFileEx instead of rename/_wrename on windows
This allows getting the normal unix semantics, where a rename
allows replacing an existing file.

Based on a suggestion by Reimar Döffinger.

Signed-off-by: Martin Storsjö <martin@martin.st>
2014-11-27 09:29:29 +02:00
Martin Storsjö
7813e6752b configure: Fix enabling memalign_hack automatically
simd_align_16 is a configure item that can be enabled or disabled,
it's not a variable containing a list of other configure items
as need_memalign previously. This was broken in eba2233b5.

CC: libav-stable@libav.org
Signed-off-by: Martin Storsjö <martin@martin.st>
2014-11-18 18:53:57 +02:00
Martin Storsjö
fe5e6e34c0 lavf: Add an MPEG-DASH ISOFF segmenting muxer
This is mostly to serve as a reference example on how to segment
the output from the mp4 muxer, capable of writing the segment
list in four different ways:
- SegmentTemplate with SegmentTimeline
- SegmentTemplate with implicit segments
- SegmentList with individual files
- SegmentList with one single file per track, and byte ranges

The muxer is able to serve live content (with optional windowing)
or create a static segmented MPD.

In advanced cases, users will probably want to do the segmenting
in their own application code.

Signed-off-by: Martin Storsjö <martin@martin.st>
2014-11-17 16:17:07 +02:00
Luca Barbato
a9179b5bd6 configure: Check only for xcb
xcb-utils are not needed anymore.
2014-10-28 13:57:32 +00:00
Luca Barbato
a6674d2e77 xcbgrab: XCB-based screen capture
Matches the x11grab screen capture by features.
2014-10-26 08:47:41 +01:00
Martin Storsjö
3f8f1c6ff2 lavu: Provide fallbacks for gmtime_r and localtime_r
This allows writing most code as if they always are is available.

These are ok to use from other libraries even though it's not a
public header, since they only provide an inline declaration, and
doesn't add an actual dependency on lavu internals. (This can be
considered more a build system compatibility fallback than a
libavutil feature.)

Signed-off-by: Martin Storsjö <martin@martin.st>
2014-10-26 00:14:54 +03:00
James Almer
73ea3ffcd5 w32pthreads: use the CONDITION_VARIABLE typedef if available
This silences warnings about passing arguments from incompatible pointer type
when targeting Windows Vista or newer.

Signed-off-by: James Almer <jamrial@gmail.com>
Signed-off-by: Martin Storsjö <martin@martin.st>
2014-10-10 11:27:26 +03:00
Josh Allmann
7d97511e13 configure: Add -lrt dependency to avutil's pc file.
This is needed for clock_gettime.

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2014-10-04 09:10:04 +02:00
Luca Barbato
5517466804 configure: Provide a safe default for unknonw libcs
Support musl out of box.

Amend commit 9d2cee52d3 that got
wrongly merged in its stead.
2014-09-27 18:01:44 +02:00
Luca Barbato
9d2cee52d3 configure: Assume a standard-compliant default libc
Non-standard compliant libc should be supported on a per-case basis
anyway.
2014-09-26 20:56:16 +02:00
Jörg Krause
3f2c70355a configure: Use the right variables in check_host_cpp
HOSTCPPFLAGS and HOSTCFLAGS are only set in config.mak.

Signed-off-by: Martin Storsjö <martin@martin.st>
2014-09-17 22:53:26 +03:00
Mikulas Patocka
9030c58a78 configure: Disable i686 for i586 and lower CPUs 2014-09-16 03:48:13 -07:00
Diego Biurrun
2d589273dd configure: Split adding of CFLAGS and CPPFLAGS for hardened toolchain 2014-09-16 00:18:53 -07:00
Diego Biurrun
1274ea8dba Split off floating point AAN (I)DCT into separate components 2014-09-07 13:36:26 -07:00
Diego Biurrun
f20518568a build: Split WMA frequencies into a separate object file
These are the only WMA bits shared with binkaudio. Splitting them off
reduces the binnkaudio dependency on general WMA code.
2014-09-04 05:19:46 -07:00
Luca Barbato
ebef9f5a56 time: Use clock_gettime if the monotonic clock is available
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2014-09-03 02:38:03 +02:00
Reinhard Tartler
749b1f1359 configure: add --enable-rpath
This option facilitates testing shared libarary builds: for instance
fate builders do no longer need to set LD_LIBRARY_PATH as the binaries will
get the right search paths hardcoded into their executable file.

This option is only meant to be used for testing purposes: The installed
libraries must not move around in the file system, and doing so will
cause a lot of subtle problems. For more information why using RPATH is
dangerous, please refer to

https://blog.flameeyes.eu/2010/06/the-why-and-how-of-rpath
2014-08-23 10:53:21 -04:00
Luca Barbato
051aadeed1 ogg: Provide aliases for Speex, Opus and audio-only ogg
Since they are aliases for ogg enabling any of them enables ogg as well.
2014-08-22 13:23:50 +02:00
Diego Biurrun
b0bfd09f88 configure: Suppress "potentially uninitialized variable" warnings from MSVC
The same is done for GCC and clang already.
2014-08-21 17:55:28 +02:00
Martin Storsjö
72199e1041 configure: Check for nanosleep in headers as well, not only in libs
On mingw64 with c++11 support, the link libraries do contain a
nanosleep function, while it isn't exposed via the headers. Using
check_func_headers instead of a plain check_func fixes this
misdetection.

Signed-off-by: Martin Storsjö <martin@martin.st>
2014-08-13 14:39:01 +03:00
Martin Storsjö
08b94f160a configure: Don't pass MSVC compiler options -M[TD] to armasm
The -MD option (for enabling a dynamically linked crt) gets interpreted
as a cpp option for generating dependency information (into a file named
'-.d', when preprocessing to a pipe). We shouldn't be passing
any and all C compiler flags to armasm (which is a plain assembler,
only with cpp bolted on via gas-preprocessor), but these are the
main conflicting ones.

Signed-off-by: Martin Storsjö <martin@martin.st>
2014-08-10 21:29:06 +03:00
Martin Storsjö
ab0742d2f3 configure: Suggest upgrading gas-preprocessor instead of just installing
Older versions don't support all the features we test for now.

Signed-off-by: Martin Storsjö <martin@martin.st>
2014-08-10 16:25:45 +03:00
Diego Biurrun
9f8cf50e3b configure: Enable gas-preprocessor on all OSes but only if available
Signed-off-by: Martin Storsjö <martin@martin.st>
2014-08-10 16:25:45 +03:00
Martin Storsjö
f4312352fc configure: Add probe identification of MS armasm
Signed-off-by: Martin Storsjö <martin@martin.st>
2014-08-10 16:25:45 +03:00
Diego Biurrun
444c73583d configure: Only run gas checks on ARM and PowerPC
Standalone GNU assembly is not used on x86.
2014-08-08 05:30:32 -07:00
Diego Biurrun
0026e356d0 configure: Die if gas is unavailable under aarch64 as well as ARM 2014-08-08 05:30:32 -07:00
Martin Storsjö
ed6d9ce914 configure: Include the armcc build number in the compiler identification
This tries to find the most expressive part of the output of
armcc --vsn to include, giving a compiler identification of
"ARM Compiler 5.04 update 2 (build 82)" instead of just
"ARM Compiler 5.04" for armcc 5.0.

4.x versions of armcc output the following, for "armcc --vsn":
ARM C/C++ Compiler, RVCT4.0 [Build 925]
For evaluation purposes only
Software supplied by: ARM Limited

ARM C/C++ Compiler, 4.1 [Build 894]
For evaluation purposes only
Software supplied by: ARM Limited

5.0 versions output this:
Product: ARM Compiler 5.04
Component: ARM Compiler 5.04 update 2 (build 82)
Tool: armcc [5040081]
For evaluation purposes only
Software supplied by: ARM Limited

Signed-off-by: Martin Storsjö <martin@martin.st>
2014-08-06 19:15:59 +03:00
Janne Grunau
15201e2560 configure: check $as first before using $gas as GNU as
llvm's integrated assembler supports the AArch64 asm on darwin since
August 2014. So check $as first before using gas-preprocessor.pl via
$gas. Makes the checks specific for that the architecture specific asm
needs. PPC Altivec and AArch64 needs on ':vararg' for macro arguments.
Arm needs in addition the '.altmacro' directive.
2014-08-05 13:11:50 +02:00
Ben Avison
adf8227cf4 vc-1: Add platform-specific start code search routine to VC1DSPContext.
Initialise VC1DSPContext for parser as well as for decoder.
Note, the VC-1 code doesn't actually use the function pointer yet.

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2014-08-04 22:22:54 +02:00
Ben Avison
db7f1c7c5a h264: Move start code search functions into separate source files.
This permits re-use with parsers for codecs which use similar start codes.

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2014-08-04 22:22:54 +02:00
Marvin Scholz
eb9244f202 Add Icecast protocol
Icecast is basically a convenience wrapper around the HTTP protocol.

Signed-off-by: Martin Storsjö <martin@martin.st>
2014-08-04 12:56:42 +03:00
Diego Biurrun
a0ce85ac7d configure: Globally add ZLIB_CONST to CPPFLAGS if zlib is enabled 2014-07-30 11:55:40 -07:00
Luca Barbato
e4a462e3ea configure: Use require_pkg_config for Speex
Distributors and integrators nowadays have less problems by leveraging
pkg-config files than having to set custom CFLAGS and LDFLAGS.
2014-07-28 22:17:42 +02:00
Martin Storsjö
06a1d1323b configure: Extend the neon intrinsics check
Check for an instruction that causes the (very old) Apple GCC 4.2
to error out ("unrecognizable insn").

Signed-off-by: Martin Storsjö <martin@martin.st>
2014-07-22 23:57:23 +03:00
Diego Biurrun
eba2233b58 build: Add define for SIMD extensions requiring 16-byte aligned buffers 2014-07-22 11:46:35 -07:00
Janne Grunau
d45ebd4876 configure: add support for neon intrinsics 2014-07-21 23:18:29 +02:00
Luca Barbato
bb0babd705 build: Support executable only ldflags
The options is useful to build position-independent executables on
hardened systems (e.g. Android L and Gentoo Hardened).
2014-07-21 22:18:35 +02:00
Luca Barbato
b396bbad10 configure: Do not add extralibs to avresample .pc file
The library does not have external dependencies.
2014-07-21 22:18:35 +02:00
Diego Biurrun
bd499d9af6 build: Conditionally build and test iirfilter 2014-07-21 05:32:07 -07:00
Diego Biurrun
2d60444331 dsputil: Split motion estimation compare bits off into their own context 2014-07-17 09:07:10 -07:00
Martin Storsjö
a578b0407d configure: Assume runtime cpu detection on arm on --target-os=android as well
Signed-off-by: Martin Storsjö <martin@martin.st>
2014-07-17 17:47:00 +03:00
Diego Biurrun
f46bb608d9 dsputil: Split off pixel block routines into their own context 2014-07-09 08:05:26 -07:00
Anton Khirnov
f6ee61fb05 lavc: export DV profile API used by muxer/demuxer as public 2014-07-09 13:35:07 +00:00
Diego Biurrun
a9aee08d90 dsputil: Split off FDCT bits into their own context 2014-07-07 12:28:45 -07:00