File size: 753 Bytes
06555b5
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
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