42 lines
1.3 KiB
Cython
42 lines
1.3 KiB
Cython
cimport libav as lib
|
|
|
|
from av.video.frame cimport VideoFrame
|
|
|
|
|
|
cdef extern from "libswscale/swscale.h" nogil:
|
|
cdef struct SwsContext:
|
|
unsigned flags
|
|
int threads
|
|
|
|
cdef int SWS_FAST_BILINEAR
|
|
cdef int SWS_BILINEAR
|
|
cdef int SWS_BICUBIC
|
|
cdef int SWS_X
|
|
cdef int SWS_POINT
|
|
cdef int SWS_AREA
|
|
cdef int SWS_BICUBLIN
|
|
cdef int SWS_GAUSS
|
|
cdef int SWS_SINC
|
|
cdef int SWS_LANCZOS
|
|
cdef int SWS_SPLINE
|
|
cdef int SWS_CS_ITU709
|
|
cdef int SWS_CS_FCC
|
|
cdef int SWS_CS_ITU601
|
|
cdef int SWS_CS_ITU624
|
|
cdef int SWS_CS_SMPTE170M
|
|
cdef int SWS_CS_SMPTE240M
|
|
cdef int SWS_CS_DEFAULT
|
|
|
|
cdef SwsContext *sws_alloc_context()
|
|
cdef void sws_free_context(SwsContext **ctx)
|
|
cdef int sws_scale_frame(SwsContext *c, lib.AVFrame *dst, const lib.AVFrame *src)
|
|
|
|
cdef class VideoReformatter:
|
|
cdef SwsContext *ptr
|
|
cdef _reformat(self, VideoFrame frame, int width, int height,
|
|
lib.AVPixelFormat format, int src_colorspace,
|
|
int dst_colorspace, int interpolation,
|
|
int src_color_range, int dst_color_range,
|
|
int dst_color_trc, int dst_color_primaries,
|
|
bint set_dst_color_trc, bint set_dst_color_primaries,
|
|
int threads)
|