2024-06-05 20:10:03 +00:00
|
|
|
// SPDX-FileCopyrightText: 2023 The Pion community <https://pion.ly>
|
|
|
|
// SPDX-License-Identifier: MIT
|
|
|
|
|
2022-03-10 09:44:48 +00:00
|
|
|
package codecs
|
|
|
|
|
|
|
|
func min(a, b int) int {
|
|
|
|
if a < b {
|
|
|
|
return a
|
|
|
|
}
|
|
|
|
return b
|
|
|
|
}
|
|
|
|
|
|
|
|
// audioDepacketizer is a mixin for audio codec depacketizers
|
|
|
|
type audioDepacketizer struct{}
|
|
|
|
|
2024-06-05 20:10:03 +00:00
|
|
|
func (d *audioDepacketizer) IsPartitionTail(_ bool, _ []byte) bool {
|
2022-03-10 09:44:48 +00:00
|
|
|
return true
|
|
|
|
}
|
|
|
|
|
2024-06-05 20:10:03 +00:00
|
|
|
func (d *audioDepacketizer) IsPartitionHead(_ []byte) bool {
|
2022-03-10 09:44:48 +00:00
|
|
|
return true
|
|
|
|
}
|
|
|
|
|
|
|
|
// videoDepacketizer is a mixin for video codec depacketizers
|
2024-06-05 20:10:03 +00:00
|
|
|
type videoDepacketizer struct {
|
|
|
|
zeroAllocation bool
|
|
|
|
}
|
2022-03-10 09:44:48 +00:00
|
|
|
|
2024-06-05 20:10:03 +00:00
|
|
|
func (d *videoDepacketizer) IsPartitionTail(marker bool, _ []byte) bool {
|
2022-03-10 09:44:48 +00:00
|
|
|
return marker
|
|
|
|
}
|
2024-06-05 20:10:03 +00:00
|
|
|
|
|
|
|
// SetZeroAllocation enables Zero Allocation mode for the depacketizer
|
|
|
|
// By default the Depacketizers will allocate as they parse. These allocations
|
|
|
|
// are needed for Metadata and other optional values. If you don't need this information
|
|
|
|
// enabling SetZeroAllocation gives you higher performance at a reduced feature set.
|
|
|
|
func (d *videoDepacketizer) SetZeroAllocation(zeroAllocation bool) {
|
|
|
|
d.zeroAllocation = zeroAllocation
|
|
|
|
}
|