mirror of https://bitbucket.org/ausocean/av.git
Works when I don't use my amfEncodeString, clearly we need to work on that
This commit is contained in:
parent
bb1f63d8bd
commit
76ced667b9
43
rtmp/rtmp.go
43
rtmp/rtmp.go
|
@ -783,8 +783,8 @@ func handShake(r *C.RTMP, FP9HandShake int32) int {
|
||||||
return 0
|
return 0
|
||||||
}
|
}
|
||||||
|
|
||||||
//if C.ReadN(r, (*C.char)(unsafe.Pointer(&typ)), 1) != 1 {
|
if C.ReadN(r, (*C.char)(unsafe.Pointer(&typ)), 1) != 1 {
|
||||||
if readN(r, (*byte)(unsafe.Pointer(&typ)), 1) != 1 {
|
//if readN(r, (*byte)(unsafe.Pointer(&typ)), 1) != 1 {
|
||||||
return 0
|
return 0
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -795,8 +795,8 @@ func handShake(r *C.RTMP, FP9HandShake int32) int {
|
||||||
log.Println("handShake: type mismatch: client sent %v, server sent: %v",
|
log.Println("handShake: type mismatch: client sent %v, server sent: %v",
|
||||||
clientbuf[0], typ)
|
clientbuf[0], typ)
|
||||||
}
|
}
|
||||||
if readN(r, (*byte)(unsafe.Pointer(&serversig[0])), RTMP_SIG_SIZE) != RTMP_SIG_SIZE {
|
//if readN(r, (*byte)(unsafe.Pointer(&serversig[0])), RTMP_SIG_SIZE) != RTMP_SIG_SIZE {
|
||||||
//if C.ReadN(r, (*C.char)(unsafe.Pointer(&serversig[0])), RTMP_SIG_SIZE) != RTMP_SIG_SIZE {
|
if C.ReadN(r, (*C.char)(unsafe.Pointer(&serversig[0])), RTMP_SIG_SIZE) != RTMP_SIG_SIZE {
|
||||||
return 0
|
return 0
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -809,8 +809,8 @@ func handShake(r *C.RTMP, FP9HandShake int32) int {
|
||||||
return 0
|
return 0
|
||||||
}
|
}
|
||||||
|
|
||||||
if readN(r, (*byte)(unsafe.Pointer(&serversig[0])), RTMP_SIG_SIZE) != RTMP_SIG_SIZE {
|
//if readN(r, (*byte)(unsafe.Pointer(&serversig[0])), RTMP_SIG_SIZE) != RTMP_SIG_SIZE {
|
||||||
// if C.ReadN(r, (*C.char)(unsafe.Pointer(&serversig[0])), RTMP_SIG_SIZE) != RTMP_SIG_SIZE {
|
if C.ReadN(r, (*C.char)(unsafe.Pointer(&serversig[0])), RTMP_SIG_SIZE) != RTMP_SIG_SIZE {
|
||||||
return 0
|
return 0
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -944,8 +944,8 @@ func sendConnectPacket(r *C.RTMP, cp *C.RTMPPacket) int {
|
||||||
var enc *byte
|
var enc *byte
|
||||||
|
|
||||||
if cp != nil {
|
if cp != nil {
|
||||||
return rtmpSendPacket(r, cp, 1)
|
//return rtmpSendPacket(r, cp, 1)
|
||||||
//return int(C.RTMP_SendPacket(r, cp, 1))
|
return int(C.RTMP_SendPacket(r, cp, 1))
|
||||||
}
|
}
|
||||||
|
|
||||||
packet.m_nChannel = 0x03
|
packet.m_nChannel = 0x03
|
||||||
|
@ -959,9 +959,9 @@ func sendConnectPacket(r *C.RTMP, cp *C.RTMPPacket) int {
|
||||||
|
|
||||||
enc = (*byte)(unsafe.Pointer(packet.m_body))
|
enc = (*byte)(unsafe.Pointer(packet.m_body))
|
||||||
|
|
||||||
//enc = (*byte)(unsafe.Pointer(C.AMF_EncodeString((*C.char)(unsafe.Pointer(enc)),
|
enc = (*byte)(unsafe.Pointer(C.AMF_EncodeString((*C.char)(unsafe.Pointer(enc)),
|
||||||
//(*C.char)(unsafe.Pointer(pend)), &av_connect)))
|
(*C.char)(unsafe.Pointer(pend)), &av_connect)))
|
||||||
enc = amfEncodeString(enc, pend, &av_connect)
|
//enc = amfEncodeString(enc, pend, &av_connect)
|
||||||
r.m_numInvokes += 1
|
r.m_numInvokes += 1
|
||||||
enc = (*byte)(unsafe.Pointer(C.AMF_EncodeNumber((*C.char)(unsafe.Pointer(enc)),
|
enc = (*byte)(unsafe.Pointer(C.AMF_EncodeNumber((*C.char)(unsafe.Pointer(enc)),
|
||||||
(*C.char)(unsafe.Pointer(pend)), C.double(r.m_numInvokes))))
|
(*C.char)(unsafe.Pointer(pend)), C.double(r.m_numInvokes))))
|
||||||
|
@ -1107,8 +1107,8 @@ func sendConnectPacket(r *C.RTMP, cp *C.RTMPPacket) int {
|
||||||
packet.m_nBodySize = C.uint32_t(int(uintptr(decBytePtr(unsafe.Pointer(enc),
|
packet.m_nBodySize = C.uint32_t(int(uintptr(decBytePtr(unsafe.Pointer(enc),
|
||||||
int(uintptr(unsafe.Pointer(packet.m_body)))))))
|
int(uintptr(unsafe.Pointer(packet.m_body)))))))
|
||||||
|
|
||||||
//return int(C.RTMP_SendPacket(r, &packet, 1))
|
return int(C.RTMP_SendPacket(r, &packet, 1))
|
||||||
return rtmpSendPacket(r, &packet, 1)
|
//return rtmpSendPacket(r, &packet, 1)
|
||||||
}
|
}
|
||||||
|
|
||||||
func rtmpConnectStream(r *C.RTMP, seekTime int32) int {
|
func rtmpConnectStream(r *C.RTMP, seekTime int32) int {
|
||||||
|
@ -1261,7 +1261,7 @@ func rtmpWrite(r *C.RTMP, data []byte) int {
|
||||||
func rtmpSendPacket(r *C.RTMP, packet *C.RTMPPacket, queue int) int {
|
func rtmpSendPacket(r *C.RTMP, packet *C.RTMPPacket, queue int) int {
|
||||||
var prevPacket *C.RTMPPacket
|
var prevPacket *C.RTMPPacket
|
||||||
last := 0
|
last := 0
|
||||||
var nSize, hSize, cSize, nChunkSize, tlen int
|
var nSize, hSize, cSize, nChunkSize int
|
||||||
var header, hptr, hend, buffer, tbuf, toff unsafe.Pointer
|
var header, hptr, hend, buffer, tbuf, toff unsafe.Pointer
|
||||||
var goHbuf [RTMP_MAX_HEADER_SIZE]byte
|
var goHbuf [RTMP_MAX_HEADER_SIZE]byte
|
||||||
var hbuf = unsafe.Pointer(&goHbuf[0])
|
var hbuf = unsafe.Pointer(&goHbuf[0])
|
||||||
|
@ -1407,21 +1407,6 @@ func rtmpSendPacket(r *C.RTMP, packet *C.RTMPPacket, queue int) int {
|
||||||
log.Printf("rtmpSendPacket: fd=%v, size=%v", r.m_sb.sb_socket, nSize)
|
log.Printf("rtmpSendPacket: fd=%v, size=%v", r.m_sb.sb_socket, nSize)
|
||||||
}
|
}
|
||||||
|
|
||||||
// send all chunks in one HTTP request
|
|
||||||
// TODO: port RTMP_FEATURE_HTTP
|
|
||||||
if int(r.Link.protocol&RTMP_FEATURE_HTTP) != 0 {
|
|
||||||
chunks := (nSize + nChunkSize - 1) / nChunkSize
|
|
||||||
if chunks > 1 {
|
|
||||||
tlen = chunks*(cSize+1) + nSize + hSize
|
|
||||||
// TODO: figure out how to do this in go
|
|
||||||
tbuf = allocate(uintptr(tlen))
|
|
||||||
|
|
||||||
if tbuf == nil {
|
|
||||||
return 0
|
|
||||||
}
|
|
||||||
toff = tbuf
|
|
||||||
}
|
|
||||||
}
|
|
||||||
for (nSize + hSize) != 0 {
|
for (nSize + hSize) != 0 {
|
||||||
var wrote int
|
var wrote int
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue