Skip to content

Commit 4dae65a

Browse files
committed
Fix audio sample rate for some xiaomi cameras #2006
1 parent a09e1b2 commit 4dae65a

File tree

2 files changed

+19
-1
lines changed

2 files changed

+19
-1
lines changed

pkg/xiaomi/miss/client.go

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -271,6 +271,24 @@ type Packet struct {
271271
Payload []byte
272272
}
273273

274+
func (p *Packet) SampleRate() uint32 {
275+
// flag: 1 0011 000 - sample rate 16000
276+
// flag: 100 00 01 0000 000 - sample rate 8000
277+
v := (p.Flags >> 3) & 0b1111
278+
if v != 0 {
279+
return 16000
280+
}
281+
return 8000
282+
}
283+
284+
//func (p *Packet) AudioUnknown1() byte {
285+
// return byte((p.Flags >> 7) & 0b11)
286+
//}
287+
//
288+
//func (p *Packet) AudioUnknown2() byte {
289+
// return byte((p.Flags >> 9) & 0b11)
290+
//}
291+
274292
func GenerateKey() ([]byte, []byte, error) {
275293
public, private, err := box.GenerateKey(rand.Reader)
276294
if err != nil {

pkg/xiaomi/producer.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -110,7 +110,7 @@ func probe(client *miss.Client, channel, quality, audio uint8) ([]*core.Media, e
110110
}
111111
case miss.CodecPCMA:
112112
if acodec == nil {
113-
acodec = &core.Codec{Name: core.CodecPCMA, ClockRate: 8000}
113+
acodec = &core.Codec{Name: core.CodecPCMA, ClockRate: pkt.SampleRate()}
114114
}
115115
case miss.CodecOPUS:
116116
if acodec == nil {

0 commit comments

Comments
 (0)