HEVC Test Model (HM)  HM-16.18
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
SEIwrite.h
Go to the documentation of this file.
1 /* The copyright in this software is being made available under the BSD
2  * License, included below. This software may be subject to other third party
3  * and contributor rights, including patent rights, and no such rights are
4  * granted under this license.
5  *
6  * Copyright (c) 2010-2017, ITU/ISO/IEC
7  * All rights reserved.
8  *
9  * Redistribution and use in source and binary forms, with or without
10  * modification, are permitted provided that the following conditions are met:
11  *
12  * * Redistributions of source code must retain the above copyright notice,
13  * this list of conditions and the following disclaimer.
14  * * Redistributions in binary form must reproduce the above copyright notice,
15  * this list of conditions and the following disclaimer in the documentation
16  * and/or other materials provided with the distribution.
17  * * Neither the name of the ITU/ISO/IEC nor the names of its contributors may
18  * be used to endorse or promote products derived from this software without
19  * specific prior written permission.
20  *
21  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
22  * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
23  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
24  * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS
25  * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
26  * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
27  * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
28  * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
29  * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
30  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
31  * THE POSSIBILITY OF SUCH DAMAGE.
32  */
33 
34 #pragma once
35 
36 #ifndef __SEIWRITE__
37 #define __SEIWRITE__
38 
39 #include "SyntaxElementWriter.h"
40 #include "TLibCommon/SEI.h"
41 
42 class TComBitIf;
43 
47 {
48 public:
49  SEIWriter() {};
50  virtual ~SEIWriter() {};
51 
52  Void writeSEImessages(TComBitIf& bs, const SEIMessages &seiList, const TComSPS *sps, Bool isNested);
53 #if RNSEI
54  Void writeSEImessageHdrPayload(TComBitIf& bs, const SEI *sei, const TComSPS *sps);
55 #endif
56 
57 protected:
59  Void xWriteSEIPictureTiming (const SEIPictureTiming& sei, const TComSPS *sps);
70  Void xWriteSEIPostFilterHint (const SEIPostFilterHint& sei, const TComSPS *sps);
83  Void xWriteSEITimeCode (const SEITimeCode& sei);
89 #if CCV_SEI_MESSAGE
91 #endif
92 #if ERP_SR_OV_SEI_MESSAGE
96 #endif
97 #if CMP_SEI_MESSAGE
99 #endif
100 #if RWP_SEI_MESSAGE
102 #endif
110 #if RNSEI
111  Void xWriteSEIRegionalNesting (TComBitIf& bs, const SEIRegionalNesting& sei, const TComSPS *sps);
112 #endif
113 
114  Void xWriteSEIpayloadData(TComBitIf& bs, const SEI& sei, const TComSPS *sps);
116 };
117 
119 
120 #endif
Void xWriteSEIEquirectangularProjection(const SEIEquirectangularProjection &sei)
Definition: SEIwrite.cpp:1090
Void xWriteSEIAlternativeTransferCharacteristics(const SEIAlternativeTransferCharacteristics &sei)
Definition: SEIwrite.cpp:1283
Void xWriteSEIPostFilterHint(const SEIPostFilterHint &sei, const TComSPS *sps)
Definition: SEIwrite.cpp:559
Void xWriteSEITempMotionConstrainedTileSets(const SEITempMotionConstrainedTileSets &sei)
Definition: SEIwrite.cpp:928
Void xWriteSEIDecodingUnitInfo(const SEIDecodingUnitInfo &sei, const TComSPS *sps)
Definition: SEIwrite.cpp:743
Void xWriteSEIFilmGrainCharacteristics(const SEIFilmGrainCharacteristics &sei)
Definition: SEIwrite.cpp:505
Void xWriteSEICubemapProjection(const SEICubemapProjection &sei)
Definition: SEIwrite.cpp:1142
void Void
Definition: TypeDef.h:203
SEIWriter()
Definition: SEIwrite.h:49
Void xWriteSEIUserDataRegistered(const SEIUserDataRegistered &sei)
Definition: SEIwrite.cpp:433
pure virtual class for basic bit handling
Definition: TComBitStream.h:58
Void xWriteSEIPictureTiming(const SEIPictureTiming &sei, const TComSPS *sps)
Definition: SEIwrite.cpp:361
Void xWriteSEISphereRotation(const SEISphereRotation &sei)
Definition: SEIwrite.cpp:1107
Void xWriteSEIGreenMetadataInfo(const SEIGreenMetadataInfo &sei)
Definition: SEIwrite.cpp:698
Void xWriteSEITemporalLevel0Index(const SEITemporalLevel0Index &sei)
Definition: SEIwrite.cpp:759
Void xWriteSEIFramePacking(const SEIFramePacking &sei)
Definition: SEIwrite.cpp:650
Void writeSEImessages(TComBitIf &bs, const SEIMessages &seiList, const TComSPS *sps, Bool isNested)
Definition: SEIwrite.cpp:215
Void xWriteSEIRegionalNesting(TComBitIf &bs, const SEIRegionalNesting &sei, const TComSPS *sps)
Definition: SEIwrite.cpp:1297
Void xWriteSEISceneInfo(const SEISceneInfo &sei)
Definition: SEIwrite.cpp:470
Void xWriteSEIPictureSnapshot(const SEIPictureSnapshot &sei)
Definition: SEIwrite.cpp:486
Void xWriteSEIContentColourVolume(const SEIContentColourVolume &sei)
Definition: SEIwrite.cpp:1053
Void writeSEImessageHdrPayload(TComBitIf &bs, const SEI *sei, const TComSPS *sps)
Definition: SEIwrite.cpp:273
Void xWriteSEIpayloadData(TComBitIf &bs, const SEI &sei, const TComSPS *sps)
Definition: SEIwrite.cpp:56
Void xWriteSEIPanScanRect(const SEIPanScanRect &sei)
Definition: SEIwrite.cpp:403
Void xWriteSEIOmniViewport(const SEIOmniViewport &sei)
Definition: SEIwrite.cpp:1120
Void xWriteSEIDecodedPictureHash(const SEIDecodedPictureHash &sei)
Definition: SEIwrite.cpp:766
Void xWriteSEICodedRegionCompletion(const SEICodedRegionCompletion &sei)
Definition: SEIwrite.cpp:1273
Void xWriteSEIProgressiveRefinementSegmentEnd(const SEIProgressiveRefinementSegmentEnd &sei)
Definition: SEIwrite.cpp:499
Void xWriteSEIRecoveryPoint(const SEIRecoveryPoint &sei)
Definition: SEIwrite.cpp:462
bool Bool
Definition: TypeDef.h:204
Void xWriteSEIFillerPayload(const SEIFillerPayload &sei)
Definition: SEIwrite.cpp:424
Definition: SEI.h:52
Void xWriteSEIScalableNesting(TComBitIf &bs, const SEIScalableNesting &sei, const TComSPS *sps)
Definition: SEIwrite.cpp:788
Void xWriteSEIBufferingPeriod(const SEIBufferingPeriod &sei, const TComSPS *sps)
Definition: SEIwrite.cpp:323
Void xWriteSEIUserDataUnregistered(const SEIUserDataUnregistered &sei)
Definition: SEIwrite.cpp:448
Void xWriteSEIDependentRAPIndication(const SEIDependentRAPIndication &sei)
Definition: SEIwrite.cpp:1267
Void xWriteSEIRegionRefreshInfo(const SEIRegionRefreshInfo &sei)
Definition: SEIwrite.cpp:827
Void xWriteSEISOPDescription(const SEISOPDescription &sei)
Definition: SEIwrite.cpp:707
Void xWriteSEIAmbientViewingEnvironment(const SEIAmbientViewingEnvironment &sei)
Definition: SEIwrite.cpp:1289
Void xWriteSEIMasteringDisplayColourVolume(const SEIMasteringDisplayColourVolume &sei)
Definition: SEIwrite.cpp:898
Void xWriteSEIProgressiveRefinementSegmentStart(const SEIProgressiveRefinementSegmentStart &sei)
Definition: SEIwrite.cpp:492
CAVLC encoder class (header)
Definition: SEI.h:367
Void xWriteSEIContentLightLevelInfo(const SEIContentLightLevelInfo &sei)
Definition: SEIwrite.cpp:1260
Void xWriteSEIChromaResamplingFilterHint(const SEIChromaResamplingFilterHint &sei)
Definition: SEIwrite.cpp:986
Void xWriteSEIKneeFunctionInfo(const SEIKneeFunctionInfo &sei)
Definition: SEIwrite.cpp:1032
std::list< SEI * > SEIMessages
Definition: SEI.h:123
Void xWriteSEIColourRemappingInfo(const SEIColourRemappingInfo &sei)
Definition: SEIwrite.cpp:1196
Void xWriteSEIDeinterlaceFieldIdentification(const SEIDeinterlaceFieldIdentification &sei)
Definition: SEIwrite.cpp:1254
Void xWriteSEIRegionWisePacking(const SEIRegionWisePacking &sei)
Definition: SEIwrite.cpp:1152
Void xWriteSEIActiveParameterSets(const SEIActiveParameterSets &sei)
Definition: SEIwrite.cpp:727
Void xWriteSEIToneMappingInfo(const SEIToneMappingInfo &sei)
Definition: SEIwrite.cpp:574
Void xWriteSEIDisplayOrientation(const SEIDisplayOrientation &sei)
Definition: SEIwrite.cpp:685
Void xWriteSEISegmentedRectFramePacking(const SEISegmentedRectFramePacking &sei)
Definition: SEIwrite.cpp:917
Void xWriteSEITimeCode(const SEITimeCode &sei)
Definition: SEIwrite.cpp:839
Void xWriteSEINoDisplay(const SEINoDisplay &sei)
Definition: SEIwrite.cpp:833
virtual ~SEIWriter()
Definition: SEIwrite.h:50
Void xWriteByteAlign()
Definition: SEIwrite.cpp:1328
SPS class.
Definition: TComSlice.h:740