github.com/bluenviron/mediacommon@v1.9.3/pkg/codecs/jpeg/define_huffman_table.go (about) 1 package jpeg 2 3 // DefineHuffmanTable is a DHT marker. 4 type DefineHuffmanTable struct { 5 Codes []byte 6 Symbols []byte 7 TableNumber int 8 TableClass int 9 } 10 11 // Marshal encodes the marker. 12 func (m DefineHuffmanTable) Marshal(buf []byte) []byte { 13 buf = append(buf, []byte{0xFF, MarkerDefineHuffmanTable}...) 14 s := 3 + len(m.Codes) + len(m.Symbols) 15 buf = append(buf, []byte{byte(s >> 8), byte(s)}...) // length 16 buf = append(buf, []byte{byte(m.TableClass<<4) | byte(m.TableNumber)}...) 17 buf = append(buf, m.Codes...) 18 buf = append(buf, m.Symbols...) 19 return buf 20 }