summaryrefslogtreecommitdiffstats
path: root/libavcodec/qsv_internal.h
Commit message (Collapse)AuthorAgeFilesLines
* qsv: adding Multi Frame Encode supportMaxym Dmytrychenko2018-04-081-0/+4
| | | | | | | | | | | | | | | | 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/+3
| | | | | | | | | | | | | 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>
* qsv: Add ability to create a session from a deviceMark Thompson2017-04-021-3/+6
|
* qsvdec: Pass the correct profile to libmfxMark Thompson2016-11-141-0/+1
| | | | | | | | | 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-1/+12
| | | | | | | 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-2/+8
| | | | | | | 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>
* qsv{dec,enc}: always use an internal mfxFrameSurface1Anton Khirnov2016-11-071-3/+2
| | | | | | | | For encoding, this avoids modifying the input surface, which we are not allowed to do. This will also be useful in the following commits. Signed-off-by: Maxym Dmytrychenko <maxym.dmytrychenko@intel.com>
* qsvenc: print warnings from encode/initAnton Khirnov2016-07-221-0/+3
|
* qsv: print more complete error messagesAnton Khirnov2016-07-221-1/+4
| | | | Include the libmfx error code and its description
* qsvdec: make ff_qsv_map_pixfmt() return a MFX fourcc as wellAnton Khirnov2016-07-031-0/+2
| | | | | | | Stop hardcoding NV12. Also, move this function to the shared code, it will be used by the encoder as well.
* qsvdec: support getting the session from an AVHWFramesContextAnton Khirnov2016-06-211-0/+11
|
* qsv: add a missing #includeAnton Khirnov2016-02-181-0/+2
| | | | Needed for enum AVCodecID
* qsvdec: properly handle asynchronous decodingAnton Khirnov2015-07-191-0/+2
| | | | Wait for async_depth frames before syncing.
* lavc: add Intel libmfx-based HEVC encoderAnton Khirnov2015-07-081-1/+6
|
* lavc: add Intel libmfx-based H.264 encoderAnton Khirnov2015-03-271-0/+13
|
* qsvdec: split off some code that will be shared with the encoderAnton Khirnov2015-03-271-0/+38
|
* qsv: rename to qsvdecAnton Khirnov2015-03-271-86/+0
| | | | This is to avoid conflicts with the upcoming QSV encoding support.
* lavc: add an Intel libmfx-based H.264 decoderAnton Khirnov2015-02-191-0/+86
Based on the code by Luca Barbato <lu_zero@gentoo.org> and Yukinori Yamazoe <drocon11@gmail.com>.
OpenPOWER on IntegriCloud