summaryrefslogtreecommitdiff
path: root/libavcodec/qsvdec.h
Commit message (Collapse)AuthorAge
* avcodec/qsvdec: Make functions used only here static, remove headerAndreas Rheinhardt2021-03-09
| | | | | | | | | Forgotten after d78ecf10bd745cb69a71b32419e0661bfdcfb1fd. (Also mark some AVPackets as const.) Reviewed-by: Mark Thompson <sw@jkqxz.net> Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
* lavc: Mark hw_config pointer arrays as constMark Thompson2020-11-08
| | | | They are read-only just like the HWConfig structures they point to.
* lavc: Rename hwaccel.h to hwconfig.hMark Thompson2020-04-26
| | | | | This already applied to decoders as well as hwaccels, and adding encoder support was going to make the name even more inaccurate.
* lavc/qsvdec: Add GPU-accelerated memory copy supportLinjie Fu2019-10-09
| | | | | | | | | | | | | | | | GPU copy enables or disables GPU accelerated copying between video and system memory. This may lead to a notable performance improvement. Memory must be sequent and aligned with 128x64. CMD: ffmpeg -init_hw_device qsv=hw -filter_hw_device hw -c:v h264_qsv -gpu_copy on -i input.h264 -f null - or: ffmpeg -c:v h264_qsv -gpu_copy on -i input.h264 -f null - Signed-off-by: Linjie Fu <linjie.fu@intel.com> Signed-off-by: ChaoX A Liu <chaox.a.liu@intel.com> Signed-off-by: Zhong Li <zhong.li@intel.com>
* lavc/qsv: Fix MSDK initialization failure in system memory modeZhong Li2019-09-26
| | | | | | | | | | | | MSDK does not create internal acceleration device on Linux, So MFXVideoCORE_SetHandle() is necessary. It has been added for ff_qsv_init_session_device(). But missed for ff_qsv_init_internal_session() due to commit 1f26a23 overwrited commit db89f45 Fix #7030 Signed-off-by: Zhong Li <zhong.li@intel.com>
* lavc/qsvdec: remove orignal parser code since not needed nowZhong Li2019-08-20
| | | | Signed-off-by: Zhong Li <zhong.li@intel.com>
* lavc/qsvdec: Replace current parser with MFXVideoDECODE_DecodeHeader()Zhong Li2019-08-20
| | | | | | | | | | | | | | | | | Using MSDK parser can improve qsv decoder pass rate in some cases (E.g: sps declares a wrong level_idc, smaller than it should be). And it is necessary for adding new qsv decoders such as MJPEG and VP9 since current parser can't provide enough information. Actually using MFXVideoDECODE_DecodeHeader() was disscussed at https://ffmpeg.org/pipermail/ffmpeg-devel/2015-July/175734.html and merged as commit 1acb19d, but was overwritten when merged libav patches (commit: 1f26a23) without any explain. Split decode header from decode_init, and call it for everyframe to detect format/resoultion change. It can fix some regression issues such as hevc 10bits decoding. Signed-off-by: Zhong Li <zhong.li@intel.com> Signed-off-by: Dmitry Rogozhkin <dmitry.v.rogozhkin@intel.com>
* lavc/qsvdec: flush buffered data before reinitLinjie Fu2018-11-06
| | | | | | | | | | | | | | | | | Flush the buffered data in libmfx before video param reinit in case the frames drop. Cache the first frame causing the reinit and decode zero-size pkt to flush the buffered pkt before reinit. After all the buffered pkts being flushed, resume to reinit and decode. Fix the issue in ticket #7399. [V2]: Move the definition of zero_pkt to where it is exactly used. Signed-off-by: Linjie Fu <linjie.fu@intel.com> Signed-off-by: Zhong Li <zhong.li@intel.com>
* lavc: Add hardware config metadata for decoders supporting hardware outputMark Thompson2017-11-26
| | | | | | | | | This includes a pointer to the associated hwaccel for decoders using hwaccels - these will be used later to implement the hwaccel setup without needing a global list. Also added is a new file listing all hwaccels as external declarations - this will be used later to generate the hwaccel list at configure time.
* Merge commit '0940b748bdba36c4894fc8ea6be631d821fdf578'James Almer2017-03-31
|\ | | | | | | | | | | | | * commit '0940b748bdba36c4894fc8ea6be631d821fdf578': qsvdec: Only warn about unconsumed data if it happens more than once Merged-by: James Almer <jamrial@gmail.com>
| * qsvdec: Only warn about unconsumed data if it happens more than onceMark Thompson2016-11-14
| |
* | Merge commit 'ce320cf1c4daab3e2e3726ed7d2e879d10f7b991'Hendrik Leppkes2016-11-14
|\| | | | | | | | | | | | | * commit 'ce320cf1c4daab3e2e3726ed7d2e879d10f7b991': qsvdec: use the same mfxFrameInfo for allocating frames that was passed to DECODE_Init Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
| * qsvdec: use the same mfxFrameInfo for allocating frames that was passed to ↵Anton Khirnov2016-07-03
| | | | | | | | | | | | DECODE_Init Stop duplicating this information.
* | Merge commit '536bb17e9659c5ed7576a218d4085cdd6d5742fa'Hendrik Leppkes2016-11-14
|\| | | | | | | | | | | | | * commit '536bb17e9659c5ed7576a218d4085cdd6d5742fa': qsvdec: make ff_qsv_map_pixfmt() return a MFX fourcc as well Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
| * qsvdec: make ff_qsv_map_pixfmt() return a MFX fourcc as wellAnton Khirnov2016-07-03
| | | | | | | | | | | | | | Stop hardcoding NV12. Also, move this function to the shared code, it will be used by the encoder as well.
| * qsvdec: support getting the session from an AVHWFramesContextAnton Khirnov2016-06-21
| |
* | qsv: Merge libav implementationMark Thompson2016-10-31
| | | | | | | | | | | | | | 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.
* | Merge commit '8aecec84021a61b943718ff3d7c2c57fcd4af199'Hendrik Leppkes2015-09-29
|\| | | | | | | | | | | | | * commit '8aecec84021a61b943718ff3d7c2c57fcd4af199': qsvdec: make ff_qsv_decode_init() static Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
| * qsvdec: make ff_qsv_decode_init() staticAnton Khirnov2015-09-28
| | | | | | | | It is not used outside of qsvdec.c anymore.
* | libavcodec/qsvdec.c: correct flush() handler has been implementedIvan Uskov2015-09-07
| | | | | | | | Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* | libavcodec/qsvdec.c: correct handling of dynamic frame size changing has ↵Ivan Uskov2015-09-07
| | | | | | | | | | | | been implemented Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* | Merge commit '41d47ea85fb4ad9cfb5c2dc808a46bc1d57f3986'Michael Niedermayer2015-07-26
|\| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * commit '41d47ea85fb4ad9cfb5c2dc808a46bc1d57f3986': lavc: add Intel libmfx-based HEVC decoder. Conflicts: Changelog configure libavcodec/Makefile libavcodec/allcodecs.c libavcodec/qsvdec.c libavcodec/qsvdec_h2645.c libavcodec/version.h Merged-by: Michael Niedermayer <michael@niedermayer.cc>
| * lavc: add Intel libmfx-based HEVC decoder.Anton Khirnov2015-07-25
| |
| * qsvdec: move qsv_process_data() from qsvdec_h264 to the common codeAnton Khirnov2015-07-25
| | | | | | | | It will be shared with the upcoming mpeg2 and hevc decoders.
* | libavcodec/qsvdec.c: The ff_qsv_decode() now guarantees the consumption of ↵Ivan Uskov2015-07-24
| | | | | | | | | | | | whole packet. Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* | libavcodec/qsvdec_h264.c: refactoring: functionality of qsv_process_data() ↵Ivan Uskov2015-07-23
| | | | | | | | | | | | has been moved into qsvdec.c Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* | libavcodec/qsvdec_h264.c: SPS parsing is now performed by ↵Ivan Uskov2015-07-23
| | | | | | | | | | | | MFXVideoDECODE_DecodeHeader() in libavcodec/qsvdec.c Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* | Merge commit 'f5c4d38c78347b09478e21a661befff4b2d44643'Michael Niedermayer2015-07-19
|\| | | | | | | | | | | | | | | | | | | * commit 'f5c4d38c78347b09478e21a661befff4b2d44643': qsvdec: properly handle asynchronous decoding Conflicts: libavcodec/qsvdec.c Merged-by: Michael Niedermayer <michael@niedermayer.cc>
| * qsvdec: properly handle asynchronous decodingAnton Khirnov2015-07-19
| | | | | | | | Wait for async_depth frames before syncing.
* | Refactoring to move common QSV-related code part into libavcodec/qsvdec.cIvan Uskov2015-07-16
| | | | | | | | Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* | libavcodec/qsv.c: Issue fixed: QSV engine does not release display handler ↵Ivan Uskov2015-07-14
| | | | | | | | | | | | | | under linux platform. Reviewed-by: Gwenole Beauchesne <gb.devel@gmail.com> Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* | Merge commit '72b7441a10f578a1d0be7083d8f5adf6a01921c2'Michael Niedermayer2015-03-28
|\| | | | | | | | | | | | | | | | | | | | | * commit '72b7441a10f578a1d0be7083d8f5adf6a01921c2': lavc: add Intel libmfx-based H.264 encoder Conflicts: Changelog libavcodec/version.h Merged-by: Michael Niedermayer <michaelni@gmx.at>
| * lavc: add Intel libmfx-based H.264 encoderAnton Khirnov2015-03-27
| |
* | Merge commit '9ba27c2348d26000257e891e40a72facb0d916be'Michael Niedermayer2015-03-28
|\| | | | | | | | | | | | | * commit '9ba27c2348d26000257e891e40a72facb0d916be': qsvdec: add 'decode' to the non-static function names Merged-by: Michael Niedermayer <michaelni@gmx.at>
| * qsvdec: add 'decode' to the non-static function namesAnton Khirnov2015-03-27
| |
* | Merge commit 'd0a63d8b989647ffdb5f40da8e1feaffe1a8e791'Michael Niedermayer2015-03-28
|\| | | | | | | | | | | | | | | | | | | | | * commit 'd0a63d8b989647ffdb5f40da8e1feaffe1a8e791': qsvdec: split off some code that will be shared with the encoder Conflicts: libavcodec/Makefile libavcodec/qsvdec.h Merged-by: Michael Niedermayer <michaelni@gmx.at>
| * qsvdec: split off some code that will be shared with the encoderAnton Khirnov2015-03-27
| |
* | Merge commit 'b04d009b0e1a34b717f3d3bbf407aef0c742aff1'Michael Niedermayer2015-03-28
|/ | | | | | | | | | * commit 'b04d009b0e1a34b717f3d3bbf407aef0c742aff1': qsv: rename to qsvdec Conflicts: libavcodec/Makefile Merged-by: Michael Niedermayer <michaelni@gmx.at>
* qsv: rename to qsvdecAnton Khirnov2015-03-27
This is to avoid conflicts with the upcoming QSV encoding support.