Files
donut/local-tmp-go-astiav/io_interrupter.go
Leandro Moreira af8aa3acff add local astiav
2024-05-13 08:58:23 -03:00

41 lines
670 B
Go

package astiav
//#cgo pkg-config: libavformat
//#include <libavformat/avio.h>
/*
int astiavInterruptCallback(void *ret)
{
return *((int*)ret);
}
AVIOInterruptCB astiavNewInterruptCallback(int *ret)
{
AVIOInterruptCB c = { astiavInterruptCallback, ret };
return c;
}
*/
import "C"
type IOInterrupter interface {
Interrupt()
Resume()
}
type defaultIOInterrupter struct {
c C.struct_AVIOInterruptCB
i C.int
}
func newDefaultIOInterrupter() *defaultIOInterrupter {
i := &defaultIOInterrupter{}
i.c = C.astiavNewInterruptCallback(&i.i)
return i
}
func (i *defaultIOInterrupter) Interrupt() {
i.i = 1
}
func (i *defaultIOInterrupter) Resume() {
i.i = 0
}