HEVC Test Model (HM)  HM-16.18
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
SEI.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 #ifndef __SEI__
35 #define __SEI__
36 
37 #pragma once
38 #include <list>
39 #include <vector>
40 #include <cstring>
41 
42 #include "CommonDef.h"
43 #include "libmd5/MD5.h"
44 
47 class TComSPS;
48 
52 class SEI
53 {
54 public:
56  {
59  PAN_SCAN_RECT = 2, // TODO: add encoder command line control to create these messages
60  FILLER_PAYLOAD = 3, // TODO: add encoder command line control to create these messages
61  USER_DATA_REGISTERED_ITU_T_T35 = 4, // TODO: add encoder command line control to create these messages
62  USER_DATA_UNREGISTERED = 5, // TODO: add encoder command line control to create these messages
64  SCENE_INFO = 9, // TODO: add encoder command line control to create these messages
65  PICTURE_SNAPSHOT = 15, // TODO: add encoder command line control to create these messages
66  PROGRESSIVE_REFINEMENT_SEGMENT_START = 16, // TODO: add encoder command line control to create these messages
67  PROGRESSIVE_REFINEMENT_SEGMENT_END = 17, // TODO: add encoder command line control to create these messages
68  FILM_GRAIN_CHARACTERISTICS = 19, // TODO: add encoder command line control to create these messages
69  POST_FILTER_HINT = 22, // TODO: add encoder command line control to create these messages
81  NO_DISPLAY = 135,
82  TIME_CODE = 136,
89  DEINTERLACE_FIELD_IDENTIFICATION = 143, // TODO: add encoder command line control to create these messages
90  CONTENT_LIGHT_LEVEL_INFO = 144, // TODO: add encoder command line control to create these messages
91  DEPENDENT_RAP_INDICATION = 145, // TODO: add encoder command line control to create these messages
92  CODED_REGION_COMPLETION = 146, // TODO: add encoder command line control to create these messages
94  AMBIENT_VIEWING_ENVIRONMENT = 148, // TODO: add encoder command line control to create these messages
95 #if CCV_SEI_MESSAGE
97 #endif
98 #if ERP_SR_OV_SEI_MESSAGE
102 #endif
103 #if CMP_SEI_MESSAGE
105 #endif
106 #if RWP_SEI_MESSAGE
108 #endif
109 #if RNSEI
111 #endif
112  };
113 
114  SEI() {}
115  virtual ~SEI() {}
116 
118 
119  virtual PayloadType payloadType() const = 0;
120 };
121 
122 
123 typedef std::list<SEI*> SEIMessages;
124 
127 
130 
132 Void deleteSEIs (SEIMessages &seiList);
133 
134 
135 class SEIBufferingPeriod : public SEI
136 {
137 public:
139  void copyTo (SEIBufferingPeriod& target);
140 
143  , m_rapCpbParamsPresentFlag (false)
144  , m_cpbDelayOffset (0)
145  , m_dpbDelayOffset (0)
146  {
151  }
152  virtual ~SEIBufferingPeriod() {}
153 
164 };
165 
166 
167 class SEIPictureTiming : public SEI
168 {
169 public:
171  void copyTo (SEIPictureTiming& target);
172 
174  : m_picStruct (0)
175  , m_sourceScanType (0)
176  , m_duplicateFlag (false)
178  {}
180  {
181  }
182 
186 
193  std::vector<UInt> m_numNalusInDuMinus1;
194  std::vector<UInt> m_duCpbRemovalDelayMinus1;
195 };
196 
197 
198 class SEIPanScanRect : public SEI
199 {
200 public:
202 
204  virtual ~SEIPanScanRect() {}
205 
206  struct PanScanRect
207  {
212  };
213 
216  std::vector<PanScanRect> m_panScanRectRegions;
218 };
219 
220 
221 class SEIFillerPayload : public SEI
222 {
223 public:
225 
227  virtual ~SEIFillerPayload() {}
228 
230 };
231 
232 
234 {
235 public:
237 
240 
242  std::vector<UChar> m_userData;
243 };
244 
245 
246 static const UInt ISO_IEC_11578_LEN=16;
247 
249 {
250 public:
252 
255 
257  std::vector<UChar> m_userData;
258 };
259 
260 
261 class SEIRecoveryPoint : public SEI
262 {
263 public:
265 
267  virtual ~SEIRecoveryPoint() {}
268 
272 };
273 
274 
275 class SEISceneInfo : public SEI
276 {
277 public:
278  PayloadType payloadType() const { return SCENE_INFO; }
279 
281  virtual ~SEISceneInfo() {}
282 
288 };
289 
290 
291 class SEIPictureSnapshot : public SEI
292 {
293 public:
295 
297  virtual ~SEIPictureSnapshot() {}
298 
300 };
301 
302 
304 {
305 public:
307 
310 
313 };
314 
315 
317 {
318 public:
320 
323 
325 };
326 
327 
329 {
330 public:
332 
335 
347 
349  {
352  std::vector<Int> compModelValue;
353  };
354 
355  struct CompModel
356  {
358  UChar numModelValues; // this must be the same as intensityValues[*].compModelValue.size()
359  std::vector<CompModelIntensityValues> intensityValues;
360  };
361 
364 };
365 
366 
367 class SEIPostFilterHint: public SEI
368 {
369 public:
371 
373  virtual ~SEIPostFilterHint() {}
374 
379  std::vector<Int> m_filterHintValues; // values stored in linear array, [ ( ( component * sizeY + y ) * SizeX ) + x ]
380 };
381 
382 
383 class SEIToneMappingInfo : public SEI
384 {
385 public:
388  virtual ~SEIToneMappingInfo() {}
389 
400  std::vector<Int> m_startOfCodedInterval;
402  std::vector<Int> m_codedPivotValue;
403  std::vector<Int> m_targetPivotValue;
416 };
417 
418 
419 class SEIFramePacking : public SEI
420 {
421 public:
423 
425  virtual ~SEIFramePacking() {}
426 
445 };
446 
447 
449 {
450 public:
452 
454  : cancelFlag(true)
455  , persistenceFlag(0)
456  , extensionFlag(false)
457  {}
459 
463 
467 };
468 
469 
470 class SEIGreenMetadataInfo : public SEI
471 {
472 public:
475 
477 
481 };
482 
483 
484 class SEISOPDescription : public SEI
485 {
486 public:
488 
490  virtual ~SEISOPDescription() {}
491 
494 
499 };
500 
501 
503 {
504 public:
506 
508  : activeVPSId (0)
509  , m_selfContainedCvsFlag (false)
511  , numSpsIdsMinus1 (0)
512  {}
514 
519  std::vector<Int> activeSeqParameterSetId;
520 };
521 
522 
523 class SEIDecodingUnitInfo : public SEI
524 {
525 public:
527 
529  : m_decodingUnitIdx(0)
533  {}
534  virtual ~SEIDecodingUnitInfo() {}
539 };
540 
541 
543 {
544 public:
546 
548  : tl0Idx(0)
549  , rapIdx(0)
550  {}
552 
555 };
556 
557 
559 {
560 public:
562 
565 
567 
569 };
570 
571 
572 class SEIScalableNesting : public SEI
573 {
574 public:
576 
578 
580  {
582  }
583 
586  Bool m_defaultOpFlag; //value valid if m_nestingOpFlag != 0
590 
591  Bool m_allLayersFlag; //value valid if m_nestingOpFlag == 0
592  UInt m_nestingNoOpMaxTemporalIdPlus1; //value valid if m_nestingOpFlag == 0 and m_allLayersFlag == 0
593  UInt m_nestingNumLayersMinus1; //value valid if m_nestingOpFlag == 0 and m_allLayersFlag == 0
594  UChar m_nestingLayerId[MAX_NESTING_NUM_LAYER]; //value valid if m_nestingOpFlag == 0 and m_allLayersFlag == 0. This can e.g. be a static array of 64 UChar values
595 
597 };
598 
599 
600 class SEIRegionRefreshInfo : public SEI
601 {
602 public:
604 
607  {}
609 
611 };
612 
613 
614 class SEINoDisplay : public SEI
615 {
616 public:
617  PayloadType payloadType() const { return NO_DISPLAY; }
618 
620  : m_noDisplay(false)
621  {}
622  virtual ~SEINoDisplay() {}
623 
625 };
626 
627 
628 class SEITimeCode : public SEI
629 {
630 public:
631  PayloadType payloadType() const { return TIME_CODE; }
633  virtual ~SEITimeCode(){}
634 
637 };
638 
639 
641 {
642 public:
646 
648 };
649 
650 
652 {
653 public:
655 
658 
662 };
663 
664 
665 //definition according to P1005_v1;
667 {
669  {
670  protected:
671  std::vector<Int> m_top_left_tile_index; //[tileSetIdx][tileIdx];
672  std::vector<Int> m_bottom_right_tile_index;
673 
674  public:
682 
684  {
685  m_top_left_tile_index .resize(number);
686  m_bottom_right_tile_index.resize(number);
687  }
688 
690  {
691  assert(m_top_left_tile_index.size() == m_bottom_right_tile_index.size());
692  return Int(m_top_left_tile_index.size());
693  }
694 
695  Int &topLeftTileIndex (const Int tileRectIndex) { return m_top_left_tile_index [tileRectIndex]; }
696  Int &bottomRightTileIndex(const Int tileRectIndex) { return m_bottom_right_tile_index[tileRectIndex]; }
697  const Int &topLeftTileIndex (const Int tileRectIndex) const { return m_top_left_tile_index [tileRectIndex]; }
698  const Int &bottomRightTileIndex(const Int tileRectIndex) const { return m_bottom_right_tile_index[tileRectIndex]; }
699  };
700 
701 protected:
702  std::vector<TileSetData> m_tile_set_data;
703 
704 public:
705 
712 
716 
717  Void setNumberOfTileSets(const Int number) { m_tile_set_data.resize(number); }
718  Int getNumberOfTileSets() const { return Int(m_tile_set_data.size()); }
719 
720  TileSetData &tileSetData (const Int index) { return m_tile_set_data[index]; }
721  const TileSetData &tileSetData (const Int index) const { return m_tile_set_data[index]; }
722 
723 };
724 
725 
727 {
728 public:
732 
738  std::vector<std::vector<Int> > m_verFilterCoeff;
739  std::vector<std::vector<Int> > m_horFilterCoeff;
740 };
741 
742 
743 class SEIKneeFunctionInfo : public SEI
744 {
745 public:
748  virtual ~SEIKneeFunctionInfo() {}
749 
758  std::vector<Int> m_kneeInputKneePoint;
759  std::vector<Int> m_kneeOutputKneePoint;
760 };
761 
762 #if CCV_SEI_MESSAGE
764 {
765 public:
769 
781 };
782 #endif
783 
784 #if ERP_SR_OV_SEI_MESSAGE
786 {
787 public:
789 
792 
799 };
800 
801 class SEISphereRotation : public SEI
802 {
803 public:
805 
807  virtual ~SEISphereRotation() {}
808 
814 };
815 
816 class SEIOmniViewport : public SEI
817 {
818 public:
820 
822  virtual ~SEIOmniViewport() {}
823 
825  {
831  };
832 
837  std::vector<OmniViewport> m_omniViewportRegions;
838 };
839 #endif
840 
841 #if CMP_SEI_MESSAGE
842 class SEICubemapProjection : public SEI
843 {
844 public:
850 };
851 #endif
852 
853 #if RWP_SEI_MESSAGE
854 class SEIRegionWisePacking : public SEI
855 {
856 public:
868  std::vector<UChar> m_rwpTransformType;
869  std::vector<Bool> m_rwpGuardBandFlag;
870  std::vector<UInt> m_projRegionWidth;
871  std::vector<UInt> m_projRegionHeight;
872  std::vector<UInt> m_rwpProjRegionTop;
873  std::vector<UInt> m_projRegionLeft;
874  std::vector<UShort> m_packedRegionWidth;
875  std::vector<UShort> m_packedRegionHeight;
876  std::vector<UShort> m_packedRegionTop;
877  std::vector<UShort> m_packedRegionLeft;
878  std::vector<UChar> m_rwpLeftGuardBandWidth;
879  std::vector<UChar> m_rwpRightGuardBandWidth;
880  std::vector<UChar> m_rwpTopGuardBandHeight;
881  std::vector<UChar> m_rwpBottomGuardBandHeight;
883  std::vector<UChar> m_rwpGuardBandType;
884 };
885 #endif
886 
888 {
889 public:
890 
891  struct CRIlut
892  {
895  bool operator < (const CRIlut& a) const
896  {
897  return codedValue < a.codedValue;
898  }
899  };
900 
904 
905  Void copyFrom( const SEIColourRemappingInfo &seiCriInput)
906  {
907  (*this) = seiCriInput;
908  }
909 
921  std::vector<CRIlut> m_preLut[3];
926  std::vector<CRIlut> m_postLut[3];
927 };
928 
929 
931 {
932 public:
935 
937 
939 };
940 
941 
943 {
944 public:
947 
949 
952 };
953 
954 
956 {
957 public:
960 
962 };
963 
964 
966 {
967 public:
970 
972 
975 };
976 
977 
979 {
980 public:
982 
984  { }
985 
987 
989 };
990 
991 
993 {
994 public:
997 
999 
1003 };
1004 
1005 #endif
1006 #if RNSEI
1007 // Class that associates an SEI with one more regions
1009 {
1010 public:
1012  RegionalSEI(SEI *sei, RNSEIWindowVec &regions)
1013  {
1015  {
1016  m_seiMessage = sei;
1017  m_regions = regions;
1018  }
1019  else
1020  {
1021  m_seiMessage = sei;
1022  }
1023  }
1025  {
1026  // m_seiMessage not deleted here; pointer should be passed to another object
1027  }
1028  SEI *getSEI() { return m_seiMessage; } // TBD - const?
1029  UInt getNumRegions() const { return m_regions.size(); }
1030  const RNSEIWindowVec& getRegions() { return m_regions; }
1031  Void addRegions(RNSEIWindowVec const &regions) { m_regions.insert(m_regions.end(), regions.begin(), regions.end()); }
1033  {
1034  switch(payloadType)
1035  {
1039  case SEI::POST_FILTER_HINT:
1045  return true;
1046  default:
1047  return false;
1048  }
1049 
1050 }
1051 private:
1054 };
1055 class SEIRegionalNesting : public SEI
1056 {
1057 public:
1061  UInt getNumRnSEIMessage() const { return m_rnSeiMessages.size(); }
1062  UInt getNumRectRegions() const { return m_regions.size(); }
1063  UInt getRNId() const { return m_rnId; }
1064  Void addRegion(RNSEIWindow *regn) { m_regions.push_back(*regn); }
1065  Void clearRegions() { m_regions.clear(); }
1066  Void addRegionalSEI(std::vector<UInt> listInd, SEI *sei) {m_rnSeiMessages.push_back(std::pair<std::vector<UInt>, SEI *>(listInd,sei));}
1067  Void addRegionalSEI(RegionalSEI *regSEI);
1068  const std::vector< std::pair< std::vector<UInt>, SEI* > >& getRnSEIMessages() const { return m_rnSeiMessages; }
1069  const std::vector<RNSEIWindow> &getRegions() const { return m_regions; }
1070 
1071 private:
1074  std::vector< std::pair< std::vector<UInt>, SEI* > > m_rnSeiMessages;
1075 };
1076 #endif
1077 
PayloadType payloadType() const
Definition: SEI.h:545
SEIMessages m_nestedSEIs
Definition: SEI.h:596
UChar m_filmGrainMatrixCoeffs
Definition: SEI.h:344
virtual ~SEIDecodedPictureHash()
Definition: SEI.h:564
virtual ~SEIScalableNesting()
Definition: SEI.h:579
SEI()
Definition: SEI.h:114
Int m_packedPictureWidth
Definition: SEI.h:866
PayloadType payloadType() const
Definition: SEI.h:945
virtual ~SEIRegionRefreshInfo()
Definition: SEI.h:608
std::vector< UShort > m_packedRegionLeft
Definition: SEI.h:877
PayloadType payloadType() const
Definition: SEI.h:819
UChar m_uuid_iso_iec_11578[ISO_IEC_11578_LEN]
Definition: SEI.h:256
Int m_postLutNumValMinus1[3]
Definition: SEI.h:925
PayloadType payloadType() const
Definition: SEI.h:654
UInt m_panScanRectId
Definition: SEI.h:214
Bool m_currentFrameIsFrame0Flag
Definition: SEI.h:435
Int m_duSptCpbRemovalDelay
Definition: SEI.h:536
SEIPostFilterHint()
Definition: SEI.h:372
std::vector< UChar > m_rwpTopGuardBandHeight
Definition: SEI.h:880
UChar m_filmGrainBitDepthChromaMinus8
Definition: SEI.h:340
virtual ~SEIPictureSnapshot()
Definition: SEI.h:297
RNSEIWindowVec m_regions
Definition: SEI.h:1073
virtual ~SEIUserDataUnregistered()
Definition: SEI.h:254
PayloadType
Definition: SEI.h:55
UInt getNumRegions() const
Definition: SEI.h:1029
Bool m_selfContainedCvsFlag
Definition: SEI.h:516
UShort m_ituCountryCode
Definition: SEI.h:241
Bool m_exposureCompensationValueSignFlag
Definition: SEI.h:408
TComSEIMasteringDisplay values
Definition: SEI.h:647
std::vector< UShort > m_packedRegionWidth
Definition: SEI.h:874
UInt m_sopDescVclNaluType[MAX_NUM_PICS_IN_SOP]
Definition: SEI.h:495
unsigned short UShort
Definition: TypeDef.h:210
Bool m_max_mcs_tier_level_idc_present_flag
Definition: SEI.h:709
UInt m_sopDescStRpsIdx[MAX_NUM_PICS_IN_SOP]
Definition: SEI.h:497
Int m_frame1GridPositionX
Definition: SEI.h:440
std::vector< Bool > m_rwpGuardBandFlag
Definition: SEI.h:869
Void setNumberOfTileRects(const Int number)
Definition: SEI.h:683
virtual ~SEIMasteringDisplayColourVolume()
Definition: SEI.h:645
UInt m_snapshotId
Definition: SEI.h:299
virtual ~SEICubemapProjection()
Definition: SEI.h:847
std::vector< Int > m_bottom_right_tile_index
Definition: SEI.h:672
Bool m_constituentPictureMatchingFlag
Definition: SEI.h:862
virtual ~SEIKneeFunctionInfo()
Definition: SEI.h:748
PayloadType payloadType() const
Definition: SEI.h:603
const Int & bottomRightTileIndex(const Int tileRectIndex) const
Definition: SEI.h:698
Int m_contentInterpretationType
Definition: SEI.h:431
virtual ~SEISOPDescription()
Definition: SEI.h:490
UInt m_initialCpbRemovalDelay[MAX_CPB_CNT][2]
Definition: SEI.h:158
Int m_exposureIndexIdc
Definition: SEI.h:406
Bool m_frame1SelfContainedFlag
Definition: SEI.h:437
UInt getNumRectRegions() const
Definition: SEI.h:1062
static const Int MAX_NUM_PICS_IN_SOP
Definition: CommonDef.h:138
PayloadType payloadType() const
Definition: SEI.h:766
SEIBufferingPeriod()
Definition: SEI.h:141
Defines version information, constants and small in-line functions.
Int m_ccvPrimariesY[MAX_NUM_COMPONENT]
Definition: SEI.h:777
Int m_exposureCompensationValueNumerator
Definition: SEI.h:409
void Void
Definition: TypeDef.h:203
std::vector< Int > m_targetPivotValue
Definition: SEI.h:403
Bool m_fieldViewsFlag
Definition: SEI.h:434
Int m_projPictureWidth
Definition: SEI.h:864
UInt m_dpbDelayOffset
Definition: SEI.h:157
Bool m_exactMatchingFlag
Definition: SEI.h:270
void copyTo(SEIBufferingPeriod &target)
Definition: SEI.cpp:86
Bool m_arrangementPersistenceFlag
Definition: SEI.h:443
SEIRecoveryPoint()
Definition: SEI.h:266
virtual ~SEI()
Definition: SEI.h:115
void copyTo(SEIPictureTiming &target)
Definition: SEI.cpp:100
Int m_colourRemapMatrixCoefficients
Definition: SEI.h:917
Void deleteSEIs(SEIMessages &seiList)
delete list of SEI messages (freeing the referenced objects)
Definition: SEI.cpp:77
UChar m_filmGrainColourPrimaries
Definition: SEI.h:342
SEIMessages getSeisByType(SEIMessages &seiList, SEI::PayloadType seiType)
output a selection of SEI messages by payload type. Ownership stays in original message list...
Definition: SEI.cpp:42
#define NULL
Definition: CommonDef.h:107
Bool m_kneePersistenceFlag
Definition: SEI.h:752
PayloadType payloadType() const
Definition: SEI.h:995
UChar m_filmGrainBitDepthLumaMinus8
Definition: SEI.h:339
Bool m_bIsMonochrome
Definition: SEI.h:378
UInt m_picDpbOutputDelay
Definition: SEI.h:188
PayloadType payloadType() const
Definition: SEI.h:319
std::vector< Int > m_kneeOutputKneePoint
Definition: SEI.h:759
Int m_decodingUnitIdx
Definition: SEI.h:535
Bool m_frame0FlippedFlag
Definition: SEI.h:433
virtual ~SEIPostFilterHint()
Definition: SEI.h:373
PayloadType payloadType() const
Definition: SEI.h:278
std::vector< Int > m_kneeInputKneePoint
Definition: SEI.h:758
PayloadType payloadType() const
Definition: SEI.h:901
SEISceneInfo()
Definition: SEI.h:280
unsigned int UInt
Definition: TypeDef.h:212
Bool m_rapCpbParamsPresentFlag
Definition: SEI.h:155
Int m_frame0GridPositionX
Definition: SEI.h:438
UInt m_cpbDelayOffset
Definition: SEI.h:156
PayloadType payloadType() const
Definition: SEI.h:968
SEIFramePacking()
Definition: SEI.h:424
PayloadType payloadType() const
Definition: SEI.h:788
virtual ~SEISegmentedRectFramePacking()
Definition: SEI.h:657
Bool m_colourRemapVideoSignalInfoPresentFlag
Definition: SEI.h:913
std::vector< Bool > m_rwpGuardBandNotUsedForPredFlag
Definition: SEI.h:882
SEICubemapProjection()
Definition: SEI.h:846
Bool m_frame0SelfContainedFlag
Definition: SEI.h:436
SEINoDisplay()
Definition: SEI.h:619
Int m_numPivots
Definition: SEI.h:401
Int m_minValue
Definition: SEI.h:396
Bool m_deinterlacedPictureSourceParityFlag
Definition: SEI.h:938
Bool m_ccvAvgLuminanceValuePresentFlag
Definition: SEI.h:775
PayloadType payloadType() const
Definition: SEI.h:845
Bool m_ccvPersistenceFlag
Definition: SEI.h:771
UInt numClockTs
Definition: SEI.h:635
std::vector< Int > m_top_left_tile_index
Definition: SEI.h:671
TileSetData & tileSetData(const Int index)
Definition: SEI.h:720
std::vector< UInt > m_numNalusInDuMinus1
Definition: SEI.h:193
std::vector< UInt > m_projRegionWidth
Definition: SEI.h:870
PayloadType payloadType() const
Definition: SEI.h:236
virtual ~SEIBufferingPeriod()
Definition: SEI.h:152
Bool m_panScanRectPersistenceFlag
Definition: SEI.h:217
virtual ~SEIAmbientViewingEnvironment()
Definition: SEI.h:998
std::vector< UInt > m_projRegionHeight
Definition: SEI.h:871
SEIPanScanRect()
Definition: SEI.h:203
UInt m_secondSceneId
Definition: SEI.h:287
PayloadType payloadType() const
Definition: SEI.h:264
Bool m_cmpPersistenceFlag
Definition: SEI.h:849
Bool m_sphereRotationPersistenceFlag
Definition: SEI.h:810
PayloadType payloadType() const
Definition: SEI.h:505
PayloadType payloadType() const
Definition: SEI.h:451
PayloadType payloadType() const
Definition: SEI.h:1060
UInt m_ccvAvgLuminanceValue
Definition: SEI.h:780
Void addRegion(RNSEIWindow *regn)
Definition: SEI.h:1064
PayloadType payloadType() const
Definition: SEI.h:251
Int m_nominalBlackLevelLumaCodeValue
Definition: SEI.h:413
virtual ~SEIProgressiveRefinementSegmentStart()
Definition: SEI.h:309
std::vector< Int > activeSeqParameterSetId
Definition: SEI.h:519
static const Int MAX_CPB_CNT
Upper bound of (cpb_cnt_minus1 + 1)
Definition: CommonDef.h:150
static const TChar * getSEIMessageString(SEI::PayloadType payloadType)
Definition: SEI.cpp:182
PayloadType payloadType() const
Definition: SEI.h:224
virtual ~SEITimeCode()
Definition: SEI.h:633
SEIMessages extractSeisByType(SEIMessages &seiList, SEI::PayloadType seiType)
remove a selection of SEI messages by payload type from the original list and return them in a new li...
Definition: SEI.cpp:56
char TChar
Definition: TypeDef.h:206
HashType method
Definition: SEI.h:566
std::vector< UChar > m_rwpRightGuardBandWidth
Definition: SEI.h:879
Bool m_separateColourDescriptionPresentFlag
Definition: SEI.h:338
PayloadType payloadType() const
Definition: SEI.h:631
SEIPictureTiming()
Definition: SEI.h:173
Bool m_colourRemapCancelFlag
Definition: SEI.h:911
Bool m_colourRemapMatrixPresentFlag
Definition: SEI.h:922
UInt m_picStruct
Definition: SEI.h:183
std::vector< CRIlut > m_postLut[3]
Definition: SEI.h:926
std::vector< OmniViewport > m_omniViewportRegions
Definition: SEI.h:837
PayloadType payloadType() const
Definition: SEI.h:857
Bool m_colourRemapFullRangeFlag
Definition: SEI.h:914
SEI * m_seiMessage
Definition: SEI.h:1052
virtual ~SEIFillerPayload()
Definition: SEI.h:227
Int m_picSptDpbOutputDuDelay
Definition: SEI.h:538
SEIRegionalNesting()
Definition: SEI.h:1058
std::vector< UInt > m_rwpProjRegionTop
Definition: SEI.h:872
Int m_kneeOutputDrange
Definition: SEI.h:755
SEIOmniViewport()
Definition: SEI.h:821
UInt getNumRnSEIMessage() const
Definition: SEI.h:1061
UInt m_sopDescTemporalId[MAX_NUM_PICS_IN_SOP]
Definition: SEI.h:496
Bool m_rwpCancelFlag
Definition: SEI.h:860
std::vector< std::pair< std::vector< UInt >, SEI * > > m_rnSeiMessages
Definition: SEI.h:1074
PayloadType payloadType() const
Definition: SEI.h:575
SEIRegionRefreshInfo()
Definition: SEI.h:605
std::vector< UShort > m_packedRegionTop
Definition: SEI.h:876
std::vector< UChar > m_userData
Definition: SEI.h:242
Int m_frame1GridPositionY
Definition: SEI.h:441
Int m_kneeInputDispLuminance
Definition: SEI.h:754
Bool m_cmpCancelFlag
Definition: SEI.h:848
SEISOPDescription()
Definition: SEI.h:489
UInt m_sourceScanType
Definition: SEI.h:184
SEISphereRotation()
Definition: SEI.h:806
HashType
Definition: TypeDef.h:524
SEIKneeFunctionInfo()
Definition: SEI.h:747
std::vector< Int > m_startOfCodedInterval
Definition: SEI.h:400
Bool m_bPrevSceneIdValidFlag
Definition: SEI.h:284
std::vector< PanScanRect > m_panScanRectRegions
Definition: SEI.h:216
virtual ~SEIDeinterlaceFieldIdentification()
Definition: SEI.h:936
TComSEITimeSet timeSetArray[MAX_TIMECODE_SEI_SETS]
Definition: SEI.h:636
SEIDecodingUnitInfo()
Definition: SEI.h:528
const Int & topLeftTileIndex(const Int tileRectIndex) const
Definition: SEI.h:697
UInt m_xsdMetricValue
Definition: SEI.h:480
UInt m_numPicsInSopMinus1
Definition: SEI.h:493
virtual ~SEIGreenMetadataInfo()
Definition: SEI.h:476
Bool m_ccvMaxLuminanceValuePresentFlag
Definition: SEI.h:774
Int m_maxValue
Definition: SEI.h:397
Int m_colourRemapCoeffs[3][3]
Definition: SEI.h:924
static const UInt ISO_IEC_11578_LEN
Definition: SEI.h:246
Bool m_independentSliceSegmentFlag
Definition: SEI.h:974
bool Bool
Definition: TypeDef.h:204
CompModel m_compModel[MAX_NUM_COMPONENT]
Definition: SEI.h:362
const RNSEIWindowVec & getRegions()
Definition: SEI.h:1030
RegionalSEI()
Definition: SEI.h:1011
Bool m_verFilteringFieldProcessingFlag
Definition: SEI.h:735
Bool m_ccvPrimariesPresentFlag
Definition: SEI.h:772
SEIToneMappingInfo()
Definition: SEI.h:387
SEI * getSEI()
Definition: SEI.h:1028
UInt m_xsdMetricType
Definition: SEI.h:479
Bool m_allLayersFlag
Definition: SEI.h:591
TComPictureHash m_pictureHash
Definition: SEI.h:568
Int m_sigmoidWidth
Definition: SEI.h:399
const TileSetData & tileSetData(const Int index) const
Definition: SEI.h:721
std::vector< UChar > m_rwpLeftGuardBandWidth
Definition: SEI.h:878
SEIGreenMetadataInfo()
Definition: SEI.h:474
SEIScalableNesting()
Definition: SEI.h:577
Int m_nominalWhiteLevelLumaCodeValue
Definition: SEI.h:414
PayloadType payloadType() const
Definition: SEI.h:804
Int m_cameraIsoSpeedIdc
Definition: SEI.h:404
Definition: SEI.h:52
virtual ~SEIPanScanRect()
Definition: SEI.h:204
virtual ~SEISceneInfo()
Definition: SEI.h:281
PayloadType payloadType() const
Definition: SEI.h:933
UInt m_filterHintType
Definition: SEI.h:377
UInt m_maxContentLightLevel
Definition: SEI.h:950
SEIPictureSnapshot()
Definition: SEI.h:296
virtual ~SEIEquirectangularProjection()
Definition: SEI.h:791
std::vector< UChar > m_rwpBottomGuardBandHeight
Definition: SEI.h:881
virtual PayloadType payloadType() const =0
Bool m_ccvCancelFlag
Definition: SEI.h:770
Int m_toneMapId
Definition: SEI.h:390
UInt m_numDecodingUnitsMinus1
Definition: SEI.h:190
std::vector< CRIlut > m_preLut[3]
Definition: SEI.h:921
UInt m_bpSeqParameterSetId
Definition: SEI.h:154
SEIRegionWisePacking()
Definition: SEI.h:858
virtual ~SEICodedRegionCompletion()
Definition: SEI.h:971
Bool m_quincunxSamplingFlag
Definition: SEI.h:430
PayloadType payloadType() const
Definition: SEI.h:386
UInt m_nestingNumOpsMinus1
Definition: SEI.h:587
Int & bottomRightTileIndex(const Int tileRectIndex)
Definition: SEI.h:696
UInt m_filterHintSizeY
Definition: SEI.h:375
Void copyFrom(const SEIColourRemappingInfo &seiCriInput)
Definition: SEI.h:905
UInt m_initialAltCpbRemovalDelayOffset[MAX_CPB_CNT][2]
Definition: SEI.h:161
std::vector< std::vector< Int > > m_horFilterCoeff
Definition: SEI.h:739
PayloadType payloadType() const
Definition: SEI.h:958
Bool m_omniViewportPersistenceFlag
Definition: SEI.h:835
std::vector< UShort > m_packedRegionHeight
Definition: SEI.h:875
Bool m_filmGrainCharacteristicsCancelFlag
Definition: SEI.h:336
bool operator<(const CRIlut &a) const
Definition: SEI.h:895
Int m_preLutNumValMinus1[3]
Definition: SEI.h:920
UInt m_auCpbRemovalDelayDelta
Definition: SEI.h:163
static const Int MAX_NESTING_NUM_LAYER
Definition: CommonDef.h:141
virtual ~SEITemporalLevel0Index()
Definition: SEI.h:551
PayloadType payloadType() const
Definition: SEI.h:981
unsigned char UChar
Definition: TypeDef.h:208
UInt m_nextSegmentAddress
Definition: SEI.h:973
std::vector< std::vector< Int > > m_verFilterCoeff
Definition: SEI.h:738
PayloadType payloadType() const
Definition: SEI.h:306
Int m_sphereRotationYaw
Definition: SEI.h:811
virtual ~SEIFramePacking()
Definition: SEI.h:425
UInt m_maxPicAverageLightLevel
Definition: SEI.h:951
Bool m_arrangementCancelFlag
Definition: SEI.h:428
Int m_codedDataBitDepth
Definition: SEI.h:393
virtual ~SEIChromaResamplingFilterHint()
Definition: SEI.h:731
UInt m_nestingNoOpMaxTemporalIdPlus1
Definition: SEI.h:592
SEIFillerPayload()
Definition: SEI.h:226
Int m_colourRemapInputBitDepth
Definition: SEI.h:918
Int m_ccvPrimariesX[MAX_NUM_COMPONENT]
Definition: SEI.h:776
Bool m_filmGrainCharacteristicsPersistenceFlag
Definition: SEI.h:363
Int m_extendedWhiteLevelLumaCodeValue
Definition: SEI.h:415
Bool m_bSceneInfoPresentFlag
Definition: SEI.h:283
UInt m_initialCpbRemovalDelayOffset[MAX_CPB_CNT][2]
Definition: SEI.h:159
UInt m_duCommonCpbRemovalDelayMinus1
Definition: SEI.h:192
virtual ~SEINoDisplay()
Definition: SEI.h:622
std::vector< TileSetData > m_tile_set_data
Definition: SEI.h:702
std::vector< UChar > m_rwpTransformType
Definition: SEI.h:868
Int getNumberOfTileSets() const
Definition: SEI.h:718
Void clearRegions()
Definition: SEI.h:1065
UInt anticlockwiseRotation
Definition: SEI.h:464
~RegionalSEI()
Definition: SEI.h:1024
UInt m_ccvMinLuminanceValue
Definition: SEI.h:778
Bool m_spatialFlippingFlag
Definition: SEI.h:432
UInt m_omniViewportId
Definition: SEI.h:833
PayloadType payloadType() const
Definition: SEI.h:729
Void setNumberOfTileSets(const Int number)
Definition: SEI.h:717
std::vector< Int > m_filterHintValues
Definition: SEI.h:379
PayloadType payloadType() const
Definition: SEI.h:170
UInt m_filterHintSizeX
Definition: SEI.h:376
static const Int MAX_TLAYER
Explicit temporal layer QP offset - max number of temporal layer.
Definition: CommonDef.h:134
Int m_projPictureHeight
Definition: SEI.h:865
std::vector< UChar > m_userData
Definition: SEI.h:257
PayloadType payloadType() const
Definition: SEI.h:643
virtual ~SEIFilmGrainCharacteristics()
Definition: SEI.h:334
virtual ~SEIRecoveryPoint()
Definition: SEI.h:267
UInt m_nestingMaxTemporalIdPlus1[MAX_TLAYER]
Definition: SEI.h:588
virtual ~SEIOmniViewport()
Definition: SEI.h:822
virtual ~SEIAlternativeTransferCharacteristics()
Definition: SEI.h:986
UInt m_greenMetadataType
Definition: SEI.h:478
PayloadType payloadType() const
Definition: SEI.h:331
Bool m_noDisplay
Definition: SEI.h:624
Int m_numPackedRegions
Definition: SEI.h:863
Int m_recoveryPocCnt
Definition: SEI.h:269
UInt m_numFillerFFBytes
Definition: SEI.h:229
std::vector< RNSEIWindow > RNSEIWindowVec
Definition: TypeDef.h:979
UInt getRNId() const
Definition: SEI.h:1063
PayloadType payloadType() const
Definition: SEI.h:487
Bool m_omniViewportCancelFlag
Definition: SEI.h:834
Definition: SEI.h:367
virtual ~SEIDependentRAPIndication()
Definition: SEI.h:961
UChar m_omniViewportCntMinus1
Definition: SEI.h:836
Int m_exposureIndexValue
Definition: SEI.h:407
virtual ~SEIProgressiveRefinementSegmentEnd()
Definition: SEI.h:322
Bool m_nestingOpFlag
Definition: SEI.h:585
UInt m_initialAltCpbRemovalDelay[MAX_CPB_CNT][2]
Definition: SEI.h:160
virtual ~SEISphereRotation()
Definition: SEI.h:807
PayloadType payloadType() const
Definition: SEI.h:138
Int m_colourRemapPrimaries
Definition: SEI.h:915
virtual ~SEIContentLightLevelInfo()
Definition: SEI.h:948
Int m_arrangementType
Definition: SEI.h:429
Bool m_duCommonCpbRemovalDelayFlag
Definition: SEI.h:191
Int m_exposureCompensationValueDenomIdc
Definition: SEI.h:410
Bool m_sphereRotationCancelFlag
Definition: SEI.h:809
Int m_arrangementId
Definition: SEI.h:427
PayloadType payloadType() const
Definition: SEI.h:561
Int & topLeftTileIndex(const Int tileRectIndex)
Definition: SEI.h:695
UChar m_filmGrainTransferCharacteristics
Definition: SEI.h:343
std::vector< Int > m_codedPivotValue
Definition: SEI.h:402
PayloadType payloadType() const
Definition: SEI.h:713
Int m_kneeOutputDispLuminance
Definition: SEI.h:756
PayloadType payloadType() const
Definition: SEI.h:526
Int m_sigmoidMidpoint
Definition: SEI.h:398
std::vector< UInt > m_duCpbRemovalDelayMinus1
Definition: SEI.h:194
UInt m_auCpbRemovalDelay
Definition: SEI.h:187
std::list< SEI * > SEIMessages
Definition: SEI.h:123
Int m_sopDescPocDelta[MAX_NUM_PICS_IN_SOP]
Definition: SEI.h:498
std::vector< UInt > m_projRegionLeft
Definition: SEI.h:873
RegionalSEI(SEI *sei, RNSEIWindowVec &regions)
Definition: SEI.h:1012
PayloadType payloadType() const
Definition: SEI.h:370
const std::vector< RNSEIWindow > & getRegions() const
Definition: SEI.h:1069
static Bool checkRegionalNestedSEIPayloadType(SEI::PayloadType const payloadType)
Definition: SEI.h:1032
Int m_sphereRotationRoll
Definition: SEI.h:813
Int m_extendedRangeWhiteLevel
Definition: SEI.h:412
UInt m_nestingNumLayersMinus1
Definition: SEI.h:593
Void addRegionalSEI(std::vector< UInt > listInd, SEI *sei)
Definition: SEI.h:1066
int Int
Definition: TypeDef.h:211
Bool persistenceFlag
Definition: SEI.h:465
Bool m_mc_all_tiles_exact_sample_value_match_flag
Definition: SEI.h:706
Int m_sphereRotationPitch
Definition: SEI.h:812
PayloadType payloadType() const
Definition: SEI.h:473
Int m_refScreenLuminanceWhite
Definition: SEI.h:411
Bool m_concatenationFlag
Definition: SEI.h:162
Bool m_brokenLinkFlag
Definition: SEI.h:271
Bool m_toneMapPersistenceFlag
Definition: SEI.h:392
Bool m_colourRemapPersistenceFlag
Definition: SEI.h:912
Int m_kneeInputDrange
Definition: SEI.h:753
Int m_kneeNumKneePointsMinus1
Definition: SEI.h:757
virtual ~SEIContentColourVolume()
Definition: SEI.h:768
PayloadType payloadType() const
Definition: SEI.h:422
Int m_frame0GridPositionY
Definition: SEI.h:439
std::vector< UChar > m_rwpGuardBandType
Definition: SEI.h:883
UInt m_picDpbOutputDuDelay
Definition: SEI.h:189
Void addRegions(RNSEIWindowVec const &regions)
Definition: SEI.h:1031
UInt m_ccvMaxLuminanceValue
Definition: SEI.h:779
Bool m_toneMapCancelFlag
Definition: SEI.h:391
Int m_cameraIsoSpeedValue
Definition: SEI.h:405
virtual ~SEITempMotionConstrainedTileSets()
Definition: SEI.h:715
std::vector< CompModelIntensityValues > intensityValues
Definition: SEI.h:359
Bool m_dpbOutputDuDelayPresentFlag
Definition: SEI.h:537
Bool m_noParameterSetUpdateFlag
Definition: SEI.h:517
static const Int MAX_TIMECODE_SEI_SETS
Maximum number of time sets.
Definition: CommonDef.h:218
UInt m_colourRemapId
Definition: SEI.h:910
virtual ~SEIDecodingUnitInfo()
Definition: SEI.h:534
static const Int MAX_NESTING_NUM_OPS
Definition: CommonDef.h:140
const std::vector< std::pair< std::vector< UInt >, SEI * > > & getRnSEIMessages() const
Definition: SEI.h:1068
Bool m_upsampledAspectRatio
Definition: SEI.h:444
UInt m_sceneId
Definition: SEI.h:285
Bool m_kneeCancelFlag
Definition: SEI.h:751
UChar m_nestingLayerId[MAX_NESTING_NUM_LAYER]
Definition: SEI.h:594
virtual ~SEIActiveParameterSets()
Definition: SEI.h:513
Int m_colourRemapBitDepth
Definition: SEI.h:919
Bool m_panScanRectCancelFlag
Definition: SEI.h:215
Int m_arrangementReservedByte
Definition: SEI.h:442
Int m_packedPictureHeight
Definition: SEI.h:867
Bool extensionFlag
Definition: SEI.h:466
Bool m_defaultOpFlag
Definition: SEI.h:586
UInt m_nestingOpIdx[MAX_NESTING_NUM_OPS]
Definition: SEI.h:589
Bool m_rwpPersistenceFlag
Definition: SEI.h:861
virtual ~SEIRegionWisePacking()
Definition: SEI.h:859
SEITimeCode()
Definition: SEI.h:632
virtual ~SEIUserDataRegistered()
Definition: SEI.h:239
Int m_targetBitDepth
Definition: SEI.h:394
virtual ~SEIPictureTiming()
Definition: SEI.h:179
PayloadType payloadType() const
Definition: SEI.h:294
Bool m_bitStreamSubsetFlag
Definition: SEI.h:584
UInt m_sopSeqParameterSetId
Definition: SEI.h:492
Int m_colourRemapTransferFunction
Definition: SEI.h:916
Bool m_gdrForegroundFlag
Definition: SEI.h:610
PayloadType payloadType() const
Definition: SEI.h:201
UChar m_erpRightGuardBandWidth
Definition: SEI.h:798
UInt m_sceneTransitionType
Definition: SEI.h:286
PayloadType payloadType() const
Definition: SEI.h:746
RNSEIWindowVec m_regions
Definition: SEI.h:1053
virtual ~SEIDisplayOrientation()
Definition: SEI.h:458
Bool m_duplicateFlag
Definition: SEI.h:185
PayloadType payloadType() const
Definition: SEI.h:617
virtual ~SEIToneMappingInfo()
Definition: SEI.h:388
Bool m_ccvMinLuminanceValuePresentFlag
Definition: SEI.h:773
SPS class.
Definition: TComSlice.h:740
Bool m_arrangementPersistenceFlag
Definition: SEI.h:661