1
0
mirror of https://github.com/FFmpeg/FFmpeg.git synced 2024-12-12 19:18:44 +02:00
Commit Graph

45039 Commits

Author SHA1 Message Date
Martin Storsjö
3152058bf1 libavcodec: Don't use dllexport, only dllimport when building DLLs
The only purpose of dllexport (which is set while building the library
that exports the symbols) is to have the linker automatically
export such symbols into a DLL without using a def file - it doesn't
affect the generated code.

For both MSVC and mingw builds, this isn't essential since we override
what symbols to export via an autogenerated def file instead.

Update a comment in configure to refer to the right concept.

With lld, this avoids warnings about duplicate export directives,
when some symbols are requested to be exported both via dllexport
attributes and via the autogenerated def file.

This also reduces the number of lines of code marginally.

Signed-off-by: Martin Storsjö <martin@martin.st>
2017-11-19 22:01:38 +02:00
Martin Storsjö
bad7ce1d82 makedef: Pass EXTERN_PREFIX from configure to makedef
This avoids having to use either "dumpbin -headers" to find out
the current architecture, or pass $ARCH from configure to deduce it.

When configuring with --disable-asm, ARCH is equal to "c", which doesn't
give any indication of what symbol prefix is to be used.

Signed-off-by: Martin Storsjö <martin@martin.st>
2017-11-16 16:54:08 +02:00
Diego Biurrun
d070b9b703 configure: Coalesce some arch configuration and PIC handling 2017-11-15 13:29:41 +01:00
Diego Biurrun
9e48de3cc8 configure: Miscellaneous minor changes
- Move a variable closer to where it is used
- Add an explanatory comment
- Simplify a crosscompile check
- Minor SHFLAGS simplification
- Coalesce some threads tests
2017-11-15 13:29:41 +01:00
James Almer
5c2a01f064 Makefile: fix distclean target
It must imply clean. Regression since 7ebe7e8e7a.

Signed-off-by: James Almer <jamrial@gmail.com>
2017-11-14 10:09:40 -03:00
James Almer
b72ac6dbb8 configure: fix writing library dependencies to config.sh
Signed-off-by: James Almer <jamrial@gmail.com>
2017-11-12 23:02:31 -03:00
Mark Thompson
620f88a0b9 vaapi_h264: Add missing return value check 2017-11-12 16:00:52 +00:00
Mark Thompson
d5fcf94261 h264_metadata: Fix clearing SEI payload in error case 2017-11-12 16:00:48 +00:00
Mark Thompson
22aed77687 cbs_h2645: Fix memory leak on when reading SEI fails 2017-11-12 16:00:41 +00:00
Mark Thompson
476d301316 cbs: Add a missing return value check 2017-11-12 16:00:27 +00:00
Mark Thompson
c77da21e5d vaapi_h264: Do not use deprecated header type
SEI headers should be inserted as generic raw data (the old specific
type has been deprecated in libva2).
2017-11-12 15:59:45 +00:00
Mark Thompson
ff007e30d8 vaapi_h264: Add workaround for bad SEI in old Intel drivers
With pre-2.0 Intel drivers in CBR mode, if an explicit SEI message with
the old (now deprecated) type is not included, the driver generates and
inserts some timing SEI which is almost certainly invlaid.  Before
7a4fac5e91 we always inserted our own SEI
so this would not be visible, but since then it has been possible to
disable that.  We would also like to avoid using the deprecated type,
and using the new type, while working in old drivers, does not suppress
the spurious message like the old type does.

Therefore, suppress the bad SEI insertion by providing a zero-length
buffer with the old type, which the driver can insert harmlessly.
2017-11-12 15:59:45 +00:00
James Almer
5c22c90c1d vp9_superframe_bsf: cache packets by creating new references instead of moving pointers
Fixes invalid reads after free.

Signed-off-by: James Almer <jamrial@gmail.com>
2017-11-11 09:47:33 -03:00
Andreas Cadhalpun
0ccddbad20 smacker: limit recursion depth of smacker_decode_bigtree
This fixes segmentation faults due to stack-overflow caused by too deep
recursion.

Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
Signed-off-by: Sean McGovern <gseanmcg@gmail.com>
2017-11-10 20:41:32 -05:00
Michael Niedermayer
cd4663dc80 smacker: add sanity check for length in smacker_decode_tree()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>

Bug-Id: 1098
Cc: libav-stable@libav.org
Signed-off-by: Sean McGovern <gseanmcg@gmail.com>
2017-11-10 20:38:44 -05:00
Diego Biurrun
17b6c7efb4 build: Add missing config.sh dependency for pkg-config files
Also only update config.sh when it changed to avoid spurious rebuilds.
2017-11-09 15:22:03 +01:00
Diego Biurrun
7ebe7e8e7a build: Remove pkg-config files on clean instead of on distclean
The files are no longer generated by configure, so they should not
be removed by the distclean target any longer.
2017-11-09 15:21:33 +01:00
Diego Biurrun
fbf77b5ac3 build: Add uninstall-pkgconfig target to match install-lib*-pkgconfig 2017-11-09 07:06:21 +01:00
Sean McGovern
fbca6e7d16 matroskadec: allow RealAudio/Cook/Sipro streams of flavor 0
Regression since 569d18aa9d.

Bug-Id: 1055
Cc: libav-stable@libav.org
2017-11-06 17:30:05 -05:00
Diego Biurrun
8e0febe28e configure: Use right variable and right value for AIX ar flags 2017-11-04 22:26:23 +01:00
Peter Große
22241208eb avconv.c: fix calculation of input file duration in seek_to_start()
Fixes looping files without audio or when using stream_copy, where
ist->nb_samples is not set since no decoding is done.

Signed-off-by: Diego Biurrun <diego@biurrun.de>
2017-11-04 17:58:47 +01:00
James Almer
55fe72a841 matroskadec: don't warn about unknown spherical medata when none is present
track->video.projection.type is set to 0 (a Matroska specific "No spherical
metadata present" value, with no related AVSphericalMapping) by default on
files without the element.

This removes bogus warnings on every single matroska file without Spherical
metadata.

Signed-off-by: James Almer <jamrial@gmail.com>
2017-11-03 19:41:08 -03:00
Martin Storsjö
1746c7c8f2 libspeexenc: Use speex_lib_get_mode instead of the speex_foo_mode data symbols
This avoids issues linking to a DLL version of libspeex, since the
libspeex headers lack proper dllimport declarations for the data
symbols.

This isn't an issue when building with mingw with GNU binutils, since
GNU ld can fix up that kind of data import automatically.

libspeexdec.c already uses speex_lib_get_mode as well.

Signed-off-by: Martin Storsjö <martin@martin.st>
2017-11-04 00:01:15 +02:00
Diego Biurrun
2cf3c0ab0d Revert "configure: Detect AIX ar command instead of hardcoding it in the OS section"
This reverts commit 4822ee3ca6.
AIX is a fringe oddity. Do not clutter the main codepath with AIX workarounds.
2017-11-03 16:46:27 +01:00
Diego Biurrun
9b0aff51a7 configure: Simplify MIPS instruction set handling 2017-11-02 11:00:25 +01:00
Diego Biurrun
192fe52e42 configure: Miscellaneous minor changes to config file handling
- Move generating config.fate to a more sensible place.
- Move printing warnings to a more appropriate place.
- Improve "generated by" comment in libavutil/avconfig.h.
- Drop pointless informative output about generating config files.
- Write a standard comment header to config.asm as well.
2017-11-02 11:00:24 +01:00
Diego Biurrun
14bba662d4 configure: Remove unused apply() helper function 2017-11-02 10:55:47 +01:00
Diego Biurrun
61a17423d3 configure: Miscellaneous small changes to helper functions
- Reuse sanitize_var_name() where appropriate
- Add some quotes to enabled()/disabled() to ease readability
- Fix logged names of some helper functions
- Filter LDFLAGS also in test_ldflags()
2017-11-02 10:55:47 +01:00
Martin Storsjö
67c72f08a4 configure: Stop using dlltool to create an import library
There shouldn't be any functional difference between the import
library created by dlltool and the one produced by the linker itself.
Keep installing it with both names though, for compatibility with users
that expect both to exist.

The dlltool step was added in ec10a9ab4; prior to that, a MSVC
compatible import library was generated using lib.exe. After that
commit, there was no functional difference between the two import
libraries (and since MSVC 2012, link.exe works just fine with the
GNU binutils generated one).

Signed-off-by: Martin Storsjö <martin@martin.st>
2017-10-30 21:22:24 +02:00
Peter Große
91760a9340 dashenc: copy stream frame rate to output stream
Leads to setting of DefaultDuration in Matroska muxer based on frame rate instead of timebase.
Fixes playback in Chrome.

Signed-off-by: Peter Große <pegro@friiks.de>
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2017-10-27 19:52:48 +02:00
Anton Schubert
4723c6226a dashenc: fix bitrate estimation with correct scaling
Signed-off-by: Anton Schubert <ischluff@mailbox.org>
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2017-10-27 19:52:48 +02:00
Luca Barbato
0e702124ee doc: Provide better examples for hls and segment muxing
Some encoders do not output further IDRs if not requested to.
2017-10-27 19:52:48 +02:00
Diego Biurrun
9dc79b2943 configure: Drop support for legacy PGI compiler 2017-10-25 13:39:58 +02:00
Diego Biurrun
0af8a72174 build: Drop support for legacy TI ARM compiler 2017-10-25 13:39:58 +02:00
Mark Thompson
2708c8e8ef hwcontext_vaapi: Set message callbacks on internally-created devices
The message callbacks are library-safe in libva2, so we can now use
them.
2017-10-25 00:01:41 +01:00
Mark Thompson
bfc83acfd6 vaapi: Always free parameter buffers after vaEndPicture() with libva2
This is an ABI change in libva2: previously the Intel driver had this
behaviour and it was implemented as a driver quirk, but now it is part
of the specification so all drivers must do it.
2017-10-25 00:00:49 +01:00
Mark Thompson
f0a978a519 vaapi: Remove H.264 baseline profile
This has been deprecated in libva2 because hardware does not and will not
support it.  Therefore never consider it for decode, and for encode assume
the user meant constrained baseline profile instead.
2017-10-24 23:55:29 +01:00
Mark Thompson
a126b67e1b configure: Add config option for libva2 (VAAPI 1) 2017-10-24 23:53:44 +01:00
Mark Thompson
94ab0bef40 vaapi: Disable deprecation warnings around use of struct vaapi_context 2017-10-24 23:30:55 +01:00
Martin Storsjö
b487add7ec arm: Remove a redundant check in fmtconvert_init_arm.c
This was missed in e2710e790c, where have_vfp && !have_vfpv3 were
converted into have_vfp_vm.

Signed-off-by: Martin Storsjö <martin@martin.st>
2017-10-24 09:07:01 +03:00
Martin Storsjö
17f5171cd4 arm: Check for have_vfp_vm instead of !have_vfpv3 for float_dsp_vfp
This was missed in e2710e790c since those functions weren't exercised
by checkasm.

Signed-off-by: Martin Storsjö <martin@martin.st>
2017-10-24 09:06:56 +03:00
wm4
e724bdfffb lavc: fix hw_device_ctx operation
Commit b46a77f19d accidentally broke this (requested change that was
added to the patch later and which was not fully tested).

Signed-off-by: Mark Thompson <sw@jkqxz.net>
2017-10-23 23:35:31 +01:00
Diego Biurrun
68649bfed3 configure: Group system feature variables and system libraries together 2017-10-22 05:53:03 +02:00
Diego Biurrun
cbcdb2d8e4 build: Delete compiler-generated compat files on 'make clean' 2017-10-19 19:44:06 +02:00
Diego Biurrun
62be1caf16 configure: Bail out early if neither static nor shared libs are built 2017-10-19 18:09:39 +02:00
Diego Biurrun
c6496de334 configure: Move enabling libc_type into probe_libc() function 2017-10-19 18:09:39 +02:00
wm4
b46a77f19d lavc: external hardware frame pool initialization
This adds a new API, which allows the API user to query the required
AVHWFramesContext parameters. This also reduces code duplication across
the hwaccels by introducing ff_decode_get_hw_frames_ctx(), which uses
the new API function. It takes care of initializing the hw_frames_ctx
if needed, and does additional error handling and API usage checking.

Support for VDA and Cuvid missing.

Signed-off-by: Anton Khirnov <anton@khirnov.net>
2017-10-19 17:10:59 +02:00
Anton Khirnov
ec0f4fa17c FATE: add a test for the H.264 sample fixed by 7c4f6f6 2017-10-19 16:38:51 +02:00
Luca Barbato
98afe3fb71 qsv: Make the hevc idr_interval consistent with the h264 one
According to the MediaSDK documentation the idr_interval value has
a different meaning depending on the codec:

    0 in H264 means make every I-frame IDR, in HEVC it means to have
    it only at the beginning.

    1 in H264 means every other I-frame is not-IDR, in HEVC it means
    that every I-frame is IDR.

Keep the behaviour consistent between the two encoders by increasing
by 1 internally the idr_interval value for HEVC.
2017-10-18 11:55:44 +00:00
Martin Storsjö
41df62fd67 configure: Set the default assembler to armasm64 for MSVC for arm64
Signed-off-by: Martin Storsjö <martin@martin.st>
2017-10-18 10:49:48 +03:00