Commit Graph
100 Commits
Author SHA1 Message Date
Mark Thompson 3cbf717425 Changelog: fix position of VAAPI MPEG-2/VP8 encode entry
This was merged in the wrong place.
2017-04-02 23:18:42 +01:00
Mark Thompson 75afad774b vf_deinterlace_vaapi: Mark as hwframe-aware
Commits ade370a4 and e3fb74f7 were reordered while merging, so this
change got lost.
2017-04-01 15:32:17 +01:00
Mark Thompson ebce133228 pthread_frame: Propagate sw_pix_fmt across threads
This is required by the VP9 hwaccels (both DXVA2 and VAAPI) when
threads are enabled.

Tested-by: Hendrik Leppkes <h.leppkes@gmail.com>
2017-03-31 00:23:02 +01:00
Mark Thompson ff821fdfce Merge commit '4ab61cd983b539749bd621ea271624ddb5196a8e'
* commit '4ab61cd983b539749bd621ea271624ddb5196a8e':
  qsv{enc,dec}: extend the internal frame allocator

Merged-by: Mark Thompson <sw@jkqxz.net>
2017-03-30 22:07:57 +01:00
Mark Thompson c0f2a8eac1 Merge commit '00aeedd84105a17f414185bd33ecadebeddb3a27'
* commit '00aeedd84105a17f414185bd33ecadebeddb3a27':
  qsv{dec,enc}: use a struct as a memory id with internal memory allocator

Merged-by: Mark Thompson <sw@jkqxz.net>
2017-03-30 22:06:03 +01:00
Mark Thompson 2f18e452f8 Merge commit '404e51478ecad060249d5b9bee6ab39a8a9d8c1c'
* commit '404e51478ecad060249d5b9bee6ab39a8a9d8c1c':
  qsv{dec,enc}: always use an internal mfxFrameSurface1

Minor fixups for differences in the QSV encoder because of a53cc.

Merged-by: Mark Thompson <sw@jkqxz.net>
2017-03-30 22:00:03 +01:00
Mark Thompson e3f9c5826a Merge commit 'e8bbacbf529049c401bfeea70d5e0b5d2c8b6de6'
* commit 'e8bbacbf529049c401bfeea70d5e0b5d2c8b6de6':
  hwcontext_qsv: support frame mapping

Merged-by: Mark Thompson <sw@jkqxz.net>
2017-03-30 21:54:46 +01:00
Mark Thompson 546524056d Merge commit '8ea15afbf2c1ec89b5d4bac1f0b8345e4b906a5d'
* commit '8ea15afbf2c1ec89b5d4bac1f0b8345e4b906a5d':
  hwcontext_qsv: transfer data through the child context when VPP fails

Merged-by: Mark Thompson <sw@jkqxz.net>
2017-03-30 21:18:23 +01:00
Mark Thompson 7cb082ac2f Merge commit 'b91ce4860054430d3712deb0d9487cac2fcb7d68'
* commit 'b91ce4860054430d3712deb0d9487cac2fcb7d68':
  hwcontext_qsv: do not fail when download/upload VPP session creation fails

Merged-by: Mark Thompson <sw@jkqxz.net>
2017-03-30 21:16:58 +01:00
Mark Thompson 59b1942aae Merge commit 'b115a35ea62b8f479b48d99a601f0e157517301e'
* commit 'b115a35ea62b8f479b48d99a601f0e157517301e':
  hwcontext_qsv: add support for the P8 format

Merged-by: Mark Thompson <sw@jkqxz.net>
2017-03-30 21:16:09 +01:00
Mark Thompson a94972b2b2 ffmpeg: Remove hw_device_ctx output filter reinit hack
This was skipped in c17563c5d3 because
it depended on the filter setup merge, but was forgotten after that
actually happened.

Fixes hwaccel fate for stream size change tests.
2017-03-26 20:38:44 +01:00
Mark Thompson 9560766a61 vaapi_vp9: Mark as async-safe 2017-03-22 19:07:32 +00:00
Mark Thompson 14c1101518 vaapi_hevc: Mark as async-safe 2017-03-22 19:07:32 +00:00
Mark Thompson 81b7deab82 vaapi: Implement device-only setup
In this case, the user only supplies a device and the frame context
is allocated internally by lavc.

(cherry picked from commit 5dd9a4b88b)
2017-03-22 19:07:32 +00:00
Mark Thompsonandwm4 fb69a8e1f1 pthread_frame: Unreference hw_frames_ctx on per-thread codec contexts
When decoding with threads enabled, the get_format callback will be
called with one of the per-thread codec contexts rather than with the
outer context.  If a hwaccel is in use too, this will add a reference
to the hardware frames context on that codec context, which will then
propagate to all of the other per-thread contexts for decoding.  Once
the decoder finishes, however, the per-thread contexts are not freed
normally, so these references leak.

Merges Libav commit fd0fae60.

Signed-off-by: wm4 <nfxjfg@googlemail.com>
2017-03-21 06:16:49 +01:00
Mark Thompson b9acc7fbd9 Merge commit 'ad71d3276fef0ee7e791e62bbfe9c4e540047417'
* commit 'ad71d3276fef0ee7e791e62bbfe9c4e540047417':
  lavfi: add a QSV deinterlacing filter

Minor fixup for lavfi differences.

Merged-by: Mark Thompson <sw@jkqxz.net>
2017-03-12 17:00:42 +00:00
Mark Thompson a7434ef195 Merge commit '8e07c22e508b349d145b9f142aa3ee8b3ce1d3a4'
* commit '8e07c22e508b349d145b9f142aa3ee8b3ce1d3a4':
  qsvenc: print warnings from encode/init

Merged-by: Mark Thompson <sw@jkqxz.net>
2017-03-12 15:21:41 +00:00
Mark Thompson 80fa5a0bcc Merge commit '0956fd460681e8ccbdae19f135f0d3970bf95c2f'
* commit '0956fd460681e8ccbdae19f135f0d3970bf95c2f':
  qsvenc: do not re-execute encoding on all positive status codes

Noop, see fb240a6276.

Merged-by: Mark Thompson <sw@jkqxz.net>
2017-03-12 15:19:52 +00:00
Mark Thompson 15887a410c Merge commit '95414eb2dc63a6f934275b4ed33dedd4369f2c49'
* commit '95414eb2dc63a6f934275b4ed33dedd4369f2c49':
  qsv: print more complete error messages

Merged-by: Mark Thompson <sw@jkqxz.net>
2017-03-12 15:19:05 +00:00
Mark Thompson 723a542d6c Merge commit 'd9ec3c60143babe1bb77c268e1d5547d15acd69b'
* commit 'd9ec3c60143babe1bb77c268e1d5547d15acd69b':
  qsvenc: take only the allocated dimensions from the frames context

Merged-by: Mark Thompson <sw@jkqxz.net>
2017-03-12 15:06:07 +00:00
Mark Thompson 562f386c77 Merge commit '37a9015ee84c15fec5247ba8f6577351a25fa8d2'
* commit '37a9015ee84c15fec5247ba8f6577351a25fa8d2':
  qsvenc: add support for p010

Merged-by: Mark Thompson <sw@jkqxz.net>
2017-03-12 15:04:45 +00:00
Mark Thompson 210dd7bbb2 Merge commit '21962261c74aed4df00ae8348a5e2d1ecb67c52d'
* commit '21962261c74aed4df00ae8348a5e2d1ecb67c52d':
  qsv: handle the semi-packed formats in map_fourcc as well

Merged-by: Mark Thompson <sw@jkqxz.net>
2017-03-12 14:21:37 +00:00
Mark Thompsonandwm4 2b8151c806 hwcontext_vaapi: Don't abort on failing to allocate from a fixed-size pool
Cherry-picked from Libav d30719e62d.

Signed-off-by: wm4 <nfxjfg@googlemail.com>
2017-03-02 11:20:47 +01:00
Mark Thompson 359586f14f lavfi: Add VAAPI deinterlacer
(cherry picked from commit ade370a4d7)
(cherry picked from commit 2d518aec4c)
2017-02-23 22:08:26 +00:00
Mark Thompson a1e83a2f90 vaapi_vp8: Use VP8_MAX_QUANT instead of magic number 2017-02-17 00:12:40 +00:00
Mark Thompson c1a5fca06f lavc: Add device context field to AVCodecContext
For use by codec implementations which can allocate frames internally.
2017-02-13 22:06:43 +00:00
Mark Thompson d1acab8293 vaapi_encode: Add VP8 support
Fixes ticket #6116.

(cherry picked from commit ca62236a89)
2017-02-08 19:14:05 +00:00
Mark Thompson be6546a4ff vaapi_encode: Pass framerate parameters to driver
Only do this when building for a recent VAAPI version - initial
driver implementations were confused about the interpretation of the
framerate field, but hopefully this will be consistent everywhere
once 0.40.0 is released.

(cherry picked from commit ff35aa8ca4)
2017-02-08 19:14:05 +00:00
Mark Thompson 2201c02e6d vaapi_h264: Enable VBR mode
Default to using VBR when a target bitrate is set, unless the max rate
is also set and matches the target.  Changes to the Intel driver mean
that min_qp is also respected in this case, so set a codec default to
unset the value rather than using the current default inherited from
the MPEG-4 part 2 encoder.

(cherry picked from commit eddfb57210)
2017-02-08 19:14:05 +00:00
Mark Thompson ceb28c3cc4 vaapi_encode: Support VBR mode
This includes a backward-compatibility hack to choose CBR anyway on
old drivers which have no CBR support, so that existing programs will
continue to work their options now map to VBR.

(cherry picked from commit f033ba470f)
2017-02-08 19:14:05 +00:00
Mark ThompsonandMark Thompson 3b95c7c17d vaapi_encode: Add MPEG-2 support
(cherry picked from commit ca6ae3b77a)
2017-02-08 19:14:05 +00:00
Mark Thompson eefa4b76ee vaapi_h264: Scale log2_max_pic_order_cnt_lsb with max_b_frames
Before this change, it was possible to overflow pic_order_cnt_lsb and
generate a stream with invalid POC numbering.  This makes sure that
the field is large enough that a single IDR B* P sequence uses fewer
than half the available POC lsb values.

(cherry picked from commit 89725a8512)
2017-02-08 19:14:05 +00:00
Mark Thompson c667c0979c vaapi_encode: Support forcing IDR frames via AVFrame.pict_type
(cherry picked from commit a3c3a5eac2)
2017-02-08 19:14:04 +00:00
Mark Thompson 760f1a7727 vaapi_encode: Fix GOP sizing
This change makes the configured GOP size be respected exactly -
previously the value could be exceeded slightly due to flaws in the
frame type selection logic.

(cherry picked from commit 37fab0661a)
2017-02-08 19:14:04 +00:00
Mark Thompson 37de9ce713 vaapi_h265: Fix CFR mode with framerate set in AVCodecContext
Same issue as 17a0f9481c.

(cherry picked from commit 7d81698b89)
2017-02-08 19:14:04 +00:00
Mark Thompson b9514756ba vaapi_h265: Add main 10 encode support
(cherry picked from commit 5a5df90d9c)
(cherry picked from commit d08e02d929)
2017-02-08 19:14:04 +00:00
Mark Thompson 326b1ed93e vf_scale_vaapi: Add missing return value checks
Fixes CID 1374119.
2017-02-05 15:13:16 +00:00
Mark Thompson 55a7e7e398 ffmpeg_vaapi: Always set hwaccel_ctx, so it gets properly cleaned up on error
Fixes CID 1398954.
2017-02-05 15:13:15 +00:00
Mark Thompson 3420b34a8a Revert "avutil/hwcontext_vaapi: fix SEGV in vaTerminate when vaInitialize fails"
The original code is correctly following the API - vaTerminate() must
be called to free the resources of a VADisplay after it is created by
any of the vaGetDisplay*() calls; it is not necessary to have
successfully called vaInitialize() on it.  The segfaults which
prompted this change must therefore be bugs in libva or the driver it
loads.

This reverts commit 3606602f11.
2017-02-05 15:13:15 +00:00
Mark Thompson df3b17eba4 ffmpeg_vaapi: Unreference global device before setting it
This currently leaks if multiple device options are specified on the
command line.
2017-02-05 15:13:15 +00:00
Mark Thompson d40a1ae7ec vaapi_mpeg4: Restore changes overwritten by merge
From 2aa8e33d7d.
2017-01-22 00:07:47 +00:00
Mark Thompson f7e9275f83 hwcontext_vdpau: Fix missing subscripts
Also remove the redundant casts which were hiding the error here.

(cherry picked from commit 7081620aca)
2017-01-17 23:06:46 +00:00
Mark Thompson 2a4a8653b6 lavc: Remove old vaapi decode infrastructure
Deprecates struct vaapi_context and the installed header vaapi.h,
to be removed at the next version bump.

(cherry picked from commit 851960f6f8)
2017-01-17 23:06:46 +00:00
Mark Thompson 542a65d0b3 ffmpeg_vaapi: Convert to use hw_frames_ctx only
Most of the functionality here has moved into lavc.

(cherry picked from commit 3e8651a7cc)
2017-01-17 23:06:46 +00:00
Mark Thompson defbb8bc26 vaapi_vp9: Convert to use the new VAAPI hwaccel code 2017-01-17 23:06:46 +00:00
Mark Thompson fd1a6a0106 vaapi_mpeg4: Convert to use the new VAAPI hwaccel code
(cherry picked from commit ccd0316f7c)
2017-01-17 23:06:46 +00:00
Mark Thompson 32b3812b60 vaapi_vc1: Convert to use the new VAAPI hwaccel code
(cherry picked from commit 520fb77285)
2017-01-17 23:06:46 +00:00
Mark Thompson 71acbea112 vaapi_mpeg2: Convert to use the new VAAPI hwaccel code
(cherry picked from commit 102e13c353)
2017-01-17 23:06:45 +00:00
Mark Thompson c8b26d5954 vaapi_h264: Convert to use the new VAAPI hwaccel code
(cherry picked from commit 2fe93244ab)
2017-01-17 23:06:45 +00:00
Mark Thompson 79307ae563 lavc: Rewrite VAAPI decode infrastructure
Moves much of the setup logic for VAAPI decoding into lavc; the user
now need only provide the hw_frames_ctx.

(cherry picked from commit 123ccd07c5)
(cherry picked from commit 5e879b54a3)
(cherry picked from commit 0aec37e625)
(cherry picked from commit cfa4eb4fba)
2017-01-17 23:06:45 +00:00
Mark Thompson d07d01bcce vaapi_vc1: Remove redundant version check
The lowest supported VAAPI version is 0.34 (checked at configure
time), so this test is no longer needed.

(cherry picked from commit 5a667322f5)
2017-01-17 23:06:45 +00:00
Mark Thompson 845c2c140b vaapi_vc1: Constify pointers
(cherry picked from commit 01d6f84f49)
2017-01-17 23:06:45 +00:00
Mark Thompson 6bc2808c41 vaapi_mpeg2: Constify pointers
(cherry picked from commit ee9061293e)
2017-01-17 23:06:45 +00:00
Mark Thompson d0897da924 vaapi_h264: Constify pointers
(cherry picked from commit 03adfe9130)
2017-01-17 23:06:45 +00:00
Mark Thompson db7271bff2 configure: Require bit_depth field for VAAPI VP9 decode hwaccel
libva versions from 1.6.0 to 1.6.2 do not include it, and therefore
cannot work with VP9 profile >= 2.

Fixes ticket #6003.
2016-12-10 13:53:30 +00:00
Mark Thompson 51020adcec vaapi_encode: Write sequence header as extradata
Only works if packed headers are supported, where we can know the
output before generating the first frame.

(cherry picked from commit 0cf86fabfa)
2016-12-05 21:04:00 +00:00
Mark Thompson f242e0a0ff vaapi_encode: Fix format specifier for bitrate logging
Same as e0df56f25d.  This was accidentally
reintroduced while merging c8241e730f.
2016-11-21 22:59:58 +00:00
Mark Thompson 30ebabca7c vaapi_h265: Fix buffering parameters
A decoder may need this to be set correctly to output frames in the
right order.

(cherry picked from commit b8cac1e830)
2016-11-21 22:13:41 +00:00
Mark Thompson ae0230cc3e vaapi_h265: Fix slice header writing
This was not observed earlier because the only syntax element which
it normally misses with the current setup is slice_qp_delta, but that
is always going to be zero (in IDR frames QP isn't varied on the
slice) which will always exp-golomb code as a single 1 bit.  The
immediately following part is the byte alignment, which is always a 1
bit followed by 0s which are ignored, so as long as the bitstream is
never aligned at that point we will never notice because the only
difference is that an ignored bit is a 1 instead of a 0.

(cherry picked from commit fc30a90898)
2016-11-21 22:13:41 +00:00
Mark Thompson 6796e6ea84 vaapi_h264: Write bitstream restriction fields
(cherry picked from commit ec17ab381e)
2016-11-21 22:13:41 +00:00
Mark Thompson 658c5afaa0 vaapi_h264: Fix CFR mode with frame_rate set in AVCodecContext
(cherry picked from commit 17a0f9481c)
2016-11-21 22:13:41 +00:00
Mark Thompson ded1859df1 vaapi_encode: Decide on GOP setup before initialising sequence parameters
This was always too late; several fields related to it have been incorrectly
zero since the encoder was added.

(cherry picked from commit 314b421dd8)
2016-11-21 22:13:41 +00:00
Mark Thompson ee1d04f970 vaapi_h264: Set max_num_ref_frames to 1 when not using B frames
(cherry picked from commit 956a54129d)
2016-11-21 22:13:41 +00:00
Mark Thompson 94f446c628 vaapi_encode: Sync to input surface rather than output
While outwardly bizarre, this change makes the behaviour consistent
with other VAAPI encoders which sync to the encode /input/ picture in
order to wait for /output/ from the encoder.  It is not harmful on
i965 (because synchronisation already happens in vaRenderPicture(),
so it has no effect there), and it allows the encoder to work on
mesa/gallium which assumes this behaviour.

(cherry picked from commit 086e4b58b5)
2016-11-21 22:13:41 +00:00
Mark Thompson 478a4b7e6d vaapi_encode: Check packed header capabilities
This improves behaviour with drivers which do not support packed
headers, such as AMD VCE on mesa/gallium.

(cherry picked from commit 892bbbcdc1)
2016-11-21 22:13:41 +00:00
Mark Thompson c8241e730f vaapi_encode: Refactor initialisation
This allows better checking of capabilities and will make it easier
to add more functionality later.

It also commonises some duplicated code around rate control setup
and adds more comments explaining the internals.

(cherry picked from commit 80a5d05108)
2016-11-21 22:13:41 +00:00
Mark Thompson 06d73d002e vaapi_h264: Fix HRD bit_rate/cpb_size scaling
There should be an extra offset of 6 on bit_rate_scale and of 4 on
cpb_size_scale which were not accounted for here.

(cherry picked from commit 3a9662af6c)
2016-11-21 22:13:41 +00:00
Mark Thompson e0b164576f qsv: Add VP8 decoder 2016-11-14 19:38:20 +00:00
Mark Thompson 182cf170a5 vp8: Return stream format information from parser 2016-11-14 19:38:19 +00:00
Mark Thompson b6582b2927 qsv: Add VC-1 decoder
It uses the same code as the MPEG-2 decoder, so the file is renamed
to contain all "other" (that is, not H.26[45]) codecs.
2016-11-14 19:38:19 +00:00
Mark Thompson fea4dc05b4 vc1: Return stream format information from parser 2016-11-14 19:38:19 +00:00
Mark Thompson 0940b748bd qsvdec: Only warn about unconsumed data if it happens more than once 2016-11-14 19:38:19 +00:00
Mark Thompson 030d84fa2e qsvdec: Pass field order information to libmfx
The VC-1 decoder fails to initialise if this is not set.
2016-11-14 19:38:19 +00:00
Mark Thompson 3297577f3e mpegvideo: Return correct coded frame sizes from parser 2016-11-14 19:38:19 +00:00
Mark Thompson cd1047f391 qsvdec: Pass the correct profile to libmfx
This was correct for H.26[45], because libmfx uses the same values
derived from profile_idc and the constraint_set flags, but it is
wrong for other codecs.

Also avoid passing FF_LEVEL_UNKNOWN (-99) as the level, as this is
certainly invalid.
2016-11-14 19:38:19 +00:00
Mark Thompson 8d47d84075 hwcontext_vaapi: Try the first render node as the default DRM device
If no string argument is supplied when av_hwdevice_ctx_create() is
called to create a VAAPI device, we currently only try the default
X11 display (that is, $DISPLAY) to find a device, and will therefore
fail in the absence of an X server to connect to.  Change the logic
to also look for a device via the first DRM render node (that is,
"/dev/dri/renderD128"), which is probably the right thing to use in
most simple configurations which only have one DRM device.

(cherry picked from commit 121f34d5f0)
2016-11-13 20:39:49 +00:00
Mark Thompson 1a359e5341 vf_scale_vaapi: Respect driver quirks around buffer destruction
(cherry picked from commit 582d4211e0)
2016-11-13 20:39:48 +00:00
Mark Thompson 2dee500f4c 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).

(cherry picked from commit 221ffca631)
Fixes ticket #5871.
2016-11-13 20:39:48 +00:00
Mark Thompson a8d51bb424 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.

(cherry picked from commit 4926fa9a4a)
2016-11-13 20:39:48 +00:00
Mark Thompson 03cef34aa6 ffmpeg_qsv: Fix hwaccel transcoding
Set up the encoder with a hardware context which will match the one
the decoder will use when it starts later.

Includes 02c2761973, with additional
hackery to get around a3a0230a98 being
skipped.
2016-11-13 17:49:48 +00:00
Mark Thompson fd0fae6037 pthread_frame: Unreference hw_frames_ctx on per-thread codec contexts
When decoding with threads enabled, the get_format callback will be
called with one of the per-thread codec contexts rather than with the
outer context.  If a hwaccel is in use too, this will add a reference
to the hardware frames context on that codec context, which will then
propagate to all of the other per-thread contexts for decoding.  Once
the decoder finishes, however, the per-thread contexts are not freed
normally, so these references leak.
2016-11-10 20:36:11 +00:00
Mark Thompson 8ad9f9d675 hwcontext_vaapi: Frame mapping support
Can map to any supported software format (using a GPU copy if it
doesn't actually match the surface format underneath).
2016-11-03 23:49:05 +00:00
Mark Thompson 124e26971e lavfi: Hardware map filter
Takes a frame associated with a hardware context as input and maps it
to something else (another hardware frame or normal memory) for other
processing.  If the frame to map was originally in the target format
(but mapped to something else), the original frame is output.

Also supports mapping backwards, where only the output has a hardware
context.  The link immediately before will be supplied with mapped
hardware frames which it can write directly into, and this filter
then unmaps them back to the actual hardware frames.
2016-11-03 23:49:05 +00:00
Mark Thompson d06aa24ba5 hwcontext: Hardware frame mapping
Adds the new av_hwframe_map() function, which allows mapping between
hardware frames and normal memory, along with internal support for
implementing it.

Also adds av_hwframe_ctx_create_derived(), for creating a hardware
frames context associated with one device using frames mapped from
another by some hardware-specific means.
2016-11-03 23:49:01 +00:00
Mark ThompsonandDiego Biurrun 67c65e461c vf_hwupload_cuda: Fix build error
Broken by e3fb74f7f9.

Signed-off-by: Diego Biurrun <diego@biurrun.de>
2016-11-03 17:43:55 +01:00
Mark Thompson e3fb74f7f9 lavfi: Always propagate hw_frames_ctx through links
Also adds a new flag to mark filters which are aware of hwframes and
will perform this task themselves, and marks all appropriate filters
with this flag.

This is required to allow software-mapped hardware frames to work,
because we need to have the frames context available for any later
mapping operation in the filter graph.

The output from the filter graph should only propagate further to an
encoder if the hardware format actually matches the visible format
(mapped frames are valid here and have an hw_frames_ctx, but this
should not be given to the encoder as its hardware context).
2016-11-02 20:29:05 +00:00
Mark Thompson 7e2561fa83 lavfi: Use ff_get_video_buffer in all filters using hwframes 2016-11-02 20:07:15 +00:00
Mark Thompson 7433feb82f lavfi: Make default get_video_buffer work with hardware frames 2016-11-02 20:07:15 +00:00
Mark Thompson 218ed7250c openssl: Allow newer TLS versions than TLSv1
The use of TLSv1_*_method() disallows newer protocol versions; instead
use SSLv23_*_method() and then explicitly disable the deprecated
protocol versions which should not be supported.
2016-10-31 19:34:42 +00:00
Mark Thompson 4e7a7a96cf qsvdec: Avoid probing with qsv decoders
Set the AV_CODEC_CAP_AVOID_PROBING flag on all of the qsv decoders.
2016-10-31 19:23:40 +00:00
Mark Thompson 1f26a231bb qsv: Merge libav implementation
Merged as-at libav 398f015, and therefore includes outstanding
skipped merges 04b17ff and 130e1f1.

All features not in libav are preserved, and no options change.
2016-10-31 19:23:40 +00:00
Mark Thompson 309fe16a12 mpegvideo: Return correct coded frame sizes from parser 2016-10-31 19:23:40 +00:00
Mark Thompson 0c559f7893 hevc: Return stream format information from parser 2016-10-31 19:23:40 +00:00
Mark Thompson 4df6605da7 vc1: Return stream format information from parser 2016-10-31 19:23:40 +00:00
Mark Thompson e8634fb92e openssl: Allow newer TLS versions than TLSv1
The use of TLSv1_*_method() disallows newer protocol versions; instead
use SSLv23_*_method() and then explicitly disable the deprecated
protocol versions which should not be supported.

Fixes ticket #5915.
2016-10-30 13:18:45 +00:00
Mark Thompson 0aec37e625 vaapi_decode: Remove vestigial unmap code
The buffer map/unmap code was in an early version of this before it
was committed, but the unmap was never removed.  While wrong, this
was harmless (and therefore unnoticed) because the buffers can't be
mapped at this point - all drivers just did nothing with the call.
2016-10-24 20:17:47 +01:00
Mark Thompson 5e879b54a3 vaapi_decode: Clear parameter buffers to fix picture reuse
When decoding interlaced pictures, the structure is reused to render
to the same surface twice.  The parameter buffers were not being
cleared, which caused the i965 driver to error out.
2016-10-24 20:17:47 +01:00
Mark Thompson 0cf86fabfa vaapi_encode: Write sequence header as extradata
Only works if packed headers are supported, where we can know the
output before generating the first frame.
2016-10-17 21:07:25 +01:00
Mark Thompson f9bb356e0e vaapi_h265: Include header for slice types
The include was changed correctly in 4abe3b049d
but then mistakenly changed back by c359d624d3
(it's not just the NAL unit types which are used).
2016-10-17 20:53:28 +01:00
Mark Thompson 5a5df90d9c vaapi_h265: Add main 10 encode support 2016-10-02 20:23:18 +01:00