summaryrefslogtreecommitdiff
path: root/vendor/github.com/pion/srtp/v2/util.go
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/github.com/pion/srtp/v2/util.go')
-rw-r--r--vendor/github.com/pion/srtp/v2/util.go33
1 files changed, 33 insertions, 0 deletions
diff --git a/vendor/github.com/pion/srtp/v2/util.go b/vendor/github.com/pion/srtp/v2/util.go
new file mode 100644
index 0000000..1ae34a6
--- /dev/null
+++ b/vendor/github.com/pion/srtp/v2/util.go
@@ -0,0 +1,33 @@
+package srtp
+
+import "bytes"
+
+// Grow the buffer size to the given number of bytes.
+func growBufferSize(buf []byte, size int) []byte {
+ if size <= cap(buf) {
+ return buf[:size]
+ }
+
+ buf2 := make([]byte, size)
+ copy(buf2, buf)
+ return buf2
+}
+
+// Check if buffers match, if not allocate a new buffer and return it
+func allocateIfMismatch(dst, src []byte) []byte {
+ if dst == nil {
+ dst = make([]byte, len(src))
+ copy(dst, src)
+ } else if !bytes.Equal(dst, src) { // bytes.Equal returns on ref equality, no optimization needed
+ extraNeeded := len(src) - len(dst)
+ if extraNeeded > 0 {
+ dst = append(dst, make([]byte, extraNeeded)...)
+ } else if extraNeeded < 0 {
+ dst = dst[:len(dst)+extraNeeded]
+ }
+
+ copy(dst, src)
+ }
+
+ return dst
+}