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