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

45084 Commits

Author SHA1 Message Date
Luca Barbato
44a1731011 ivf: Support VP9 and AV1 as well 2018-03-12 08:12:43 +01:00
Diego Biurrun
dd7e63af93 configure: Restore original endianness test
Previously the bit pattern for the endianness test was declared as a
global, instead of a local, variable. This ensures that the pattern
appears unchanged in the object file and is not optimized out.
2018-03-08 14:02:30 +01:00
Alexander Kravchenko
80a4e6a46f amf: Replace writer_id option with LIBAV_AMF_WRITER_ID constant
AMFTraceWriter is an abstraction to configure how AMF outputs its logs
for the current process and can be configured to output different levels
of trace output. If multiple LibavWriter objects are used in one process,
there will be duplication of output in av_log. Use a constant writer_id
to prevent this scenario.

Signed-off-by: Diego Biurrun <diego@biurrun.de>
2018-03-07 14:23:28 +01:00
Diego Biurrun
31a53ab34e configure: Add check_as() helper function to simplify some expressions 2018-03-07 13:55:07 +01:00
Diego Biurrun
18dc1ff0fb configure: Add check_ld() helper function to simplify some expressions 2018-03-07 13:55:07 +01:00
Diego Biurrun
9c37d765ef configure: Add check_cc/require_cc helper functions to simplify some expressions 2018-03-07 13:55:07 +01:00
Diego Biurrun
83fef16b6a configure: Add check_cpp_condition() helper function to simplify some expressions 2018-03-07 13:55:07 +01:00
Diego Biurrun
a5e011c8dc configure: Add check_cmd() helper function to simplify some expressions 2018-03-07 13:55:07 +01:00
Diego Biurrun
49804dc2ba configure: Use test_ prefix for helper functions that do not set variables 2018-03-07 13:55:06 +01:00
Diego Biurrun
8c893aa3cd configure: Drop unnecessary variables, shifts, and quotes in helper functions 2018-03-07 13:55:06 +01:00
Diego Biurrun
121314895f configure: Fix logic of AMF external library check
Fail if AMF is requested but unavailable, as we do for all
other external libraries that need to be explicitly enabled.
2018-03-07 13:53:27 +01:00
Andreas Unterweger
0711d14299 examples: Use new API for transcoding example
Signed-off-by: Diego Biurrun <diego@biurrun.de>
2018-03-07 12:36:13 +01:00
Luca Barbato
aeaa108baf hls: Add a discontinuity marker on recover
It seems to improve the compatibility with the js demuxers.

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2018-03-06 20:59:40 +01:00
Zhong Li
2d6b3f3a9d qsvenc: Provide a detailed error message if the parameters are invalid
Currently it always shows "Selected ratecontrol mode is not supported
by the QSV runtime. Choose a different mode", but sometimes it is not
accurate.

Signed-off-by: Zhong Li <zhong.li@intel.com>
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2018-03-05 10:39:17 +01:00
Diego Biurrun
e2399e0c1a fate: Error out more gracefully on configure failure
If configure fails before config.fate is generated, the report file misses
some values and gets discarded by the FATE server. In these cases, print
those values as "failed" along with the failing configure command line.
2018-02-26 13:30:05 +01:00
James Almer
dc40e64adb hvcc: zero initialize the nal buffers past the last written byte
Bug-Id: 1116
Cc: libav-stable@libav.org

Signed-off-by: James Almer <jamrial@gmail.com>
2018-02-23 00:17:17 -03:00
Ruiling Song
8ca39b855a qsv: Default PicStruct to progressive
The PicStruct is required by MediaSDK, so give a default value.
hwupload does not work without this.

Signed-off-by: Ruiling Song <ruiling.song@intel.com>
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2018-02-22 11:24:12 +01:00
Mark Thompson
6d5a6dde53 h264_metadata: Add option to delete filler data
Deletes both filler NAL units and filler SEI messages.  (Annex B zero_bytes
between NAL units are already discarded by the read/write process.)
2018-02-20 22:04:12 +00:00
Mark Thompson
eccc03c8fb cbs_h264: Add support for filler NAL units 2018-02-20 22:04:12 +00:00
Mark Thompson
7157d95926 cbs_h264: Move slice_group_id array out of PPS structure
It's very large, and is only used in some FMO streams.
2018-02-20 22:04:12 +00:00
Mark Thompson
78fa0b9033 h264_metadata: Always add the SEI user data to the first access unit
This should be added even if the first access unit does not contain
parameter sets.
2018-02-20 22:04:12 +00:00
Mark Thompson
69062d0f9b h264_metadata: Use common SEI addition function 2018-02-20 22:04:12 +00:00
Mark Thompson
a2ca8ed903 cbs_h264: Add utility functions to insert/delete SEI messages 2018-02-20 22:04:12 +00:00
Mark Thompson
ce5870a3a8 cbs: Refcount all the things!
This makes it easier for users of the CBS API to get alloc/free right -
all subelements use the buffer API so that it's clear how to free them.
It also allows eliding some redundant copies: the packet -> fragment copy
disappears after this change if the input packet is refcounted, and more
codec-specific cases are now possible (but not included in this patch).
2018-02-20 22:04:12 +00:00
Mark Thompson
13ca5d34ba cbs_h264: Add hack for pic_timing with no active SPS
If there is exactly one possible SPS but it is not yet active then just
assume that it should be the active one.
2018-02-20 22:04:12 +00:00
Mark Thompson
0e4c166cdd cbs_h2645: Remove active ps references when it is replaced 2018-02-20 22:04:12 +00:00
Mark Thompson
a3daecd637 cbs: Demote the "decomposition unimplemented" warning
This is harmless and should not be a warning - unknown units are passed
through to the write functions unchanged, and no other code will interact
with them.
2018-02-20 22:04:12 +00:00
Mark Thompson
67eb2b16da vaapi_h265: Mark unused entries in RefPicList[01] as explicitly invalid
The iHD driver looks at entries beyond num_ref_idx_l[01]_active_minus1
for unknown reasons.
2018-02-20 22:04:12 +00:00
Mark Thompson
216c44dfc1 vaapi_encode: Destroy output buffer pool before VA context
The buffers are created associated with the context, so they should be
destroyed before the context is.  This is enforced by the iHD driver.
2018-02-20 22:04:12 +00:00
Jun Zhao
c8e135ea92 vaapi_encode: Allocate slice structures and parameter buffers dynamically
This removes the arbitrary limit on the allowed number of slices and
parameter buffers.

From ffmpeg commit e4a6eb70f4.

Signed-off-by: Mark Thompson <sw@jkqxz.net>
2018-02-20 22:04:12 +00:00
Mark Thompson
254e728d20 cbs: Minor comment fixes / cosmetics 2018-02-20 22:04:12 +00:00
Mark Thompson
1d12a545ce cbs: Add an explicit type for coded bitstream unit types
Also fix conversion specifiers used for the unit type.
2018-02-20 22:04:12 +00:00
Mark Thompson
2651352988 cbs: Allocate the context inside the init function
... instead of making callers allocate it themselves.  This is more
consistent with other APIs in libav.
2018-02-20 22:04:12 +00:00
Martin Storsjö
cc1c94dacd configure: Pass the right machine types to dlltool for arm and arm64 mingw
These are supported by llvm-dlltool.

Signed-off-by: Martin Storsjö <martin@martin.st>
2018-02-19 12:36:41 +02:00
Martin Storsjö
97eee953e6 Revert "configure: Stop using dlltool to create an import library"
This reverts commit 67c72f08a4.

While the linker produced import libraries might work with MSVC in
simple test cases, they don't if e.g. linking to multiple GNU ld
produced import libraries at the same time. (They end up importing
functions from the wrong libraries.) The ones produced by dlltool
work fine though.

This issue was pointed out by Hendrik Leppkes.

Signed-off-by: Martin Storsjö <martin@martin.st>
2018-02-19 12:36:09 +02:00
Diego Biurrun
a674b31240 build: Ignore generated mpeg12framerate test binary 2018-02-12 10:04:08 +01:00
Michael Niedermayer
5b6213ef6b avcodec/vc1dec: fix mby_start for interlaced content
Bug-Id: 1100
Bug-Id: ffmpeg/Ticket2531
Cc: libav-stable@libav.org
2018-02-11 23:48:54 -05:00
Ruiling Song
9b09792c90 lavc/qsv: default la_ds to MFX_LOOKAHEAD_DS_UNKNOWN
MFX_LOOKAHEAD_DS_UNKNOWN means auto.
-1 is not a valid value.

Signed-off-by: Ruiling Song <ruiling.song@intel.com>
Signed-off-by: Maxym Dmytrychenko <maxim.d33@gmail.com>
2018-02-12 00:34:45 +01:00
Zhong Li
8bb9824fcb qsvenc: AVBR is not supported on non-windows OS
AVBR is supported from API 1.3 but only available for Windows

Signed-off-by: Zhong Li <zhong.li@intel.com>
Signed-off-by: Maxym Dmytrychenko <maxim.d33@gmail.com>
2018-02-12 00:34:34 +01:00
Mark Thompson
e412d683fe hwcontext: Perform usual uninitialisation on derived frames contexts 2018-02-11 22:11:10 +00:00
Mark Thompson
caecb85014 hwcontext: Perform usual initialisation on derived device contexts
The initialisation should be common.  For libmfx, it was previously
happening in the derivation function and this moves it out.
2018-02-11 22:11:10 +00:00
Mark Thompson
c6bc18bc12 vf_hwupload/hwmap: Support setting a fixed pool size
These filters do not directly know whether the API they are using will
support dynamic frame pools, so this is somewhat tricky.  If the user
sets extra_hw_frames, we assume that they are aware of the problem and
set a fixed size based on that.  If not, most cases use dynamic sizing
just like they did previously.  The hardware-reverse-mapping case for
hwmap previously had a large fixed size (64) here, primarily as a hack
for QSV use - this is removed and extra_hw_frames will need to be set
for QSV to work since it requires fixed-size pools (as the other cases
do, and which didn't work before).
2018-02-11 22:11:10 +00:00
Mark Thompson
e4cdef0026 vf_scale_qsv: Support increasing hardware frame pool size
The deinterlacer does not change, because it does not allocate any new
frames (for output it uses the same pool as the input).
2018-02-11 22:11:10 +00:00
Mark Thompson
b128be1748 vf_*_vaapi: Support increasing hardware frame pool size
Defaults to 10 frames to preserve compatibility, but can allocate
fewer if extra_hw_frames is set explicitly.
2018-02-11 22:11:10 +00:00
Mark Thompson
6d86cef06b lavfi: Add support for increasing hardware frame pool sizes
AVFilterContext.extra_hw_frames functions identically to the field of
the same name in AVCodecContext.
2018-02-11 22:11:06 +00:00
Mark Thompson
cad739dace lavc: Add per-thread surfaces in get_hw_frame_parameters()
This number is definitely required when frame threading is enabled, so
add it here rather than forcing all users to handle it themselves.

DXVA2 contained this addition in specific code as well (therefore being
added twice in the internal case) - just remove it from there.
2018-02-11 22:00:48 +00:00
Mark Thompson
5b145290df lavc: Add support for increasing hardware frame pool sizes
AVCodecContext.extra_hw_frames is added to the size of hardware frame
pools created by libavcodec for APIs which require fixed-size pools.
This allows the user to keep references to a greater number of frames
after decode, which may be necessary for some use-cases.

It is also added to the initial_pool_size value returned by
avcodec_get_hw_frames_parameters() if a fixed-size pool is required.
2018-02-11 22:00:33 +00:00
Diego Biurrun
fd36cf6bf6 configure: Factorize check_64_bit() 2018-02-06 11:13:19 +01:00
Diego Biurrun
38434a9ff5 configure: Simplify restrict keyword handling
Skip a variable indirection and only redefine restrict if necessary.
2018-02-06 11:13:10 +01:00
Diego Biurrun
4cf84e254a Drop some unnecessary config.h #includes 2018-02-06 10:03:15 +01:00