g711_packet.go 499 B

12345678910111213141516171819202122
  1. package codecs
  2. // G711Payloader payloads G711 packets
  3. type G711Payloader struct{}
  4. // Payload fragments an G711 packet across one or more byte arrays
  5. func (p *G711Payloader) Payload(mtu uint16, payload []byte) [][]byte {
  6. var out [][]byte
  7. if payload == nil || mtu == 0 {
  8. return out
  9. }
  10. for len(payload) > int(mtu) {
  11. o := make([]byte, mtu)
  12. copy(o, payload[:mtu])
  13. payload = payload[mtu:]
  14. out = append(out, o)
  15. }
  16. o := make([]byte, len(payload))
  17. copy(o, payload)
  18. return append(out, o)
  19. }