Documentation
¶
Overview ¶
Package h265 contains utilities to work with the H265 codec.
Index ¶
Constants ¶
const ( // MaxAccessUnitSize is the maximum size of an access unit. // With a 50 Mbps 2160p60 H265 video, the maximum size does not seem to exceed 8 MiB. MaxAccessUnitSize = 8 * 1024 * 1024 // MaxNALUsPerAccessUnit is the maximum number of NALUs per access unit. MaxNALUsPerAccessUnit = 21 )
Variables ¶
This section is empty.
Functions ¶
func IsRandomAccess ¶
IsRandomAccess checks whether the access unit is a random access point.
Types ¶
type DTSExtractor ¶
type DTSExtractor struct {
// contains filtered or unexported fields
}
DTSExtractor allows to extract DTS from PTS.
func NewDTSExtractor ¶
func NewDTSExtractor() *DTSExtractor
NewDTSExtractor allocates a DTSExtractor.
type NALUType ¶
type NALUType uint8
NALUType is the type of a NALU. Specification: ITU-T Rec. H.265, Table 7-1
const ( NALUType_TRAIL_N NALUType = 0 //nolint:revive NALUType_TRAIL_R NALUType = 1 //nolint:revive NALUType_TSA_N NALUType = 2 //nolint:revive NALUType_TSA_R NALUType = 3 //nolint:revive NALUType_STSA_N NALUType = 4 //nolint:revive NALUType_STSA_R NALUType = 5 //nolint:revive NALUType_RADL_N NALUType = 6 //nolint:revive NALUType_RADL_R NALUType = 7 //nolint:revive NALUType_RASL_N NALUType = 8 //nolint:revive NALUType_RASL_R NALUType = 9 //nolint:revive NALUType_RSV_VCL_N10 NALUType = 10 //nolint:revive NALUType_RSV_VCL_N12 NALUType = 12 //nolint:revive NALUType_RSV_VCL_N14 NALUType = 14 //nolint:revive NALUType_RSV_VCL_R11 NALUType = 11 //nolint:revive NALUType_RSV_VCL_R13 NALUType = 13 //nolint:revive NALUType_RSV_VCL_R15 NALUType = 15 //nolint:revive NALUType_BLA_W_LP NALUType = 16 //nolint:revive NALUType_BLA_W_RADL NALUType = 17 //nolint:revive NALUType_BLA_N_LP NALUType = 18 //nolint:revive NALUType_IDR_W_RADL NALUType = 19 //nolint:revive NALUType_IDR_N_LP NALUType = 20 //nolint:revive NALUType_CRA_NUT NALUType = 21 //nolint:revive NALUType_RSV_IRAP_VCL22 NALUType = 22 //nolint:revive NALUType_RSV_IRAP_VCL23 NALUType = 23 //nolint:revive NALUType_VPS_NUT NALUType = 32 //nolint:revive NALUType_SPS_NUT NALUType = 33 //nolint:revive NALUType_PPS_NUT NALUType = 34 //nolint:revive NALUType_AUD_NUT NALUType = 35 //nolint:revive NALUType_EOS_NUT NALUType = 36 //nolint:revive NALUType_EOB_NUT NALUType = 37 //nolint:revive NALUType_FD_NUT NALUType = 38 //nolint:revive NALUType_PREFIX_SEI_NUT NALUType = 39 //nolint:revive NALUType_SUFFIX_SEI_NUT NALUType = 40 //nolint:revive // additional NALU types for RTP/H265 NALUType_AggregationUnit NALUType = 48 //nolint:revive NALUType_FragmentationUnit NALUType = 49 //nolint:revive NALUType_PACI NALUType = 50 //nolint:revive )
NALU types.
type PPS ¶
type PPS struct {
ID uint32
SPSID uint32
DependentSliceSegmentsEnabledFlag bool
OutputFlagPresentFlag bool
NumExtraSliceHeaderBits uint8
}
PPS is a H265 picture parameter set. Specification: ITU-T Rec. H.265, 7.3.2.3.1
type SPS ¶
type SPS struct {
VPSID uint8
MaxSubLayersMinus1 uint8
TemporalIDNestingFlag bool
ProfileTierLevel SPS_ProfileTierLevel
ID uint8
ChromaFormatIdc uint32
SeparateColourPlaneFlag bool
PicWidthInLumaSamples uint32
PicHeightInLumaSamples uint32
ConformanceWindow *SPS_ConformanceWindow
BitDepthLumaMinus8 uint32
BitDepthChromaMinus8 uint32
Log2MaxPicOrderCntLsbMinus4 uint32
SubLayerOrderingInfoPresentFlag bool
MaxDecPicBufferingMinus1 []uint32
MaxNumReorderPics []uint32
MaxLatencyIncreasePlus1 []uint32
Log2MinLumaCodingBlockSizeMinus3 uint32
Log2DiffMaxMinLumaCodingBlockSize uint32
Log2MinLumaTransformBlockSizeMinus2 uint32
Log2DiffMaxMinLumaTransformBlockSize uint32
MaxTransformHierarchyDepthInter uint32
MaxTransformHierarchyDepthIntra uint32
ScalingListEnabledFlag bool
ScalingListDataPresentFlag bool
AmpEnabledFlag bool
SampleAdaptiveOffsetEnabledFlag bool
PcmEnabledFlag bool
// PcmEnabledFlag == true
PcmSampleBitDepthLumaMinus1 uint8
PcmSampleBitDepthChromaMinus1 uint8
Log2MinPcmLumaCodingBlockSizeMinus3 uint32
Log2DiffMaxMinPcmLumaCodingBlockSize uint32
PcmLoopFilterDisabledFlag bool
ShortTermRefPicSets []*SPS_ShortTermRefPicSet
LongTermRefPicsPresentFlag bool
TemporalMvpEnabledFlag bool
StrongIntraSmoothingEnabledFlag bool
VUI *SPS_VUI
}
SPS is a H265 sequence parameter set. Specification: ITU-T Rec. H.265, 7.3.2.2.1
type SPS_ConformanceWindow ¶
type SPS_ConformanceWindow struct {
LeftOffset uint32
RightOffset uint32
TopOffset uint32
BottomOffset uint32
}
SPS_ConformanceWindow is a conformance window of a SPS.
type SPS_DefaultDisplayWindow ¶
type SPS_DefaultDisplayWindow struct {
LeftOffset uint32
RightOffset uint32
TopOffset uint32
BottomOffset uint32
}
SPS_DefaultDisplayWindow is a default display window.
type SPS_ProfileTierLevel ¶
type SPS_ProfileTierLevel struct {
GeneralProfileSpace uint8
GeneralTierFlag uint8
GeneralProfileIdc uint8
GeneralProfileCompatibilityFlag [32]bool
GeneralProgressiveSourceFlag bool
GeneralInterlacedSourceFlag bool
GeneralNonPackedConstraintFlag bool
GeneralFrameOnlyConstraintFlag bool
GeneralMax12bitConstraintFlag bool
GeneralMax10bitConstraintFlag bool
GeneralMax8bitConstraintFlag bool
GeneralMax422ChromeConstraintFlag bool
GeneralMax420ChromaConstraintFlag bool
GeneralMaxMonochromeConstraintFlag bool
GeneralIntraConstraintFlag bool
GeneralOnePictureOnlyConstraintFlag bool
GeneralLowerBitRateConstraintFlag bool
GeneralMax14BitConstraintFlag bool
GeneralLevelIdc uint8
SubLayerProfilePresentFlag []bool
SubLayerLevelPresentFlag []bool
}
SPS_ProfileTierLevel is a profile level tier of a SPS.
type SPS_ShortTermRefPicSet ¶
type SPS_ShortTermRefPicSet struct {
InterRefPicSetPredictionFlag bool
DeltaIdxMinus1 uint32
DeltaRpsSign bool
AbsDeltaRpsMinus1 uint32
NumNegativePics uint32
NumPositivePics uint32
DeltaPocS0Minus1 []uint32
UsedByCurrPicS0Flag []bool
DeltaPocS1Minus1 []uint32
UsedByCurrPicS1Flag []bool
}
SPS_ShortTermRefPicSet is a short-term reference picture set.
type SPS_TimingInfo ¶
type SPS_TimingInfo struct {
NumUnitsInTick uint32
TimeScale uint32
POCProportionalToTimingFlag bool
// POCProportionalToTimingFlag == true
NumTicksPOCDiffOneMinus1 uint32
}
SPS_TimingInfo is a timing info.
type SPS_VUI ¶
type SPS_VUI struct {
AspectRatioInfoPresentFlag bool
// AspectRatioInfoPresentFlag == true
AspectRatioIdc uint8
SarWidth uint16
SarHeight uint16
OverscanInfoPresentFlag bool
// OverscanInfoPresentFlag == true
OverscanAppropriateFlag bool
VideoSignalTypePresentFlag bool
// VideoSignalTypePresentFlag == true
VideoFormat uint8
VideoFullRangeFlag bool
ColourDescriptionPresentFlag bool
// ColourDescriptionPresentFlag == true
ColourPrimaries uint8
TransferCharacteristics uint8
MatrixCoefficients uint8
ChromaLocInfoPresentFlag bool
// ChromaLocInfoPresentFlag == true
ChromaSampleLocTypeTopField uint32
ChromaSampleLocTypeBottomField uint32
NeutralChromaIndicationFlag bool
FieldSeqFlag bool
FrameFieldInfoPresentFlag bool
DefaultDisplayWindow *SPS_DefaultDisplayWindow
TimingInfo *SPS_TimingInfo
}
SPS_VUI is a video usability information.