aboutsummaryrefslogtreecommitdiffstats
path: root/libavutil/hwcontext_vaapi.c
Commit message (Collapse)AuthorAgeFilesLines
...
* Merge commit 'fd9212f2edfe9b107c3c08ba2df5fd2cba5ab9e3'James Almer2017-09-261-1/+1
|\ | | | | | | | | | | | | * commit 'fd9212f2edfe9b107c3c08ba2df5fd2cba5ab9e3': Mark some arrays that never change as const. Merged-by: James Almer <jamrial@gmail.com>
| * Mark some arrays that never change as const.Anton Khirnov2017-02-011-1/+1
| |
| * hwcontext_vaapi: Don't abort on failing to allocate from a fixed-size poolMark Thompson2016-11-261-0/+4
| |
* | hwcontext_vaapi: Fix DRM format mappingMark Thompson2017-09-191-8/+8
| |
* | hwcontext_vaapi: Fix build failure with old libdrmJun Zhao2017-09-141-1/+3
| | | | | | | | | | Signed-off-by: Jun Zhao <jun.zhao@intel.com> Signed-off-by: Mark Thompson <sw@jkqxz.net>
* | hwcontext_vaapi: Add DRM to VAAPI mappingMark Thompson2017-09-131-1/+228
| |
* | hwcontext_vaapi: Try to support the VDPAU wrapperMark Thompson2017-06-141-34/+45
| | | | | | | | | | | | | | | | | | | | The driver is somewhat bitrotten (not updated for years) but is still usable for decoding with this change. To support it, this adds a new driver quirk to indicate no support at all for surface attributes. Based on a patch by wm4 <nfxjfg@googlemail.com>. (cherry picked from commit e791b915c774408fbc0ec9e7270b021899e08ccc)
* | Merge commit '8ad9f9d675eab139aa2208722009eeed981460dd'Clément Bœsch2017-03-301-41/+52
|\| | | | | | | | | | | | | * commit '8ad9f9d675eab139aa2208722009eeed981460dd': hwcontext_vaapi: Frame mapping support Merged-by: Clément Bœsch <cboesch@gopro.com>
| * hwcontext_vaapi: Frame mapping supportMark Thompson2016-11-031-41/+52
| | | | | | | | | | Can map to any supported software format (using a GPU copy if it doesn't actually match the surface format underneath).
| * hwcontext_vaapi: Enable P010 supportMark Thompson2016-10-021-1/+1
| | | | | | | | This is required for 10-bit surfaces.
| * hwcontext_vaapi: add a quirk for the missing MemoryType attributeAnton Khirnov2016-10-021-1/+7
| | | | | | | | | | | | The Intel binary iHD driver does not support the VASurfaceAttribMemoryType, so surface allocation will fail when using it.
| * hwcontext_vaapi: Try the first render node as the default DRM deviceMark Thompson2016-08-131-5/+8
| | | | | | | | | | | | | | | | | | | | 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.
| * hwcontext_vaapi: Add driver quirks to the hwdeviceMark Thompson2016-07-021-0/+39
| | | | | | | | | | | | | | | | | | | | | | 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.
* | hwcontext_vaapi: Don't abort on failing to allocate from a fixed-size poolMark Thompson2017-03-021-0/+4
| | | | | | | | | | | | Cherry-picked from Libav d30719e62de68975cbc7ffd318df03a183037563. Signed-off-by: wm4 <nfxjfg@googlemail.com>
* | Revert "avutil/hwcontext_vaapi: fix SEGV in vaTerminate when vaInitialize fails"Mark Thompson2017-02-051-1/+2
| | | | | | | | | | | | | | | | | | | | | | 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 3606602f1137552ea54f2c259eb140c1e3c026d4.
* | avutil/hwcontext_vaapi: fix SEGV in vaTerminate when vaInitialize failsAman Gupta2017-02-021-2/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Program terminated with signal SIGSEGV, Segmentation fault. #0 0x0000000000aff8a4 in vaTerminate () #1 0x0000000000ae50ce in vaapi_device_free (ctx=<optimized out>) at libavutil/hwcontext_vaapi.c:882 #2 0x0000000000ae1f9e in hwdevice_ctx_free (opaque=<optimized out>, data=<optimized out>) at libavutil/hwcontext.c:66 #3 0x0000000000ad856f in buffer_replace (src=0x0, dst=0x7fffa26ef1b8) at libavutil/buffer.c:119 #4 av_buffer_unref (buf=buf@entry=0x7fffa26ef1f8) at libavutil/buffer.c:129 #5 0x0000000000ae299f in av_hwdevice_ctx_create (pdevice_ref=0x170ac50 <hw_device_ctx>, type=type@entry=AV_HWDEVICE_TYPE_VAAPI, device=<optimized out>, opts=opts@entry=0x0, flags=flags@entry=0) at libavutil/hwcontext.c:494 #6 0x0000000000400968 in vaapi_device_init (device=<optimized out>) at ffmpeg_vaapi.c:223 Signed-off-by: Mark Thompson <sw@jkqxz.net>
* | Merge commit 'f62bb216ac4cfbbff16108c6bac35a0282532972'Hendrik Leppkes2016-11-131-0/+12
|\| | | | | | | | | | | | | * commit 'f62bb216ac4cfbbff16108c6bac35a0282532972': hwcontext_vaapi: allow transfers to/from any size of sw frame Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
| * hwcontext_vaapi: allow transfers to/from any size of sw frameMark Thompson2016-06-281-0/+12
| | | | | | | | | | | | | | | | 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>
* | hwcontext_vaapi: add a quirk for the missing MemoryType attributeAnton Khirnov2016-11-131-1/+7
| | | | | | | | | | | | | | | | The Intel binary iHD driver does not support the VASurfaceAttribMemoryType, so surface allocation will fail when using it. (cherry picked from commit 2124711b950b03c582a119c75f52a87acc32d6ec)
* | hwcontext_vaapi: Try the first render node as the default DRM deviceMark Thompson2016-11-131-5/+8
| | | | | | | | | | | | | | | | | | | | | | | | 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 121f34d5f0c8d7d376829a467590fbbe4c228f4f)
* | hwcontext_vaapi: Add driver quirks to the hwdeviceMark Thompson2016-11-131-0/+39
| | | | | | | | | | | | | | | | | | | | | | | | | | 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 4926fa9a4aa03f3b751f52e900b9efb87fea0591)
* | Merge commit 'fe498ef5144d3712b887f44a0c5e654add99ead7'Hendrik Leppkes2016-10-071-111/+79
|\| | | | | | | | | | | | | * commit 'fe498ef5144d3712b887f44a0c5e654add99ead7': hwcontext_vaapi: Return all formats for constraints without config Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
| * hwcontext_vaapi: Return all formats for constraints without configMark Thompson2016-06-211-111/+79
| | | | | | | | | | | | | | | | | | | | | | | | | | | | No longer make a dummy device configuration to query. Instead, just return everything we recognise from the whole format list. Also change the device setup code to query that list only, rather than intersecting it with the constraint output. This makes hwupload more usable on mesa/gallium where the video processor only declares support for RGB formats, making it unable to deal with YUV formats before this patch. It might introduce some different trickier failures in the internal upload/download code because the set of allowed formats there has changed, though I didn't find any obvious regressions with i965.
* | lavu/hwcontext_vaapi: Fix compilation if VA_FOURCC_ABGR is not defined.Carl Eugen Hoyos2016-08-021-0/+2
| | | | | | | | Fixes ticket #5484.
* | Merge commit 'b8bf9194af602cf3a4bcd19a5e278e3d6d69f8fa'Hendrik Leppkes2016-06-261-0/+123
|\| | | | | | | | | | | | | * commit 'b8bf9194af602cf3a4bcd19a5e278e3d6d69f8fa': hwcontext_vaapi: implement device creation Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
| * hwcontext_vaapi: implement device creationAnton Khirnov2016-05-261-0/+123
| |
* | vaapi: Enable more libva surface formatsMark Thompson2016-06-021-5/+5
| | | | | | | | Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* | Merge commit '551c6775abb5e0ad34c26d7e23bc6fbbe8ccc9d4'Derek Buitenhuis2016-04-141-4/+4
|/ | | | | | | * commit '551c6775abb5e0ad34c26d7e23bc6fbbe8ccc9d4': lavu: VAAPI hwcontext implementation Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
* lavu: VAAPI hwcontext implementationMark Thompson2016-03-191-0/+850
Signed-off-by: Anton Khirnov <anton@khirnov.net>