HEVC Test Model (HM)  HM-16.3
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-2015, 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 writeSEImessage(TComBitIf& bs, const SEI& sei, const TComSPS *sps);
53 
54 protected:
55  Void xWriteSEIpayloadData(TComBitIf& bs, const SEI& sei, const TComSPS *sps);
61  Void xWriteSEIPictureTiming(const SEIPictureTiming& sei, const TComSPS *sps);
80 };
81 
83 
84 #endif
Void xWriteSEIDecodingUnitInfo(const SEIDecodingUnitInfo &sei, const TComSPS *sps)
Definition: SEIwrite.cpp:246
void Void
Definition: TypeDef.h:285
SEIWriter()
Definition: SEIwrite.h:49
pure virtual class for basic bit handling
Definition: TComBitStream.h:58
Void xWriteSEIPictureTiming(const SEIPictureTiming &sei, const TComSPS *sps)
Definition: SEIwrite.cpp:297
Void writeUserDefinedCoefficients(const SEIChromaSamplingFilterHint &sei)
Definition: SEIwrite.cpp:676
Void xWriteSEITemporalLevel0Index(const SEITemporalLevel0Index &sei)
Definition: SEIwrite.cpp:474
Void xWriteSEIFramePacking(const SEIFramePacking &sei)
Definition: SEIwrite.cpp:343
Void writeSEImessage(TComBitIf &bs, const SEI &sei, const TComSPS *sps)
Definition: SEIwrite.cpp:134
Void xWriteSEIDecodedPictureHash(const SEIDecodedPictureHash &sei)
Definition: SEIwrite.cpp:210
TComSPS * m_pSPS
Definition: SEIwrite.h:62
Void xWriteSEIRecoveryPoint(const SEIRecoveryPoint &sei)
Definition: SEIwrite.cpp:337
Void xWriteSEIuserDataUnregistered(const SEIuserDataUnregistered &sei)
Definition: SEIwrite.cpp:193
Void xWriteSEIGradualDecodingRefreshInfo(const SEIGradualDecodingRefreshInfo &sei)
Definition: SEIwrite.cpp:480
Definition: SEI.h:52
Void xWriteSEIScalableNesting(TComBitIf &bs, const SEIScalableNesting &sei, const TComSPS *sps)
Definition: SEIwrite.cpp:508
Void xWriteSEIBufferingPeriod(const SEIBufferingPeriod &sei, const TComSPS *sps)
Definition: SEIwrite.cpp:261
Void xWriteSEITempMotionConstrainedTileSets(TComBitIf &bs, const SEITempMotionConstrainedTileSets &sei)
Definition: SEIwrite.cpp:549
Void xWriteSEIChromaSamplingFilterHint(const SEIChromaSamplingFilterHint &sei)
Definition: SEIwrite.cpp:664
Void xWriteSEISOPDescription(const SEISOPDescription &sei)
Definition: SEIwrite.cpp:489
Void xWriteSEIMasteringDisplayColourVolume(const SEIMasteringDisplayColourVolume &sei)
Definition: SEIwrite.cpp:767
CAVLC encoder class (header)
Void xWriteSEIKneeFunctionInfo(const SEIKneeFunctionInfo &sei)
Definition: SEIwrite.cpp:746
Void xWriteSEIActiveParameterSets(const SEIActiveParameterSets &sei)
Definition: SEIwrite.cpp:231
Void xWriteSEIToneMappingInfo(const SEIToneMappingInfo &sei)
Definition: SEIwrite.cpp:387
Void xWriteSEIDisplayOrientation(const SEIDisplayOrientation &sei)
Definition: SEIwrite.cpp:462
Void xWriteSEISegmentedRectFramePacking(const SEISegmentedRectFramePacking &sei)
Definition: SEIwrite.cpp:377
Void xWriteSEITimeCode(const SEITimeCode &sei)
Definition: SEIwrite.cpp:606
Void xWriteSEINoDisplay(const SEINoDisplay &sei)
Definition: SEIwrite.cpp:485
virtual ~SEIWriter()
Definition: SEIwrite.h:50
Void xWriteByteAlign()
Definition: SEIwrite.cpp:786
Void xWriteSEIpayloadData(TComBitIf &bs, const SEI &sei, const TComSPS *sps)
Definition: SEIwrite.cpp:56
SPS class.
Definition: TComSlice.h:722