Commit Graph
100 Commits
Author SHA1 Message Date
Mark Thompson 92a0a6bea9 hwcontext_vaapi: Fix compilation with libva versions < 1.4.0
The BufferHandle API was added in libva 1.4.0 / VAAPI 0.36.0.
2018-04-27 23:29:51 +01:00
Mark Thompson edecd723f3 amfenc: Remove spurious initialisations
Also minor cosmetics.
2018-04-15 16:46:17 +01:00
Mark Thompson 73ed6fa9d7 amfenc: Do not automatically download/upload unknown hardware input frames
Supplying a hardware input frame which is not in the input hardware frames
context is not allowed by the API, so additional code to handle it is not
necessary.  Further, handling it automatically results in very low
performance - it is more appropriate to fail immediately so that the user
can fix their incorrect setup.
2018-04-15 16:46:12 +01:00
Mark Thompson ff1be6c9a6 amfenc: Fail to open if the user-supplied device is not usable
If the user supplies a device or frames context then it is an error
not to use it; this is consistent with other hardware components.

Also factorise out the D3D11 initialisation and improve error
messages.
2018-04-15 16:42:35 +01:00
Mark Thompson 44000b7744 hwcontext_d3d11: Fix crash with valid adapter but no device
This crash was introduced by 8bbf2dacbf,
which could incorrectly overwrite the failure result from creating the
device.

Fixes ticket #7108.

Reviewed-by: wm4 <nfxjfg@googlemail.com>
2018-03-28 00:19:45 +01:00
Mark Thompson 213839edff vf_avgblur_opencl: Don't run kernel on pixels outside the image
The output frame size is larger than the image containing a subsampled
plane - use the actual size of the image being written rather than the
dimensions of the intended output frame.

Reviewed-by: Dylan Fernando <dylanf123@gmail.com>
2018-03-26 22:28:24 +01:00
Mark Thompson abf35afb6f vf_scale_vaapi: Apply cropping rectangle to input 2018-03-22 23:19:04 +00:00
Mark Thompson ac993e73de hwcontext_opencl: Add support for mapping DRM objects to Beignet
Also use that to support mapping VAAPI to Beignet.
2018-03-22 23:19:00 +00:00
Mark Thompson ca9f13bbce hwcontext_vaapi: Pass correct read/write flags when exporting surfaces 2018-03-22 23:18:57 +00:00
Mark Thompson c6bbb8cca7 hwcontext_vaapi: Add support for legacy DRM mapping
The old vaAcquireBufferHandle() API works in fewer cases and provides
less information than the current vaExportSurfaceHandle(), but it exists
on older versions and is already used by the OpenCL code.
2018-03-22 23:18:55 +00:00
Mark Thompson f86e8c91d0 hwcontext_drm: Clarify value for unknown format modifiers 2018-03-22 23:18:53 +00:00
Mark Thompson 9313422dfc hwcontext_opencl: Avoid deprecation warnings when built with post-1.2 headers
Matching the previous commit.  This is not applied to the installed header
because it could incorrectly suppress the warning inside user programs.
2018-03-22 23:14:30 +00:00
Mark Thompson 0568af521e lavfi/opencl: Avoid deprecation warnings when built with post-1.2 headers
The intended target is OpenCL 1.2, so disable warnings for APIs deprecated
after that.  This primarily applies to clCreateCommandQueue(), we can't use
the replacement clCreateCommandQueueWithProperties() because it was
introduced in OpenCL 2.0.

Also remove some unnecessary includes from overlay and program filters so
that the define is available at the right moment.
2018-03-22 23:14:14 +00:00
Mark Thompson 2a1542d105 lavfi/opencl: Derive global work size from plane image sizes
Add a new function to find the global work size given the output image and
the required block alignment, then use it in the overlay, program and unsharp
filters.  Fixes the overlay and unsharp filters applying the kernel to
locations outside the frame when subsampled planes are present.
2018-03-22 23:12:47 +00:00
Mark Thompson 1c49365c62 h264_metadata: Fix memory leak on multiple display orientation messages
Fixes CID #1430176.
2018-03-19 23:12:01 +00:00
Mark Thompson 0f3d1c69b5 hwcontext_vaapi: Always include DRM hwcontext header
Fixes building with VAAPI but not libdrm, which was broken by
389f4c3e0d.  Just unconditionally include
the header, since it doesn't depend on libdrm being present.
2018-03-18 18:34:38 +00:00
Mark Thompson c99f837dde lavc: Add filter_units bitstream filter
This can remove units with types in or not in a given set from a stream.
For example, it can be used to remove all non-VCL NAL units from an H.264 or
H.265 stream.
2018-03-18 18:23:18 +00:00
Mark Thompson 389f4c3e0d hwcontext_vaapi: Fix condition for DRM device derivation
vaGetDisplayDRM() is required for this code to work, libdrm is not.
2018-03-18 17:55:00 +00:00
Mark Thompson 84bb8327f5 cbs: Add a table of all supported codec IDs
Use it as the set of codec IDs supported by the trace_headers BSF.
2018-03-18 17:55:00 +00:00
Mark Thompson 94d42cb4cc h264_metadata: Remove unused fields
The SEI NAL is unused since 69062d0f9b,
while the AUD NAL is small and would more sensibly be on the stack.
2018-03-18 17:55:00 +00:00
Mark Thompson 84c3c766d8 h264_metadata: Add support for display orientation SEI messages 2018-03-18 17:55:00 +00:00
Mark Thompson c4eeea7633 cbs_h265: Use helper macro for maximum values of fixed-width elements
Apply the same logic as the previous patch to H.265.  There are no cases
which currently overflow here, but this is still more consistent.
2018-03-18 17:55:00 +00:00
Mark Thompson 0e782661d6 cbs_h264: Fix overflow in shifts
The type of the result of a shift operation is unaffected by the type of
the right operand, so some existing code overflows with undefined behaviour
when the element length is 32.  Add a helper macro to calculate the maximum
value correctly and then use it everywhere this pattern appears.

Found-by: Andreas Rheinhardt <andreas.rheinhardt@googlemail.com>
2018-03-18 17:54:55 +00:00
Mark Thompson 56912555bc h264_metadata: Actually fail when sei_user_data option is invalid 2018-03-06 23:44:07 +00:00
Mark Thompson 0cf9fa9924 Merge commit '2d6b3f3a9dce409ca51d70ef4b85c0593bb4b109'
* commit '2d6b3f3a9dce409ca51d70ef4b85c0593bb4b109':
  qsvenc: Provide a detailed error message if the parameters are invalid

Merged-by: Mark Thompson <sw@jkqxz.net>
2018-03-05 23:16:29 +00:00
Mark Thompson 9053b08859 Merge commit 'e2399e0c1aeb110456405d23e211066fab6cb041'
* commit 'e2399e0c1aeb110456405d23e211066fab6cb041':
  fate: Error out more gracefully on configure failure

This commit is a noop, the configure failure reporting issue does not
appear to affect FFmpeg.

Merged-by: Mark Thompson <sw@jkqxz.net>
2018-03-05 23:14:58 +00:00
Mark Thompson 706d2c66e8 Merge commit 'dc40e64adb1712b1209c018914a44f809bc32664'
* commit 'dc40e64adb1712b1209c018914a44f809bc32664':
  hvcc: zero initialize the nal buffers past the last written byte

This commit is a noop, see 9482ec1b20

Merged-by: Mark Thompson <sw@jkqxz.net>
2018-03-05 22:34:24 +00:00
Mark Thompson 085a2eb8e2 Merge commit '8ca39b855a7b0e4d9f726fa9d285bc8edcb953e6'
* commit '8ca39b855a7b0e4d9f726fa9d285bc8edcb953e6':
  qsv: Default PicStruct to progressive

Merged-by: Mark Thompson <sw@jkqxz.net>
2018-03-05 22:31:03 +00:00
Mark Thompson 63c690ad15 vaapi: Add MJPEG decode hwaccel 2018-02-21 23:38:30 +00:00
Mark Thompson 99ab0a13dc vaapi_decode: Make the frames context format selection more general
Examine the supported fourcc list manually and make the best choice, then
use the external attribute on the frames context to force that fourcc.
2018-02-21 23:38:10 +00:00
Mark Thompson 193e43e619 hwcontext_vaapi: Fix frames context creation with external attributes 2018-02-21 23:38:10 +00:00
Mark Thompson fabcbfba38 hwcontext_vaapi: Add more surface formats
Adds YUV 4:1:1, 4:4:0 and 4:4:4 - these will be needed for JPEG decoding.
2018-02-21 23:38:10 +00:00
Mark Thompson 6c0bfa30c0 mjpegdec: Add hwaccel hooks
Also adds some extra fields to the main context structure that may
be needed by a hwaccel decoder.
2018-02-21 23:38:10 +00:00
Mark Thompson 9ca79784e9 lavc/mjpeg: Add profiles for MJPEG using SOF marker codes
This is needed by later hwaccel code to tell which encoding process was
used for a particular frame, because hardware decoders may only support a
subset of possible methods.
2018-02-21 23:37:58 +00:00
Mark Thompson ecb3d6edc3 Merge commit '6d5a6dde5301c81e221a37b3f39bb03149492b98'
* commit '6d5a6dde5301c81e221a37b3f39bb03149492b98':
  h264_metadata: Add option to delete filler data

Fixes #6899.

Merged-by: Mark Thompson <sw@jkqxz.net>
2018-02-21 22:54:07 +00:00
Mark Thompson fbeac5356c Merge commit 'eccc03c8fbc603a0a3257df66f0705f74fe2581a'
* commit 'eccc03c8fbc603a0a3257df66f0705f74fe2581a':
  cbs_h264: Add support for filler NAL units

Some bitstream -> get_bits.

Merged-by: Mark Thompson <sw@jkqxz.net>
2018-02-21 22:51:46 +00:00
Mark Thompson ab6edb173b Merge commit '7157d959264f3729da463725c6faa580d9394d19'
* commit '7157d959264f3729da463725c6faa580d9394d19':
  cbs_h264: Move slice_group_id array out of PPS structure

Merged-by: Mark Thompson <sw@jkqxz.net>
2018-02-21 22:41:00 +00:00
Mark Thompson 7386b4ff39 Merge commit '78fa0b9033c0834c049e2aedf71a8c613fed87ab'
* commit '78fa0b9033c0834c049e2aedf71a8c613fed87ab':
  h264_metadata: Always add the SEI user data to the first access unit

Mostly already present from a308872b04,
one cosmetic change applied.

Merged-by: Mark Thompson <sw@jkqxz.net>
2018-02-21 22:40:08 +00:00
Mark Thompson fd76e7be70 Merge commit '69062d0f9b6aef5d9d9b8c9c9b5cfb23037caddb'
* commit '69062d0f9b6aef5d9d9b8c9c9b5cfb23037caddb':
  h264_metadata: Use common SEI addition function

Minor changes because the following patch is already present.

Merged-by: Mark Thompson <sw@jkqxz.net>
2018-02-21 22:37:07 +00:00
Mark Thompson 77eba7bd99 Merge commit 'a2ca8ed903b435446031a8a0792ca535e6ee2913'
* commit 'a2ca8ed903b435446031a8a0792ca535e6ee2913':
  cbs_h264: Add utility functions to insert/delete SEI messages

Merged-by: Mark Thompson <sw@jkqxz.net>
2018-02-21 22:27:07 +00:00
Mark Thompson 0cc8e34a94 Merge commit 'ce5870a3a8f2b10668ee4f04c2ae0287f66f31b2'
* commit 'ce5870a3a8f2b10668ee4f04c2ae0287f66f31b2':
  cbs: Refcount all the things!

Some changes for bitstream API.

Merged-by: Mark Thompson <sw@jkqxz.net>
2018-02-21 22:22:54 +00:00
Mark Thompson b656fa710a Merge commit '13ca5d34ba5c473211daaae0a101123bcaada3e6'
* commit '13ca5d34ba5c473211daaae0a101123bcaada3e6':
  cbs_h264: Add hack for pic_timing with no active SPS

Partially fixes #6896 - the sample stream from that ticket now works, but
more obscure cases can still fail.

Merged-by: Mark Thompson <sw@jkqxz.net>
2018-02-21 22:05:15 +00:00
Mark Thompson af3727e239 Merge commit '0e4c166cdd6446522a085dd9731967d09ac71f72'
* commit '0e4c166cdd6446522a085dd9731967d09ac71f72':
  cbs_h2645: Remove active ps references when it is replaced

Merged-by: Mark Thompson <sw@jkqxz.net>
2018-02-21 22:03:15 +00:00
Mark Thompson 1325ac4c93 Merge commit 'a3daecd6375279d9fdb863ac9db3545a33e97651'
* commit 'a3daecd6375279d9fdb863ac9db3545a33e97651':
  cbs: Demote the "decomposition unimplemented" warning

Merged-by: Mark Thompson <sw@jkqxz.net>
2018-02-21 21:54:42 +00:00
Mark Thompson f082dcab7c Merge commit '67eb2b16daa77f6ba3e04a28ca18e53193723b7f'
* commit '67eb2b16daa77f6ba3e04a28ca18e53193723b7f':
  vaapi_h265: Mark unused entries in RefPicList[01] as explicitly invalid

Merged-by: Mark Thompson <sw@jkqxz.net>
2018-02-21 21:52:20 +00:00
Mark Thompson 9e3e9a3728 Merge commit '216c44dfc17252ec0681dcb0bbeeb45a9d14eca7'
* commit '216c44dfc17252ec0681dcb0bbeeb45a9d14eca7':
  vaapi_encode: Destroy output buffer pool before VA context

Merged-by: Mark Thompson <sw@jkqxz.net>
2018-02-21 21:51:28 +00:00
Mark Thompson fe1fb48e2b Merge commit 'c8e135ea9225137050a6315fd9ba9c0f242c90b6'
* commit 'c8e135ea9225137050a6315fd9ba9c0f242c90b6':
  vaapi_encode: Allocate slice structures and parameter buffers dynamically

Already present as e4a6eb70f4, one minor
fix for libav merged.

Merged-by: Mark Thompson <sw@jkqxz.net>
2018-02-21 21:46:09 +00:00
Mark Thompson 7dc8752e61 Merge commit '254e728d207c173a3714e6a01c9d68fcb3af8b73'
* commit '254e728d207c173a3714e6a01c9d68fcb3af8b73':
  cbs: Minor comment fixes / cosmetics

Mostly already present, one small fix.

Merged-by: Mark Thompson <sw@jkqxz.net>
2018-02-21 21:36:08 +00:00
Mark Thompson cacb47633c Merge commit '1d12a545ce828eaf4fb37295400008ea37635ab8'
* commit '1d12a545ce828eaf4fb37295400008ea37635ab8':
  cbs: Add an explicit type for coded bitstream unit types

Mostly already present from 6734eef6b8, two
minor message changes are merged.

Merged-by: Mark Thompson <sw@jkqxz.net>
2018-02-21 21:25:48 +00:00
Mark Thompson d28eb0e34d Merge commit '2651352988212531038326c44754ece1728c4a3b'
* commit '2651352988212531038326c44754ece1728c4a3b':
  cbs: Allocate the context inside the init function

This commit is a noop, see 6734eef6b8

Merged-by: Mark Thompson <sw@jkqxz.net>
2018-02-21 21:23:50 +00: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
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
Mark Thompson 0018f17f23 Merge commit 'a674b31240e99a369059385b03582b35629d190f'
* commit 'a674b31240e99a369059385b03582b35629d190f':
  build: Ignore generated mpeg12framerate test binary

This commit is a noop, see fb791d2876

Merged-by: Mark Thompson <sw@jkqxz.net>
2018-02-12 23:12:43 +00:00
Mark Thompson 7ceec9c5ec Merge commit '5b6213ef6bf5e0781c83e86926eb0b33a98dc185'
* commit '5b6213ef6bf5e0781c83e86926eb0b33a98dc185':
  avcodec/vc1dec: fix mby_start for interlaced content

This commit is a noop, see c9f72e4b81

Merged-by: Mark Thompson <sw@jkqxz.net>
2018-02-12 23:10:09 +00:00
Mark Thompson ccef7a85d6 Merge commit '9b09792c90b580842157ca8ce534be434725a841'
* commit '9b09792c90b580842157ca8ce534be434725a841':
  lavc/qsv: default la_ds to MFX_LOOKAHEAD_DS_UNKNOWN

This commit is a noop: the code in FFmpeg is slightly different and never
contained the invalid value.

Merged-by: Mark Thompson <sw@jkqxz.net>
2018-02-12 23:05:13 +00:00
Mark Thompson de3be1d09f Merge commit '8bb9824fcbc5a6ebf68391d70a2c4f03447990d2'
* commit '8bb9824fcbc5a6ebf68391d70a2c4f03447990d2':
  qsvenc: AVBR is not supported on non-windows OS

Merged-by: Mark Thompson <sw@jkqxz.net>
2018-02-12 23:01:24 +00:00
Mark Thompson e9dfc6f900 Merge commit 'e412d683fe0349bb8450645813a23158bb4ebd66'
* commit 'e412d683fe0349bb8450645813a23158bb4ebd66':
  hwcontext: Perform usual uninitialisation on derived frames contexts

This commit is a noop, see 0f93cef2d6

Merged-by: Mark Thompson <sw@jkqxz.net>
2018-02-12 23:00:13 +00:00
Mark Thompson cfff6d1f77 Merge commit 'caecb85014fc81f8734560a150073627eedab78c'
* commit 'caecb85014fc81f8734560a150073627eedab78c':
  hwcontext: Perform usual initialisation on derived device contexts

This commit is a noop, see 309d660775

Merged-by: Mark Thompson <sw@jkqxz.net>
2018-02-12 22:59:12 +00:00
Mark Thompson b668a1c8b3 Merge commit 'c6bc18bc121ea66df715123c59f7ef9542c0914a'
* commit 'c6bc18bc121ea66df715123c59f7ef9542c0914a':
  vf_hwupload/hwmap: Support setting a fixed pool size

Merged-by: Mark Thompson <sw@jkqxz.net>
2018-02-12 22:56:12 +00:00
Mark Thompson 6e050e0085 Merge commit 'e4cdef00263dc8b3c8de9d34ceacd00dc68979c0'
* commit 'e4cdef00263dc8b3c8de9d34ceacd00dc68979c0':
  vf_scale_qsv: Support increasing hardware frame pool size

Merged-by: Mark Thompson <sw@jkqxz.net>
2018-02-12 22:55:24 +00:00
Mark Thompson a5ed07940c fate: Fix fate-api reference files after AVCodecContext change
Broken by d23fff0d8a.
2018-02-12 22:54:23 +00:00
Mark Thompson b4fca397dd Merge commit 'b128be1748f3920a14a98307265df5f2d3433e1d'
* commit 'b128be1748f3920a14a98307265df5f2d3433e1d':
  vf_*_vaapi: Support increasing hardware frame pool size

Rewritten to apply to common VAAPI code rather than specific filters.

Merged-by: Mark Thompson <sw@jkqxz.net>
2018-02-12 22:44:28 +00:00
Mark Thompson bcab11a1a2 Merge commit '6d86cef06ba36c0ed591e14a2382e9630059fc5d'
* commit '6d86cef06ba36c0ed591e14a2382e9630059fc5d':
  lavfi: Add support for increasing hardware frame pool sizes

Merged-by: Mark Thompson <sw@jkqxz.net>
2018-02-12 22:28:12 +00:00
Mark Thompson 9471122a1b Merge commit 'cad739dace55e3446ef7180de688173cd19fb000'
* commit 'cad739dace55e3446ef7180de688173cd19fb000':
  lavc: Add per-thread surfaces in get_hw_frame_parameters()

Merged-by: Mark Thompson <sw@jkqxz.net>
2018-02-12 22:22:30 +00:00
Mark Thompson d23fff0d8a Merge commit '5b145290df2998a9836a93eb925289c6c8b63af0'
* commit '5b145290df2998a9836a93eb925289c6c8b63af0':
  lavc: Add support for increasing hardware frame pool sizes

Merged-by: Mark Thompson <sw@jkqxz.net>
2018-02-12 22:19:38 +00: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
Mark Thompson 10bcc41bb4 examples: Don't call deprecated functions which don't do anything 2018-02-09 21:38:42 +00:00
Mark Thompson 2eb396b175 hwcontext: Fix memory leak on derived frame allocation failure 2018-02-04 13:47:25 +00:00
Mark Thompson 74cf4a75f7 ffmpeg: Ignore SIGPIPE
On systems which deliver SIGPIPE (Unices), a broken pipe will currently
result in the immediate termination of the ffmpeg process (the default
disposition as required by POSIX).  This is undesirable, because while
the broken pipe is likely fatal to useful cleanup of whatever component
is writing to it, there might be other components which can do useful
cleanup - for example, a muxer on another stream may still need to write
indexes to complete a file.  Therefore, set the signal disposition for
SIGPIPE to ignore the signal - the call which caused the signal will
fail with EPIPE and the error will be propagated upwards like any other
I/O failure on a single stream.
2018-01-25 22:54:10 +00:00
Mark Thompson 04e4ab44d7 Merge commit '559370f2c45110afd8308eec7194437736c323d4'
* commit '559370f2c45110afd8308eec7194437736c323d4':
  qsv: Skip the packet if decoding failure

Merged-by: Mark Thompson <sw@jkqxz.net>
2018-01-25 22:50:38 +00:00
Mark Thompson b855b570c8 Merge commit 'a2a9e4eea0e4fde2ed8d3405b4f33f655b600c2d'
* commit 'a2a9e4eea0e4fde2ed8d3405b4f33f655b600c2d':
  rtmp: Plug leak if sending bytes read report fails.

This commit is a noop, see ee88f31d34

Merged-by: Mark Thompson <sw@jkqxz.net>
2018-01-25 22:48:34 +00:00
Mark Thompson 8e9be8ffba Merge commit '85e10c0a9321bfe0d2afe0f3983ab6a8df6e3fba'
* commit '85e10c0a9321bfe0d2afe0f3983ab6a8df6e3fba':
  intreadwrite: Use __unaligned in MSVC for ARM64 as well

Merged-by: Mark Thompson <sw@jkqxz.net>
2018-01-25 22:45:45 +00:00
Mark ThompsonandJorge Ramirez-Ortiz 2e96f52780 v4l2_m2m: Fix integer overflow in timestamp handling 2018-01-22 17:24:36 +01:00
Mark Thompson bda5ad305e v4l2_m2m: Fix free of the wrong pointer in an error path
Fixes CIDs #1427821 and #1427822.
2018-01-21 23:02:16 +00:00
Mark Thompson a0c624e299 avcodec: v4l2_m2m: fix races around freeing data on close
Refcount all of the context information. This also fixes a potential
segmentation fault when accessing freed memory  (buffer returned after
the codec has been closed).

Tested-by: Jorge Ramirez-Ortiz <jorge.ramirez.ortiz@gmail.com>
2018-01-21 00:37:35 +00:00
Mark Thompson 96cf0d8a9c Merge commit 'cbe28bc069dde1d53d937ee10700bb123279c7c8'
* commit 'cbe28bc069dde1d53d937ee10700bb123279c7c8':
  qsv: better to use alignment by 16 and HEVC 10b requires alignment by 32

Merged-by: Mark Thompson <sw@jkqxz.net>
2018-01-16 23:29:36 +00:00
Mark Thompson 3895fce26e Merge commit '34c113335b53d83ed343de49741f0823aa1f8cc6'
* commit '34c113335b53d83ed343de49741f0823aa1f8cc6':
  Add support for H.264 and HEVC hardware encoding for AMD GPUs based on AMF SDK

Most of this was already present from 9ea6607d29,
this just applies some minor fixups and adds the general documentation.

Merged-by: Mark Thompson <sw@jkqxz.net>
2018-01-16 23:25:27 +00:00
Mark Thompson 68de778ccc Merge commit '7b0b5bc810cdb9ef100492c9a9f2d30602c04336'
* commit '7b0b5bc810cdb9ef100492c9a9f2d30602c04336':
  cmdutils: update copyright year to 2018

This commit is a noop, see bddf31ba75

Merged-by: Mark Thompson <sw@jkqxz.net>
2018-01-16 23:01:20 +00:00
Mark Thompson 725ae0e2d0 Merge commit '1efbbfedcaf4a3cecab980273ad809ba3ade2f74'
* commit '1efbbfedcaf4a3cecab980273ad809ba3ade2f74':
  examples/qsvdec: do not set the deprecated field refcounted_frames

Merged-by: Mark Thompson <sw@jkqxz.net>
2018-01-16 22:57:09 +00:00
Mark Thompson d204b7ff61 Merge commit 'e23190269fb6e8217d080918893641ba3e0e3556'
* commit 'e23190269fb6e8217d080918893641ba3e0e3556':
  lavu/qsv: add log message for libmfx version

Merged-by: Mark Thompson <sw@jkqxz.net>
2018-01-16 22:57:02 +00:00