summaryrefslogtreecommitdiff
path: root/libavcodec/qsv.c
Commit message (Collapse)AuthorAge
* avcodec/qsv: Fix leak of options on errorAndreas Rheinhardt2020-10-05
| | | | Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
* lavc/qsvdec: Add QSV AV1 decoderHaihao Xiang2020-09-26
| | | | | | | AV1 decoder is supported on Tiger Lake+ platforms since libmfx 1.34 Signed-off-by: Haihao Xiang <haihao.xiang@intel.com> Signed-off-by: Zhong Li <zhongli_dev@126.com>
* lavc/qsvenc: add encode support for HEVC 4:2:2 8-bit and 10-bitLinjie Fu2020-05-18
| | | | | | | | | Enables HEVC Range Extension encoding support (Linux) for 4:2:2 8/10 bit on ICL+ (gen11 +) platform. Restricted to linux only for now. Signed-off-by: Linjie Fu <linjie.fu@intel.com>
* lavc/qsvdec: add decode support for HEVC 4:2:2 8-bit and 10-bitLinjie Fu2020-05-18
| | | | | | | | | Enables HEVC Range Extension decoding support (Linux) for 4:2:2 8/10 bit on ICL+ (gen11 +) platform. Restricted to linux only for now. Signed-off-by: Linjie Fu <linjie.fu@intel.com>
* lavc/qsv: remove the unused funtion ff_qsv_profile_to_mfx()Zhong Li2019-12-29
| | | | Signed-off-by: Zhong Li <zhongli_dev@126.com>
* lavc/qsvdec: Add GPU-accelerated memory copy supportLinjie Fu2019-10-09
| | | | | | | | | | | | | | | | GPU copy enables or disables GPU accelerated copying between video and system memory. This may lead to a notable performance improvement. Memory must be sequent and aligned with 128x64. CMD: ffmpeg -init_hw_device qsv=hw -filter_hw_device hw -c:v h264_qsv -gpu_copy on -i input.h264 -f null - or: ffmpeg -c:v h264_qsv -gpu_copy on -i input.h264 -f null - Signed-off-by: Linjie Fu <linjie.fu@intel.com> Signed-off-by: ChaoX A Liu <chaox.a.liu@intel.com> Signed-off-by: Zhong Li <zhong.li@intel.com>
* lavc/qsv: remove vaapi device free functionZhong Li2019-10-09
| | | | | | It is not needed since av_buffer_unref() will call it internally Signed-off-by: Zhong Li <zhong.li@intel.com>
* lavc/qsv: fix a memory leak in ff_qsv_set_display_handle()Zhong Li2019-10-08
| | | | | Reported-by: Linjie Fu <linjie.fu@intel.com> Signed-off-by: Zhong Li <zhong.li@intel.com>
* lavc/qsv: add memory type messageZhong Li2019-09-26
| | | | Signed-off-by: Zhong Li <zhong.li@intel.com>
* lavc/qsv: Fix MSDK initialization failure in system memory modeZhong Li2019-09-26
| | | | | | | | | | | | MSDK does not create internal acceleration device on Linux, So MFXVideoCORE_SetHandle() is necessary. It has been added for ff_qsv_init_session_device(). But missed for ff_qsv_init_internal_session() due to commit 1f26a23 overwrited commit db89f45 Fix #7030 Signed-off-by: Zhong Li <zhong.li@intel.com>
* lavc/qsvdec: Add VP9 decoder supportZhong Li2019-08-20
| | | | | | VP9 decoder is support on Intel kabyLake+ platforms with MSDK Version 1.19+ Signed-off-by: Zhong Li <zhong.li@intel.com>
* lavc/qsv: make function qsv_map_fourcc() can be called externallyZhong Li2019-08-20
| | | | Signed-off-by: Zhong Li <zhong.li@intel.com>
* lavc/qsvdec: add function ff_qsv_map_picstruct()Zhong Li2019-08-20
| | | | Signed-off-by: Zhong Li <zhong.li@intel.com>
* lavc/qsv: extactly map profileZhong Li2019-05-07
| | | | | | | | | | Currently profile mapping is hard-coded, and not flexible to do extactly map (E.g: libmfx treats H264 constrained baseline to be baseline profile). vaapi profile mapping funtion provides a better soultion than current qsv mapping. Signed-off-by: Zhong Li <zhong.li@intel.com>
* lavc/qsvdec: fix hevc level incorrectly mapZhong Li2019-05-07
| | | | | | libmfx hevc level defination is same as h264, not level_idc of SPEC. Signed-off-by: Zhong Li <zhong.li@intel.com>
* lavc/qsv: handle MFX_FRAMETYPE_UNKNOWN caseZhong Li2018-07-12
| | | | Signed-off-by: Zhong Li <zhong.li@intel.com>
* lavc/qsv: suppress code scan complainZhong Li2018-06-13
| | | | Suppress the complain "variables 'type' is used but maybe uninitialized".
* Merge commit 'cca5e4f040971db6de0bfe6968f00c021d8a9c42'James Almer2018-04-13
|\ | | | | | | | | | | | | * commit 'cca5e4f040971db6de0bfe6968f00c021d8a9c42': qsv: adding Multi Frame Encode support Merged-by: James Almer <jamrial@gmail.com>
| * qsv: adding Multi Frame Encode supportMaxym Dmytrychenko2018-04-08
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Starting from API 1.25 helps to improve performance of the simultaneous encode, 1:N scenario, like: ./avconv -y -hwaccel qsv -c:v h264_qsv -r 30000/1001 -i ~/bbb_sunflower_1080p_60fps_normal.mp4 -vframes 600 -an \ -filter_complex "split=2[s1][s2]; [s1]scale_qsv=1280:720[o1]; [s2]scale_qsv=960:540[o2]" \ -map [o1] -c:v h264_qsv -b:v 3200k -minrate 3200k -maxrate 3200k -f rawvideo /tmp/3200a.264 \ -map [o2] -c:v h264_qsv -b:v 1750k -minrate 1750k -maxrate 1750k -f rawvideo /tmp/1750a.264 Signed-off-by: Maxym Dmytrychenko <maxim.d33@gmail.com>
* | Merge commit '52ed83fa1a7f5170447eff6fad0b6c57119596e9'James Almer2018-04-13
|\| | | | | | | | | | | | | * commit '52ed83fa1a7f5170447eff6fad0b6c57119596e9': lavc/qsvdec: expose frame pic_type and key_frame Merged-by: James Almer <jamrial@gmail.com>
| * lavc/qsvdec: expose frame pic_type and key_frameZhong Li2018-04-08
| | | | | | | | | | | | | | | | | | | | | | | | | | Currently pict_type and key_frame are unset. Add an extra param to fetch the picture type from qsv decoder The judgement “key frame is equal to IDR frame” only suitable for H264. For HEVC, all IRAP frames are key frames, and other codecs have no IDR frame. Signed-off-by: ChaoX A Liu <chaox.a.liu@intel.com> Signed-off-by: Zhong Li <zhong.li@intel.com> Signed-off-by: Maxym Dmytrychenko <maxim.d33@gmail.com>
* | Merge commit '6829a079444e10818a847e153121fb458cc5c0a8'James Almer2018-02-11
|\| | | | | | | | | | | | | * commit '6829a079444e10818a847e153121fb458cc5c0a8': qsvdec: Relax the surface vs coded dimension check Merged-by: James Almer <jamrial@gmail.com>
| * qsvdec: Relax the surface vs coded dimension checkZhong Li2018-01-26
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Fix a common vp8 decoding failure. Many vp8 clips cannot decode if hw_frames_ctx is enabled, reporting "Error during QSV decoding.: incompatible video parameters (-14)". It is due to mfx.FrameInfo.Width/Height not matching coded_w/coded_h. See: avconv -hwaccel qsv -init_hw_device qsv -c:v vp8_qsv -i vp8-test-vectors-r1/vp80-00-comprehensive-001.ivf -vf "hwdownload,format=nv12" -pix_fmt yuv420p -f md5 - Signed-off-by: Zhong Li <zhong.li@intel.com> Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
* | Merge commit 'ea25ccd1b2a980df8d43cc1f86a23e3c094090a6'James Almer2017-11-11
|\| | | | | | | | | | | | | * commit 'ea25ccd1b2a980df8d43cc1f86a23e3c094090a6': qsv: Join the derived session to the parent Merged-by: James Almer <jamrial@gmail.com>
| * qsv: Join the derived session to the parentLuca Barbato2017-09-27
| | | | | | | | | | Should improve the performance on multiple transcoding from a single source.
* | Merge commit '2fd6e7d077f590e4d7195356f9baeb271f8b9ae2'James Almer2017-11-08
|\| | | | | | | | | | | | | * commit '2fd6e7d077f590e4d7195356f9baeb271f8b9ae2': libavcodec/mjpeg_qsv: Add QSV MJPEG encoder Merged-by: James Almer <jamrial@gmail.com>
| * libavcodec/mjpeg_qsv: Add QSV MJPEG encoderHuang, Zhengxu2017-07-25
| | | | | | | | | | | | | | | | | | | | | | usage: -hwaccel qsv -c:v h264_qsv -i in -c:v mjpeg_qsv -global_quality 80 -f mjpeg out Signed-off-by: ChaoX A Liu <chaox.a.liu@gmail.com> Signed-off-by: Zhengxu Huang <zhengxu.maxwell@gmail.com> Signed-off-by: Andrew Zhang <huazh407@gmail.com Signed-off-by: Maxym Dmytrychenko <maxim.d33@gmail.com>
| * qsv: Add ability to create a session from a deviceMark Thompson2017-04-02
| |
* | Merge commit '984736dd9e5b50987a5910e22495304e4a6d975c'James Almer2017-10-03
|\| | | | | | | | | | | | | * commit '984736dd9e5b50987a5910e22495304e4a6d975c': lavc: make sure not to return EAGAIN from codecs Merged-by: James Almer <jamrial@gmail.com>
| * lavc: make sure not to return EAGAIN from codecsAnton Khirnov2017-02-25
| | | | | | | | | | | | This error is treated specially by the API. CC: libav-stable@libav.org
* | qsv: Add ability to create a session from a deviceMark Thompson2017-06-14
| | | | | | | | (cherry picked from commit 4936a48b1e6fc2147599541f8b25f43a8a9d1f16)
* | Merge commit '715b8243460836fb7dd15bf7e41668e773beb276'Clément Bœsch2017-04-01
|\| | | | | | | | | | | | | * commit '715b8243460836fb7dd15bf7e41668e773beb276': qsv: Drop some unused variables Merged-by: Clément Bœsch <u@pkh.me>
| * qsv: Drop some unused variablesDiego Biurrun2016-11-17
| |
* | Merge commit 'e0b164576f7467b7b1127c18175e215dc1df011f'Clément Bœsch2017-04-01
|\| | | | | | | | | | | | | * commit 'e0b164576f7467b7b1127c18175e215dc1df011f': qsv: Add VP8 decoder Merged-by: Clément Bœsch <u@pkh.me>
| * qsv: Add VP8 decoderMark Thompson2016-11-14
| |
| * qsvdec: Pass the correct profile to libmfxMark Thompson2016-11-14
| | | | | | | | | | | | | | | | | | This was correct for H.26[45], because libmfx uses the same values derived from profile_idc and the constraint_set flags, but it is wrong for other codecs. Also avoid passing FF_LEVEL_UNKNOWN (-99) as the level, as this is certainly invalid.
* | Merge commit '4ab61cd983b539749bd621ea271624ddb5196a8e'Mark Thompson2017-03-30
|\| | | | | | | | | | | | | * commit '4ab61cd983b539749bd621ea271624ddb5196a8e': qsv{enc,dec}: extend the internal frame allocator Merged-by: Mark Thompson <sw@jkqxz.net>
| * qsv{enc,dec}: extend the internal frame allocatorAnton Khirnov2016-11-07
| | | | | | | | | | | | | | Handle the internal frame requests, which is required by the HEVC encoding plugin. Signed-off-by: Maxym Dmytrychenko <maxym.dmytrychenko@intel.com>
* | Merge commit '00aeedd84105a17f414185bd33ecadebeddb3a27'Mark Thompson2017-03-30
|\| | | | | | | | | | | | | * commit '00aeedd84105a17f414185bd33ecadebeddb3a27': qsv{dec,enc}: use a struct as a memory id with internal memory allocator Merged-by: Mark Thompson <sw@jkqxz.net>
| * qsv{dec,enc}: use a struct as a memory id with internal memory allocatorAnton Khirnov2016-11-07
| | | | | | | | | | | | | | This will allow implementing the allocator more fully, which is needed by the HEVC encoder plugin with video memory input. Signed-off-by: Maxym Dmytrychenko <maxym.dmytrychenko@intel.com>
* | Merge commit '8e07c22e508b349d145b9f142aa3ee8b3ce1d3a4'Mark Thompson2017-03-12
|\| | | | | | | | | | | | | * commit '8e07c22e508b349d145b9f142aa3ee8b3ce1d3a4': qsvenc: print warnings from encode/init Merged-by: Mark Thompson <sw@jkqxz.net>
| * qsvenc: print warnings from encode/initAnton Khirnov2016-07-22
| |
* | Merge commit '95414eb2dc63a6f934275b4ed33dedd4369f2c49'Mark Thompson2017-03-12
|\| | | | | | | | | | | | | * commit '95414eb2dc63a6f934275b4ed33dedd4369f2c49': qsv: print more complete error messages Merged-by: Mark Thompson <sw@jkqxz.net>
| * qsv: print more complete error messagesAnton Khirnov2016-07-22
| | | | | | | | Include the libmfx error code and its description
* | Merge commit '21962261c74aed4df00ae8348a5e2d1ecb67c52d'Mark Thompson2017-03-12
|\| | | | | | | | | | | | | * commit '21962261c74aed4df00ae8348a5e2d1ecb67c52d': qsv: handle the semi-packed formats in map_fourcc as well Merged-by: Mark Thompson <sw@jkqxz.net>
| * qsv: handle the semi-packed formats in map_fourcc as wellAnton Khirnov2016-07-22
| | | | | | | | | | This will allow using this function for encoding as well, where the input format is already the semi-packed version.
* | Merge commit '92736c74fb1633e36f7134a880422a9b7db14d3f'Hendrik Leppkes2016-11-14
|\| | | | | | | | | | | | | * commit '92736c74fb1633e36f7134a880422a9b7db14d3f': qsvdec: add support for P010 (10-bit 420) decoding Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
| * qsvdec: add support for P010 (10-bit 420) decodingAnton Khirnov2016-07-03
| |
* | Merge commit '536bb17e9659c5ed7576a218d4085cdd6d5742fa'Hendrik Leppkes2016-11-14
|\| | | | | | | | | | | | | * commit '536bb17e9659c5ed7576a218d4085cdd6d5742fa': qsvdec: make ff_qsv_map_pixfmt() return a MFX fourcc as well Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
| * qsvdec: make ff_qsv_map_pixfmt() return a MFX fourcc as wellAnton Khirnov2016-07-03
| | | | | | | | | | | | | | Stop hardcoding NV12. Also, move this function to the shared code, it will be used by the encoder as well.