Documentation
¶
Overview ¶
Package testing provides verification and comparison tools for Opus library development. These tools compare our Pure Go implementation against libopus reference output.
Index ¶
- func DecodeWithLibopus(opusData []byte, sampleRate int) ([]byte, error)
- func EncodeWithLibopus(pcmData []byte, sampleRate, channels, bitrate int) ([]byte, error)
- func ExecLibopus(command string, args ...string) ([]byte, error)
- func Float64ToBytes(data []float64) []byte
- func ParseOpusInfoOutput(output []byte) map[string]string
- type BitstreamCompareResult
- type BitstreamDiff
- type ConstantsReport
- type VerificationResult
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func DecodeWithLibopus ¶
DecodeWithLibopus decodes Opus using libopus opusdec command. Returns decoded PCM or error.
Prerequisites: opusdec must be in PATH.
func EncodeWithLibopus ¶
EncodeWithLibopus encodes PCM using libopus opusenc command. Returns encoded bytes or error.
Prerequisites: opusenc must be in PATH. This is Pure Go - we use exec, not CGO.
func ExecLibopus ¶
ExecLibopus runs libopus binary (opusenc/opusdec) and captures output. This is the Pure Go way to interact with libopus - exec only, no CGO.
func Float64ToBytes ¶
Float64ToBytes converts float64 slice to bytes for comparison.
func ParseOpusInfoOutput ¶
ParseOpusInfoOutput parses output from opus_demo -info or similar.
Types ¶
type BitstreamCompareResult ¶
type BitstreamCompareResult struct {
Passed bool
TotalBytes int
MatchedBytes int
Differences []BitstreamDiff
FirstDiffPos int // Position of first difference (-1 if none)
}
BitstreamCompareResult holds the result of bitstream comparison.
func CompareBitstreams ¶
func CompareBitstreams(expected, actual []byte) *BitstreamCompareResult
CompareBitstreams compares two byte slices and returns detailed diff.
func CompareEncoderOutput ¶
func CompareEncoderOutput(pcmData []byte, sampleRate, channels, bitrate int, ourEncoder func([]byte) ([]byte, error)) (*BitstreamCompareResult, error)
CompareEncoderOutput encodes same PCM with both libopus and our encoder, then compares the bitstreams.
func (*BitstreamCompareResult) PrintReport ¶
func (r *BitstreamCompareResult) PrintReport() string
PrintReport outputs comparison result as readable string.
type BitstreamDiff ¶
type BitstreamDiff struct {
Position int // Byte position
Expected byte // Expected value from libopus
Actual byte // Actual value from our encoder
Context string // Surrounding bytes for context
}
BitstreamDiff represents a single difference in the bitstream.
type ConstantsReport ¶
type ConstantsReport struct {
MDCTTwiddles VerificationResult
CELTWindow VerificationResult
RangeCoderConsts VerificationResult
}
ConstantsReport holds the result of constants verification.
func VerifyConstants ¶
func VerifyConstants() *ConstantsReport
VerifyConstants compares our internal constants against expected libopus values. Returns a detailed report of any discrepancies.
func (*ConstantsReport) PrintReport ¶
func (r *ConstantsReport) PrintReport() string
PrintReport outputs the verification report to console.