diff --git a/av/codec/codec.pxd b/av/codec/codec.pxd index 7739f6a57..5ccce4718 100644 --- a/av/codec/codec.pxd +++ b/av/codec/codec.pxd @@ -7,8 +7,6 @@ cdef class Codec: cdef const lib.AVCodec *ptr cdef const lib.AVCodecDescriptor *desc - cdef readonly bint is_encoder - cdef tuple[HWConfig, ...] _hardware_configs cdef _init(self, name=?) diff --git a/av/codec/codec.py b/av/codec/codec.py index 1c5a6f956..df3466c78 100644 --- a/av/codec/codec.py +++ b/av/codec/codec.py @@ -16,7 +16,6 @@ def wrap_codec(ptr: cython.pointer[cython.const[lib.AVCodec]]) -> Codec: codec: Codec = Codec(_cinit_sentinel) codec.ptr = ptr - codec.is_encoder = lib.av_codec_is_encoder(ptr) codec._init() return codec @@ -135,8 +134,6 @@ def _init(self, name=None): if not self.desc: raise RuntimeError(f"No codec descriptor for {name!r}.") - self.is_encoder = lib.av_codec_is_encoder(self.ptr) - # Sanity check. if self.is_encoder and lib.av_codec_is_decoder(self.ptr): raise RuntimeError("%s is both encoder and decoder.") @@ -154,6 +151,10 @@ def create(self, kind=None): return CodecContext.create(self) + @property + def is_encoder(self): + return bool(lib.av_codec_is_encoder(self.ptr)) + @property def mode(self): return "w" if self.is_encoder else "r"