github.com/pion/webrtc/v4@v4.0.1/pkg/media/h264reader/nalunittype.go (about)

     1  // SPDX-FileCopyrightText: 2023 The Pion community <https://pion.ly>
     2  // SPDX-License-Identifier: MIT
     3  
     4  package h264reader
     5  
     6  import "strconv"
     7  
     8  // NalUnitType is the type of a NAL
     9  type NalUnitType uint8
    10  
    11  // Enums for NalUnitTypes
    12  const (
    13  	NalUnitTypeUnspecified              NalUnitType = 0  // Unspecified
    14  	NalUnitTypeCodedSliceNonIdr         NalUnitType = 1  // Coded slice of a non-IDR picture
    15  	NalUnitTypeCodedSliceDataPartitionA NalUnitType = 2  // Coded slice data partition A
    16  	NalUnitTypeCodedSliceDataPartitionB NalUnitType = 3  // Coded slice data partition B
    17  	NalUnitTypeCodedSliceDataPartitionC NalUnitType = 4  // Coded slice data partition C
    18  	NalUnitTypeCodedSliceIdr            NalUnitType = 5  // Coded slice of an IDR picture
    19  	NalUnitTypeSEI                      NalUnitType = 6  // Supplemental enhancement information (SEI)
    20  	NalUnitTypeSPS                      NalUnitType = 7  // Sequence parameter set
    21  	NalUnitTypePPS                      NalUnitType = 8  // Picture parameter set
    22  	NalUnitTypeAUD                      NalUnitType = 9  // Access unit delimiter
    23  	NalUnitTypeEndOfSequence            NalUnitType = 10 // End of sequence
    24  	NalUnitTypeEndOfStream              NalUnitType = 11 // End of stream
    25  	NalUnitTypeFiller                   NalUnitType = 12 // Filler data
    26  	NalUnitTypeSpsExt                   NalUnitType = 13 // Sequence parameter set extension
    27  	NalUnitTypeCodedSliceAux            NalUnitType = 19 // Coded slice of an auxiliary coded picture without partitioning
    28  	// 14..18                                            // Reserved
    29  	// 20..23                                            // Reserved
    30  	// 24..31                                            // Unspecified
    31  )
    32  
    33  func (n *NalUnitType) String() string {
    34  	var str string
    35  	switch *n {
    36  	case NalUnitTypeUnspecified:
    37  		str = "Unspecified"
    38  	case NalUnitTypeCodedSliceNonIdr:
    39  		str = "CodedSliceNonIdr"
    40  	case NalUnitTypeCodedSliceDataPartitionA:
    41  		str = "CodedSliceDataPartitionA"
    42  	case NalUnitTypeCodedSliceDataPartitionB:
    43  		str = "CodedSliceDataPartitionB"
    44  	case NalUnitTypeCodedSliceDataPartitionC:
    45  		str = "CodedSliceDataPartitionC"
    46  	case NalUnitTypeCodedSliceIdr:
    47  		str = "CodedSliceIdr"
    48  	case NalUnitTypeSEI:
    49  		str = "SEI"
    50  	case NalUnitTypeSPS:
    51  		str = "SPS"
    52  	case NalUnitTypePPS:
    53  		str = "PPS"
    54  	case NalUnitTypeAUD:
    55  		str = "AUD"
    56  	case NalUnitTypeEndOfSequence:
    57  		str = "EndOfSequence"
    58  	case NalUnitTypeEndOfStream:
    59  		str = "EndOfStream"
    60  	case NalUnitTypeFiller:
    61  		str = "Filler"
    62  	case NalUnitTypeSpsExt:
    63  		str = "SpsExt"
    64  	case NalUnitTypeCodedSliceAux:
    65  		str = "NalUnitTypeCodedSliceAux"
    66  	default:
    67  		str = "Unknown"
    68  	}
    69  	str = str + "(" + strconv.FormatInt(int64(*n), 10) + ")"
    70  	return str
    71  }