1 /* 2 * Copyright (c) 2017, Intel Corporation 3 * 4 * Permission is hereby granted, free of charge, to any person obtaining a 5 * copy of this software and associated documentation files (the "Software"), 6 * to deal in the Software without restriction, including without limitation 7 * the rights to use, copy, modify, merge, publish, distribute, sublicense, 8 * and/or sell copies of the Software, and to permit persons to whom the 9 * Software is furnished to do so, subject to the following conditions: 10 * 11 * The above copyright notice and this permission notice shall be included 12 * in all copies or substantial portions of the Software. 13 * 14 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS 15 * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 16 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL 17 * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR 18 * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, 19 * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 20 * OTHER DEALINGS IN THE SOFTWARE. 21 */ 22 //! 23 //! \file codechal_decode_sfc_jpeg.h 24 //! \brief Defines the SFC interface extension for JPEG decode. 25 //! \details Defines all types, macros, and functions required by CodecHal SFC for JPEG decoding. 26 //! Definitions are not externally facing. 27 //! 28 29 #ifndef __CODECHAL_DECODE_SFC_JPEG_H__ 30 #define __CODECHAL_DECODE_SFC_JPEG_H__ 31 32 #include "codechal_decode_sfc.h" 33 34 //! 35 //! \class CodechalJpegSfcState 36 //! \brief Codechal JPEG SFC state 37 //! 38 class CodechalJpegSfcState : public CodechalSfcState 39 { 40 public: 41 //! 42 //! \brief Constructor 43 //! CodechalJpegSfcState()44 CodechalJpegSfcState() 45 { 46 CODECHAL_HW_FUNCTION_ENTER; 47 MOS_ZeroMemory(&m_sfcInSurface, sizeof(m_sfcInSurface)); 48 }; 49 //! 50 //! \brief Destructor 51 //! ~CodechalJpegSfcState()52 ~CodechalJpegSfcState() { CODECHAL_HW_FUNCTION_ENTER; }; 53 54 //! 55 //! \brief Check if SFC output is supported and Initialize SFC 56 //! \param [in] destSurface 57 //! Pointer to decode processing params 58 //! \param [in] picParams 59 //! Pointer to Avc Pic Params 60 //! \return MOS_STATUS 61 //! MOS_STATUS_SUCCESS if success, else fail reason 62 //! 63 virtual MOS_STATUS CheckAndInitialize( 64 PMOS_SURFACE destSurface, 65 CodecDecodeJpegPicParams* picParams); 66 67 //! 68 //! \brief Update Input Info for SfcStateParams 69 //! \param [in] sfcStateParams 70 //! Pointer to Sfc State Params 71 //! \return MOS_STATUS 72 //! MOS_STATUS_SUCCESS if success, else fail reason 73 //! 74 MOS_STATUS UpdateInputInfo( 75 PMHW_SFC_STATE_PARAMS sfcStateParams); 76 77 MOS_SURFACE m_sfcInSurface; //!< SFC virtual input surface (as VDBox output surface) 78 }; 79 80 #endif 81