From 4f84c4614db224fb0b8ca89b08c575350ce26ed4 Mon Sep 17 00:00:00 2001 From: WyattBlue Date: Sat, 15 Aug 2026 14:15:37 -0400 Subject: [PATCH] Make `Codec.is_encoder` a property Codec.__basicsize__: 56 -> 48 bytes --- av/codec/codec.pxd | 2 -- av/codec/codec.py | 7 ++++--- 2 files changed, 4 insertions(+), 5 deletions(-) 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"