Fix audio sample rate for some xiaomi cameras #2006
This commit is contained in:
@@ -271,6 +271,24 @@ type Packet struct {
|
|||||||
Payload []byte
|
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 GenerateKey() ([]byte, []byte, error) {
|
func GenerateKey() ([]byte, []byte, error) {
|
||||||
public, private, err := box.GenerateKey(rand.Reader)
|
public, private, err := box.GenerateKey(rand.Reader)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
|||||||
@@ -110,7 +110,7 @@ func probe(client *miss.Client, channel, quality, audio uint8) ([]*core.Media, e
|
|||||||
}
|
}
|
||||||
case miss.CodecPCMA:
|
case miss.CodecPCMA:
|
||||||
if acodec == nil {
|
if acodec == nil {
|
||||||
acodec = &core.Codec{Name: core.CodecPCMA, ClockRate: 8000}
|
acodec = &core.Codec{Name: core.CodecPCMA, ClockRate: pkt.SampleRate()}
|
||||||
}
|
}
|
||||||
case miss.CodecOPUS:
|
case miss.CodecOPUS:
|
||||||
if acodec == nil {
|
if acodec == nil {
|
||||||
|
|||||||
Reference in New Issue
Block a user