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
2020-04-26lavc/qsvenc: Add hardware config metadataMark Thompson
All of these encoders can accept libmfx surfaces directly in a hardware frames context, or they can accept software frames if a suitable device is supplied to use.
2019-12-12lavc/qsvenc: add Tiles encode support for HEVCLinjie Fu
Add -tile_rows and -tile_cols option to specify the number of tile rows and columns for ICL+ (gen 11) platform. A tile must wholly contain all the slices within it. Slices cannot cross tile boundaries. So the slice number would be implicitly resized to the max(nSlice, nTile). Example: ffmpeg -v verbose -hwaccel qsv -init_hw_device qsv=hw -filter_hw_device hw -f rawvideo -s:v 1920x1080 -i ./input.nv12 -vf format=nv12,hwupload=extra_hw_frames=64 -c:v hevc_qsv -tile_rows 2 -tile_cols 2 -slices 4 -y output.h265 Also dump the actual quantity of encoded tiled rows and columns in run time. Fix the enhancement #8400. Signed-off-by: Linjie Fu <linjie.fu@intel.com>
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-03-29lavc/qsvenc: fix hevc vps extradata issuesZhong Li
cbs trace qsv vps header failed due to some reasons: 1. vps_temporal_id_nesting_flag is not set but spec required it must to be 1 when vps_max_sub_layers_minus1 is equal to 0. 2. vps_num_hrd_parameters is not set and written. 3. other issues in ff_hevc_encode_nal_vps() (fixed in pervious commit_id: 520226b683). Reproduce: ffmpeg -hwaccel qsv -v verbose -c:v h264_qsv -i bbb_sunflower_1080p_30fps_normal.mp4 -vframes 1 -c:v hevc_qsv -bsf:v trace_headers -f null - Signed-off-by: Zhong Li <zhong.li@intel.com>
2019-03-28lavc/qsvenc: use the common option "trellis" of AVCodecContextZhong Li
Signed-off-by: Zhong Li <zhong.li@intel.com>
2018-12-18lavc/qsv_hevc: correct QSV HEVC default plugin on WindowsZhong Li
1. Old logic meaned: everywhere, except Windows, ffmpeg has to use HW acceleration, but on Windows ffmpeg has to use (unavailable) software HEVC by default 2. Software HEVC is available only if you provide corresponding software MediaSDK library, which isn't provided with ffmpeg. More information could be found in https://github.com/Intel-Media-SDK/MediaSDK/blob/master/doc/samples/readme-encode_linux.pdf 3. HW HEVC decoding/encoding are available on Windows in the driver by default Note: Default case should be the most common case but this change still has potential risk on windows if HW path is not supported(or doesn't work as expection). (See the historical disscution: https://lists.libav.org/pipermail/libav-devel/2016-November/080419.html). In such case, two options suggested: 1. Use the option "-load_plugin hevc_sw" to switch SW path manually. 2. Or report bug to Intel windows driver if your GPU can support HEVC HW codec. (HEVC decoding is supported since Braswell, and encoding supported since Skylake) Patch started by Landgraph. Add similar change for hevc decoder and bump a new version. Reviewed-by: Mark Thompson <sw@jkqxz.net> Reviewed-by: Maxym Dmytrychenko <maxim.d33@gmail.com> Signed-off-by: Landgraph <me@landgraph.ru> Signed-off-by: Zhong Li <zhong.li@intel.com>
2017-12-14avcodec: add metadata to identify wrappers and hardware decoderswm4
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.
2017-11-11Merge commit '077011b5af2b3150efc52a9b58f5ef9bb0235087'James Almer
* commit '077011b5af2b3150efc52a9b58f5ef9bb0235087': qsv: Expose idr_interval for hevc as well Also includes 98afe3fb71afd4a18009924aaba56bc577bbd400. Merged-by: James Almer <jamrial@gmail.com>
2017-11-11Merge commit 'b05128f3c953bd66483e697d60a2e7e45ee9cfa0'James Almer
* commit 'b05128f3c953bd66483e697d60a2e7e45ee9cfa0': qsv: Load the hw hevc plugin by default on Linux Merged-by: James Almer <jamrial@gmail.com>
2017-11-04h2645_parse: Allocate a single buffer per packetKieran Kunhya
Drastically reduces memory usage on pathological streams. Fixes ticket #6789
2017-10-14qsv: Expose idr_interval for hevc as wellLuca Barbato
2017-09-26Merge commit 'fd9212f2edfe9b107c3c08ba2df5fd2cba5ab9e3'James Almer
* commit 'fd9212f2edfe9b107c3c08ba2df5fd2cba5ab9e3': Mark some arrays that never change as const. Merged-by: James Almer <jamrial@gmail.com>
2017-09-11qsv: Load the hw hevc plugin by default on LinuxLuca Barbato
Only on Windows the software plugin is available. Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2017-03-23Merge commit 'c359d624d3efc3fd1d83210d78c4152bd329b765'James Almer
* commit 'c359d624d3efc3fd1d83210d78c4152bd329b765': hevcdec: move decoder-independent declarations into a separate header Merged-by: James Almer <jamrial@gmail.com>
2017-03-23Merge commit '4abe3b049d987420eb891f74a35af2cebbf52144'Clément Bœsch
* commit '4abe3b049d987420eb891f74a35af2cebbf52144': hevc: rename hevc.[ch] to hevcdec.[ch] Merged-by: Clément Bœsch <u@pkh.me>
2017-03-12Merge commit '37a9015ee84c15fec5247ba8f6577351a25fa8d2'Mark Thompson
* commit '37a9015ee84c15fec5247ba8f6577351a25fa8d2': qsvenc: add support for p010 Merged-by: Mark Thompson <sw@jkqxz.net>
2017-02-01Mark some arrays that never change as const.Anton Khirnov
2016-10-16hevcdec: move decoder-independent declarations into a separate headerAnton Khirnov
This way they can be reused by other code without including the whole decoder-specific hevcdec.h Also, add the HEVC_ prefix to them, since similarly named values exist for H.264 as well and are sometimes used in the same code.
2016-10-16hevc: rename hevc.[ch] to hevcdec.[ch]Anton Khirnov
This is more consistent with the rest of libav and frees up the hevc.h name for decoder-independent shared declarations.
2016-08-19avcodec/h2645: Fix NAL unit paddingMichael Niedermayer
The parser changes have lost the support for the needed padding, this adds it back Fixes out of array reads Fixes: 03ea21d271abc8acf428d42ace51d8b4/asan_heap-oob_3358eef_5692_16f0cc01ab5225e9ce591659e5c20e35.mkv Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-07-22qsvenc: add support for p010Anton Khirnov
2016-04-26Merge commit 'fa936a307f5cddfc2664600157a8207ca8080af6'Derek Buitenhuis
* commit 'fa936a307f5cddfc2664600157a8207ca8080af6': hevc_parse: rename into h2645_parse Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-04-25qsvenc_hevc: Fix usage of ff_hevc_extract_rbspDerek Buitenhuis
Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-03-28hevc_parse: rename into h2645_parseAnton Khirnov
This code will be shared with h264.
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-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>
2016-01-04Merge commit 'a43905f4ae261bdde87c300901d867b31961f57b'Hendrik Leppkes
* commit 'a43905f4ae261bdde87c300901d867b31961f57b': qsvenc_hevc: improve the default settings Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2016-01-01qsvenc_hevc: improve the default settingsMaxym Dmytrychenko
Use 8 B-frames and modify the GOP size to be a multiple of the B-frame count. Signed-off-by: Anton Khirnov <anton@khirnov.net>
2015-11-29Merge commit 'fc4c27c4edfc6a5f9bc7c696e823652474a65ce8'Hendrik Leppkes
* commit 'fc4c27c4edfc6a5f9bc7c696e823652474a65ce8': qsvenc: expose additional encoding options 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-20qsvenc: expose additional encoding optionsAnton Khirnov
2015-11-20qsvenc: factor out common optionsAnton Khirnov
2015-10-15lavc: AV-prefix a few left out capabilitiesVittorio Giovara
2015-09-29Merge commit '5d2daebf3cc8de4cee1973db6a2229beaad3b7cd'Hendrik Leppkes
* commit '5d2daebf3cc8de4cee1973db6a2229beaad3b7cd': qsvenc: mark the encoders as INIT_CLEANUP Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-09-28qsvenc: mark the encoders as INIT_CLEANUPAnton Khirnov
Should fix some leaks on init failure.
2015-07-28Merge commit '059a934806d61f7af9ab3fd9f74994b838ea5eba'Michael Niedermayer
* commit '059a934806d61f7af9ab3fd9f74994b838ea5eba': lavc: Consistently prefix input buffer defines Conflicts: doc/examples/decoding_encoding.c libavcodec/4xm.c libavcodec/aac_adtstoasc_bsf.c libavcodec/aacdec.c libavcodec/aacenc.c libavcodec/ac3dec.h libavcodec/asvenc.c libavcodec/avcodec.h libavcodec/avpacket.c libavcodec/dvdec.c libavcodec/ffv1enc.c libavcodec/g2meet.c libavcodec/gif.c libavcodec/h264.c libavcodec/h264_mp4toannexb_bsf.c libavcodec/huffyuvdec.c libavcodec/huffyuvenc.c libavcodec/jpeglsenc.c libavcodec/libxvid.c libavcodec/mdec.c libavcodec/motionpixels.c libavcodec/mpeg4videodec.c libavcodec/mpegvideo.c libavcodec/noise_bsf.c libavcodec/nuv.c libavcodec/nvenc.c libavcodec/options.c libavcodec/parser.c libavcodec/pngenc.c libavcodec/proresenc_kostya.c libavcodec/qsvdec.c libavcodec/svq1enc.c libavcodec/tiffenc.c libavcodec/truemotion2.c libavcodec/utils.c libavcodec/utvideoenc.c libavcodec/vc1dec.c libavcodec/wmalosslessdec.c libavformat/adxdec.c libavformat/aiffdec.c libavformat/apc.c libavformat/apetag.c libavformat/avidec.c libavformat/bink.c libavformat/cafdec.c libavformat/flvdec.c libavformat/id3v2.c libavformat/isom.c libavformat/matroskadec.c libavformat/mov.c libavformat/mpc.c libavformat/mpc8.c libavformat/mpegts.c libavformat/mvi.c libavformat/mxfdec.c libavformat/mxg.c libavformat/nutdec.c libavformat/oggdec.c libavformat/oggparsecelt.c libavformat/oggparseflac.c libavformat/oggparseopus.c libavformat/oggparsespeex.c libavformat/omadec.c libavformat/rawdec.c libavformat/riffdec.c libavformat/rl2.c libavformat/rmdec.c libavformat/rtpdec_latm.c libavformat/rtpdec_mpeg4.c libavformat/rtpdec_qdm2.c libavformat/rtpdec_svq3.c libavformat/sierravmd.c libavformat/smacker.c libavformat/smush.c libavformat/spdifenc.c libavformat/takdec.c libavformat/tta.c libavformat/utils.c libavformat/vqf.c libavformat/westwood_vqa.c libavformat/xmv.c libavformat/xwma.c libavformat/yop.c Merged-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-27Merge commit 'def97856de6021965db86c25a732d78689bd6bb0'Michael Niedermayer
* 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>
2015-07-27lavc: Consistently prefix input buffer definesVittorio Giovara
Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2015-07-26Merge commit 'fa85fcf2b7d1ab822a59245077b8bb855406d3e9'Michael Niedermayer
* commit 'fa85fcf2b7d1ab822a59245077b8bb855406d3e9': qsvenc_hevc: fix enum declaration Merged-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-25qsvenc_hevc: fix enum declarationAnton Khirnov
Declare a named enum, not a variable with anonymous enum type.
2015-07-22Merge commit 'ecee1148af4989e1f9e16f0cdc9f98ad2045538c'Michael Niedermayer
* commit 'ecee1148af4989e1f9e16f0cdc9f98ad2045538c': qsvenc_hevc: use the correct HW plugin UID Merged-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-22qsvenc_hevc: use the correct HW plugin UIDAnton Khirnov
2015-07-09avcodec/qsvenc_hevc: Attempt to fix error: too few arguments to function ↵Michael Niedermayer
ff_hevc_extract_rbsp Found-by: Ivan Uskov Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-07-09Merge commit '66acb76bb0492b263215ca9b4d927a7be39ace02'Michael Niedermayer
* commit '66acb76bb0492b263215ca9b4d927a7be39ace02': lavc: add Intel libmfx-based HEVC encoder Conflicts: Changelog configure libavcodec/Makefile libavcodec/allcodecs.c libavcodec/qsv.c libavcodec/qsvenc.c libavcodec/version.h Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-07-09lavc: add Intel libmfx-based HEVC encoderAnton Khirnov