diff --git a/pkg/xiaomi/miss/client.go b/pkg/xiaomi/miss/client.go index 95c3f9f3..3113632a 100644 --- a/pkg/xiaomi/miss/client.go +++ b/pkg/xiaomi/miss/client.go @@ -281,6 +281,24 @@ type Packet struct { Payload []byte } +func (p *Packet) SampleRate() uint32 { + // flag: 1 0011 000 - sample rate 16000 + // flag: 100 00 01 0000 000 - sample rate 8000 + v := (p.Flags >> 3) & 0b1111 + if v != 0 { + return 16000 + } + return 8000 +} + +//func (p *Packet) AudioUnknown1() byte { +// return byte((p.Flags >> 7) & 0b11) +//} +// +//func (p *Packet) AudioUnknown2() byte { +// return byte((p.Flags >> 9) & 0b11) +//} + func dafangRaw(cmd uint32, args ...byte) []byte { payload := tutk.ICAM(cmd, args...) diff --git a/pkg/xiaomi/miss/producer.go b/pkg/xiaomi/miss/producer.go index eeaa4969..dcea284e 100644 --- a/pkg/xiaomi/miss/producer.go +++ b/pkg/xiaomi/miss/producer.go @@ -85,7 +85,7 @@ func probe(client *Client, audio bool) ([]*core.Media, error) { } case codecPCMA: if acodec == nil { - acodec = &core.Codec{Name: core.CodecPCMA, ClockRate: 8000} + acodec = &core.Codec{Name: core.CodecPCMA, ClockRate: pkt.SampleRate()} } case codecOPUS: if acodec == nil {