Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/FFmpeg/FFmpeg.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2019-04-03lavc/qsvenc: enable hevc gpb optionZhong Li
GPB is the default type, just contains forward references but the slice_type is B slice with higher encoding efficiency than regular P slice, but lower performance. Add an option to allow user to set regular P slice. Fix ticket#6870 Test data on Intel Kabylake (i7-7567U CPU @ 3.50GHz): 1. ffmpeg -hwaccel qsv -c:v h264_qsv -i bbb_sunflower_1080p_30fps_normal.mp4 -vsync passthrough -vframes 1000 -c:v hevc_qsv -gpb 0 -bf 0 -q 25 test_gpb_off_bf0_kbl.mp4 transcoding fps: 85 encoded file size of test_gpb_off_bf0_kbl.mp4: 21960100 (bytes) 2. ffmpeg -hwaccel qsv -c:v h264_qsv -i bbb_sunflower_1080p_30fps_normal.mp4 -vsync passthrough -vframes 1000 -c:v hevc_qsv -gpb 1 -bf 0 -q 25 test_gpb_on_bf0_kbl.mp4 transcoding fps: 79 encoded file size oftest_gpb_on_bf0_kbl.mp4: 21211449 (bytes) In this case, enable gpb can bring about 7% performance drop but 3.4% encoding efficiency improvment. Signed-off-by: Zhong Li <zhong.li@intel.com>
2019-04-01lavc/qsvenc: get vps extradata from MSDKZhong Li
Signed-off-by: Zhong Li <zhong.li@intel.com> Reviewed-by: Mark Thompson <sw@jkqxz.net>
2019-04-01lavc/qsvenc: expose low_power as a common option for QSV encoderLinjie Fu
Always exposes low_power option for all qsv encoder, and reports a warning if VDENC is not supported in current version of MSDK. Signed-off-by: Linjie Fu <linjie.fu@intel.com> Signed-off-by: Zhong Li <zhong.li@intel.com>
2019-03-28lavc/qsvenc_h264: remove the privite option trellisZhong Li
There are many problems of current qsv trellis option: 1. Duplicated with AVCodecContext definition 2. MFX_TRELLIS_XXX is introduced by MSDK API 1.17 Currently Without MSDK API checking thus may cause compilation issue. 3. user is inclined to enable trellis when set "-trellis 1", but actually it is to disable since MFX_TRELLIS_OFF is equal to 1. 4. It is too complex for user to enable trellis for every frame(I/P/B). Just simply remove the private option, and switch to the AVCodecContext definition. Compatibility should not a big problem (except can't exact map) since the option name is same as AVCodecContext. Signed-off-by: Zhong Li <zhong.li@intel.com> Reviewed-by: Carl Eugen Hoyos <ceffmpeg@gmail.com> Reviewed-by: Moritz Barsnick <barsnick@gmx.net>
2019-03-28lavc/qsvenc: make the queried libmfx version easily reusedZhong Li
Signed-off-by: Zhong Li <zhong.li@intel.com>
2019-01-25lavc/qsvenc: enable QVBR modeZhong Li
QVBR mode is to use the variable bitrate control algorithm with constant quality. mfxExtCodingOption3 should be supported to enable QVBR mode. It is neccesary to specify a max_rate for QVBR, else it may be ICQ mode. Example usage: ffmpeg -hwaccel qsv -c:v h264_qsv -i input.mp4 -c:v h264_qsv -global_quality 25 -maxrate 2M test_qvbr.mp4 -v verbose Clip QVBR quality range to be [0, 51] as Mark's commments. It is similar to qp range of CQP but possibly should be updated when VP8/VP9 encoding can be supported. Reviewed-by: Mark Thompson <sw@jkqxz.net> Signed-off-by: Zhong Li <zhong.li@intel.com>
2019-01-10lavc/qsvenc: add VDENC support for H264Linjie Fu
Add VDENC(lowpower mode) support for QSV H264 It's an experimental function(like lowpower in vaapi) with some limitations: - CBR/VBR require HuC which should be explicitly loaded via i915 module parameter(i915.enable_guc=2 for linux kernel version >= 4.16) Use option "-low_power 1" to enable VDENC. Add in dump_video_param() to show the status of VDENC in runtime log. Signed-off-by: Linjie Fu <linjie.fu@intel.com> Signed-off-by: Zhong Li <zhong.li@intel.com>
2018-12-07lavc/qsvenc: add an option to set h264 pps for every frameZhong Li
RepeatPPS is enabled by default in mfx. It is not necessary mostly and wasting encoding bits. Add an option to control it and disable it by default. Reviewed-by: Mark Thompson <sw@jkqxz.net> Signed-off-by: Zhong Li <zhong.li@intel.com>
2018-11-30lavc/qsvenc: add forced_idr optionZhong Li
This option can be used to repect original input I/IDR frame type. Reviewed-by: Mark Thompson <sw@jkqxz.net> Signed-off-by: Zhong Li <zhong.li@intel.com>
2018-11-30lavc/qsvenc: enable ICQ and ICQ_LA on LinuxZhong Li
ICQ/ICQ_LA are enabled with MSDK V1.28 Reviewed-by: Mark Thompson <sw@jkqxz.net> Signed-off-by: Zhong Li <zhong.li@intel.com>
2018-09-03Merge commit 'c1bcd321ea2c2ae1765a1e64f03278712221d726'James Almer
* commit 'c1bcd321ea2c2ae1765a1e64f03278712221d726': avcodec/qsv: fix async support Merged-by: James Almer <jamrial@gmail.com>
2018-09-03Merge commit '4ce701b4e640d4723a4005d664f31f8342fac40e'James Almer
* commit '4ce701b4e640d4723a4005d664f31f8342fac40e': qsvenc: remove vcm option on Linux Merged-by: James Almer <jamrial@gmail.com>
2018-08-22lavc/qsvenc: add quality status to side_dataZhong Li
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>
2018-08-07lavc/qsvenc: expose qp of encoded framesZhong Li
Requirement from ticket #7254. Currently only H264 supported by MSDK. Signed-off-by: Zhong Li <zhong.li@intel.com>
2018-07-26avcodec/qsv: fix async supportDmitry Rogozhkin
Current implementations of qsv components incorrectly work with async level, they actually try to work in async+1 level stepping into MFX_WRN_DEVICE_BUSY and polling loop. This change address this misbehaviour. Signed-off-by: Dmitry Rogozhkin <dmitry.v.rogozhkin@intel.com> Cc: Maxym Dmytrychenko <maxim.d33@gmail.com> Cc: Zhong Li <zhong.li@intel.com> Signed-off-by: Maxym Dmytrychenko <maxim.d33@gmail.com>
2018-06-27avcodec/qsvenc: fix version detection on cygwinTimo Rothenpieler
2018-06-11qsvenc: remove vcm option on LinuxZhong Li
1. vcm mode is only available for H264. 2. vcm is not supported on Linux, but it is shown when run "./avconv -h encoder=h264_qsv |grep vcm". This shouldn't happen. Signed-off-by: Zhong Li <zhong.li@intel.com> Signed-off-by: Maxym Dmytrychenko <maxim.d33@gmail.com>
2018-04-14Merge 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-30Merge commit 'deefca02c275ce4bc5ccbee690463ffef81a18b8'James Almer
* commit 'deefca02c275ce4bc5ccbee690463ffef81a18b8': qsvenc: add the Access Unit Delimiter NAL Unit support 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-02-13Merge commit '8bb9824fcbc5a6ebf68391d70a2c4f03447990d2'Mark Thompson
* commit '8bb9824fcbc5a6ebf68391d70a2c4f03447990d2': qsvenc: AVBR is not supported on non-windows OS Merged-by: Mark Thompson <sw@jkqxz.net>
2018-02-12lavc/qsv: default la_ds to MFX_LOOKAHEAD_DS_UNKNOWNRuiling Song
MFX_LOOKAHEAD_DS_UNKNOWN means auto. -1 is not a valid value. Signed-off-by: Ruiling Song <ruiling.song@intel.com> Signed-off-by: Maxym Dmytrychenko <maxim.d33@gmail.com>
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-15Merge commit '508378556631dc18d32247b4a4e35703758e1ca9'James Almer
* commit '508378556631dc18d32247b4a4e35703758e1ca9': qsv: Support explicit lookahead downscaling Merged-by: James Almer <jamrial@gmail.com>
2017-12-15Merge commit 'bddb2ce179c57db6e3c79fdc3363c165d90850b0'James Almer
* commit 'bddb2ce179c57db6e3c79fdc3363c165d90850b0': lavc/qsvenc: ICQ/VCM/QVBR are not avilable on Linux Merged-by: James Almer <jamrial@gmail.com>
2017-12-12qsv: Support explicit lookahead downscalingLuca Barbato
2017-12-12lavc/qsvenc: ICQ/VCM/QVBR are not avilable on LinuxLi, Zhong
Signed-off-by: Zhong Li <zhong.li@intel.com> Signed-off-by: Maxym Dmytrychenko <maxim.d33@gmail.com>
2017-11-30Merge 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-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-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-01-13qsv: Set the correct range for la_depthLuca Barbato
Setting an invalid range for it makes the encoder behave inconsistently.
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-06-21qsvenc: support getting the session from an AVHWFramesContextAnton Khirnov
2016-02-16Merge commit '9cac1b4b4f1532fb2aeef54799285360656be5eb'Derek Buitenhuis
* commit '9cac1b4b4f1532fb2aeef54799285360656be5eb': qsvenc: Add private option to replace coder_type Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-01-27Merge commit '0e6c8532215790bbe560a9eea4f3cc82bb55cf92'Derek Buitenhuis
* commit '0e6c8532215790bbe560a9eea4f3cc82bb55cf92' lavc: Move b_frame_strategy and b_sensitivity to codec private options Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-01-25qsvenc: Add private option to replace coder_typeVittorio Giovara
Missing from be00ec832c519427cd92218abac77dafdc1d5487.
2016-01-21lavc: Move b_frame_strategy and b_sensitivity to codec private optionsVittorio Giovara
The b_frame_strategy option is only used by mpegvideoenc, qsv, x264, and xavs, while b_sensitivity is only used by mpegvideoenc. These are very codec-specific options, so deprecate the global variants. Set proper limits to the maximum allowed values. Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2015-12-01qsvenc: write a53 caption data to SEIWill Kelleher
Signed-off-by: Will Kelleher <wkelleher@gogoair.com> Previous version reviewed-by: Ivan Uskov <ivan.uskov@nablet.com> Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-11-29Merge commit 'fc4c27c4edfc6a5f9bc7c696e823652474a65ce8'Hendrik Leppkes
* commit 'fc4c27c4edfc6a5f9bc7c696e823652474a65ce8': qsvenc: expose additional encoding options Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-11-29Merge commit 'e7d7cf86dcaba8eaaed62c80172ff0aff2588c2a'Hendrik Leppkes
* commit 'e7d7cf86dcaba8eaaed62c80172ff0aff2588c2a': qsvenc: support more RC methods Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-11-24Merge commit 'fb8753ada23189076bdf903c1c001c0ca8287fae'Derek Buitenhuis
* commit 'fb8753ada23189076bdf903c1c001c0ca8287fae': qsvenc: factor out common options Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2015-11-22Merge commit '4d8f536b535487063a08609636e712ad86d2ad54'Derek Buitenhuis
* commit '4d8f536b535487063a08609636e712ad86d2ad54': qsvenc: print the actual video parameters used by MSDK Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2015-11-20qsvenc: expose additional encoding optionsAnton Khirnov
2015-11-20qsvenc: support more RC methodsAnton Khirnov
2015-11-20qsvenc: factor out common optionsAnton Khirnov
2015-11-20qsvenc: print the actual video parameters used by MSDKAnton Khirnov
2015-10-22Merge commit 'dc923bc23b3efd949d0bf67ff1abdb95059e5843'Hendrik Leppkes
* commit 'dc923bc23b3efd949d0bf67ff1abdb95059e5843': qsvenc: add an API for allocating opaque surfaces Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-10-22Merge commit '772c87c5a658f36d7c0612f5da583fc2bfa54f79'Hendrik Leppkes
* commit '772c87c5a658f36d7c0612f5da583fc2bfa54f79': qsvenc: support passing arbitrary external buffers to the encoder Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>