HEVC Test Model (HM)
HM-16.18
Main Page
Related Pages
Modules
Namespaces
Classes
Files
File List
File Members
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Friends
Macros
Groups
Pages
Lib
TLibCommon
NAL.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 __NAL__
37
#define __NAL__
38
39
#include <sstream>
40
#include "
CommonDef.h
"
41
42
class
TComOutputBitstream
;
43
47
struct
NALUnit
48
{
49
NalUnitType
m_nalUnitType
;
50
UInt
m_temporalId
;
51
UInt
m_nuhLayerId
;
52
53
NALUnit
(
const
NALUnit
&src)
54
:
m_nalUnitType
(src.
m_nalUnitType
)
55
,
m_temporalId
(src.
m_temporalId
)
56
,
m_nuhLayerId
(src.
m_nuhLayerId
)
57
{ }
59
NALUnit
(
60
NalUnitType
nalUnitType,
61
Int
temporalId = 0,
62
Int
nuhLayerId = 0)
63
:
m_nalUnitType
(nalUnitType)
64
,
m_temporalId
(temporalId)
65
,
m_nuhLayerId
(nuhLayerId)
66
{}
67
69
NALUnit
() {}
70
71
virtual
~NALUnit
() { }
72
74
Bool
isSlice
()
75
{
76
return
m_nalUnitType
==
NAL_UNIT_CODED_SLICE_TRAIL_R
77
||
m_nalUnitType
==
NAL_UNIT_CODED_SLICE_TRAIL_N
78
||
m_nalUnitType
==
NAL_UNIT_CODED_SLICE_TSA_R
79
||
m_nalUnitType
==
NAL_UNIT_CODED_SLICE_TSA_N
80
||
m_nalUnitType
==
NAL_UNIT_CODED_SLICE_STSA_R
81
||
m_nalUnitType
==
NAL_UNIT_CODED_SLICE_STSA_N
82
||
m_nalUnitType
==
NAL_UNIT_CODED_SLICE_BLA_W_LP
83
||
m_nalUnitType
==
NAL_UNIT_CODED_SLICE_BLA_W_RADL
84
||
m_nalUnitType
==
NAL_UNIT_CODED_SLICE_BLA_N_LP
85
||
m_nalUnitType
==
NAL_UNIT_CODED_SLICE_IDR_W_RADL
86
||
m_nalUnitType
==
NAL_UNIT_CODED_SLICE_IDR_N_LP
87
||
m_nalUnitType
==
NAL_UNIT_CODED_SLICE_CRA
88
||
m_nalUnitType
==
NAL_UNIT_CODED_SLICE_RADL_N
89
||
m_nalUnitType
==
NAL_UNIT_CODED_SLICE_RADL_R
90
||
m_nalUnitType
==
NAL_UNIT_CODED_SLICE_RASL_N
91
||
m_nalUnitType
==
NAL_UNIT_CODED_SLICE_RASL_R
;
92
}
93
Bool
isSei
()
94
{
95
return
m_nalUnitType
==
NAL_UNIT_PREFIX_SEI
96
||
m_nalUnitType
==
NAL_UNIT_SUFFIX_SEI
;
97
}
98
99
Bool
isVcl
()
100
{
101
return
( (
UInt
)
m_nalUnitType
< 32 );
102
}
103
};
104
105
struct
OutputNALUnit
;
106
110
struct
NALUnitEBSP
:
public
NALUnit
111
{
112
std::ostringstream
m_nalUnitData
;
113
119
NALUnitEBSP
(
OutputNALUnit
& nalu);
120
};
123
124
#endif
NAL_UNIT_CODED_SLICE_RASL_R
Definition:
TypeDef.h:679
NAL_UNIT_CODED_SLICE_CRA
Definition:
TypeDef.h:693
NAL_UNIT_CODED_SLICE_IDR_N_LP
Definition:
TypeDef.h:692
NALUnit::isSlice
Bool isSlice()
Definition:
NAL.h:74
CommonDef.h
Defines version information, constants and small in-line functions.
NALUnit::NALUnit
NALUnit(NalUnitType nalUnitType, Int temporalId=0, Int nuhLayerId=0)
Definition:
NAL.h:59
NAL_UNIT_CODED_SLICE_RADL_N
Definition:
TypeDef.h:675
UInt
unsigned int UInt
Definition:
TypeDef.h:212
NAL_UNIT_CODED_SLICE_TSA_N
Definition:
TypeDef.h:669
NALUnit::m_nalUnitType
NalUnitType m_nalUnitType
nal_unit_type
Definition:
NAL.h:49
NALUnit::isSei
Bool isSei()
Definition:
NAL.h:93
NAL_UNIT_CODED_SLICE_STSA_R
Definition:
TypeDef.h:673
NALUnit::NALUnit
NALUnit()
Definition:
NAL.h:69
OutputNALUnit
Definition:
NALwrite.h:52
NALUnit::isVcl
Bool isVcl()
Definition:
NAL.h:99
NAL_UNIT_CODED_SLICE_IDR_W_RADL
Definition:
TypeDef.h:691
NALUnitEBSP
Definition:
NAL.h:110
NAL_UNIT_CODED_SLICE_RASL_N
Definition:
TypeDef.h:678
Bool
bool Bool
Definition:
TypeDef.h:204
NAL_UNIT_PREFIX_SEI
Definition:
TypeDef.h:713
NALUnitEBSP::NALUnitEBSP
NALUnitEBSP(OutputNALUnit &nalu)
Definition:
NALwrite.h:79
NAL_UNIT_CODED_SLICE_BLA_W_RADL
Definition:
TypeDef.h:689
NALUnit::NALUnit
NALUnit(const NALUnit &src)
Definition:
NAL.h:53
NAL_UNIT_CODED_SLICE_TRAIL_R
Definition:
TypeDef.h:667
NAL_UNIT_CODED_SLICE_TRAIL_N
Definition:
TypeDef.h:666
NALUnit::m_nuhLayerId
UInt m_nuhLayerId
nuh_layer_id
Definition:
NAL.h:51
NAL_UNIT_CODED_SLICE_BLA_W_LP
Definition:
TypeDef.h:688
NAL_UNIT_CODED_SLICE_TSA_R
Definition:
TypeDef.h:670
NAL_UNIT_SUFFIX_SEI
Definition:
TypeDef.h:714
Int
int Int
Definition:
TypeDef.h:211
NALUnitEBSP::m_nalUnitData
std::ostringstream m_nalUnitData
Definition:
NAL.h:112
NalUnitType
NalUnitType
Definition:
TypeDef.h:664
NAL_UNIT_CODED_SLICE_RADL_R
Definition:
TypeDef.h:676
NALUnit::~NALUnit
virtual ~NALUnit()
Definition:
NAL.h:71
NALUnit::m_temporalId
UInt m_temporalId
temporal_id
Definition:
NAL.h:50
NAL_UNIT_CODED_SLICE_STSA_N
Definition:
TypeDef.h:672
NALUnit
Definition:
NAL.h:47
TComOutputBitstream
Definition:
TComBitStream.h:74
NAL_UNIT_CODED_SLICE_BLA_N_LP
Definition:
TypeDef.h:690
Generated on Wed Jun 6 2018 16:56:47 for HEVC Test Model (HM) by
1.8.5