aboutsummaryrefslogtreecommitdiff
path: root/libavcodec/qsvenc.c
AgeCommit message (Collapse)Author
2018-04-13Merge commit 'cca5e4f040971db6de0bfe6968f00c021d8a9c42'James Almer
* commit 'cca5e4f040971db6de0bfe6968f00c021d8a9c42': qsv: adding Multi Frame Encode support Merged-by: James Almer <jamrial@gmail.com>
2018-04-08qsv: adding Multi Frame Encode supportMaxym Dmytrychenko
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>
2018-03-29Merge commit 'deefca02c275ce4bc5ccbee690463ffef81a18b8'James Almer
* commit 'deefca02c275ce4bc5ccbee690463ffef81a18b8': qsvenc: add the Access Unit Delimiter NAL Unit support Merged-by: James Almer <jamrial@gmail.com>
2018-03-29Merge commit '3d6e76b953afd36e23ef8532b81aea58a6338931'James Almer
* commit '3d6e76b953afd36e23ef8532b81aea58a6338931': qsvenc: Fix a typo of FrameRateExtD/FrameRateExtN Merged-by: James Almer <jamrial@gmail.com>
2018-03-16qsvenc: add the Access Unit Delimiter NAL Unit supportZhong Li
Signed-off-by: Zhong Li <zhong.li@intel.com> Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2018-03-16qsvenc: Fix a typo of FrameRateExtD/FrameRateExtNZhong Li
Signed-off-by: Zhong Li <zhong.li@intel.com> Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2018-03-05Merge commit '2d6b3f3a9dce409ca51d70ef4b85c0593bb4b109'Mark Thompson
* commit '2d6b3f3a9dce409ca51d70ef4b85c0593bb4b109': qsvenc: Provide a detailed error message if the parameters are invalid Merged-by: Mark Thompson <sw@jkqxz.net>
2018-03-05qsvenc: Provide a detailed error message if the parameters are invalidZhong Li
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>
2018-02-12Merge commit '8bb9824fcbc5a6ebf68391d70a2c4f03447990d2'Mark Thompson
* commit '8bb9824fcbc5a6ebf68391d70a2c4f03447990d2': qsvenc: AVBR is not supported on non-windows OS Merged-by: Mark Thompson <sw@jkqxz.net>
2018-02-12qsvenc: AVBR is not supported on non-windows OSZhong Li
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>
2017-12-14Merge commit '508378556631dc18d32247b4a4e35703758e1ca9'James Almer
* commit '508378556631dc18d32247b4a4e35703758e1ca9': qsv: Support explicit lookahead downscaling Merged-by: James Almer <jamrial@gmail.com>
2017-12-14Merge commit '7c65a76b16bc3a44f1592acde2176f187a058797'James Almer
* commit '7c65a76b16bc3a44f1592acde2176f187a058797': lavc/qsvenc: add error messeage if ICQ unsupported. Merged-by: James Almer <jamrial@gmail.com>
2017-12-14Merge commit '6ff29343b01923e9b125fe7404ac8701cdfb1fe5'James Almer
* commit '6ff29343b01923e9b125fe7404ac8701cdfb1fe5': lavc/qsvenc: set HRD buffer size Merged-by: James Almer <jamrial@gmail.com>
2017-12-12qsv: Support explicit lookahead downscalingLuca Barbato
2017-12-12lavc/qsvenc: add error messeage if ICQ unsupported.Li, Zhong
Signed-off-by: Zhong Li <zhong.li@intel.com> Signed-off-by: Maxym Dmytrychenko <maxim.d33@gmail.com>
2017-12-12lavc/qsvenc: set HRD buffer sizeLi, Zhong
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>
2017-11-29Merge commit 'b843b343d8a3210ae37a2342b1904a5bd1e5fc6e'James Almer
* commit 'b843b343d8a3210ae37a2342b1904a5bd1e5fc6e': qsvenc: cavlc option is only available for h264 Merged-by: James Almer <jamrial@gmail.com>
2017-11-24qsvenc: cavlc option is only available for h264Li, Zhong
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>
2017-11-08Merge commit '2fd6e7d077f590e4d7195356f9baeb271f8b9ae2'James Almer
* commit '2fd6e7d077f590e4d7195356f9baeb271f8b9ae2': libavcodec/mjpeg_qsv: Add QSV MJPEG encoder Merged-by: James Almer <jamrial@gmail.com>
2017-07-25libavcodec/mjpeg_qsv: Add QSV MJPEG encoderHuang, Zhengxu
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>
2017-06-14qsvenc: Allow use of hw_device_ctx to make the internal sessionMark Thompson
(cherry picked from commit 3d197514e613ccd9eab43180c0a7c8b09a307606)
2017-06-14qsv: Add ability to create a session from a deviceMark Thompson
(cherry picked from commit 4936a48b1e6fc2147599541f8b25f43a8a9d1f16)
2017-05-09qsvenc: Make sure the interlaced encoding worksAaron Levinson
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>
2017-05-09qsvenc: Use MFXVideoENCODE_Query() to update the parametersAaron Levinson
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>
2017-04-23qsvenc: Make sure the interlaced encoding worksAaron Levinson
And reduce the vertical alignment constraint when possible to reduce the memory usage. Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2017-04-23qsvenc: Use MFXVideoENCODE_Query() to update the parametersAaron Levinson
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>
2017-04-02qsvenc: Allow use of hw_device_ctx to make the internal sessionMark Thompson
2017-04-02qsv: Add ability to create a session from a deviceMark Thompson
2017-03-30Merge commit '4ab61cd983b539749bd621ea271624ddb5196a8e'Mark Thompson
* commit '4ab61cd983b539749bd621ea271624ddb5196a8e': qsv{enc,dec}: extend the internal frame allocator Merged-by: Mark Thompson <sw@jkqxz.net>
2017-03-30Merge commit '00aeedd84105a17f414185bd33ecadebeddb3a27'Mark Thompson
* commit '00aeedd84105a17f414185bd33ecadebeddb3a27': qsv{dec,enc}: use a struct as a memory id with internal memory allocator Merged-by: Mark Thompson <sw@jkqxz.net>
2017-03-30Merge commit '404e51478ecad060249d5b9bee6ab39a8a9d8c1c'Mark Thompson
* 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>
2017-03-12Merge commit '8e07c22e508b349d145b9f142aa3ee8b3ce1d3a4'Mark Thompson
* commit '8e07c22e508b349d145b9f142aa3ee8b3ce1d3a4': qsvenc: print warnings from encode/init Merged-by: Mark Thompson <sw@jkqxz.net>
2017-03-12Merge commit '95414eb2dc63a6f934275b4ed33dedd4369f2c49'Mark Thompson
* commit '95414eb2dc63a6f934275b4ed33dedd4369f2c49': qsv: print more complete error messages Merged-by: Mark Thompson <sw@jkqxz.net>
2017-03-12Merge commit 'd9ec3c60143babe1bb77c268e1d5547d15acd69b'Mark Thompson
* commit 'd9ec3c60143babe1bb77c268e1d5547d15acd69b': qsvenc: take only the allocated dimensions from the frames context Merged-by: Mark Thompson <sw@jkqxz.net>
2017-03-12Merge commit '37a9015ee84c15fec5247ba8f6577351a25fa8d2'Mark Thompson
* commit '37a9015ee84c15fec5247ba8f6577351a25fa8d2': qsvenc: add support for p010 Merged-by: Mark Thompson <sw@jkqxz.net>
2017-01-13qsv: Set the correct range for la_depthLuca Barbato
Setting an invalid range for it makes the encoder behave inconsistently.
2016-11-07qsv{enc,dec}: extend the internal frame allocatorAnton Khirnov
Handle the internal frame requests, which is required by the HEVC encoding plugin. Signed-off-by: Maxym Dmytrychenko <maxym.dmytrychenko@intel.com>
2016-11-07qsv{dec,enc}: use a struct as a memory id with internal memory allocatorAnton Khirnov
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>
2016-11-07qsv{dec,enc}: always use an internal mfxFrameSurface1Anton Khirnov
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>
2016-11-04qsvenc: do not re-execute encoding on all positive status codesAnton Khirnov
It should only be done for DEVICE_BUSY/IN_EXECUTION (cherry picked from commit 0956fd460681e8ccbdae19f135f0d3970bf95c2f) Fixes ticket #5924.
2016-10-31avcodec/qsv: remove MFX_EXTBUFF_CODING_OPTION3Kyle Schwarz
4th generation Intel CPUs don't support MFX_EXTBUFF_CODING_OPTION3. This patch fixes bug #5324.
2016-10-31qsv: Merge libav implementationMark Thompson
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.
2016-07-22qsvenc: print warnings from encode/initAnton Khirnov
2016-07-22qsv: print more complete error messagesAnton Khirnov
Include the libmfx error code and its description
2016-07-22qsvenc: take only the allocated dimensions from the frames contextAnton Khirnov
Other parameters, like the display size, should still be taken from the codec context.
2016-07-22qsvenc: add support for p010Anton Khirnov
2016-07-22qsvenc: do not re-execute encoding on all positive status codesAnton Khirnov
It should only be done for DEVICE_BUSY/IN_EXECUTION
2016-06-21qsvenc: support getting the session from an AVHWFramesContextAnton Khirnov
2016-06-19libavcodec: factor out SEI generation for A53 captionsAndrey Turkin
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-04-11Merge commit 'a1335149fd610b16459d9281b611282cac51c950'Derek Buitenhuis
* commit 'a1335149fd610b16459d9281b611282cac51c950': qsvenc: store the sync point in heap memory Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>