Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/FFmpeg/FFmpeg.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2017-11-12Merge commit 'b46a77f19ddc4b2b5fa3187835ceb602a5244e24'James Almer
* commit 'b46a77f19ddc4b2b5fa3187835ceb602a5244e24': lavc: external hardware frame pool initialization Includes the fix from e724bdfffbd3c27aac53d1f32f20f105f37caef0 Merged-by: James Almer <jamrial@gmail.com>
2017-10-19lavc: external hardware frame pool initializationwm4
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>
2017-07-22dxva: DXVA2_ModeHEVC_VLD_Main10 does not support Mainwm4
This mode apparently does not support decoding of HEVC Main (8 bit). With D3D11 and Intel drivers on Windows 10 I get green corruption, while using DXVA2_ModeHEVC_VLD_Main works. Signed-off-by: Anton Khirnov <anton@khirnov.net>
2017-07-10dxva: DXVA2_ModeHEVC_VLD_Main10 does not support Mainwm4
This mode apparently does not support decoding of HEVC Main (8 bit). With D3D11 and Intel drivers on Windows 10 I get green corruption, while using DXVA2_ModeHEVC_VLD_Main works.
2017-06-27dxva: verbose-log decoder GUID listwm4
Helpful for debugging. Merges Libav commit 068eaa534e7ddb2155e2830818d5c3f1069c68d8. Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2017-06-27dxva: support DXGI_FORMAT_420_OPAQUE decodingwm4
Some devices (some phones, apparently) will support only this opaque format. Of course this won't work with CLI, because copying data directly is not supported. Automatic frame allocation (setting AVCodecContext.hw_device_ctx) does not support this mode, even if it's the only supported mode. But since opaque surfaces are generally less useful, that's probably ok. Merges Libav commit 5030e3856c2126fb829edb828f5aae011d178eb4. Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2017-06-27dxva: fix some warningswm4
Some existed since forever, some are new. The cast in get_surface() is silly, but unless we change the av_log function signature, or all callers of ff_dxva2_get_surface_index(), it's needed to remove the const warning. Merges Libav commit 752ddb45569ffe278393cd853b70f18ae017219e. Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2017-06-27dxva: add declarative profile checkswm4
Make supported codec profiles part of each dxva_modes entry. Every DXVA2 mode is representative for a codec with a subset of supported profiles, so reflecting that in dxva_modes seems appropriate. In practice, this will more strictly check MPEG2 profiles, will stop relying on the surface format checks for selecting the correct HEVC profile, and remove the verbose messages for mismatching H264/HEVC profiles. Instead of the latter, it will now print the more nebulous "No decoder device for codec found" verbose message. This also respects AV_HWACCEL_FLAG_ALLOW_PROFILE_MISMATCH. Move the Main10 HEVC entry before the normal one to make this work better. Originally inspired by VLC's code. Merges Libav commit 70e5e7c02232d1e51c362d5572c567a9e2a8dcc2. Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2017-06-27dxva: add support for new dxva2 and d3d11 hwaccel APIswm4
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>
2017-06-27dxva: move d3d11 locking/unlocking to functionswm4
I want to make it non-mandatory to set a mutex in the D3D11 device context, and replacing it with user callbacks seems like the best solution. This is preparation for it. Also makes the code slightly more readable. Merges Libav commit 831cfe10b40414915fe7b6088158421fe02e2b2d. Signed-off-by: Diego Biurrun <diego@biurrun.de>
2017-06-27dxva: preparations for new hwaccel APIwm4
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>
2017-06-27dxva: verbose-log decoder GUID listwm4
Helpful for debugging. Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2017-06-27dxva: support DXGI_FORMAT_420_OPAQUE decodingwm4
Some devices (some phones, apparently) will support only this opaque format. Of course this won't work with CLI, because copying data directly is not supported. Automatic frame allocation (setting AVCodecContext.hw_device_ctx) does not support this mode, even if it's the only supported mode. But since opaque surfaces are generally less useful, that's probably ok. Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2017-06-27dxva: fix some warningswm4
Some existed since forever, some are new. The cast in get_surface() is silly, but unless we change the av_log function signature, or all callers of ff_dxva2_get_surface_index(), it's needed to remove the const warning. Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2017-06-27dxva: add declarative profile checkswm4
Make supported codec profiles part of each dxva_modes entry. Every DXVA2 mode is representative for a codec with a subset of supported profiles, so reflecting that in dxva_modes seems appropriate. In practice, this will more strictly check MPEG2 profiles, will stop relying on the surface format checks for selecting the correct HEVC profile, and remove the verbose messages for mismatching H264/HEVC profiles. Instead of the latter, it will now print the more nebulous "No decoder device for codec found" verbose message. This also respects AV_HWACCEL_FLAG_ALLOW_PROFILE_MISMATCH. Move the Main10 HEVC entry before the normal one to make this work better. Originally inspired by VLC's code. Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2017-06-08dxva: add support for new dxva2 and d3d11 hwaccel APIswm4
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>
2017-06-08dxva: move d3d11 locking/unlocking to functionswm4
I want to make it non-mandatory to set a mutex in the D3D11 device context, and replacing it with user callbacks seems like the best solution. This is preparation for it. Also makes the code slightly more readable. Signed-off-by: Diego Biurrun <diego@biurrun.de>
2017-06-08dxva: preparations for new hwaccel APIwm4
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>
2017-04-07Merge commit '3ee5f25d37315b27f0e2d47aa69fc445545ee2e3'Clément Bœsch
* commit '3ee5f25d37315b27f0e2d47aa69fc445545ee2e3': dxva2: Adjust printf length modifiers where appropriate Merged-by: Clément Bœsch <u@pkh.me>
2017-01-16dxva2: get the slice number directly from the surface in D3D11VASteve Lhomme
No need to loop through the known surfaces, we'll use the requested surface anyway. The loop is only done for DXVA2. Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2017-01-12dxva2: get the slice number directly from the surface in D3D11VASteve Lhomme
No need to loop through the known surfaces, we'll use the requested surface anyway. The loop is only done for DXVA2. Signed-off-by: Anton Khirnov <anton@khirnov.net>
2017-01-08dxva2: Make ff_dxva2_get_surface() static and drop its name prefixSteve Lhomme
Signed-off-by: Diego Biurrun <diego@biurrun.de>
2017-01-06dxva2: make ff_dxva2_get_surface() static and rename itSteve Lhomme
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-11-29dxva2: Adjust printf length modifiers where appropriateDiego Biurrun
2016-11-07dxva2: fix surface selection when compiled with both d3d11va and dxva2Hendrik Leppkes
Fixes a regression introduced in be630b1e08ebe8f766b1798accd6b8e5e096f5aa Signed-off-by: Anton Khirnov <anton@khirnov.net>
2016-10-20dxva2: fix surface selection when compiled with both d3d11va and dxva2Hendrik Leppkes
Fixes a regression introduced in 9b462a0b9
2016-10-10avcodec/d3d11va: use the proper slice indexSteve Lhomme
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>
2016-10-05d3d11va: Use the proper decoding slice indexSteve Lhomme
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>
2016-07-11d3d11va: don't keep the context lock while waiting for a frameSteve Lhomme
also fixes a deadlock found by Денис Кулаков <kudesnik33ra@gmail.com> Signed-off-by: Anton Khirnov <anton@khirnov.net>
2016-06-17d3d11va: don't keep the context lock while waiting for a frameSteve Lhomme
also fixes a deadlock found by Денис Кулаков <kudesnik33ra@gmail.com> Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-09-17Merge commit 'e3d4784eb31b3ea4a97f2d4c698a75fab9bf3d86'Hendrik Leppkes
* commit 'e3d4784eb31b3ea4a97f2d4c698a75fab9bf3d86': d3d11va: WindowsPhone requires a mutex around ID3D11VideoContext Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-09-17d3d11va: WindowsPhone requires a mutex around ID3D11VideoContextSteve Lhomme
2015-09-16Merge commit 'e60a6e7545dd6f5b25e3a65de9c6fdcc6e2e9d6b'Hendrik Leppkes
* commit 'e60a6e7545dd6f5b25e3a65de9c6fdcc6e2e9d6b': mpegvideo: Drop mpegvideo.h where not needed Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-09-13mpegvideo: Drop mpegvideo.h where not neededVittorio Giovara
Add necessary headers in .c files.
2015-06-02Merge commit '172b2cee17a3779c114ba065dd7b25dcf61e408f'Michael Niedermayer
* commit '172b2cee17a3779c114ba065dd7b25dcf61e408f': dxva2: Add ifdefs around structs that might not be available Conflicts: libavcodec/dxva2.c See: 94d07b314aa516284cc21ea720d4a305f881b6c2 Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-01dxva2: Add ifdefs around structs that might not be availableMartin Storsjö
Signed-off-by: Martin Storsjö <martin@martin.st>
2015-05-26avcodec/dxva2: Fix "may be used uninitialized" warningsMichael Niedermayer
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-25avcodec/dxva2: Fix build without D3D11Michael Niedermayer
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-25Merge commit 'd8039ef8d221ea273aa4f1e62e5df21bf618c772'Michael Niedermayer
* 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>
2015-05-25D3D11va: add a Direct3D11 video decoder similar to DXVA2Steve Lhomme
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2014-04-01dxva2: Directly use AVFramesMichael Niedermayer
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>
2014-03-17avcodec/dxva2: fix pointers after H264PictureMichael Niedermayer
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-21Merge commit 'ade4ecb42d2dacd18d04eb8df2afa8131e5ad653'Michael Niedermayer
* commit 'ade4ecb42d2dacd18d04eb8df2afa8131e5ad653': dxva2: Use correct printf format strings Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-21Merge commit '766df7ca89a2398e71182f5f2b46053e3aa9bd69'Michael Niedermayer
* commit '766df7ca89a2398e71182f5f2b46053e3aa9bd69': dxva2: Add missing #includes See: 9056d0c94af5c09478acf0e1bc129a9c539070f0 Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-21Merge remote-tracking branch 'qatar/master'Michael Niedermayer
* qatar/master: dxva2: Log errors verbosely Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-21Merge commit '5b2b23f2d69e05c5fcd1c933e383fe60e185574d'Michael Niedermayer
* commit '5b2b23f2d69e05c5fcd1c933e383fe60e185574d': dxva2: Retry IDirectXVideoDecoder_BeginFrame() This also adds a missig #include to prevent breaking building Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-21dxva2: Use correct printf format stringsDiego Biurrun
2014-01-21dxva2: Add missing #includesDiego Biurrun
2014-01-21dxva2: Log errors verboselySam Lantinga
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2014-01-21dxva2: Retry IDirectXVideoDecoder_BeginFrame()Sam Lantinga
If the function returns E_PENDING retry for a fixed number of times. Signed-off-by: Luca Barbato <lu_zero@gentoo.org>