h264

package
v0.0.2 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: May 26, 2021 License: MIT Imports: 7 Imported by: 0

Documentation

Index

Constants

View Source
const (
	NALU_NONIDR = 1
	NALU_IDR    = 5
	NALU_SEI    = 6
	NALU_SPS    = 7
	NALU_PPS    = 8
	NALU_AUD    = 9

	SEI_TYPE_USER_DATA_UNREGISTERED = 5
)
View Source
const (
	FF_PROFILE_H264_CONSTRAINED = (1 << 12) // 8+4; constraint_set1_flag
	FF_PROFILE_H264_INTRA       = (1 << 10) // 8+2; constraint_set3_flag

	FF_PROFILE_H264_BASELINE             = 66
	FF_PROFILE_H264_CONSTRAINED_BASELINE = (66 | FF_PROFILE_H264_CONSTRAINED)
	FF_PROFILE_H264_MAIN                 = 77
	FF_PROFILE_H264_EXTENDED             = 88
	FF_PROFILE_H264_HIGH                 = 100
	FF_PROFILE_H264_HIGH_10              = 110
	FF_PROFILE_H264_HIGH_10_INTRA        = (110 | FF_PROFILE_H264_INTRA)
	FF_PROFILE_H264_MULTIVIEW_HIGH       = 118
	FF_PROFILE_H264_HIGH_422             = 122
	FF_PROFILE_H264_HIGH_422_INTRA       = (122 | FF_PROFILE_H264_INTRA)
	FF_PROFILE_H264_STEREO_HIGH          = 128
	FF_PROFILE_H264_HIGH_444             = 144
	FF_PROFILE_H264_HIGH_444_PREDICTIVE  = 244
	FF_PROFILE_H264_HIGH_444_INTRA       = (244 | FF_PROFILE_H264_INTRA)
	FF_PROFILE_H264_CAVLC_444            = 44
)
View Source
const (
	NALU_RAW = iota
	NALU_AVCC
	NALU_ANNEXB
)

Variables

View Source
var AUDBytes = []byte{0, 0, 0, 1, 0x9, 0xf0, 0, 0, 0, 1} // AUD
View Source
var ProfileMap = map[uint]string{
	FF_PROFILE_H264_BASELINE:             "Baseline",
	FF_PROFILE_H264_CONSTRAINED_BASELINE: "Constrained Baseline",
	FF_PROFILE_H264_MAIN:                 "Main",
	FF_PROFILE_H264_EXTENDED:             "Extended",
	FF_PROFILE_H264_HIGH:                 "High",
	FF_PROFILE_H264_HIGH_10:              "High 10",
	FF_PROFILE_H264_HIGH_10_INTRA:        "High 10 Intra",
	FF_PROFILE_H264_HIGH_422:             "High 4:2:2",
	FF_PROFILE_H264_HIGH_422_INTRA:       "High 4:2:2 Intra",
	FF_PROFILE_H264_HIGH_444:             "High 4:4:4",
	FF_PROFILE_H264_HIGH_444_PREDICTIVE:  "High 4:4:4 Predictive",
	FF_PROFILE_H264_HIGH_444_INTRA:       "High 4:4:4 Intra",
	FF_PROFILE_H264_CAVLC_444:            "CAVLC 4:4:4",
	FF_PROFILE_H264_MULTIVIEW_HIGH:       "Multiview High",
	FF_PROFILE_H264_STEREO_HIGH:          "Stereo High",
}
View Source
var StartCodeBytes = []byte{0, 0, 1}

Functions

func CheckNALUsType

func CheckNALUsType(b []byte) (typ int)

func FillNALUsAVCC

func FillNALUsAVCC(nalus [][]byte) []byte

func FillNALUsAnnexb

func FillNALUsAnnexb(nalus [][]byte) []byte

func IsDataNALU

func IsDataNALU(b []byte) bool

func JoinNALUsAVCC

func JoinNALUsAVCC(nalus [][]byte) []byte

func JoinNALUsAnnexb

func JoinNALUsAnnexb(nalus [][]byte) []byte

func Map2arr

func Map2arr(m map[int][]byte) (a [][]byte)

func NALUType

func NALUType(b []byte) byte

func NALUTypeString

func NALUTypeString(i byte) string

func ParseSPSId

func ParseSPSId(data []byte) (id uint, err error)

func RemoveH264orH265EmulationBytes

func RemoveH264orH265EmulationBytes(b []byte) []byte

func SplitNALUs

func SplitNALUs(b []byte) ([][]byte, int)

Types

type Codec

type Codec struct {
	ConfigBytes []byte
	SPS, PPS    map[int][]byte

	W, H int
	// contains filtered or unexported fields
}

func FromDecoderConfig

func FromDecoderConfig(b []byte) (c *Codec, err error)

func FromOld

func FromOld(old Codec) *Codec

func NewCodec

func NewCodec() (c *Codec)

func (*Codec) AddSPSPPS

func (c *Codec) AddSPSPPS(b []byte)

func (Codec) Equal

func (c Codec) Equal(b Codec) bool

func (Codec) ToConfig

func (c Codec) ToConfig(b []byte, n *int)

type NALUInfo

type NALUInfo struct {
	NALUStart int
	DataStart int
	End       int
	Data      []byte
}

func SplitNALUsRetInfo

func SplitNALUsRetInfo(b []byte) ([]NALUInfo, int)

type PPSInfo

type PPSInfo struct {
	Id    uint
	SPSId uint
}

func ParsePPS

func ParsePPS(data []byte) (self PPSInfo, err error)

type SPSInfo

type SPSInfo struct {
	Id                uint
	ProfileIdc        uint
	LevelIdc          uint
	ConstraintSetFlag uint

	MbWidth  uint
	MbHeight uint

	CropLeft   uint
	CropRight  uint
	CropTop    uint
	CropBottom uint

	Width  uint
	Height uint

	FPS uint
}

func ParseSPS

func ParseSPS(data []byte) (s SPSInfo, err error)

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL