summaryrefslogtreecommitdiff
path: root/libavcodec/qsvenc_hevc.c
Commit message (Collapse)AuthorAge
* lavc/qsv_hevc: correct QSV HEVC default plugin on WindowsZhong Li2018-12-18
| | | | | | | | | | | | | | | | | | | | | | | | | | 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>
* avcodec: add metadata to identify wrappers and hardware decoderswm42017-12-14
| | | | | | | | | | | | | | | | | | | | | 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 '077011b5af2b3150efc52a9b58f5ef9bb0235087'James Almer2017-11-11
|\ | | | | | | | | | | | | | | | | * commit '077011b5af2b3150efc52a9b58f5ef9bb0235087': qsv: Expose idr_interval for hevc as well Also includes 98afe3fb71afd4a18009924aaba56bc577bbd400. Merged-by: James Almer <jamrial@gmail.com>
| * qsv: Expose idr_interval for hevc as wellLuca Barbato2017-10-14
| |
* | Merge commit 'b05128f3c953bd66483e697d60a2e7e45ee9cfa0'James Almer2017-11-11
|\| | | | | | | | | | | | | * commit 'b05128f3c953bd66483e697d60a2e7e45ee9cfa0': qsv: Load the hw hevc plugin by default on Linux Merged-by: James Almer <jamrial@gmail.com>
| * qsv: Load the hw hevc plugin by default on LinuxLuca Barbato2017-09-11
| | | | | | | | | | | | Only on Windows the software plugin is available. Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
* | h2645_parse: Allocate a single buffer per packetKieran Kunhya2017-11-04
| | | | | | | | | | Drastically reduces memory usage on pathological streams. Fixes ticket #6789
* | Merge commit 'fd9212f2edfe9b107c3c08ba2df5fd2cba5ab9e3'James Almer2017-09-26
|\| | | | | | | | | | | | | * commit 'fd9212f2edfe9b107c3c08ba2df5fd2cba5ab9e3': Mark some arrays that never change as const. Merged-by: James Almer <jamrial@gmail.com>
| * Mark some arrays that never change as const.Anton Khirnov2017-02-01
| |
* | Merge commit 'c359d624d3efc3fd1d83210d78c4152bd329b765'James Almer2017-03-23
|\| | | | | | | | | | | | | * commit 'c359d624d3efc3fd1d83210d78c4152bd329b765': hevcdec: move decoder-independent declarations into a separate header Merged-by: James Almer <jamrial@gmail.com>
| * hevcdec: move decoder-independent declarations into a separate headerAnton Khirnov2016-10-16
| | | | | | | | | | | | | | 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.
* | Merge commit '4abe3b049d987420eb891f74a35af2cebbf52144'Clément Bœsch2017-03-23
|\| | | | | | | | | | | | | * commit '4abe3b049d987420eb891f74a35af2cebbf52144': hevc: rename hevc.[ch] to hevcdec.[ch] Merged-by: Clément Bœsch <u@pkh.me>
| * hevc: rename hevc.[ch] to hevcdec.[ch]Anton Khirnov2016-10-16
| | | | | | | | | | This is more consistent with the rest of libav and frees up the hevc.h name for decoder-independent shared declarations.
* | 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
| |
* | avcodec/h2645: Fix NAL unit paddingMichael Niedermayer2016-08-18
| | | | | | | | | | | | | | | | | | 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>
* | Merge commit 'fa936a307f5cddfc2664600157a8207ca8080af6'Derek Buitenhuis2016-04-26
|\| | | | | | | | | | | | | * commit 'fa936a307f5cddfc2664600157a8207ca8080af6': hevc_parse: rename into h2645_parse Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
| * hevc_parse: rename into h2645_parseAnton Khirnov2016-03-28
| | | | | | | | This code will be shared with h264.
* | qsvenc_hevc: Fix usage of ff_hevc_extract_rbspDerek Buitenhuis2016-04-25
| | | | | | | | Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
* | Merge commit '0e6c8532215790bbe560a9eea4f3cc82bb55cf92'Derek Buitenhuis2016-01-27
|\| | | | | | | | | | | | | * 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-21
| | | | | | | | | | | | | | | | | | | | 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>
* | Merge commit 'a43905f4ae261bdde87c300901d867b31961f57b'Hendrik Leppkes2016-01-04
|\| | | | | | | | | | | | | * commit 'a43905f4ae261bdde87c300901d867b31961f57b': qsvenc_hevc: improve the default settings Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
| * qsvenc_hevc: improve the default settingsMaxym Dmytrychenko2016-01-01
| | | | | | | | | | | | | | 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>
* | Merge commit 'fc4c27c4edfc6a5f9bc7c696e823652474a65ce8'Hendrik Leppkes2015-11-29
|\| | | | | | | | | | | | | * commit 'fc4c27c4edfc6a5f9bc7c696e823652474a65ce8': qsvenc: expose additional encoding options Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
| * qsvenc: expose additional encoding optionsAnton Khirnov2015-11-20
| |
* | Merge commit 'fb8753ada23189076bdf903c1c001c0ca8287fae'Derek Buitenhuis2015-11-24
|\| | | | | | | | | | | | | * commit 'fb8753ada23189076bdf903c1c001c0ca8287fae': qsvenc: factor out common options Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
| * qsvenc: factor out common optionsAnton Khirnov2015-11-20
| |
| * lavc: AV-prefix a few left out capabilitiesVittorio Giovara2015-10-15
| |
* | Merge commit '5d2daebf3cc8de4cee1973db6a2229beaad3b7cd'Hendrik Leppkes2015-09-29
|\| | | | | | | | | | | | | * 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-28
| | | | | | | | Should fix some leaks on init failure.
* | Merge commit '059a934806d61f7af9ab3fd9f74994b838ea5eba'Michael Niedermayer2015-07-27
|\| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * 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>
| * lavc: Consistently prefix input buffer definesVittorio Giovara2015-07-27
| | | | | | | | Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
* | Merge commit 'def97856de6021965db86c25a732d78689bd6bb0'Michael Niedermayer2015-07-27
|\| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * 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>
* | Merge commit 'fa85fcf2b7d1ab822a59245077b8bb855406d3e9'Michael Niedermayer2015-07-25
|\| | | | | | | | | | | | | * commit 'fa85fcf2b7d1ab822a59245077b8bb855406d3e9': qsvenc_hevc: fix enum declaration Merged-by: Michael Niedermayer <michael@niedermayer.cc>
| * qsvenc_hevc: fix enum declarationAnton Khirnov2015-07-25
| | | | | | | | Declare a named enum, not a variable with anonymous enum type.
* | Merge commit 'ecee1148af4989e1f9e16f0cdc9f98ad2045538c'Michael Niedermayer2015-07-22
|\| | | | | | | | | | | | | * commit 'ecee1148af4989e1f9e16f0cdc9f98ad2045538c': qsvenc_hevc: use the correct HW plugin UID Merged-by: Michael Niedermayer <michael@niedermayer.cc>
| * qsvenc_hevc: use the correct HW plugin UIDAnton Khirnov2015-07-22
| |
* | avcodec/qsvenc_hevc: Attempt to fix error: too few arguments to function ↵Michael Niedermayer2015-07-09
| | | | | | | | | | | | | | ff_hevc_extract_rbsp Found-by: Ivan Uskov Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* | Merge commit '66acb76bb0492b263215ca9b4d927a7be39ace02'Michael Niedermayer2015-07-09
|/ | | | | | | | | | | | | | | | * 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>
* lavc: add Intel libmfx-based HEVC encoderAnton Khirnov2015-07-08