#ifndef FILTER_H #define FILTER_H #include extern "C" { #include #include #include } // Abstract base class for filters class Filter { public: virtual ~Filter() = default; virtual int init(AVCodecContext *dec_ctx, AVCodecContext *enc_ctx, AVBufferRef *hw_ctx) = 0; virtual int process_frame(AVFrame *in_frame, AVFrame **out_frame) = 0; virtual int flush(std::vector &flushed_frames) { return 0; } }; #endif // FILTER_H