25 lines
729 B
Cython
25 lines
729 B
Cython
cimport libav as lib
|
|
from libc.stdint cimport int64_t, uint8_t
|
|
|
|
|
|
cdef int pyio_read(void *opaque, uint8_t *buf, int buf_size) noexcept nogil
|
|
cdef int pyio_write(void *opaque, const uint8_t *buf, int buf_size) noexcept nogil
|
|
cdef int64_t pyio_seek(void *opaque, int64_t offset, int whence) noexcept nogil
|
|
cdef int pyio_close_gil(lib.AVIOContext *pb)
|
|
cdef int pyio_close_custom_gil(lib.AVIOContext *pb)
|
|
|
|
cdef class PyIOFile:
|
|
# File-like source.
|
|
cdef readonly object file
|
|
cdef object fread
|
|
cdef object fwrite
|
|
cdef object fseek
|
|
cdef object ftell
|
|
cdef object fclose
|
|
|
|
# Custom IO for above.
|
|
cdef lib.AVIOContext *iocontext
|
|
cdef unsigned char *buffer
|
|
cdef long pos
|
|
cdef bint pos_is_valid
|