Everything is building now, time to test with youtube

This commit is contained in:
saxon 2018-07-17 01:26:52 +09:30
parent 1c8146c8f3
commit 825a5f6f29
1 changed files with 16 additions and 9 deletions

View File

@ -76,6 +76,10 @@ const (
RTMP_PACKET_TYPE_VIDEO = 0x09
)
// memmove copies n bytes from "from" to "to".
//go:linkname memmove runtime.memmove
//func memmove(to, from unsafe.Pointer, n uintptr)
// C.AVal is in amf.h
// See #define AVC(str) {str, sizeof(str)-1} in amf.h
func AVC(str string) C.AVal {
@ -229,8 +233,8 @@ func rtmpWrite(r *C.RTMP, data []byte) int {
num = s2
}
memmove(enc,buf,uintptr(num))
//copy(ptrToSlice(enc, num), ptrToSlice(buf, num))
//memmove(enc,buf,uintptr(num))
copy(ptrToSlice(enc, num), ptrToSlice(buf, num))
pkt.m_nBytesRead += C.uint32_t(num)
s2 -= num
buf = incBytePtr(buf, num)
@ -425,7 +429,9 @@ func sendPacket(r *C.RTMP, packet *C.RTMPPacket, queue int) int {
// RTMP_LogHexString(RTMP_LOGDEBUG2, (uint8_t *)buffer, nChunkSize);
if tbuf != nil {
memmove(toff, header, uintptr(nChunkSize + hSize))
//memmove(toff, header, uintptr(nChunkSize + hSize))
copy(ptrToSlice(toff, int(nChunkSize+hSize)), ptrToSlice(header,
int(nChunkSize+hSize)))
toff = incBytePtr(toff, nChunkSize + hSize)
} else {
// TODO: port this
@ -515,9 +521,12 @@ func sendPacket(r *C.RTMP, packet *C.RTMPPacket, queue int) int {
r.m_vecChannelsOut = (**C.RTMPPacket)(C.malloc(C.size_t(unsafe.Sizeof(packet))))
}
memmove(incPtr(unsafe.Pointer(r.m_vecChannelsOut),int(packet.m_nChannel),
int(unsafe.Sizeof(packet))),unsafe.Pointer(packet), unsafe.Sizeof(packet))
//memmove(incPtr(unsafe.Pointer(r.m_vecChannelsOut),int(packet.m_nChannel),
//int(unsafe.Sizeof(packet))),unsafe.Pointer(packet), unsafe.Sizeof(packet))
dest := ptrToSlice(incPtr(unsafe.Pointer(r.m_vecChannelsOut),int(packet.m_nChannel),
int(unsafe.Sizeof(packet))),int(unsafe.Sizeof(packet)))
src := ptrToSlice(unsafe.Pointer(packet),int(unsafe.Sizeof(packet)))
copy(dest,src)
return 1
}
@ -579,9 +588,7 @@ func avQueue(vals **C.RTMP_METHOD, num *int, av *AVal, txn int ) {
}
*/
// memmove copies n bytes from "from" to "to".
//go:linkname memmove runtime.memmove
func memmove(to, from unsafe.Pointer, n uintptr)
// indxBytePtr returns a byte at the indx inc give a ptr
func indxBytePtr(ptr unsafe.Pointer, inc int) *byte {