summaryrefslogtreecommitdiff
path: root/libavcodec/qsvenc.c
Commit message (Collapse)AuthorAge
...
* | lavc/qsvenc: add quality status to side_dataZhong Li2018-08-22
| | | | | | | | | | | | | | | | Add fix a memory leak issue as James's comments. V2: use a local pict_type since coded_frame is deprecated. Signed-off-by: Zhong Li <zhong.li@intel.com>
* | lavc/qsvenc: expose qp of encoded framesZhong Li2018-08-07
| | | | | | | | | | | | | | Requirement from ticket #7254. Currently only H264 supported by MSDK. Signed-off-by: Zhong Li <zhong.li@intel.com>
* | 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 'deefca02c275ce4bc5ccbee690463ffef81a18b8'James Almer2018-03-29
|\| | | | | | | | | | | | | * commit 'deefca02c275ce4bc5ccbee690463ffef81a18b8': qsvenc: add the Access Unit Delimiter NAL Unit support Merged-by: James Almer <jamrial@gmail.com>
| * qsvenc: add the Access Unit Delimiter NAL Unit supportZhong Li2018-03-16
| | | | | | | | | | Signed-off-by: Zhong Li <zhong.li@intel.com> Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
* | Merge commit '3d6e76b953afd36e23ef8532b81aea58a6338931'James Almer2018-03-29
|\| | | | | | | | | | | | | * commit '3d6e76b953afd36e23ef8532b81aea58a6338931': qsvenc: Fix a typo of FrameRateExtD/FrameRateExtN Merged-by: James Almer <jamrial@gmail.com>
| * qsvenc: Fix a typo of FrameRateExtD/FrameRateExtNZhong Li2018-03-16
| | | | | | | | | | Signed-off-by: Zhong Li <zhong.li@intel.com> Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
* | Merge commit '2d6b3f3a9dce409ca51d70ef4b85c0593bb4b109'Mark Thompson2018-03-05
|\| | | | | | | | | | | | | * commit '2d6b3f3a9dce409ca51d70ef4b85c0593bb4b109': qsvenc: Provide a detailed error message if the parameters are invalid Merged-by: Mark Thompson <sw@jkqxz.net>
| * qsvenc: Provide a detailed error message if the parameters are invalidZhong Li2018-03-05
| | | | | | | | | | | | | | | | | | Currently it always shows "Selected ratecontrol mode is not supported by the QSV runtime. Choose a different mode", but sometimes it is not accurate. Signed-off-by: Zhong Li <zhong.li@intel.com> Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
* | Merge commit '8bb9824fcbc5a6ebf68391d70a2c4f03447990d2'Mark Thompson2018-02-12
|\| | | | | | | | | | | | | * commit '8bb9824fcbc5a6ebf68391d70a2c4f03447990d2': qsvenc: AVBR is not supported on non-windows OS Merged-by: Mark Thompson <sw@jkqxz.net>
| * qsvenc: AVBR is not supported on non-windows OSZhong Li2018-02-12
| | | | | | | | | | | | | | AVBR is supported from API 1.3 but only available for Windows Signed-off-by: Zhong Li <zhong.li@intel.com> Signed-off-by: Maxym Dmytrychenko <maxim.d33@gmail.com>
* | Merge commit '508378556631dc18d32247b4a4e35703758e1ca9'James Almer2017-12-14
|\| | | | | | | | | | | | | * commit '508378556631dc18d32247b4a4e35703758e1ca9': qsv: Support explicit lookahead downscaling Merged-by: James Almer <jamrial@gmail.com>
| * qsv: Support explicit lookahead downscalingLuca Barbato2017-12-12
| |
* | Merge commit '7c65a76b16bc3a44f1592acde2176f187a058797'James Almer2017-12-14
|\| | | | | | | | | | | | | * commit '7c65a76b16bc3a44f1592acde2176f187a058797': lavc/qsvenc: add error messeage if ICQ unsupported. Merged-by: James Almer <jamrial@gmail.com>
| * lavc/qsvenc: add error messeage if ICQ unsupported.Li, Zhong2017-12-12
| | | | | | | | | | Signed-off-by: Zhong Li <zhong.li@intel.com> Signed-off-by: Maxym Dmytrychenko <maxim.d33@gmail.com>
* | Merge commit '6ff29343b01923e9b125fe7404ac8701cdfb1fe5'James Almer2017-12-14
|\| | | | | | | | | | | | | * commit '6ff29343b01923e9b125fe7404ac8701cdfb1fe5': lavc/qsvenc: set HRD buffer size Merged-by: James Almer <jamrial@gmail.com>
| * lavc/qsvenc: set HRD buffer sizeLi, Zhong2017-12-12
| | | | | | | | | | | | | | | | | | | | Hypothetical Reference Decoding (HRD) model assumes that data flows into a buffer of the fixed size BufferSizeInKB with a constant bitrate. Smaller BufferSizeInKB means smaller frame size variations, but more difficult to maintain HRD. Signed-off-by: Zhong Li <zhong.li@intel.com> Signed-off-by: Maxym Dmytrychenko <maxim.d33@gmail.com>
* | Merge commit 'b843b343d8a3210ae37a2342b1904a5bd1e5fc6e'James Almer2017-11-29
|\| | | | | | | | | | | | | * commit 'b843b343d8a3210ae37a2342b1904a5bd1e5fc6e': qsvenc: cavlc option is only available for h264 Merged-by: James Almer <jamrial@gmail.com>
| * qsvenc: cavlc option is only available for h264Li, Zhong2017-11-24
| | | | | | | | | | | | | | | | Moving option definition to h264 implementation and fixing command line defaults in order to properly respect cavlc input value Signed-off-by: Zhong Li <zhong.li@intel.com> Signed-off-by: Maxym Dmytrychenko <maxim.d33@gmail.com>
* | 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>
| * qsvenc: Make sure the interlaced encoding worksAaron Levinson2017-04-23
| | | | | | | | | | | | | | And reduce the vertical alignment constraint when possible to reduce the memory usage. Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
| * qsvenc: Use MFXVideoENCODE_Query() to update the parametersAaron Levinson2017-04-23
| | | | | | | | | | | | | | | | Fill out the default/unset parameters with ones actually in use. Matches the current MediaSDK example code. Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
| * qsvenc: Allow use of hw_device_ctx to make the internal sessionMark Thompson2017-04-02
| |
| * qsv: Add ability to create a session from a deviceMark Thompson2017-04-02
| |
| * qsv: Set the correct range for la_depthLuca Barbato2017-01-13
| | | | | | | | Setting an invalid range for it makes the encoder behave inconsistently.
* | qsvenc: Allow use of hw_device_ctx to make the internal sessionMark Thompson2017-06-14
| | | | | | | | (cherry picked from commit 3d197514e613ccd9eab43180c0a7c8b09a307606)
* | qsv: Add ability to create a session from a deviceMark Thompson2017-06-14
| | | | | | | | (cherry picked from commit 4936a48b1e6fc2147599541f8b25f43a8a9d1f16)
* | qsvenc: Make sure the interlaced encoding worksAaron Levinson2017-05-09
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Purpose: qsvenc: make sure that interlaced encoding works. Also, reduce the vertical alignment constraint when possible to reduce memory usage. Note: Most of this code used to be present in ffmpeg and was eliminated in revision 1f26a23 on Oct. 31, 2016 (qsv: Merge libav implementation, at https://github.com/FFmpeg/FFmpeg/commit/1f26a231bb065276cd80ce02957c759f3197 edfa#diff-7d84a34d58597bb7aa4b8239dca1f9f8). Already applied to libav. Reviewed-by: Luca Barbato <lu_zero@gentoo.org> (cherry picked from commit 8fd8f91e47f33cd82371a97ac81afc476144964f) Signed-off-by: Mark Thompson <sw@jkqxz.net> Signed-off-by: Aaron Levinson <alevinsn@aracnet.com> Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* | qsvenc: Use MFXVideoENCODE_Query() to update the parametersAaron Levinson2017-05-09
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Purpose: Fill out the default/unset parameters with ones actually in use. Note: Matches the current MediaSDK example code. This code used to be present in ffmpeg and was eliminated in revision 1f26a23 on Oct. 31, 2016 (qsv: Merge libav implementation, at https://github.com/FFmpeg/FFmpeg/commit/1f26a231bb065276cd80ce02957c759f3197edfa#diff-7d84a34d58597bb7aa4b8239dca1f9f8). Already applied to libav. Reviewed-by: Luca Barbato <lu_zero@gentoo.org> (cherry picked from commit b22094d74901fb3ac203c8322f8d84aded470bfb) Signed-off-by: Mark Thompson <sw@jkqxz.net> Signed-off-by: Aaron Levinson <alevinsn@aracnet.com> Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* | 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 '404e51478ecad060249d5b9bee6ab39a8a9d8c1c'Mark Thompson2017-03-30
|\| | | | | | | | | | | | | | | | | * commit '404e51478ecad060249d5b9bee6ab39a8a9d8c1c': qsv{dec,enc}: always use an internal mfxFrameSurface1 Minor fixups for differences in the QSV encoder because of a53cc. Merged-by: Mark Thompson <sw@jkqxz.net>
| * qsv{dec,enc}: always use an internal mfxFrameSurface1Anton Khirnov2016-11-07
| | | | | | | | | | | | | | | | 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>
* | 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
| |
| * qsvenc: do not re-execute encoding on all positive status codesAnton Khirnov2016-07-22
| | | | | | | | It should only be done for DEVICE_BUSY/IN_EXECUTION
* | 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 'd9ec3c60143babe1bb77c268e1d5547d15acd69b'Mark Thompson2017-03-12
|\| | | | | | | | | | | | | * commit 'd9ec3c60143babe1bb77c268e1d5547d15acd69b': qsvenc: take only the allocated dimensions from the frames context Merged-by: Mark Thompson <sw@jkqxz.net>
| * qsvenc: take only the allocated dimensions from the frames contextAnton Khirnov2016-07-22
| | | | | | | | | | Other parameters, like the display size, should still be taken from the codec context.
* | Merge commit '37a9015ee84c15fec5247ba8f6577351a25fa8d2'Mark Thompson2017-03-12
|\| | | | | | | | | | | | | * commit '37a9015ee84c15fec5247ba8f6577351a25fa8d2': qsvenc: add support for p010 Merged-by: Mark Thompson <sw@jkqxz.net>
| * qsvenc: add support for p010Anton Khirnov2016-07-22
| |
| * qsvenc: support getting the session from an AVHWFramesContextAnton Khirnov2016-06-21
| |
* | qsvenc: do not re-execute encoding on all positive status codesAnton Khirnov2016-11-04
| | | | | | | | | | | | | | It should only be done for DEVICE_BUSY/IN_EXECUTION (cherry picked from commit 0956fd460681e8ccbdae19f135f0d3970bf95c2f) Fixes ticket #5924.
* | avcodec/qsv: remove MFX_EXTBUFF_CODING_OPTION3Kyle Schwarz2016-10-31
| | | | | | | | | | | | 4th generation Intel CPUs don't support MFX_EXTBUFF_CODING_OPTION3. This patch fixes bug #5324.
* | qsv: Merge libav implementationMark Thompson2016-10-31
| | | | | | | | | | | | | | Merged as-at libav 398f015, and therefore includes outstanding skipped merges 04b17ff and 130e1f1. All features not in libav are preserved, and no options change.