Testing passed for inc ptr and dec ptr

This commit is contained in:
saxon 2018-07-16 03:39:36 +09:30
parent fc6dfef893
commit ccdcba91ea
1 changed files with 22 additions and 23 deletions

View File

@ -43,10 +43,10 @@ int end_session(RTMP* rtmp);
import "C"
import (
"errors"
_"errors"
_ "fmt"
"log"
"math"
_"log"
_"math"
"reflect"
"strconv"
"unsafe"
@ -77,7 +77,7 @@ func AVC(str string) C.AVal {
// av_setDataFrame is a static const global in rtmp.c
var setDataFrame = AVC("@setDataFrame")
/*
// Session provides an interface for sending flv tags over rtmp.
type Session interface {
Open() error
@ -116,6 +116,19 @@ func (s *session) Open() error {
return nil
}
// Close terminates the rtmp connection
func (s *session) Close() error {
if s.rtmp == nil {
return Err(3)
}
ret := C.end_session(s.rtmp)
s.rtmp = nil
if ret != 0 {
return Err(ret)
}
return nil
}
// Write writes a frame (flv tag) to the rtmp connection
func (s *session) Write(data []byte) (int, error) {
if s.rtmp == nil {
@ -530,16 +543,15 @@ func AV_queue(vals **C.RTMP_METHOD, num *int, av *AVal, txn int ) {
memmove(tmp, unsafe.Pointer(av.av_val), int(av.av_len))
indxPtr(tpm,av.av_len) = '\0'
}
*/
// memmove copies n bytes from "from" to "to".
//go:linkname memmove runtime.memmove
func memmove(to, from unsafe.Pointer, n uintptr)
func indxPtr(ptr unsafe.Pointer, indx, typeSize int) unsafe.Pointer {
}
// sliceToPtr get's the address of the first data element and returns as unsafe
// pointer
func sliceToPtr(data []byte) unsafe.Pointer {
@ -559,25 +571,12 @@ func ptrToSlice(data unsafe.Pointer, size int) []byte {
// incPtr attempts to replicate C like pointer arithmatic functionality
func incPtr(ptr unsafe.Pointer, inc, typeSize int) unsafe.Pointer {
return unsafe.Pointer(uintptr(ptr) + uintptr(inc))
return unsafe.Pointer(uintptr(ptr) + uintptr(inc*typeSize))
}
// incPtr attempts to replicate C like pointer arithmatic functionality
func decPtr(ptr unsafe.Pointer, dec, typeSize int) unsafe.Pointer {
return unsafe.Pointer(uintptr(ptr) - uintptr(inc))
}
// Close terminates the rtmp connection
func (s *session) Close() error {
if s.rtmp == nil {
return Err(3)
}
ret := C.end_session(s.rtmp)
s.rtmp = nil
if ret != 0 {
return Err(ret)
}
return nil
return unsafe.Pointer(uintptr(ptr) - uintptr(dec*typeSize))
}
var rtmpErrs = [...]string{