github.com/bluenviron/mediacommon@v1.9.3/pkg/formats/mpegts/record_reader.go (about)

     1  package mpegts
     2  
     3  import (
     4  	"errors"
     5  	"io"
     6  )
     7  
     8  const (
     9  	recordReaderMaxSize = 1 * 1024 * 1024
    10  )
    11  
    12  type recordReader struct {
    13  	r    io.Reader
    14  	buf  []byte
    15  	size int
    16  }
    17  
    18  func (r *recordReader) Read(p []byte) (int, error) {
    19  	n, err := r.r.Read(p)
    20  
    21  	if (r.size + n) > recordReaderMaxSize {
    22  		return 0, errors.New("max buffer size exceeded")
    23  	}
    24  
    25  	r.buf = append(r.buf, p[:n]...)
    26  	r.size += n
    27  	return n, err
    28  }