34 lines
939 B
Go
34 lines
939 B
Go
package rdpgfx
|
|
|
|
import (
|
|
"encoding/binary"
|
|
"testing"
|
|
)
|
|
|
|
func TestParseAVC420Stream(t *testing.T) {
|
|
data := make([]byte, 4+10+4)
|
|
binary.LittleEndian.PutUint32(data[:4], 1)
|
|
binary.LittleEndian.PutUint16(data[4:], 10)
|
|
binary.LittleEndian.PutUint16(data[6:], 20)
|
|
binary.LittleEndian.PutUint16(data[8:], 110)
|
|
binary.LittleEndian.PutUint16(data[10:], 220)
|
|
data[12] = 0x41
|
|
data[13] = 0x7F
|
|
copy(data[14:], []byte{0x00, 0x00, 0x01, 0x65})
|
|
|
|
stream, err := parseAVC420Stream(data)
|
|
if err != nil {
|
|
t.Fatalf("parseAVC420Stream returned error: %v", err)
|
|
}
|
|
if len(stream.regions) != 1 {
|
|
t.Fatalf("expected 1 region, got %d", len(stream.regions))
|
|
}
|
|
got := stream.regions[0]
|
|
if got.left != 10 || got.top != 20 || got.right != 110 || got.bottom != 220 {
|
|
t.Fatalf("unexpected region: %+v", got)
|
|
}
|
|
if string(stream.h264Data) != string([]byte{0x00, 0x00, 0x01, 0x65}) {
|
|
t.Fatalf("unexpected h264 payload: %v", stream.h264Data)
|
|
}
|
|
}
|