diff --git a/pkg/h264/dtsextractor.go b/pkg/h264/dtsextractor.go index 3b51aa01..6a732958 100644 --- a/pkg/h264/dtsextractor.go +++ b/pkg/h264/dtsextractor.go @@ -166,7 +166,7 @@ func findSEITimingInfo(nalus [][]byte, sps *SPS) (*seiTimingInfo, bool) { return nil, false } -// DTSExtractor is a utility that allows to extract NALU DTS from PTS. +// DTSExtractor allows to extract DTS from PTS. type DTSExtractor struct { sps []byte spsp *SPS diff --git a/pkg/h264/sps.go b/pkg/h264/sps.go index 809062eb..7af49032 100644 --- a/pkg/h264/sps.go +++ b/pkg/h264/sps.go @@ -429,7 +429,7 @@ type SPS struct { MaxNumRefFrames uint32 GapsInFrameNumValueAllowedFlag bool PicWidthInMbsMinus1 uint32 - PicHeightInMbsMinus1 uint32 + PicHeightInMapUnitsMinus1 uint32 FrameMbsOnlyFlag bool // FrameMbsOnlyFlag == false @@ -637,7 +637,7 @@ func (s *SPS) Unmarshal(buf []byte) error { return err } - s.PicHeightInMbsMinus1, err = bits.ReadGolombUnsigned(buf, &pos) + s.PicHeightInMapUnitsMinus1, err = bits.ReadGolombUnsigned(buf, &pos) if err != nil { return err } @@ -711,10 +711,11 @@ func (s SPS) Height() int { } if s.FrameCropping != nil { - return int(((2 - f) * (s.PicHeightInMbsMinus1 + 1) * 16) - (s.FrameCropping.TopOffset+s.FrameCropping.BottomOffset)*2) + return int(((2 - f) * (s.PicHeightInMapUnitsMinus1 + 1) * 16) - + (s.FrameCropping.TopOffset+s.FrameCropping.BottomOffset)*2) } - return int((2 - f) * (s.PicHeightInMbsMinus1 + 1) * 16) + return int((2 - f) * (s.PicHeightInMapUnitsMinus1 + 1) * 16) } // FPS returns the frames per second of the video. diff --git a/pkg/h264/sps_test.go b/pkg/h264/sps_test.go index 5bde4561..91b90d0e 100644 --- a/pkg/h264/sps_test.go +++ b/pkg/h264/sps_test.go @@ -31,7 +31,7 @@ func TestSPSUnmarshal(t *testing.T) { MaxNumRefFrames: 1, GapsInFrameNumValueAllowedFlag: true, PicWidthInMbsMinus1: 21, - PicHeightInMbsMinus1: 17, + PicHeightInMapUnitsMinus1: 17, FrameMbsOnlyFlag: true, Direct8x8InferenceFlag: true, VUI: &SPS_VUI{ @@ -61,7 +61,7 @@ func TestSPSUnmarshal(t *testing.T) { Log2MaxPicOrderCntLsbMinus4: 2, MaxNumRefFrames: 4, PicWidthInMbsMinus1: 79, - PicHeightInMbsMinus1: 44, + PicHeightInMapUnitsMinus1: 44, FrameMbsOnlyFlag: true, Direct8x8InferenceFlag: true, VUI: &SPS_VUI{ @@ -95,16 +95,16 @@ func TestSPSUnmarshal(t *testing.T) { 0x00, 0x00, 0x03, 0x00, 0xf0, 0x3c, 0x60, 0xc9, 0x20, }, SPS{ - ProfileIdc: 66, - ConstraintSet0Flag: true, - ConstraintSet1Flag: true, - LevelIdc: 40, - PicOrderCntType: 2, - MaxNumRefFrames: 3, - PicWidthInMbsMinus1: 119, - PicHeightInMbsMinus1: 67, - FrameMbsOnlyFlag: true, - Direct8x8InferenceFlag: true, + ProfileIdc: 66, + ConstraintSet0Flag: true, + ConstraintSet1Flag: true, + LevelIdc: 40, + PicOrderCntType: 2, + MaxNumRefFrames: 3, + PicWidthInMbsMinus1: 119, + PicHeightInMapUnitsMinus1: 67, + FrameMbsOnlyFlag: true, + Direct8x8InferenceFlag: true, FrameCropping: &SPS_FrameCropping{ BottomOffset: 4, }, @@ -140,7 +140,7 @@ func TestSPSUnmarshal(t *testing.T) { Log2MaxPicOrderCntLsbMinus4: 2, MaxNumRefFrames: 4, PicWidthInMbsMinus1: 119, - PicHeightInMbsMinus1: 67, + PicHeightInMapUnitsMinus1: 67, FrameMbsOnlyFlag: true, Direct8x8InferenceFlag: true, FrameCropping: &SPS_FrameCropping{ @@ -180,7 +180,7 @@ func TestSPSUnmarshal(t *testing.T) { Log2MaxPicOrderCntLsbMinus4: 5, MaxNumRefFrames: 4, PicWidthInMbsMinus1: 119, - PicHeightInMbsMinus1: 33, + PicHeightInMapUnitsMinus1: 33, Direct8x8InferenceFlag: true, FrameCropping: &SPS_FrameCropping{ BottomOffset: 2, @@ -219,7 +219,7 @@ func TestSPSUnmarshal(t *testing.T) { Log2MaxPicOrderCntLsbMinus4: 4, MaxNumRefFrames: 1, PicWidthInMbsMinus1: 79, - PicHeightInMbsMinus1: 59, + PicHeightInMapUnitsMinus1: 59, FrameMbsOnlyFlag: true, Direct8x8InferenceFlag: true, Log2MaxFrameNumMinus4: 10, @@ -280,7 +280,7 @@ func TestSPSUnmarshal(t *testing.T) { MaxNumRefFrames: 1, GapsInFrameNumValueAllowedFlag: true, PicWidthInMbsMinus1: 159, - PicHeightInMbsMinus1: 89, + PicHeightInMapUnitsMinus1: 89, FrameMbsOnlyFlag: true, Direct8x8InferenceFlag: true, VUI: &SPS_VUI{ @@ -319,7 +319,7 @@ func TestSPSUnmarshal(t *testing.T) { Log2MaxPicOrderCntLsbMinus4: 4, MaxNumRefFrames: 2, PicWidthInMbsMinus1: 119, - PicHeightInMbsMinus1: 67, + PicHeightInMapUnitsMinus1: 67, FrameMbsOnlyFlag: true, Direct8x8InferenceFlag: true, FrameCropping: &SPS_FrameCropping{ @@ -373,7 +373,7 @@ func TestSPSUnmarshal(t *testing.T) { Log2MaxPicOrderCntLsbMinus4: 5, MaxNumRefFrames: 1, PicWidthInMbsMinus1: 119, - PicHeightInMbsMinus1: 67, + PicHeightInMapUnitsMinus1: 67, FrameMbsOnlyFlag: true, Direct8x8InferenceFlag: true, FrameCropping: &SPS_FrameCropping{