summaryrefslogtreecommitdiff
path: root/libavcodec/vaapi_hevc.c
Commit message (Collapse)AuthorAge
* avcodec/defs: Add AV_PROFILE_* defines, deprecate FF_PROFILE_* definesAndreas Rheinhardt2023-09-07
| | | | | | | | | These defines are also used in other contexts than just AVCodecContext ones, e.g. in libavformat. Furthermore, given that these defines are public, the AV-prefix is the right one, so deprecate (and not just move) the FF-macros. Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* avcodec/avcodec: Add FFHWAccel, hide internals of AVHWAccelAndreas Rheinhardt2023-08-07
| | | | | | | | | This commit is the AVHWAccel analogue of commit 20f972701806be20a77f808db332d9489343bb78: It moves the private fields of AVHWAccel to a new struct FFHWAccel extending AVHWAccel in an internal header (namely hwaccel_internal.h). Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* avcodec/hwconfig: Move HWACCEL_CAP_* to a new headerAndreas Rheinhardt2023-08-07
| | | | | | | | | | | | | | libavcodec/hwconfig.h currently contains HWACCEL_CAP_* flags as well as the definition of AVCodecHWConfigInternal and some macros to create them. The users of these two are nearly disjoint: The flags are used by files providing AVHWAccels whereas AVCodecHWConfigInternal is used by files providing codecs (for FFCodec.hw_configs). This patch therefore moves these flags to a new file hwaccel_internal.h. Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* avcodec: use the new AVFrame interlace flags in all decoders and encodersJames Almer2023-05-04
| | | | Signed-off-by: James Almer <jamrial@gmail.com>
* avcodec/hevc_ps: use get_ue_golomb() for some SPS Screen Content Coding ↵James Almer2023-04-30
| | | | | | | | | extension fields Also remove the _minus1 part of the name to be in line with the rest of the decoder. Signed-off-by: James Almer <jamrial@gmail.com>
* lavc/vaapi_hevc: Remove duplicate codeFei Wang2023-03-27
| | | | Signed-off-by: Fei Wang <fei.w.wang@intel.com>
* lavc/vaapi_hevc: Loose the restricts for SCC decodingLinjie Fu2023-02-27
| | | | | | | Allow current picture as the reference picture. Signed-off-by: Linjie Fu <linjie.justin.fu@gmail.com> Signed-off-by: Fei Wang <fei.w.wang@intel.com>
* lavc/vaapi_hevc: Set correct rps type for sccLinjie Fu2023-02-27
| | | | | | | According to 8.1.3 and 8.3.2. Signed-off-by: Linjie Fu <linjie.justin.fu@gmail.com> Signed-off-by: Fei Wang <fei.w.wang@intel.com>
* lavc/vaapi_hevc: Add vaapi profile parse support for SCCLinjie Fu2023-02-27
| | | | | | | | | Note that Screen-Extended Main 4:4:4 and 4:4:4 10 supports chroma_format_idc from 0, 1 or 3, hence both 420 and 444 are supported. Signed-off-by: Linjie Fu <linjie.justin.fu@gmail.com> Signed-off-by: Fei Wang <fei.w.wang@intel.com>
* lavc/vaapi_hevc: Pass SCC parameters Through VA-APILinjie Fu2023-02-27
| | | | | | | Including sps/pps/slice parameters. Signed-off-by: Linjie Fu <linjie.justin.fu@gmail.com> Signed-off-by: Fei Wang <fei.w.wang@intel.com>
* lavc/vaapi: Add support for remaining 10/12bit profilesPhilip Langdale2022-09-03
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | With the necessary pixel formats defined, we can now expose support for the remaining 10/12bit combinations that VAAPI can handle. Specifically, we are adding support for: * HEVC ** 12bit 420 ** 10bit 422 ** 12bit 422 ** 10bit 444 ** 12bit 444 * VP9 ** 10bit 444 ** 12bit 444 These obviously require actual hardware support to be usable, but where that exists, it is now enabled. Note that unlike YUVA/YUVX, the Intel driver does not formally expose support for the alphaless formats XV30 and XV360, and so we are implicitly discarding the alpha from the decoder and passing undefined values for the alpha to the encoder. If a future encoder iteration was to actually do something with the alpha bits, we would need to use a formal alpha capable format or the encoder would need to explicitly accept the alphaless format.
* lavc/vaapi_hevc: fill rext luma/chroma offset in the right wayXu Guangxin2022-06-24
| | | | | | | | | For range extension, the luma/chroma offset is larger than 8 bits, we need fill the 16 bits version. Signed-off-by: Xu Guangxin <guangxin.xu@intel.com> Signed-off-by: Linjie Fu <linjie.justin.fu@gmail.com> Signed-off-by: Fei Wang <fei.w.wang@intel.com>
* lavc/vaapi_hevc: add missing max_8bit_constraint_flagLinjie Fu2020-05-27
| | | | | | This is accidentally missed while rebasing. Signed-off-by: Linjie Fu <linjie.fu@intel.com>
* lavc: Rename hwaccel.h to hwconfig.hMark Thompson2020-04-26
| | | | | This already applied to decoders as well as hwaccels, and adding encoder support was going to make the name even more inaccurate.
* lavc/vaapi_hevc: add function to find exact va_profile for REXTLinjie Fu2020-02-24
| | | | | | | | | | | Add vaapi_parse_rext_profile and use profile constraint flags to determine the exact va_profile for HEVC_REXT. If profile mismatch is allowed, select Main profile by default. Add build object in Makefile for h265_profile_level dependency. Signed-off-by: Linjie Fu <linjie.fu@intel.com>
* lavc/vaapi_hevc: extend parameter buffer to ParameterBufferHEVCExtensionLinjie Fu2020-02-24
| | | | | | | | | Extend ParameterBufferHEVC to ParameterBufferHEVCExtension for both VAPicture and VASlice. Pass Range Extension flags to support the decode for HEVC REXT. Signed-off-by: Linjie Fu <linjie.fu@intel.com>
* lavc/vaapi_hevc: Do not initialize fields twice.Carl Eugen Hoyos2019-03-28
| | | | | | | | | | | | | | | | | Fixes the following compilation warnings: libavcodec/vaapi_hevc.c:155:21: warning: initializer overrides prior initialization of this subobject [-Winitializer-overrides] .pic_fields.bits = { ~^~~~ libavcodec/vaapi_hevc.c:125:57: note: previous initialization is here .pic_fields.value = 0, ^ libavcodec/vaapi_hevc.c:175:31: warning: initializer overrides prior initialization of this subobject [-Winitializer-overrides] .slice_parsing_fields.bits = { ~^~~~ libavcodec/vaapi_hevc.c:126:57: note: previous initialization is here .slice_parsing_fields.value = 0, Reviewed-by: Mark Thompson
* lavc: Mark all AVHWAccel structures as constMark Thompson2017-11-26
|
* 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>
| * hevcdec: add a VAAPI hwaccelAnton Khirnov2016-12-19
| | | | | Partially based on a patch by Timo Rothenpieler <timo@rothenpieler.org>. Additional scaling list handling fix by Jun Zhao <mypopydev@gmail.com>.
* Merge commit '0bfdcce4d42a6e654c00ea5f9237dc987626457f'James Almer2017-03-23
| | | | | | | * commit '0bfdcce4d42a6e654c00ea5f9237dc987626457f': hevc: move the SliceType enum to hevc.h Merged-by: James Almer <jamrial@gmail.com>
* Merge commit '4abe3b049d987420eb891f74a35af2cebbf52144'Clément Bœsch2017-03-23
| | | | | | | * commit '4abe3b049d987420eb891f74a35af2cebbf52144': hevc: rename hevc.[ch] to hevcdec.[ch] Merged-by: Clément Bœsch <u@pkh.me>
* vaapi_hevc: Mark as async-safeMark Thompson2017-03-22
|
* vaapi_hevc: Convert to use the new VAAPI hwaccel codeAnton Khirnov2017-01-17
| | | | | (cherry picked from commit ea8b730d8e67152107d7fcdd5590bbb51ec236b1) Signed-off-by: Mark Thompson <sw@jkqxz.net>
* lavc/vaapi_hevc: fix scaling list duplicate transfer issue.Jun Zhao2016-11-23
| | | | | | | | | | | | scaling list is already transfered to raster scan during head parsing, so no need to transfer it again. And after this fix, FATE test SLIST_A_Sony_4/SLIST_B_Sony_8/ SLIST_C_Sony_3/SLIST_D_Sony_9 will pass in i965/Skylake. Signed-off-by: Wang, Yi A <yi.a.wamg@intel.com> Signed-off-by: Jun Zhao <jun.zhao@intel.com> Signed-off-by: Mark Thompson <sw@jkqxz.net>
* doc: fix spelling errorsAndreas Cadhalpun2015-10-09
| | | | | Reviewed-by: Lou Logan <lou@lrcd.com> Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
* vaapi: Add hevc hwaccel supportTimo Rothenpieler2015-08-27
Signed-off-by: Timo Rothenpieler <timo@rothenpieler.org>