summaryrefslogtreecommitdiffstats
path: root/libavcodec/dxva2_internal.h
Commit message (Collapse)AuthorAgeFilesLines
* lavc: external hardware frame pool initializationwm42017-10-191-0/+3
| | | | | | | | | | | | This adds a new API, which allows the API user to query the required AVHWFramesContext parameters. This also reduces code duplication across the hwaccels by introducing ff_decode_get_hw_frames_ctx(), which uses the new API function. It takes care of initializing the hw_frames_ctx if needed, and does additional error handling and API usage checking. Support for VDA and Cuvid missing. Signed-off-by: Anton Khirnov <anton@khirnov.net>
* dxva: add support for new dxva2 and d3d11 hwaccel APIswm42017-06-081-1/+42
| | | | | | | | | | This also adds support to avconv (which is trivial due to the new hwaccel API being generic enough). The new decoder setup code in dxva2.c is significantly based on work by Steve Lhomme <robux4@gmail.com>, but with heavy changes/rewrites. Signed-off-by: Diego Biurrun <diego@biurrun.de>
* dxva: preparations for new hwaccel APIwm42017-06-081-9/+13
| | | | | | | | | | | | The actual hwaccel code will need to access an internal context instead of avctx->hwaccel_context, so add a new DXVA_CONTEXT() macro, that will dispatch between the "old" external and the new internal context. Also, the new API requires a new D3D11 pixfmt, so all places which check for the pixfmt need to be adjusted. Introduce a ff_dxva2_is_d3d11() function, which does the check. Signed-off-by: Diego Biurrun <diego@biurrun.de>
* dxva2: allow an empty array of ID3D11VideoDecoderOutputViewSteve Lhomme2017-01-121-2/+2
| | | | | | | We can pick the correct slice index directly from the ID3D11VideoDecoderOutputView casted from data[3]. Signed-off-by: Anton Khirnov <anton@khirnov.net>
* dxva2: Factorize DXVA context validity test into a single macroSteve Lhomme2017-01-081-0/+5
| | | | Signed-off-by: Diego Biurrun <diego@biurrun.de>
* dxva2: Make ff_dxva2_get_surface() static and drop its name prefixSteve Lhomme2017-01-081-2/+0
| | | | Signed-off-by: Diego Biurrun <diego@biurrun.de>
* dxva2: Keep code shared between dxva2 and d3d11va under the correct #ifDiego Biurrun2016-12-121-3/+5
| | | | This partially reverts commit ac648bb835edd3f67bda2267d0e72e5e582eb5a1.
* dxva2: Simplify some ifdefsDiego Biurrun2016-12-111-9/+3
|
* dxva2: Adjust multiple inclusion guard names to follow conventionDiego Biurrun2016-12-091-3/+3
|
* d3d11va: Use the proper decoding slice indexSteve Lhomme2016-10-051-3/+0
| | | | | | | | | | | | The decoding buffer index expected by D3D11VA is the one from the ID3D11Texture2D not the one from the ID3D11VideoDecoderOutputView array in AVD3D11VAContext. Otherwise, when providing decoder slices that do not start from 0, pictures appear in bogus order. For an invalid index crashes and image corruption can occur. Signed-off-by: Diego Biurrun <diego@biurrun.de>
* mpegvideo: Drop mpegvideo.h where not neededVittorio Giovara2015-09-131-1/+0
| | | | Add necessary headers in .c files.
* force WINAPI_FAMILY to WINAPI_FAMILY_DESKTOP_APP to be able to use dxva.hSteve Lhomme2015-07-261-0/+9
| | | | | | | | | | | | | | | | The struct definitions in dxva.h, which are necessary in order to actually use d3d11va, are hidden when WINAPI_FAMILY targets Windows Phone or WindowsRT. Building with WINAPI_FAMILY=WINAPI_FAMILY_DESKTOP_APP is disallowed when targeting ARM. ("Compiling Desktop applications for the ARM platform is not supported.") So we set _CRT_BUILD_DESKTOP_APP to 0 to tell the runtime not to detect some issues with this mismatching. The same tweaks to detect if the API is available is done in dxva2_internal.h when compiling each DXVA2/D3D11VA decoders. Signed-off-by: Martin Storsjö <martin@martin.st>
* dxva2: Fix build when only D3D11 or DXVA2 is usedSteve Lhomme2015-06-011-0/+34
| | | | Signed-off-by: Martin Storsjö <martin@martin.st>
* D3D11va: add a Direct3D11 video decoder similar to DXVA2Steve Lhomme2015-05-251-5/+27
| | | | Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
* dxva2: Clean up definition of _WIN32_WINNTDiego Biurrun2014-09-011-1/+0
| | | | | | Only set a value if _WIN32_WINNT is undefined or smaller than 0x0600. This is cleaner than unconditional definition and avoids a number of redefinition warnings. Also only define a value in one of the two dxva2 headers.
* dxva2: Directly use AVFramesMichael Niedermayer2014-04-011-3/+3
| | | | | | | The assumption of (MPEG) Picture and H264Picture layout matching might not hold true in the future. Signed-off-by: Hendrik Leppkes <h.leppkes@gmail.com>
* h264: deMpegEncContextizeAnton Khirnov2013-02-151-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | Most of the changes are just trivial are just trivial replacements of fields from MpegEncContext with equivalent fields in H264Context. Everything in h264* other than h264.c are those trivial changes. The nontrivial parts are: 1) extracting a simplified version of the frame management code from mpegvideo.c. We don't need last/next_picture anymore, since h264 uses its own more complex system already and those were set only to appease the mpegvideo parts. 2) some tables that need to be allocated/freed in appropriate places. 3) hwaccels -- mostly trivial replacements. for dxva, the draw_horiz_band() call is moved from ff_dxva2_common_end_frame() to per-codec end_frame() callbacks, because it's now different for h264 and MpegEncContext-based decoders. 4) svq3 -- it does not use h264 complex reference system, so I just added some very simplistic frame management instead and dropped the use of ff_h264_frame_start(). Because of this I also had to move some initialization code to svq3. Additional fixes for chroma format and bit depth changes by Janne Grunau <janne-libav@jannau.net> Signed-off-by: Anton Khirnov <anton@khirnov.net>
* dxva2: include dxva.h if foundRonald S. Bultje2012-06-271-0/+7
| | | | | | | | Apparently, some build environments require dxva.h even for dxva2, while others lack this header entirely. Including it conditionally allows building in both cases. Signed-off-by: Martin Storsjö <martin@martin.st>
* Replace FFmpeg with Libav in licence headersMans Rullgard2011-03-191-4/+4
| | | | Signed-off-by: Mans Rullgard <mans@mansr.com>
* dxva2: define required feature selection macrosKyle2011-02-251-0/+2
| | | | Signed-off-by: Mans Rullgard <mans@mansr.com>
* Moved reusable functions from dxva2_h264.c to dxva2.cLaurent Aimar2010-01-231-0/+48
Originally committed as revision 21407 to svn://svn.ffmpeg.org/ffmpeg/trunk
OpenPOWER on IntegriCloud