summaryrefslogtreecommitdiff
path: root/libavcodec/dxva2_internal.h
Commit message (Collapse)AuthorAge
* lavc/dxva2_internal: Cast the dxva2 and d3d11 decoders and cfgs to (void *).Carl Eugen Hoyos2018-04-18
| | | | | | | | Silences several warnings: libavcodec/dxva2_internal.h:107:98: warning: pointer type mismatch in conditional expression libavcodec/dxva2_internal.h:109:94: warning: pointer type mismatch in conditional expression Reported-by: Reino Wijnsma
* Merge commit 'b46a77f19ddc4b2b5fa3187835ceb602a5244e24'James Almer2017-11-11
|\ | | | | | | | | | | | | | | | | * commit 'b46a77f19ddc4b2b5fa3187835ceb602a5244e24': lavc: external hardware frame pool initialization Includes the fix from e724bdfffbd3c27aac53d1f32f20f105f37caef0 Merged-by: James Almer <jamrial@gmail.com>
| * lavc: external hardware frame pool initializationwm42017-10-19
| | | | | | | | | | | | | | | | | | | | | | | | 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-08
| | | | | | | | | | | | | | | | | | | | 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-08
| | | | | | | | | | | | | | | | | | | | | | | | 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-12
| | | | | | | | | | | | | | We can pick the correct slice index directly from the ID3D11VideoDecoderOutputView casted from data[3]. Signed-off-by: Anton Khirnov <anton@khirnov.net>
* | dxva: add support for new dxva2 and d3d11 hwaccel APIswm42017-06-27
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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. Merges Libav commit f9e7a2f95a7194a8736cc1416a03a1a0155a3e9f. Also adds untested VP9 support. The check for DXVA2 COBJs is removed. Just update your MinGW to something newer than a 5 year old release. Signed-off-by: Diego Biurrun <diego@biurrun.de>
* | dxva: preparations for new hwaccel APIwm42017-06-27
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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. Merges Libav commit 4dec101acc393fbfe9a8ce0237b9efbae3f20139. Adds changes to vp9 over the Libav patch. Signed-off-by: Diego Biurrun <diego@biurrun.de>
* | Merge commit '0ac2d86c4758e1419934905b6c092910296aa16a'Clément Bœsch2017-05-05
|\| | | | | | | | | | | | | | | | | * commit '0ac2d86c4758e1419934905b6c092910296aa16a': dxva2: Factorize DXVA context validity test into a single macro This commit is (mostly) a noop, see 77742c75c5503c848447814a96f16abc6b9aa5f4 Merged-by: Clément Bœsch <cboesch@gopro.com>
| * dxva2: Factorize DXVA context validity test into a single macroSteve Lhomme2017-01-08
| | | | | | | | Signed-off-by: Diego Biurrun <diego@biurrun.de>
| * dxva2: Make ff_dxva2_get_surface() static and drop its name prefixSteve Lhomme2017-01-08
| | | | | | | | Signed-off-by: Diego Biurrun <diego@biurrun.de>
* | Merge commit '6aa4ba7131b6e8668e33430e18101a051fe492eb'Clément Bœsch2017-04-17
|\| | | | | | | | | | | | | * commit '6aa4ba7131b6e8668e33430e18101a051fe492eb': dxva2: Keep code shared between dxva2 and d3d11va under the correct #if Merged-by: Clément Bœsch <u@pkh.me>
| * dxva2: Keep code shared between dxva2 and d3d11va under the correct #ifDiego Biurrun2016-12-12
| | | | | | | | This partially reverts commit ac648bb835edd3f67bda2267d0e72e5e582eb5a1.
* | Merge commit 'ac648bb835edd3f67bda2267d0e72e5e582eb5a1'Clément Bœsch2017-04-17
|\| | | | | | | | | | | | | * commit 'ac648bb835edd3f67bda2267d0e72e5e582eb5a1': dxva2: Simplify some ifdefs Merged-by: Clément Bœsch <u@pkh.me>
| * dxva2: Simplify some ifdefsDiego Biurrun2016-12-11
| |
| * dxva2: Adjust multiple inclusion guard names to follow conventionDiego Biurrun2016-12-09
| |
| * d3d11va: Use the proper decoding slice indexSteve Lhomme2016-10-05
| | | | | | | | | | | | | | | | | | | | | | | | 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>
* | dxva2: allow an empty array of ID3D11VideoDecoderOutputViewSteve Lhomme2017-01-16
| | | | | | | | | | | | | | | | | | We can pick the correct slice index directly from the ID3D11VideoDecoderOutputView casted from data[3]. Also added myself as maintainer for DXVA2 and D3D11VA. Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* | dxva2: use a single macro to test if the DXVA context is validSteve Lhomme2017-01-16
| | | | | | | | Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* | dxva2: make ff_dxva2_get_surface() static and rename itSteve Lhomme2017-01-05
| | | | | | | | Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* | avcodec/d3d11va: use the proper slice indexSteve Lhomme2016-10-10
| | | | | | | | | | | | | | | | | | | | | | The slice index expected by D3D11VA is the one from the texture not from the array or texture/slices. In VLC the slices we provide the decoder don't start from 0 and thus pictures appear in bogus order. With possible crashes and corruptions when using an invalid index. Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* | all: Make header guard names consistentTimothy Gu2016-01-31
| |
* | Merge commit 'e60a6e7545dd6f5b25e3a65de9c6fdcc6e2e9d6b'Hendrik Leppkes2015-09-16
|\| | | | | | | | | | | | | * commit 'e60a6e7545dd6f5b25e3a65de9c6fdcc6e2e9d6b': mpegvideo: Drop mpegvideo.h where not needed Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
| * mpegvideo: Drop mpegvideo.h where not neededVittorio Giovara2015-09-13
| | | | | | | | Add necessary headers in .c files.
* | Merge commit '9b4b96c0dee90d260891ec765b28f6ca15594340'Michael Niedermayer2015-07-26
|\| | | | | | | | | | | | | | | | | | | | | * commit '9b4b96c0dee90d260891ec765b28f6ca15594340': force WINAPI_FAMILY to WINAPI_FAMILY_DESKTOP_APP to be able to use dxva.h Conflicts: libavcodec/dxva2_internal.h See: c5327df838396e7c43a56bdd141c0f01ba3edc94 Merged-by: Michael Niedermayer <michael@niedermayer.cc>
| * force WINAPI_FAMILY to WINAPI_FAMILY_DESKTOP_APP to be able to use dxva.hSteve Lhomme2015-07-26
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
* | force WINAPI_FAMILY to WINAPI_FAMILY_DESKTOP_APP to use DVXASteve Lhomme2015-07-26
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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: Michael Niedermayer <michael@niedermayer.cc>
* | Merge commit '28fa58cf5d939151108345d7ddddebbd51d9b684'Michael Niedermayer2015-06-01
|\| | | | | | | | | | | | | | | | | | | | | * commit '28fa58cf5d939151108345d7ddddebbd51d9b684': dxva2: Fix build when only D3D11 or DXVA2 is used Conflicts: libavcodec/dxva2_internal.h See: 94d07b314aa516284cc21ea720d4a305f881b6c2 Merged-by: Michael Niedermayer <michaelni@gmx.at>
| * dxva2: Fix build when only D3D11 or DXVA2 is usedSteve Lhomme2015-06-01
| | | | | | | | Signed-off-by: Martin Storsjö <martin@martin.st>
* | avcodec/dxva2: Fix build without D3D11Michael Niedermayer2015-05-25
| | | | | | | | Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* | Merge commit 'd8039ef8d221ea273aa4f1e62e5df21bf618c772'Michael Niedermayer2015-05-25
|\| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * commit 'd8039ef8d221ea273aa4f1e62e5df21bf618c772': D3D11va: add a Direct3D11 video decoder similar to DXVA2 Conflicts: Changelog configure libavcodec/Makefile libavcodec/allcodecs.c libavcodec/dxva2_vc1.c libavcodec/version.h libavutil/pixdesc.c libavutil/pixfmt.h libavutil/version.h Merged-by: Michael Niedermayer <michaelni@gmx.at>
| * D3D11va: add a Direct3D11 video decoder similar to DXVA2Steve Lhomme2015-05-25
| | | | | | | | Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
| * dxva2: Clean up definition of _WIN32_WINNTDiego Biurrun2014-09-01
| | | | | | | | | | | | 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-01
| | | | | | | | | | | | | | 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>
* | avcodec/dxva2: fix pointers after H264PictureMichael Niedermayer2014-03-17
| | | | | | | | Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* | dxva2: move _WIN32_WINNT handling to public headerMichael Niedermayer2013-02-22
| | | | | | | | | | | | | | This removes duplicate code Reviewed-by: James Almer <jamrial@gmail.com> Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* | Merge remote-tracking branch 'qatar/master'Michael Niedermayer2013-02-16
|\| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * qatar/master: h264: deMpegEncContextize Conflicts: libavcodec/dxva2_h264.c libavcodec/h264.c libavcodec/h264.h libavcodec/h264_cabac.c libavcodec/h264_cavlc.c libavcodec/h264_loopfilter.c libavcodec/h264_mb_template.c libavcodec/h264_parser.c libavcodec/h264_ps.c libavcodec/h264_refs.c libavcodec/h264_sei.c libavcodec/svq3.c Merged-by: Michael Niedermayer <michaelni@gmx.at>
| * h264: deMpegEncContextizeAnton Khirnov2013-02-15
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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: Prevent redefinition of _WIN32_WINNTJames Almer2013-02-08
| | | | | | | | | | | | | | Don't redefine _WIN32_WINNT when targeting Win7/8 Signed-off-by: James Almer <jamrial@gmail.com> Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* | Merge remote-tracking branch 'qatar/master'Michael Niedermayer2012-06-28
|\| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * qatar/master: mss1: validate number of changeable palette entries mss1: report palette changed when some additional colours were decoded x86: fft: replace call to memcpy by a loop udp: Support IGMPv3 source specific multicast and source blocking dxva2: include dxva.h if found libm: Provide fallback definitions for isnan() and isinf() tcp: Pass NULL as hostname to getaddrinfo if the string is empty tcp: Set AI_PASSIVE when the socket will be used for listening Conflicts: configure libavcodec/mss1.c libavformat/udp.c Merged-by: Michael Niedermayer <michaelni@gmx.at>
| * dxva2: include dxva.h if foundRonald S. Bultje2012-06-27
| | | | | | | | | | | | | | | | 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-19
| | | | | | | | Signed-off-by: Mans Rullgard <mans@mansr.com>
| * dxva2: define required feature selection macrosKyle2011-02-25
| | | | | | | | Signed-off-by: Mans Rullgard <mans@mansr.com>
* | dxva2: define required feature selection macrosKyle2011-02-26
|/ | | | | Signed-off-by: Mans Rullgard <mans@mansr.com> (cherry picked from commit 04973f8082c5a822112d2e42d535b7f3f59dccc0)
* Moved reusable functions from dxva2_h264.c to dxva2.cLaurent Aimar2010-01-23
Originally committed as revision 21407 to svn://svn.ffmpeg.org/ffmpeg/trunk