mirror of https://bitbucket.org/ausocean/av.git
Using my sockBufFill - tested and working
This commit is contained in:
parent
670e79f8f0
commit
7d9d4639b9
28
rtmp/rtmp.go
28
rtmp/rtmp.go
|
@ -821,7 +821,8 @@ func readN(r *C.RTMP, buffer *byte, n int) int {
|
|||
|
||||
avail = int(r.m_sb.sb_size)
|
||||
if avail == 0 {
|
||||
if C.RTMPSockBuf_Fill(&r.m_sb) < 1 {
|
||||
if rtmpSockBufFill(&r.m_sb) < 1 {
|
||||
// if C.RTMPSockBuf_Fill(&r.m_sb) < 1 {
|
||||
if r.m_sb.sb_timedout == 0 {
|
||||
return 0
|
||||
}
|
||||
|
@ -864,6 +865,31 @@ func readN(r *C.RTMP, buffer *byte, n int) int {
|
|||
return nOriginalSize - n
|
||||
}
|
||||
|
||||
func rtmpSockBufFill(sb *C.RTMPSockBuf) int {
|
||||
var nBytes int
|
||||
|
||||
if sb.sb_size == 0 {
|
||||
sb.sb_start = &sb.sb_buf[0]
|
||||
}
|
||||
|
||||
for {
|
||||
nBytes = int(unsafe.Sizeof(sb.sb_buf)) - 1 - int(sb.sb_size) -
|
||||
int(uintptr(unsafe.Pointer(sb.sb_start))-uintptr(unsafe.Pointer(
|
||||
&sb.sb_buf[0])))
|
||||
|
||||
nBytes = int(C.recv(sb.sb_socket, unsafe.Pointer(uintptr(unsafe.Pointer(
|
||||
sb.sb_start))+uintptr(int(sb.sb_size))), C.size_t(nBytes), 0))
|
||||
|
||||
if nBytes != -1 {
|
||||
sb.sb_size += C.int(nBytes)
|
||||
} else {
|
||||
log.Println("rtmpSockBufFill: recv error!")
|
||||
}
|
||||
break
|
||||
}
|
||||
return nBytes
|
||||
}
|
||||
|
||||
func sendConnectPacket(r *C.RTMP, cp *C.RTMPPacket) int {
|
||||
var packet C.RTMPPacket
|
||||
var pbuf [4096]byte
|
||||
|
|
Loading…
Reference in New Issue