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 ¶ added in v1.0.0
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 ScalingListData *SPS_ScalingListData 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_ScalingListData ¶ added in v1.12.0
type SPS_ScalingListData struct { ScalingListPredModeFlag [4][6]bool ScalingListPredmatrixIDDelta [4][6]uint32 ScalingListDcCoefMinus8 [4][6]int32 }
SPS_ScalingListData is a scaling list data.
type SPS_ShortTermRefPicSet ¶
type SPS_ShortTermRefPicSet struct { InterRefPicSetPredictionFlag bool DeltaIdxMinus1 uint32 DeltaRpsSign bool AbsDeltaRpsMinus1 uint32 NumNegativePics uint32 NumPositivePics uint32 DeltaPocS0 []int32 UsedByCurrPicS0Flag []bool DeltaPocS1 []int32 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.