summaryrefslogtreecommitdiffstats
path: root/libavcodec/qsv.c
Commit message (Collapse)AuthorAgeFilesLines
* qsv: adding Multi Frame Encode supportMaxym Dmytrychenko2018-04-081-4/+6
| | | | | | | | | | | | | | | | 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>
* lavc/qsvdec: expose frame pic_type and key_frameZhong Li2018-04-081-0/+24
| | | | | | | | | | | | | 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>
* qsvdec: Relax the surface vs coded dimension checkZhong Li2018-01-261-1/+1
| | | | | | | | | | | | | | | 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>
* qsv: Join the derived session to the parentLuca Barbato2017-09-271-0/+5
| | | | | Should improve the performance on multiple transcoding from a single source.
* libavcodec/mjpeg_qsv: Add QSV MJPEG encoderHuang, Zhengxu2017-07-251-0/+3
| | | | | | | | | | | 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-021-15/+34
|
* lavc: make sure not to return EAGAIN from codecsAnton Khirnov2017-02-251-3/+5
| | | | | | This error is treated specially by the API. CC: libav-stable@libav.org
* qsv: Drop some unused variablesDiego Biurrun2016-11-171-3/+0
|
* qsv: Add VP8 decoderMark Thompson2016-11-141-0/+8
|
* qsvdec: Pass the correct profile to libmfxMark Thompson2016-11-141-0/+16
| | | | | | | | | 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.
* qsv{enc,dec}: extend the internal frame allocatorAnton Khirnov2016-11-071-30/+238
| | | | | | | Handle the internal frame requests, which is required by the HEVC encoding plugin. Signed-off-by: Maxym Dmytrychenko <maxym.dmytrychenko@intel.com>
* qsv{dec,enc}: use a struct as a memory id with internal memory allocatorAnton Khirnov2016-11-071-3/+23
| | | | | | | 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>
* qsvenc: print warnings from encode/initAnton Khirnov2016-07-221-0/+10
|
* qsv: print more complete error messagesAnton Khirnov2016-07-221-55/+78
| | | | Include the libmfx error code and its description
* qsv: handle the semi-packed formats in map_fourcc as wellAnton Khirnov2016-07-221-0/+2
| | | | | This will allow using this function for encoding as well, where the input format is already the semi-packed version.
* qsvdec: add support for P010 (10-bit 420) decodingAnton Khirnov2016-07-031-0/+3
|
* qsvdec: make ff_qsv_map_pixfmt() return a MFX fourcc as wellAnton Khirnov2016-07-031-0/+12
| | | | | | | Stop hardcoding NV12. Also, move this function to the shared code, it will be used by the encoder as well.
* qsvenc: support getting the session from an AVHWFramesContextAnton Khirnov2016-06-211-1/+1
|
* qsvdec: support getting the session from an AVHWFramesContextAnton Khirnov2016-06-211-39/+201
|
* qsv: Fix loading multiple pluginsLuca Barbato2016-03-151-0/+2
| | | | av_get_token does not strip the trailing separator.
* qsv: Move down the implementation queryLuca Barbato2016-02-261-16/+16
| | | | | The plugin loaded may not match the general implementation capability wise.
* lavc: add Intel libmfx-based HEVC encoderAnton Khirnov2015-07-081-1/+50
|
* qsvdec: split off some code that will be shared with the encoderAnton Khirnov2015-03-271-0/+115
|
* qsv: rename to qsvdecAnton Khirnov2015-03-271-369/+0
| | | | This is to avoid conflicts with the upcoming QSV encoding support.
* qsv: Improve the log message of when initializing MFX_IMPL_HARDWARE{2, 3, 4}Yukinori Yamazoe2015-03-111-3/+10
| | | | Signed-off-by: Anton Khirnov <anton@khirnov.net>
* lavc: add an Intel libmfx-based H.264 decoderAnton Khirnov2015-02-191-0/+362
Based on the code by Luca Barbato <lu_zero@gentoo.org> and Yukinori Yamazoe <drocon11@gmail.com>.
OpenPOWER on IntegriCloud