Skip to content
GitLab
Menu
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
jvet
HM
Commits
6753aa9c
Commit
6753aa9c
authored
May 30, 2017
by
Karl Sharman
Browse files
Added parsing of some SEI messages.
parent
f7dae8c0
Changes
7
Expand all
Hide whitespace changes
Inline
Side-by-side
source/Lib/TLibCommon/SEI.cpp
View file @
6753aa9c
...
...
@@ -120,17 +120,17 @@ const TChar *SEI::getSEIMessageString(SEI::PayloadType payloadType)
{
case
SEI
::
BUFFERING_PERIOD
:
return
"Buffering period"
;
case
SEI
::
PICTURE_TIMING
:
return
"Picture timing"
;
case
SEI
::
PAN_SCAN_RECT
:
return
"Pan-scan rectangle"
;
// not currently decoded
case
SEI
::
FILLER_PAYLOAD
:
return
"Filler payload"
;
// not currently decoded
case
SEI
::
USER_DATA_REGISTERED_ITU_T_T35
:
return
"User data registered"
;
// not currently decoded
case
SEI
::
PAN_SCAN_RECT
:
return
"Pan-scan rectangle"
;
case
SEI
::
FILLER_PAYLOAD
:
return
"Filler payload"
;
case
SEI
::
USER_DATA_REGISTERED_ITU_T_T35
:
return
"User data registered"
;
case
SEI
::
USER_DATA_UNREGISTERED
:
return
"User data unregistered"
;
case
SEI
::
RECOVERY_POINT
:
return
"Recovery point"
;
case
SEI
::
SCENE_INFO
:
return
"Scene information"
;
// not currently decoded
case
SEI
::
FULL_FRAM
E_SNAPSHOT
:
return
"Picture snapshot"
;
// not currently decoded
case
SEI
::
PROGRESSIVE_REFINEMENT_SEGMENT_START
:
return
"Progressive refinement segment start"
;
// not currently decoded
case
SEI
::
PROGRESSIVE_REFINEMENT_SEGMENT_END
:
return
"Progressive refinement segment end"
;
// not currently decoded
case
SEI
::
FILM_GRAIN_CHARACTERISTICS
:
return
"Film grain characteristics"
;
// not currently decoded
case
SEI
::
POST_FILTER_HINT
:
return
"Post filter hint"
;
// not currently decoded
case
SEI
::
SCENE_INFO
:
return
"Scene information"
;
case
SEI
::
PICTUR
E_SNAPSHOT
:
return
"Picture snapshot"
;
case
SEI
::
PROGRESSIVE_REFINEMENT_SEGMENT_START
:
return
"Progressive refinement segment start"
;
case
SEI
::
PROGRESSIVE_REFINEMENT_SEGMENT_END
:
return
"Progressive refinement segment end"
;
case
SEI
::
FILM_GRAIN_CHARACTERISTICS
:
return
"Film grain characteristics"
;
case
SEI
::
POST_FILTER_HINT
:
return
"Post filter hint"
;
case
SEI
::
TONE_MAPPING_INFO
:
return
"Tone mapping information"
;
case
SEI
::
KNEE_FUNCTION_INFO
:
return
"Knee function information"
;
case
SEI
::
FRAME_PACKING
:
return
"Frame packing arrangement"
;
...
...
@@ -150,7 +150,12 @@ const TChar *SEI::getSEIMessageString(SEI::PayloadType payloadType)
case
SEI
::
TEMP_MOTION_CONSTRAINED_TILE_SETS
:
return
"Temporal motion constrained tile sets"
;
case
SEI
::
CHROMA_RESAMPLING_FILTER_HINT
:
return
"Chroma sampling filter hint"
;
case
SEI
::
COLOUR_REMAPPING_INFO
:
return
"Colour remapping info"
;
case
SEI
::
DEINTERLACE_FIELD_IDENTIFICATION
:
return
"Deinterlace field identification"
;
case
SEI
::
CONTENT_LIGHT_LEVEL_INFO
:
return
"Content light level info"
;
case
SEI
::
DEPENDENT_RAP_INDICATION
:
return
"Dependent RAP indication"
;
case
SEI
::
CODED_REGION_COMPLETION
:
return
"Coded region completion"
;
case
SEI
::
ALTERNATIVE_TRANSFER_CHARACTERISTICS
:
return
"Alternative transfer characteristics"
;
case
SEI
::
AMBIENT_VIEWING_ENVIRONMENT
:
return
"Ambient viewing environment"
;
default:
return
"Unknown"
;
}
}
source/Lib/TLibCommon/SEI.h
View file @
6753aa9c
This diff is collapsed.
Click to expand it.
source/Lib/TLibDecoder/SEIread.cpp
View file @
6753aa9c
This diff is collapsed.
Click to expand it.
source/Lib/TLibDecoder/SEIread.h
View file @
6753aa9c
...
...
@@ -59,30 +59,44 @@ public:
protected:
Void
xReadSEImessage
(
SEIMessages
&
seis
,
const
NalUnitType
nalUnitType
,
const
TComSPS
*
sps
,
std
::
ostream
*
pDecodedMessageOutputStream
);
Void
xParseSEIuserDataUnregistered
(
SEIuserDataUnregistered
&
sei
,
UInt
payloadSize
,
std
::
ostream
*
pDecodedMessageOutputStream
);
Void
xParseSEIActiveParameterSets
(
SEIActiveParameterSets
&
sei
,
UInt
payloadSize
,
std
::
ostream
*
pDecodedMessageOutputStream
);
Void
xParseSEIDecodingUnitInfo
(
SEIDecodingUnitInfo
&
sei
,
UInt
payloadSize
,
const
TComSPS
*
sps
,
std
::
ostream
*
pDecodedMessageOutputStream
);
Void
xParseSEIDecodedPictureHash
(
SEIDecodedPictureHash
&
sei
,
UInt
payloadSize
,
std
::
ostream
*
pDecodedMessageOutputStream
);
Void
xParseSEIBufferingPeriod
(
SEIBufferingPeriod
&
sei
,
UInt
payloadSize
,
const
TComSPS
*
sps
,
std
::
ostream
*
pDecodedMessageOutputStream
);
Void
xParseSEIPictureTiming
(
SEIPictureTiming
&
sei
,
UInt
payloadSize
,
const
TComSPS
*
sps
,
std
::
ostream
*
pDecodedMessageOutputStream
);
Void
xParseSEIPanScanRect
(
SEIPanScanRect
&
sei
,
UInt
payloadSize
,
std
::
ostream
*
pDecodedMessageOutputStream
);
Void
xParseSEIFillerPayload
(
SEIFillerPayload
&
sei
,
UInt
payloadSize
,
std
::
ostream
*
pDecodedMessageOutputStream
);
Void
xParseSEIUserDataRegistered
(
SEIUserDataRegistered
&
sei
,
UInt
payloadSize
,
std
::
ostream
*
pDecodedMessageOutputStream
);
Void
xParseSEIUserDataUnregistered
(
SEIUserDataUnregistered
&
sei
,
UInt
payloadSize
,
std
::
ostream
*
pDecodedMessageOutputStream
);
Void
xParseSEIRecoveryPoint
(
SEIRecoveryPoint
&
sei
,
UInt
payloadSize
,
std
::
ostream
*
pDecodedMessageOutputStream
);
Void
xParseSEISceneInfo
(
SEISceneInfo
&
sei
,
UInt
payloadSize
,
std
::
ostream
*
pDecodedMessageOutputStream
);
Void
xParseSEIPictureSnapshot
(
SEIPictureSnapshot
&
sei
,
UInt
payloadSize
,
std
::
ostream
*
pDecodedMessageOutputStream
);
Void
xParseSEIProgressiveRefinementSegmentStart
(
SEIProgressiveRefinementSegmentStart
&
sei
,
UInt
payloadSize
,
std
::
ostream
*
pDecodedMessageOutputStream
);
Void
xParseSEIProgressiveRefinementSegmentEnd
(
SEIProgressiveRefinementSegmentEnd
&
sei
,
UInt
payloadSize
,
std
::
ostream
*
pDecodedMessageOutputStream
);
Void
xParseSEIFilmGrainCharacteristics
(
SEIFilmGrainCharacteristics
&
sei
,
UInt
payloadSize
,
std
::
ostream
*
pDecodedMessageOutputStream
);
Void
xParseSEIPostFilterHint
(
SEIPostFilterHint
&
sei
,
UInt
payloadSize
,
const
TComSPS
*
sps
,
std
::
ostream
*
pDecodedMessageOutputStream
);
Void
xParseSEIToneMappingInfo
(
SEIToneMappingInfo
&
sei
,
UInt
payloadSize
,
std
::
ostream
*
pDecodedMessageOutputStream
);
Void
xParseSEIFramePacking
(
SEIFramePacking
&
sei
,
UInt
payloadSize
,
std
::
ostream
*
pDecodedMessageOutputStream
);
Void
xParseSEISegmentedRectFramePacking
(
SEISegmentedRectFramePacking
&
sei
,
UInt
payloadSize
,
std
::
ostream
*
pDecodedMessageOutputStream
);
Void
xParseSEIDisplayOrientation
(
SEIDisplayOrientation
&
sei
,
UInt
payloadSize
,
std
::
ostream
*
pDecodedMessageOutputStream
);
Void
xParseSEITemporalLevel0Index
(
SEITemporalLevel0Index
&
sei
,
UInt
payloadSize
,
std
::
ostream
*
pDecodedMessageOutputStream
);
Void
xParseSEIRegionRefreshInfo
(
SEIGradualDecodingRefreshInfo
&
sei
,
UInt
payloadSize
,
std
::
ostream
*
pDecodedMessageOutputStream
);
Void
xParseSEINoDisplay
(
SEINoDisplay
&
sei
,
UInt
payloadSize
,
std
::
ostream
*
pDecodedMessageOutputStream
);
Void
xParseSEIToneMappingInfo
(
SEIToneMappingInfo
&
sei
,
UInt
payloadSize
,
std
::
ostream
*
pDecodedMessageOutputStream
);
Void
xParseSEIGreenMetadataInfo
(
SEIGreenMetadataInfo
&
sei
,
UInt
payLoadSize
,
std
::
ostream
*
pDecodedMessageOutputStream
);
Void
xParseSEISOPDescription
(
SEISOPDescription
&
sei
,
UInt
payloadSize
,
std
::
ostream
*
pDecodedMessageOutputStream
);
Void
xParseSEIActiveParameterSets
(
SEIActiveParameterSets
&
sei
,
UInt
payloadSize
,
std
::
ostream
*
pDecodedMessageOutputStream
);
Void
xParseSEIDecodingUnitInfo
(
SEIDecodingUnitInfo
&
sei
,
UInt
payloadSize
,
const
TComSPS
*
sps
,
std
::
ostream
*
pDecodedMessageOutputStream
);
Void
xParseSEITemporalLevel0Index
(
SEITemporalLevel0Index
&
sei
,
UInt
payloadSize
,
std
::
ostream
*
pDecodedMessageOutputStream
);
Void
xParseSEIDecodedPictureHash
(
SEIDecodedPictureHash
&
sei
,
UInt
payloadSize
,
std
::
ostream
*
pDecodedMessageOutputStream
);
Void
xParseSEIScalableNesting
(
SEIScalableNesting
&
sei
,
const
NalUnitType
nalUnitType
,
UInt
payloadSize
,
const
TComSPS
*
sps
,
std
::
ostream
*
pDecodedMessageOutputStream
);
Void
xParseSEITempMotionConstraintsTileSets
(
SEITempMotionConstrainedTileSets
&
sei
,
UInt
payloadSize
,
std
::
ostream
*
pDecodedMessageOutputStream
);
Void
xParseSEIRegionRefreshInfo
(
SEIRegionRefreshInfo
&
sei
,
UInt
payloadSize
,
std
::
ostream
*
pDecodedMessageOutputStream
);
Void
xParseSEINoDisplay
(
SEINoDisplay
&
sei
,
UInt
payloadSize
,
std
::
ostream
*
pDecodedMessageOutputStream
);
Void
xParseSEITimeCode
(
SEITimeCode
&
sei
,
UInt
payloadSize
,
std
::
ostream
*
pDecodedMessageOutputStream
);
Void
xParseSEIMasteringDisplayColourVolume
(
SEIMasteringDisplayColourVolume
&
sei
,
UInt
payloadSize
,
std
::
ostream
*
pDecodedMessageOutputStream
);
Void
xParseSEISegmentedRectFramePacking
(
SEISegmentedRectFramePacking
&
sei
,
UInt
payloadSize
,
std
::
ostream
*
pDecodedMessageOutputStream
);
Void
xParseSEITempMotionConstraintsTileSets
(
SEITempMotionConstrainedTileSets
&
sei
,
UInt
payloadSize
,
std
::
ostream
*
pDecodedMessageOutputStream
);
Void
xParseSEIChromaResamplingFilterHint
(
SEIChromaResamplingFilterHint
&
sei
,
UInt
payloadSize
,
std
::
ostream
*
pDecodedMessageOutputStream
);
Void
xParseSEIKneeFunctionInfo
(
SEIKneeFunctionInfo
&
sei
,
UInt
payloadSize
,
std
::
ostream
*
pDecodedMessageOutputStream
);
Void
xParseSEIMasteringDisplayColourVolume
(
SEIMasteringDisplayColourVolume
&
sei
,
UInt
payloadSize
,
std
::
ostream
*
pDecodedMessageOutputStream
);
Void
xParseSEIColourRemappingInfo
(
SEIColourRemappingInfo
&
sei
,
UInt
payloadSize
,
std
::
ostream
*
pDecodedMessageOutputStream
);
Void
xParseSEIDeinterlaceFieldIdentification
(
SEIDeinterlaceFieldIdentification
&
sei
,
UInt
payLoadSize
,
std
::
ostream
*
pDecodedMessageOutputStream
);
Void
xParseSEIContentLightLevelInfo
(
SEIContentLightLevelInfo
&
sei
,
UInt
payLoadSize
,
std
::
ostream
*
pDecodedMessageOutputStream
);
Void
xParseSEIDependentRAPIndication
(
SEIDependentRAPIndication
&
sei
,
UInt
payLoadSize
,
std
::
ostream
*
pDecodedMessageOutputStream
);
Void
xParseSEICodedRegionCompletion
(
SEICodedRegionCompletion
&
sei
,
UInt
payLoadSize
,
std
::
ostream
*
pDecodedMessageOutputStream
);
Void
xParseSEIAlternativeTransferCharacteristics
(
SEIAlternativeTransferCharacteristics
&
sei
,
UInt
payLoadSize
,
std
::
ostream
*
pDecodedMessageOutputStream
);
Void
xParseSEI
GreenMetadataInfo
(
SEIGreenMetadataInfo
&
sei
,
UInt
payLoadSize
,
std
::
ostream
*
pDecodedMessageOutputStream
);
Void
xParseSEI
AmbientViewingEnvironment
(
SEIAmbientViewingEnvironment
&
sei
,
UInt
payLoadSize
,
std
::
ostream
*
pDecodedMessageOutputStream
);
Void
sei_read_code
(
std
::
ostream
*
pOS
,
UInt
uiLength
,
UInt
&
ruiCode
,
const
TChar
*
pSymbolName
);
Void
sei_read_uvlc
(
std
::
ostream
*
pOS
,
UInt
&
ruiCode
,
const
TChar
*
pSymbolName
);
...
...
source/Lib/TLibEncoder/SEIwrite.cpp
View file @
6753aa9c
This diff is collapsed.
Click to expand it.
source/Lib/TLibEncoder/SEIwrite.h
View file @
6753aa9c
...
...
@@ -52,30 +52,44 @@ public:
Void
writeSEImessages
(
TComBitIf
&
bs
,
const
SEIMessages
&
seiList
,
const
TComSPS
*
sps
,
Bool
isNested
);
protected:
Void
xWriteSEIuserDataUnregistered
(
const
SEIuserDataUnregistered
&
sei
);
Void
xWriteSEIActiveParameterSets
(
const
SEIActiveParameterSets
&
sei
);
Void
xWriteSEIDecodingUnitInfo
(
const
SEIDecodingUnitInfo
&
sei
,
const
TComSPS
*
sps
);
Void
xWriteSEIDecodedPictureHash
(
const
SEIDecodedPictureHash
&
sei
);
Void
xWriteSEIBufferingPeriod
(
const
SEIBufferingPeriod
&
sei
,
const
TComSPS
*
sps
);
Void
xWriteSEIPictureTiming
(
const
SEIPictureTiming
&
sei
,
const
TComSPS
*
sps
);
Void
xWriteSEIRecoveryPoint
(
const
SEIRecoveryPoint
&
sei
);
Void
xWriteSEIFramePacking
(
const
SEIFramePacking
&
sei
);
Void
xWriteSEISegmentedRectFramePacking
(
const
SEISegmentedRectFramePacking
&
sei
);
Void
xWriteSEIDisplayOrientation
(
const
SEIDisplayOrientation
&
sei
);
Void
xWriteSEITemporalLevel0Index
(
const
SEITemporalLevel0Index
&
sei
);
Void
xWriteSEIGradualDecodingRefreshInfo
(
const
SEIGradualDecodingRefreshInfo
&
sei
);
Void
xWriteSEINoDisplay
(
const
SEINoDisplay
&
sei
);
Void
xWriteSEIToneMappingInfo
(
const
SEIToneMappingInfo
&
sei
);
Void
xWriteSEISOPDescription
(
const
SEISOPDescription
&
sei
);
Void
xWriteSEIScalableNesting
(
TComBitIf
&
bs
,
const
SEIScalableNesting
&
sei
,
const
TComSPS
*
sps
);
Void
xWriteSEITempMotionConstrainedTileSets
(
const
SEITempMotionConstrainedTileSets
&
sei
);
Void
xWriteSEITimeCode
(
const
SEITimeCode
&
sei
);
Void
xWriteSEIChromaResamplingFilterHint
(
const
SEIChromaResamplingFilterHint
&
sei
);
Void
xWriteSEIKneeFunctionInfo
(
const
SEIKneeFunctionInfo
&
sei
);
Void
xWriteSEIColourRemappingInfo
(
const
SEIColourRemappingInfo
&
sei
);
Void
xWriteSEIMasteringDisplayColourVolume
(
const
SEIMasteringDisplayColourVolume
&
sei
);
Void
xWriteSEIBufferingPeriod
(
const
SEIBufferingPeriod
&
sei
,
const
TComSPS
*
sps
);
Void
xWriteSEIPictureTiming
(
const
SEIPictureTiming
&
sei
,
const
TComSPS
*
sps
);
Void
xWriteSEIPanScanRect
(
const
SEIPanScanRect
&
sei
);
Void
xWriteSEIFillerPayload
(
const
SEIFillerPayload
&
sei
);
Void
xWriteSEIUserDataRegistered
(
const
SEIUserDataRegistered
&
sei
);
Void
xWriteSEIUserDataUnregistered
(
const
SEIUserDataUnregistered
&
sei
);
Void
xWriteSEIRecoveryPoint
(
const
SEIRecoveryPoint
&
sei
);
Void
xWriteSEISceneInfo
(
const
SEISceneInfo
&
sei
);
Void
xWriteSEIPictureSnapshot
(
const
SEIPictureSnapshot
&
sei
);
Void
xWriteSEIProgressiveRefinementSegmentStart
(
const
SEIProgressiveRefinementSegmentStart
&
sei
);
Void
xWriteSEIProgressiveRefinementSegmentEnd
(
const
SEIProgressiveRefinementSegmentEnd
&
sei
);
Void
xWriteSEIFilmGrainCharacteristics
(
const
SEIFilmGrainCharacteristics
&
sei
);
Void
xWriteSEIPostFilterHint
(
const
SEIPostFilterHint
&
sei
,
const
TComSPS
*
sps
);
Void
xWriteSEIToneMappingInfo
(
const
SEIToneMappingInfo
&
sei
);
Void
xWriteSEIFramePacking
(
const
SEIFramePacking
&
sei
);
Void
xWriteSEIDisplayOrientation
(
const
SEIDisplayOrientation
&
sei
);
Void
xWriteSEIGreenMetadataInfo
(
const
SEIGreenMetadataInfo
&
sei
);
Void
xWriteSEISOPDescription
(
const
SEISOPDescription
&
sei
);
Void
xWriteSEIActiveParameterSets
(
const
SEIActiveParameterSets
&
sei
);
Void
xWriteSEIDecodingUnitInfo
(
const
SEIDecodingUnitInfo
&
sei
,
const
TComSPS
*
sps
);
Void
xWriteSEITemporalLevel0Index
(
const
SEITemporalLevel0Index
&
sei
);
Void
xWriteSEIDecodedPictureHash
(
const
SEIDecodedPictureHash
&
sei
);
Void
xWriteSEIScalableNesting
(
TComBitIf
&
bs
,
const
SEIScalableNesting
&
sei
,
const
TComSPS
*
sps
);
Void
xWriteSEIRegionRefreshInfo
(
const
SEIRegionRefreshInfo
&
sei
);
Void
xWriteSEINoDisplay
(
const
SEINoDisplay
&
sei
);
Void
xWriteSEITimeCode
(
const
SEITimeCode
&
sei
);
Void
xWriteSEIMasteringDisplayColourVolume
(
const
SEIMasteringDisplayColourVolume
&
sei
);
Void
xWriteSEISegmentedRectFramePacking
(
const
SEISegmentedRectFramePacking
&
sei
);
Void
xWriteSEITempMotionConstrainedTileSets
(
const
SEITempMotionConstrainedTileSets
&
sei
);
Void
xWriteSEIChromaResamplingFilterHint
(
const
SEIChromaResamplingFilterHint
&
sei
);
Void
xWriteSEIKneeFunctionInfo
(
const
SEIKneeFunctionInfo
&
sei
);
Void
xWriteSEIColourRemappingInfo
(
const
SEIColourRemappingInfo
&
sei
);
Void
xWriteSEIDeinterlaceFieldIdentification
(
const
SEIDeinterlaceFieldIdentification
&
sei
);
Void
xWriteSEIContentLightLevelInfo
(
const
SEIContentLightLevelInfo
&
sei
);
Void
xWriteSEIDependentRAPIndication
(
const
SEIDependentRAPIndication
&
sei
);
Void
xWriteSEICodedRegionCompletion
(
const
SEICodedRegionCompletion
&
sei
);
Void
xWriteSEIAlternativeTransferCharacteristics
(
const
SEIAlternativeTransferCharacteristics
&
sei
);
Void
xWriteSEI
GreenMetadataInfo
(
const
SEIGreenMetadataInfo
&
sei
);
Void
xWriteSEI
AmbientViewingEnvironment
(
const
SEIAmbientViewingEnvironment
&
sei
);
Void
xWriteSEIpayloadData
(
TComBitIf
&
bs
,
const
SEI
&
sei
,
const
TComSPS
*
sps
);
Void
xWriteByteAlign
();
...
...
source/Lib/TLibEncoder/TEncGOP.cpp
View file @
6753aa9c
...
...
@@ -502,7 +502,7 @@ Void TEncGOP::xCreatePerPictureSEIMessages (Int picInGOP, SEIMessages& seiMessag
if
(
m_pcEncTop
->
getGradualDecodingRefreshInfoEnabled
()
&&
!
slice
->
getRapPicFlag
()
)
{
// Gradual decoding refresh SEI
SEI
GradualDecoding
RefreshInfo
*
gradualDecodingRefreshInfoSEI
=
new
SEI
GradualDecoding
RefreshInfo
();
SEI
Region
RefreshInfo
*
gradualDecodingRefreshInfoSEI
=
new
SEI
Region
RefreshInfo
();
gradualDecodingRefreshInfoSEI
->
m_gdrForegroundFlag
=
true
;
// Indicating all "foreground"
seiMessages
.
push_back
(
gradualDecodingRefreshInfoSEI
);
}
...
...
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment