mirror of https://bitbucket.org/ausocean/av.git
Ported AV_erase - tested and working
This commit is contained in:
parent
27006d8fd3
commit
6cfabc671f
28
rtmp/rtmp.go
28
rtmp/rtmp.go
|
@ -1942,7 +1942,6 @@ func C_HandleClientBW(r *C.RTMP, packet *C.RTMPPacket) {
|
||||||
|
|
||||||
// int HandleInvoke(RTMP* r, const char* body, unsigned int nBodySize);
|
// int HandleInvoke(RTMP* r, const char* body, unsigned int nBodySize);
|
||||||
// rtmp.c +2912
|
// rtmp.c +2912
|
||||||
// TODO port AMFProp_GetNumber (amf.c +330)
|
|
||||||
// TODO port AV_erase (rtmp.c +2393)
|
// TODO port AV_erase (rtmp.c +2393)
|
||||||
// TODO port SendReleaseStream (rtmp.c +1816)
|
// TODO port SendReleaseStream (rtmp.c +1816)
|
||||||
// TODO port SendFCPublish (rtmp.c +1846)
|
// TODO port SendFCPublish (rtmp.c +1846)
|
||||||
|
@ -1993,7 +1992,8 @@ func C_HandleInvoke(r *C.RTMP, body *byte, nBodySize uint32) int32 {
|
||||||
log.Println("1.1")
|
log.Println("1.1")
|
||||||
methodInvoked = (*(*C.RTMP_METHOD)(incPtr(unsafe.Pointer(r.m_methodCalls),
|
methodInvoked = (*(*C.RTMP_METHOD)(incPtr(unsafe.Pointer(r.m_methodCalls),
|
||||||
int(i), int(unsafe.Sizeof(*r.m_methodCalls))))).name
|
int(i), int(unsafe.Sizeof(*r.m_methodCalls))))).name
|
||||||
C.AV_erase(r.m_methodCalls, &r.m_numCalls, C.int(i), 0)
|
//C.AV_erase(r.m_methodCalls, &r.m_numCalls, C.int(i), 0)
|
||||||
|
C_AV_erase(r.m_methodCalls, (*int32)(&r.m_numCalls), int32(i), 0)
|
||||||
break
|
break
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -2185,7 +2185,8 @@ func C_HandleInvoke(r *C.RTMP, body *byte, nBodySize uint32) int32 {
|
||||||
if C_AVMATCH(&(*(*C.RTMP_METHOD)(incPtr(unsafe.Pointer(r.m_methodCalls), int(i),
|
if C_AVMATCH(&(*(*C.RTMP_METHOD)(incPtr(unsafe.Pointer(r.m_methodCalls), int(i),
|
||||||
int(unsafe.Sizeof(*r.m_methodCalls))))).name, &av_publish) != 0 {
|
int(unsafe.Sizeof(*r.m_methodCalls))))).name, &av_publish) != 0 {
|
||||||
log.Println("16.1")
|
log.Println("16.1")
|
||||||
C.AV_erase(r.m_methodCalls, &r.m_numCalls, C.int(i), 1)
|
//C.AV_erase(r.m_methodCalls, &r.m_numCalls, C.int(i), 1)
|
||||||
|
C_AV_erase(r.m_methodCalls, (*int32)(&r.m_numCalls), int32(i), 1)
|
||||||
break
|
break
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -2297,6 +2298,27 @@ func C_AMFProp_GetNumber(prop *C.AMFObjectProperty) float64 {
|
||||||
return float64(prop.p_vu.p_number)
|
return float64(prop.p_vu.p_number)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// void AV_erase(C.RTMP_METHOD* vals, int* num, int i, int freeit);
|
||||||
|
// rtmp.c +2393
|
||||||
|
func C_AV_erase(vals *C.RTMP_METHOD, num *int32, i, freeit int32) {
|
||||||
|
if freeit != 0 {
|
||||||
|
C.free(unsafe.Pointer((*(*C.RTMP_METHOD)(incPtr(unsafe.Pointer(vals), int(i),
|
||||||
|
int(unsafe.Sizeof(*vals))))).name.av_val))
|
||||||
|
}
|
||||||
|
(*num)--
|
||||||
|
for ; i < *num; i++ {
|
||||||
|
*(*C.RTMP_METHOD)(incPtr(unsafe.Pointer(vals), int(i),
|
||||||
|
int(unsafe.Sizeof(*vals)))) = *(*C.RTMP_METHOD)(incPtr(
|
||||||
|
unsafe.Pointer(vals), int(i+1), int(unsafe.Sizeof(*vals))))
|
||||||
|
}
|
||||||
|
(*(*C.RTMP_METHOD)(incPtr(unsafe.Pointer(vals), int(i),
|
||||||
|
int(unsafe.Sizeof(*vals))))).name.av_val = nil
|
||||||
|
(*(*C.RTMP_METHOD)(incPtr(unsafe.Pointer(vals), int(i),
|
||||||
|
int(unsafe.Sizeof(*vals))))).name.av_len = 0
|
||||||
|
(*(*C.RTMP_METHOD)(incPtr(unsafe.Pointer(vals), int(i),
|
||||||
|
int(unsafe.Sizeof(*vals))))).num = 0
|
||||||
|
}
|
||||||
|
|
||||||
// void RTMPPacket_Free(RTMPPacket* p);
|
// void RTMPPacket_Free(RTMPPacket* p);
|
||||||
// rtmp.c +203
|
// rtmp.c +203
|
||||||
func C_RTMPPacket_Free(p *C.RTMPPacket) {
|
func C_RTMPPacket_Free(p *C.RTMPPacket) {
|
||||||
|
|
Loading…
Reference in New Issue