Commit Graph

43601 Commits

Author SHA1 Message Date
Janne Grunau
5f74bd31a9 vp8/armv6: mc: avoid boolean expression in calculation
GNU as evaluates true as '-1' while Apple's variant and llvm's internal
assembler evaluate it as '1'. The best way to avoid this madness is to
eliminate boolean expressions instead of trying to fix it with
preprocessor directives. Use a direct formula to calculate the
required temporary space on the stack in
ff_put_vp8_{epel,bilin}{4,8,16}_h[246]v[246]_armv6().

Fixes a checkasm segfault in vp8dsp.mc when using llvm's internal
assembler for a non-Apple target.
2016-07-10 13:35:41 +02:00
Janne Grunau
fc5cdc0d53 doc: escape left brace in texi2pod.pl regex
Unescaped literal left braces are deprecated and a warning was added in
Perl 5.22.
2016-07-10 13:34:57 +02:00
Martin Storsjö
d825b1a530 libopenh264: Support building with the 1.6 release
Signed-off-by: Martin Storsjö <martin@martin.st>
2016-07-09 22:33:58 +03:00
Martin Storsjö
4f7723cb3b movenc: Add an option for skipping writing the mfra/tfra/mfro trailer
When writing a fragmented file, we by default write an index pointing
to all the fragments at the end of the file. This causes constantly
increasing memory usage during the muxing. For live streams, the
index might not be useful at all.

A similar fragment index is written (but at the start of the file) if
the global_sidx flag is set. If ism_lookahead is set, we need to keep
data about the last ism_lookahead+1 fragments.

If no fragment index is to be written, we don't need to store information
about all fragments, avoiding increasing the memory consumption
linearly with the muxing runtime.

This fixes out of memory situations with long live mp4 streams.

Signed-off-by: Martin Storsjö <martin@martin.st>
2016-07-08 14:11:15 +03:00
Martin Storsjö
f8d17d5395 checkasm: Add tests for vp8dsp
The tests are inspired by similar tests for vp9 by
Ronald Bultje.

Signed-off-by: Martin Storsjö <martin@martin.st>
2016-07-08 14:10:46 +03:00
Martin Storsjö
e8b96a7701 arm: Fix a typo in a comment
Signed-off-by: Martin Storsjö <martin@martin.st>
2016-07-06 22:58:51 +03:00
Martin Storsjö
dc08bbf63a vp8dsp: Clarify the first dimension of the mc function tables
Index 0 is w=16, 1 is wd=8, 2 is wd=4.

Signed-off-by: Martin Storsjö <martin@martin.st>
2016-07-06 22:45:29 +03:00
Anton Khirnov
924e2ecd2b qsvdec: when a frames ctx is supplied, use its frame dimensions
The allocated frame size may be larger than the coded dimensions.
2016-07-03 09:13:29 +02:00
Anton Khirnov
92736c74fb qsvdec: add support for P010 (10-bit 420) decoding 2016-07-03 09:13:29 +02:00
Anton Khirnov
ce320cf1c4 qsvdec: use the same mfxFrameInfo for allocating frames that was passed to DECODE_Init
Stop duplicating this information.
2016-07-03 09:13:29 +02:00
Anton Khirnov
536bb17e96 qsvdec: make ff_qsv_map_pixfmt() return a MFX fourcc as well
Stop hardcoding NV12.

Also, move this function to the shared code, it will be used by the
encoder as well.
2016-07-03 09:13:29 +02:00
Anton Khirnov
d20c118975 hwcontext_qsv: add support for p010 2016-07-03 09:13:29 +02:00
Anton Khirnov
40f74dc87a matroskadec: export CodecDelay 2016-07-03 09:13:29 +02:00
Mark Thompson
582d4211e0 vf_scale_vaapi: Respect driver quirks around buffer destruction 2016-07-02 14:09:58 +01:00
Mark Thompson
221ffca631 vaapi_encode: Respect driver quirks around buffer destruction
No longer leaks memory when used with a driver with the "render does
not destroy param buffers" quirk (i.e. Intel i965).
2016-07-02 14:09:58 +01:00
Mark Thompson
4926fa9a4a hwcontext_vaapi: Add driver quirks to the hwdevice
The driver being used is detected inside av_hwdevice_ctx_init() and
the quirks field then set from a table of known device.  If this
behaviour is unwanted, the user can also set the quirks field
manually.

Also adds the Intel i965 driver quirk (it does not destroy parameter
buffers used in a call to vaRenderPicture()) and detects that driver
to set it.
2016-07-02 14:09:54 +01:00
Anton Khirnov
2ef87815fe hwcontext_dxva2: add support for p010 2016-07-02 09:39:24 +02:00
Hendrik Leppkes
e78e5b735f swscale: add P010 input support
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2016-07-02 09:35:41 +02:00
Hendrik Leppkes
b7c5f88523 pixfmt: add P010 pixel format
P010 is the 10-bit variant of NV12 (planar luma, packed chroma), using two
bytes per component to store 10-bit data plus 6-bit zeroes in the LSBs.

Signed-off-by: Anton Khirnov <anton@khirnov.net>
2016-07-02 09:35:23 +02:00
Anton Khirnov
b55566db4c avconv: use avcodec_parameters_copy() with streamcopy
This preserves all the information in the codec parameters.

The wavpack ref changes are caused by the fact that now the sample
format is set, so matroskaenc can use it to set the bit depth.

Bug-Id: 945, along with the previous commit
2016-07-02 09:30:40 +02:00
Anton Khirnov
be3e807c8f oggparseopus: export pre-skip
Bug-Id: 945, along with the following commit
2016-07-02 09:30:40 +02:00
Vittorio Giovara
029cf99c51 mov: Save number of stsd elements after stream extradata allocation
Avoid freeing an unallocated array in mov_read_close() in case
of a malloc failure.

Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2016-06-29 15:25:42 -04:00
Vittorio Giovara
6c445990e6 tiffenc: Check zlib support for deflate option during initialization
This converts a misleading error about an option not found to a more
meaningful one.
2016-06-29 15:25:42 -04:00
Vittorio Giovara
9f732e4c99 tiffenc: Check av_pix_fmt_desc_get() return value 2016-06-29 15:25:42 -04:00
Vittorio Giovara
d8f3b0fb58 targaenc: Move size check to initialization function
In case of bogus input, fail early at codec initialization, rather than
at the encode function.
2016-06-29 15:25:42 -04:00
Vittorio Giovara
eeb6849ced rle: K&R formatting cosmetics 2016-06-29 15:25:42 -04:00
Diego Biurrun
326d911693 build: Drop unnecessary libavcodec <-> libavformat object dependencies 2016-06-29 20:24:10 +02:00
Diego Biurrun
e72d6fa08a build: Move MP2 muxer declaration away from MP3 muxer code
The MP2 muxer uses none of the code of the MP3 muxer.
2016-06-29 20:24:10 +02:00
Martin Storsjö
67cb2c0f73 checkasm: hevc: Iterate over features first, then over bitdepths
This avoids listing the same feature multiple times in the
test output. Previously the output contained something like this:

SSE2:
 - hevc_mc.qpel              [OK]
 - hevc_mc.epel              [OK]
 - hevc_mc.unweighted_pred   [OK]
 - hevc_mc.qpel              [OK]
 - hevc_mc.epel              [OK]
 - hevc_mc.unweighted_pred   [OK]

Signed-off-by: Martin Storsjö <martin@martin.st>
2016-06-29 21:12:05 +03:00
Diego Biurrun
fe27792fd7 build: Move ff_mpeg12_frame_rate_tab to a separate file
It is also used by the Dirac parsing code.
2016-06-29 12:31:03 +02:00
Diego Biurrun
8c929037ec build: Add a new component for H.264 parsing code
This fixes standalone compilation of the SVQ3 decoder, which had
incomplete dependencies related to H.264 parsing.
2016-06-29 12:31:03 +02:00
Luca Barbato
3c08b7bc76 ffv1: Report additional bitstream information in verbose mode
Useful to inspect samples.
2016-06-29 07:21:07 +02:00
Luca Barbato
fe6e5cbea7 ffv1: Remove version 2 and mark version 3 as non-experimental
The encoder produces bitstream compatible with the current specification
and version 2 is set as reserved (non-standardizable).
2016-06-29 07:21:07 +02:00
Diego Biurrun
7c55fac7df fate: Add test for webp 2016-06-28 17:42:53 +02:00
Martin Storsjö
e48746deec checkasm: h264dsp: Move the x and y variables into the randomize_buffer macro
This avoids the risk of accidentally clobbering such variables outside
of the macro if the same variables are used there.

Signed-off-by: Martin Storsjö <martin@martin.st>
2016-06-28 14:24:04 +03:00
Martin Storsjö
e57de6faa1 checkasm: h264dsp: Initialize the padding area
This fixes valgrind warnings about conditional jumps based on
uninitialized data (even though the uninitialized data only ever
was compared with a direct copy of the same uninitialized data).

Signed-off-by: Martin Storsjö <martin@martin.st>
2016-06-28 14:24:01 +03:00
Martin Storsjö
82b7525173 Add an OpenH264 decoder wrapper
While it is less featureful (and slower) than the built-in H264
decoder, one could potentially want to use it to take advantage
of the cisco patent license offer.

Signed-off-by: Martin Storsjö <martin@martin.st>
2016-06-28 14:17:43 +03:00
Martin Storsjö
785c25443b movenc: Apply offsets on timestamps when peeking into interleaving queues
Signed-off-by: Martin Storsjö <martin@martin.st>
2016-06-28 14:16:06 +03:00
Anton Khirnov
eccfb9778a qsvdec_hevc: add the UID of the HEVC HW decoder plugin 2016-06-28 08:33:27 +02:00
Anton Khirnov
c67594a2c7 qsvdec_hevc: fix a variable name
hevcenc -> hevcdec, this is a _decoder_ plugin.
2016-06-28 08:33:13 +02:00
Mark Thompson
f62bb216ac hwcontext_vaapi: allow transfers to/from any size of sw frame
The hw frame used as reference has an attached size but it need not
match the actual size of the surface, so enforcing that the sw frame
used in copying matches its size exactly is not useful.

Signed-off-by: Anton Khirnov <anton@khirnov.net>
2016-06-28 08:32:11 +02:00
Anton Khirnov
c3f113d584 vf_hwdownload: allocate the destination frame for the pool size
The reasoning is the same as for the previous commit.
2016-06-28 08:32:00 +02:00
Anton Khirnov
fdfe01365d hwcontext: allocate the destination frame for the pool size
The source frame may be cropped, so that its dimensions are smaller than
the pool dimensions. The transfer_data API requires the allocated size
of the destination frame to be the same as the pool size.
2016-06-28 08:31:28 +02:00
Anton Khirnov
5fcae3b3f9 hwcontext: clarify the behaviour of transfer_data() for cropped frames 2016-06-28 08:30:59 +02:00
Anton Khirnov
94ebf55658 avconv: restructure sending EOF to filters
Be more careful when an input stream encounters EOF when its filtergraph
has not been configured yet. The current code would immediately mark the
corresponding output streams as finished, while there may still be
buffered frames waiting for frames to appear on other filtergraph
inputs.

This should fix the random FATE failures for complex filtergraph tests
after a3a0230a98
2016-06-28 08:30:20 +02:00
Anton Khirnov
d2e56cf753 avconv: move flushing the queued frames to configure_filtergraph()
This is a more appropriate place for it, and will also be useful in the
following commit.
2016-06-28 08:30:20 +02:00
Vittorio Giovara
7a745f014f options_table: Add aliases for color properties
All option names now match the ones provided by the av_color_*_name().
2016-06-27 12:29:04 -04:00
Vittorio Giovara
444a36269f pixdesc: Fix AVCOL_TRC_BT2020_12 name 2016-06-27 12:27:53 -04:00
Vittorio Giovara
f172e22d6a pixdesc: Add aliases to SMPTE color properties
Drop ST from names and symbols, it does not add anything distinctive or
descriptive.
2016-06-27 12:27:13 -04:00
Mark Thompson
8a62d2c28f vaapi_encode: Maintain a pool of bitstream output buffers
Previously we would allocate a new one for every frame.  This instead
maintains an AVBufferPool of them to use as-needed.

Also makes the maximum size of an output buffer adapt to the frame
size - the fixed upper bound was a bit too easy to hit when encoding
large pictures at high quality.
2016-06-26 19:40:56 +01:00