1 | |
---|
2 | |
---|
3 | /** \file TDecGop.h |
---|
4 | \brief GOP decoder class (header) |
---|
5 | */ |
---|
6 | |
---|
7 | #ifndef __TDECGOP__ |
---|
8 | #define __TDECGOP__ |
---|
9 | |
---|
10 | #if _MSC_VER > 1000 |
---|
11 | #pragma once |
---|
12 | #endif // _MSC_VER > 1000 |
---|
13 | |
---|
14 | #include "../TLibCommon/CommonDef.h" |
---|
15 | #include "../TLibCommon/TComBitStream.h" |
---|
16 | #include "../TLibCommon/TComList.h" |
---|
17 | #include "../TLibCommon/TComPicYuv.h" |
---|
18 | #include "../TLibCommon/TComPic.h" |
---|
19 | #include "../TLibCommon/TComLoopFilter.h" |
---|
20 | #include "../TLibCommon/TComAdaptiveLoopFilter.h" |
---|
21 | #include "../TLibCommon/TComDepthMapGenerator.h" |
---|
22 | #include "../TLibCommon/TComResidualGenerator.h" |
---|
23 | |
---|
24 | #include "TDecEntropy.h" |
---|
25 | #include "TDecSlice.h" |
---|
26 | #include "TDecBinCoder.h" |
---|
27 | #include "TDecBinCoderCABAC.h" |
---|
28 | |
---|
29 | // ==================================================================================================================== |
---|
30 | // Class definition |
---|
31 | // ==================================================================================================================== |
---|
32 | |
---|
33 | /// GOP decoder class |
---|
34 | class TDecGop |
---|
35 | { |
---|
36 | private: |
---|
37 | Int m_iGopSize; |
---|
38 | TComList<TComPic*> m_cListPic; // Dynamic buffer |
---|
39 | |
---|
40 | // Access channel |
---|
41 | TDecEntropy* m_pcEntropyDecoder; |
---|
42 | TDecSbac* m_pcSbacDecoder; |
---|
43 | TDecBinCABAC* m_pcBinCABAC; |
---|
44 | TDecCavlc* m_pcCavlcDecoder; |
---|
45 | TDecSlice* m_pcSliceDecoder; |
---|
46 | TComLoopFilter* m_pcLoopFilter; |
---|
47 | |
---|
48 | TComDepthMapGenerator* m_pcDepthMapGenerator; |
---|
49 | TComResidualGenerator* m_pcResidualGenerator; |
---|
50 | |
---|
51 | // Adaptive Loop filter |
---|
52 | TComAdaptiveLoopFilter* m_pcAdaptiveLoopFilter; |
---|
53 | #if MTK_SAO |
---|
54 | TComSampleAdaptiveOffset* m_pcSAO; |
---|
55 | SAOParam m_cSaoParam; |
---|
56 | #endif |
---|
57 | ALFParam m_cAlfParam; |
---|
58 | Double m_dDecTime; |
---|
59 | |
---|
60 | bool m_pictureDigestEnabled; ///< if true, handle picture_digest SEI messages |
---|
61 | |
---|
62 | public: |
---|
63 | TDecGop(); |
---|
64 | virtual ~TDecGop(); |
---|
65 | |
---|
66 | Void init ( TDecEntropy* pcEntropyDecoder, |
---|
67 | TDecSbac* pcSbacDecoder, |
---|
68 | TDecBinCABAC* pcBinCABAC, |
---|
69 | TDecCavlc* pcCavlcDecoder, |
---|
70 | TDecSlice* pcSliceDecoder, |
---|
71 | TComLoopFilter* pcLoopFilter, |
---|
72 | TComAdaptiveLoopFilter* pcAdaptiveLoopFilter, |
---|
73 | #if MTK_SAO |
---|
74 | TComSampleAdaptiveOffset* pcSAO, |
---|
75 | #endif |
---|
76 | TComDepthMapGenerator* pcDepthMapGenerator, |
---|
77 | TComResidualGenerator* pcResidualGenerator ); |
---|
78 | Void create (); |
---|
79 | Void destroy (); |
---|
80 | Void decompressGop ( Bool bEos, TComBitstream* pcBitstream, TComPic*& rpcPic, Bool bExecuteDeblockAndAlf ); |
---|
81 | Void setGopSize( Int i) { m_iGopSize = i; } |
---|
82 | |
---|
83 | void setPictureDigestEnabled(bool enabled) { m_pictureDigestEnabled = enabled; } |
---|
84 | }; |
---|
85 | |
---|
86 | #endif // !defined(AFX_TDECGOP_H__29440B7A_7CC0_48C7_8DD5_1A531D3CED45__INCLUDED_) |
---|
87 | |
---|