aboutsummaryrefslogtreecommitdiffstats
path: root/libavcodec/qsvenc_h264.c
Commit message (Collapse)AuthorAgeFilesLines
* lavc/qsvenc: expose low_power as a common option for QSV encoderLinjie Fu2019-04-011-4/+0
| | | | | | | | 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>
* lavc/qsvenc_h264: remove the privite option trellisZhong Li2019-03-281-6/+0
| | | | | | | | | | | | | | | | | | 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>
* lavc/qsvenc: use the common option "trellis" of AVCodecContextZhong Li2019-03-281-1/+1
| | | | Signed-off-by: Zhong Li <zhong.li@intel.com>
* lavc/qsvenc: add VDENC support for H264Linjie Fu2019-01-101-0/+4
| | | | | | | | | | | | | | | 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>
* lavc/qsvenc: add an option to set h264 pps for every frameZhong Li2018-12-071-0/+2
| | | | | | | | | 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>
* Fix typosMichael Bunk2018-09-141-1/+1
|
* Merge commit 'e16b20782a597e36a9c7488487c3179375a25b97'James Almer2018-09-111-0/+2
|\ | | | | | | | | | | | | * commit 'e16b20782a597e36a9c7488487c3179375a25b97': lavc/qsvenc: allow to set qp range for h264 BRC Merged-by: James Almer <jamrial@gmail.com>
| * lavc/qsvenc: allow to set qp range for h264 BRCZhong Li2018-09-021-0/+2
| | | | | | | | | | Signed-off-by: Zhong Li <zhong.li@intel.com> Signed-off-by: Maxym Dmytrychenko <maxim.d33@gmail.com>
* | Merge commit '4ce701b4e640d4723a4005d664f31f8342fac40e'James Almer2018-09-021-0/+3
|\| | | | | | | | | | | | | * commit '4ce701b4e640d4723a4005d664f31f8342fac40e': qsvenc: remove vcm option on Linux Merged-by: James Almer <jamrial@gmail.com>
| * qsvenc: remove vcm option on LinuxZhong Li2018-06-111-0/+3
| | | | | | | | | | | | | | | | | | 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>
* | Merge commit '35ed7f93dbc72d733e454ae464b1324f38af62a0'James Almer2018-09-021-1/+3
|\| | | | | | | | | | | | | * commit '35ed7f93dbc72d733e454ae464b1324f38af62a0': qsvenc: Add an option to disable MFE mode Merged-by: James Almer <jamrial@gmail.com>
| * qsvenc: Add an option to disable MFE modeZhong Li2018-05-241-1/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | Provide proper aliases to enable/disable MFE. The numeric values are ambiguous and misleading (e.g: user may misunderstand setting mfmode to 1 is to enable MFE but actually it is to disable MFE, and set it to be 5 or above is meaningless). MFX_MF_MANUAL hasn't been exposed since it is to be implemented. Signed-off-by: Zhong Li <zhong.li@intel.com> Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
* | lavc/qsvenc: add quality status to side_dataZhong Li2018-08-221-5/+0
| | | | | | | | | | | | | | | | 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-071-0/+5
| | | | | | | | | | | | | | Requirement from ticket #7254. Currently only H264 supported by MSDK. Signed-off-by: Zhong Li <zhong.li@intel.com>
* | lavc/qsvenc: set corret maximum value of look_ahead_downsamplingZhong Li2018-05-071-1/+1
| | | | | | | | | | | | | | Option "4x(MFX_LOOKAHEAD_DS_4x)" is provided but can't be set due to wrong maximum value. Signed-off-by: Zhong Li <zhong.li@intel.com>
* | Merge commit 'cca5e4f040971db6de0bfe6968f00c021d8a9c42'James Almer2018-04-131-0/+4
|\| | | | | | | | | | | | | * commit 'cca5e4f040971db6de0bfe6968f00c021d8a9c42': qsv: adding Multi Frame Encode support Merged-by: James Almer <jamrial@gmail.com>
| * 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>
* | Merge commit 'deefca02c275ce4bc5ccbee690463ffef81a18b8'James Almer2018-03-291-0/+3
|\| | | | | | | | | | | | | * 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-161-0/+2
| | | | | | | | | | Signed-off-by: Zhong Li <zhong.li@intel.com> Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
| * avcodec: add metadata to identify wrappers and hardware decoderswm42017-12-141-1/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Explicitly identify decoder/encoder wrappers with a common name. This saves API users from guessing by the name suffix. For example, they don't have to guess that "h264_qsv" is the h264 QSV implementation, and instead they can just check the AVCodec .codec and .wrapper_name fields. Explicitly mark AVCodec entries that are hardware decoders or most likely hardware decoders with new AV_CODEC_CAPs. The purpose is allowing API users listing hardware decoders in a more generic way. The proposed AVCodecHWConfig does not provide this information fully, because it's concerned with decoder configuration, not information about the fact whether the hardware is used or not. AV_CODEC_CAP_HYBRID exists specifically for QSV, which can have software implementations in case the hardware is not capable. Based on a patch by Philip Langdale <philipl@overt.org>. Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
* | lavc/qsvenc: disable h264 look_ahead by defaultZhong Li2018-03-061-1/+1
| | | | | | | | | | | | | | | | | | | | | | Look_ahead can provide quality improvements, but would better disable it by default due to some reasons: 1. It is only available for some codecs (e.g. HEVC is not supported) on Intel Haswell and plus platforms. Thus means it will be failed on some platforms. 2. It significantly increases encoding latency and memory consumption. 3. It may overwrite some other options such as CBR and CAVLC. Signed-off-by: Zhong Li <zhong.li@intel.com> Signed-off-by: Mark Thompson <sw@jkqxz.net>
* | Merge commit '508378556631dc18d32247b4a4e35703758e1ca9'James Almer2017-12-141-1/+4
|\| | | | | | | | | | | | | * commit '508378556631dc18d32247b4a4e35703758e1ca9': qsv: Support explicit lookahead downscaling Merged-by: James Almer <jamrial@gmail.com>
* | avcodec: add metadata to identify wrappers and hardware decoderswm42017-12-141-1/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Explicitly identify decoder/encoder wrappers with a common name. This saves API users from guessing by the name suffix. For example, they don't have to guess that "h264_qsv" is the h264 QSV implementation, and instead they can just check the AVCodec .codec and .wrapper_name fields. Explicitly mark AVCodec entries that are hardware decoders or most likely hardware decoders with new AV_CODEC_CAPs. The purpose is allowing API users listing hardware decoders in a more generic way. The proposed AVCodecHWConfig does not provide this information fully, because it's concerned with decoder configuration, not information about the fact whether the hardware is used or not. AV_CODEC_CAP_HYBRID exists specifically for QSV, which can have software implementations in case the hardware is not capable. Based on a patch by Philip Langdale <philipl@overt.org>. Merges Libav commit 47687a2f8aca3f65b6fdd117b1cb66a7409a7fd1.
* | Merge commit 'b843b343d8a3210ae37a2342b1904a5bd1e5fc6e'James Almer2017-11-291-1/+4
|\| | | | | | | | | | | | | * 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-241-1/+4
| | | | | | | | | | | | | | | | 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 '37a9015ee84c15fec5247ba8f6577351a25fa8d2'Mark Thompson2017-03-121-0/+1
|\| | | | | | | | | | | | | * commit '37a9015ee84c15fec5247ba8f6577351a25fa8d2': qsvenc: add support for p010 Merged-by: Mark Thompson <sw@jkqxz.net>
| * qsvenc: add support for p010Anton Khirnov2016-07-221-0/+1
| |
* | qsv: Merge libav implementationMark Thompson2016-10-311-2/+1
| | | | | | | | | | | | | | 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.
* | avcodec/qsvenc_h264: fix segfault when a53 SEI is not availableNablet Developer2016-10-061-1/+1
| | | | | | | | | | Signed-off-by: Nablet Developer <sdk@nablet.com> Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* | lavc: Enable a53cc by default for x264 and qsv_h264.Carl Eugen Hoyos2016-09-141-1/+1
| |
* | Merge commit 'b24dafe10572254ff0decc18b0d7c3d3707d5a29'James Almer2016-08-011-1/+1
|\| | | | | | | | | | | | | * commit 'b24dafe10572254ff0decc18b0d7c3d3707d5a29': lavc: drop unnecessary h264dec.h includes Merged-by: James Almer <jamrial@gmail.com>
| * lavc: drop unnecessary h264dec.h includesAnton Khirnov2016-06-211-1/+1
| |
* | Merge commit '9df889a5f116c1ee78c2f239e0ba599c492431aa'Clément Bœsch2016-07-291-1/+1
|\| | | | | | | | | | | | | * commit '9df889a5f116c1ee78c2f239e0ba599c492431aa': h264: rename h264.[ch] to h264dec.[ch] Merged-by: Clément Bœsch <u@pkh.me>
| * h264: rename h264.[ch] to h264dec.[ch]Anton Khirnov2016-06-211-1/+1
| | | | | | | | This is more consistent with the naming of other decoders.
* | avcodec/qsvenc_h264: declare the QSVEncContext variable before using itJames Almer2016-06-191-3/+3
| | | | | | | | | | | | | | | | Should fix compilation. Regression introduced by commit 63adb3602d3b35c5d1df14cf1e477bc458f96b7b Signed-off-by: James Almer <jamrial@gmail.com>
* | libavcodec: factor out SEI generation for A53 captionsAndrey Turkin2016-06-191-56/+26
| | | | | | | | Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* | Merge commit '0e6c8532215790bbe560a9eea4f3cc82bb55cf92'Derek Buitenhuis2016-01-271-0/+2
|\| | | | | | | | | | | | | * commit '0e6c8532215790bbe560a9eea4f3cc82bb55cf92' lavc: Move b_frame_strategy and b_sensitivity to codec private options Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
| * lavc: Move b_frame_strategy and b_sensitivity to codec private optionsVittorio Giovara2016-01-211-0/+2
| | | | | | | | | | | | | | | | | | | | 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>
* | qsvenc: write a53 caption data to SEIWill Kelleher2015-11-301-0/+66
| | | | | | | | | | | | 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>
* | Merge commit 'fc4c27c4edfc6a5f9bc7c696e823652474a65ce8'Hendrik Leppkes2015-11-291-0/+16
|\| | | | | | | | | | | | | * commit 'fc4c27c4edfc6a5f9bc7c696e823652474a65ce8': qsvenc: expose additional encoding options Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
| * qsvenc: expose additional encoding optionsAnton Khirnov2015-11-201-0/+16
| |
* | Merge commit 'e7d7cf86dcaba8eaaed62c80172ff0aff2588c2a'Hendrik Leppkes2015-11-291-1/+1
|\| | | | | | | | | | | | | * commit 'e7d7cf86dcaba8eaaed62c80172ff0aff2588c2a': qsvenc: support more RC methods Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
* | Merge commit 'fb8753ada23189076bdf903c1c001c0ca8287fae'Derek Buitenhuis2015-11-241-12/+2
|\| | | | | | | | | | | | | * commit 'fb8753ada23189076bdf903c1c001c0ca8287fae': qsvenc: factor out common options Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
| * qsvenc: factor out common optionsAnton Khirnov2015-11-201-8/+2
| |
* | Merge commit '5d2daebf3cc8de4cee1973db6a2229beaad3b7cd'Hendrik Leppkes2015-09-291-0/+1
|\| | | | | | | | | | | | | * commit '5d2daebf3cc8de4cee1973db6a2229beaad3b7cd': qsvenc: mark the encoders as INIT_CLEANUP Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
| * qsvenc: mark the encoders as INIT_CLEANUPAnton Khirnov2015-09-281-0/+1
| | | | | | | | Should fix some leaks on init failure.
* | avcodec/qsv : Added look ahead rate control modeSven Dueking2015-08-301-0/+12
| | | | | | | | | | Reviewed-by: Ivan Uskov <ivan.uskov@nablet.com> Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* | avcodec/qsvenc: Added PicTiming SEISven Dueking2015-08-191-0/+1
| | | | | | | | Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* | Merge commit 'def97856de6021965db86c25a732d78689bd6bb0'Michael Niedermayer2015-07-271-1/+1
|\| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * commit 'def97856de6021965db86c25a732d78689bd6bb0': lavc: AV-prefix all codec capabilities Conflicts: cmdutils.c ffmpeg.c ffplay.c libavcodec/8svx.c libavcodec/aacenc.c libavcodec/ac3dec.c libavcodec/adpcm.c libavcodec/alac.c libavcodec/atrac3plusdec.c libavcodec/bink.c libavcodec/dnxhddec.c libavcodec/dvdec.c libavcodec/dvenc.c libavcodec/ffv1dec.c libavcodec/ffv1enc.c libavcodec/fic.c libavcodec/flacdec.c libavcodec/flacenc.c libavcodec/flvdec.c libavcodec/fraps.c libavcodec/frwu.c libavcodec/gifdec.c libavcodec/h261dec.c libavcodec/hevc.c libavcodec/iff.c libavcodec/imc.c libavcodec/libopenjpegdec.c libavcodec/libvo-aacenc.c libavcodec/libvorbisenc.c libavcodec/libvpxdec.c libavcodec/libvpxenc.c libavcodec/libx264.c libavcodec/mjpegbdec.c libavcodec/mjpegdec.c libavcodec/mpegaudiodec_float.c libavcodec/msmpeg4dec.c libavcodec/mxpegdec.c libavcodec/nvenc_h264.c libavcodec/nvenc_hevc.c libavcodec/pngdec.c libavcodec/qpeg.c libavcodec/ra288.c libavcodec/rv10.c libavcodec/s302m.c libavcodec/sp5xdec.c libavcodec/takdec.c libavcodec/tiff.c libavcodec/tta.c libavcodec/utils.c libavcodec/v210dec.c libavcodec/vp6.c libavcodec/vp9.c libavcodec/wavpack.c libavcodec/yop.c Merged-by: Michael Niedermayer <michael@niedermayer.cc>
| * lavc: AV-prefix all codec capabilitiesVittorio Giovara2015-07-271-1/+1
| | | | | | | | | | | | Express bitfields more simply. Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>