mirror of
https://github.com/pion/mediadevices.git
synced 2025-10-29 19:12:48 +08:00
* Add VPX improvements from pion-mediadevices - Add vpx_image.go: VpxImage wrapper for vpx_image_t with convenient methods - Move BitrateTracker to vpx package: More specific to VPX codec usage - Add bitrate_tracker_test.go: Test coverage for VPX-specific bitrate tracking - Remove generic codec-level BitrateTracker: Replaced by VPX-specific version These changes improve VPX codec functionality and organization by: 1. Adding image handling utilities specific to VPX 2. Providing better bitrate tracking for VPX codecs 3. Improving code organization by moving VPX-specific code to VPX package * Revert bitrate tracker changes - Remove vpx-specific bitrate tracker files - Restore original codec-level bitrate tracker and test - Keep only the vpx_image.go addition from pion-mediadevices * Add comprehensive unit tests for VpxImage - Add vpx_image_test.go with full test coverage for VpxImage wrapper - Test interface compliance and constructor behavior - Test nil pointer handling (documents expected panic behavior) - Test common video format constants and plane indices - All tests pass and integrate with existing VPX test suite This improves test coverage for the new VpxImage utility from pion-mediadevices. * Add comprehensive unit tests for VpxImage - Add vpx_image_test.go with full test coverage for VpxImage wrapper - Test interface compliance and constructor behavior - Test nil pointer handling (documents expected panic behavior) - Test common video format constants and plane indices - All tests pass and integrate with existing VPX test suite This improves test coverage for the new VpxImage utility from pion-mediadevices.
20 lines
511 B
Go
20 lines
511 B
Go
package vpx
|
|
|
|
import (
|
|
"math"
|
|
"testing"
|
|
"time"
|
|
)
|
|
|
|
func TestBitrateTracker(t *testing.T) {
|
|
packetSize := 1000
|
|
bt := NewBitrateTracker(time.Second)
|
|
bt.AddFrame(packetSize, time.Now())
|
|
bt.AddFrame(packetSize, time.Now().Add(time.Millisecond*100))
|
|
bt.AddFrame(packetSize, time.Now().Add(time.Millisecond*999))
|
|
eps := float64(packetSize*8) / 10
|
|
if got, want := bt.GetBitrate(), float64(packetSize*8)*3; math.Abs(got-want) > eps {
|
|
t.Fatalf("GetBitrate() = %v, want %v (|diff| <= %v)", got, want, eps)
|
|
}
|
|
}
|