1 /*===================== begin_copyright_notice ================================== 2 3 # Copyright (c) 2020-2021, Intel Corporation 4 5 # Permission is hereby granted, free of charge, to any person obtaining a 6 # copy of this software and associated documentation files (the "Software"), 7 # to deal in the Software without restriction, including without limitation 8 # the rights to use, copy, modify, merge, publish, distribute, sublicense, 9 # and/or sell copies of the Software, and to permit persons to whom the 10 # Software is furnished to do so, subject to the following conditions: 11 12 # The above copyright notice and this permission notice shall be included 13 # in all copies or substantial portions of the Software. 14 15 # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS 16 # OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL 18 # THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR 19 # OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, 20 # ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 21 # OTHER DEALINGS IN THE SOFTWARE. 22 23 ======================= end_copyright_notice ==================================*/ 24 //! 25 //! \file codechal_decode_vc1_xe_xpm.h 26 //! \brief Implements the decode interface extension for Xe_XPM VC1. 27 //! \details Implements all functions required by CodecHal for Xe_XPM VC1 decoding. 28 //! 29 30 31 #ifndef __CODECHAL_DECODE_VC1_XE_XPM_H__ 32 #define __CODECHAL_DECODE_VC1_XE_XPM_H__ 33 34 #include "codechal_decode_vc1_g12.h" 35 #include "codechal_kernel_base.h" 36 #include "codechal_kernel_olp_mdf_xe_xpm.h" 37 38 class CodechalKernelOlpMdf; 39 40 //! 41 //! \class CodechalDecodeVc1Xe_Xpm 42 //! \brief This class defines the member fields, functions etc used by Xe_XPM VC1 decoder. 43 //! 44 class CodechalDecodeVc1Xe_Xpm : public CodechalDecodeVc1G12 45 { 46 public: 47 //! 48 //! \brief Constructor 49 //! \param [in] hwInterface 50 //! Hardware interface 51 //! \param [in] debugInterface 52 //! Debug interface 53 //! \param [in] standardInfo 54 //! The information of decode standard for this instance 55 //! 56 CodechalDecodeVc1Xe_Xpm( 57 CodechalHwInterface *hwInterface, 58 CodechalDebugInterface* debugInterface, 59 PCODECHAL_STANDARD_INFO standardInfo); 60 61 //! 62 //! \brief Copy constructor 63 //! 64 CodechalDecodeVc1Xe_Xpm(const CodechalDecodeVc1Xe_Xpm&) = delete; 65 66 //! 67 //! \brief Copy assignment operator 68 //! 69 CodechalDecodeVc1Xe_Xpm& operator=(const CodechalDecodeVc1Xe_Xpm&) = delete; 70 71 //! 72 //! \brief Destructor 73 //! 74 ~CodechalDecodeVc1Xe_Xpm(); 75 76 protected: 77 MOS_STATUS AllocateStandard( 78 CodechalSetting * settings) override; 79 80 MOS_STATUS PerformVc1Olp() override; 81 82 MOS_STATUS HandleSkipFrame() override; 83 84 CodechalKernelOlpMdf *m_olpMdfKernel = nullptr; 85 MOS_SURFACE m_olpInYSurface; 86 MOS_SURFACE m_olpInUVSurface; 87 MOS_SURFACE m_olpOutYSurface; 88 MOS_SURFACE m_olpOutUVSurface; 89 }; 90 91 92 #endif // __CODECHAL_DECODE_VC1_XE_XPM_H__ 93