add WalkNALUsAVCC() modify SplitNALUs return params order
This commit is contained in:
parent
c22c2411f1
commit
fbc251923c
@ -195,9 +195,18 @@ func WalkNALUsAnnexb(nalus [][]byte, write func([]byte)) {
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
func SplitNALUs(b []byte) (ok bool, nalus [][]byte) {
|
func WalkNALUsAVCC(nalus [][]byte, write func([]byte)) {
|
||||||
|
for _, nalu := range(nalus) {
|
||||||
|
var b [4]byte
|
||||||
|
bits.PutUIntBE(b[:], uint(len(nalu)), 32)
|
||||||
|
write(b[:])
|
||||||
|
write(nalu)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func SplitNALUs(b []byte) (nalus [][]byte, ok bool) {
|
||||||
if len(b) < 4 {
|
if len(b) < 4 {
|
||||||
return
|
return [][]byte{b}, false
|
||||||
}
|
}
|
||||||
|
|
||||||
val3 := bits.GetUIntBE(b, 24)
|
val3 := bits.GetUIntBE(b, 24)
|
||||||
@ -262,10 +271,12 @@ func SplitNALUs(b []byte) (ok bool, nalus [][]byte) {
|
|||||||
}
|
}
|
||||||
if len(b) == 0 {
|
if len(b) == 0 {
|
||||||
ok = true
|
ok = true
|
||||||
|
return
|
||||||
|
} else {
|
||||||
|
return [][]byte{b}, false
|
||||||
}
|
}
|
||||||
return
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return
|
return [][]byte{b}, false
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -11,13 +11,13 @@ func TestParser(t *testing.T) {
|
|||||||
var nalus [][]byte
|
var nalus [][]byte
|
||||||
|
|
||||||
annexbFrame, _ := hex.DecodeString("000001223322330000000122332233223300000133000001000001")
|
annexbFrame, _ := hex.DecodeString("000001223322330000000122332233223300000133000001000001")
|
||||||
ok, nalus = SplitNALUs(annexbFrame)
|
nalus, ok = SplitNALUs(annexbFrame)
|
||||||
t.Log(ok, len(nalus))
|
t.Log(ok, len(nalus))
|
||||||
|
|
||||||
avccFrame, _ := hex.DecodeString(
|
avccFrame, _ := hex.DecodeString(
|
||||||
"00000008aabbccaabbccaabb00000001aa",
|
"00000008aabbccaabbccaabb00000001aa",
|
||||||
)
|
)
|
||||||
ok, nalus = SplitNALUs(avccFrame)
|
nalus, ok = SplitNALUs(avccFrame)
|
||||||
t.Log(ok, len(nalus))
|
t.Log(ok, len(nalus))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user