mirror of
https://github.com/k4yt3x/video2x.git
synced 2026-02-21 14:24:53 +08:00
feat(*): rewritten the project with C/C++ (#1172)
This commit is contained in:
39
include/libplacebo_filter.h
Normal file
39
include/libplacebo_filter.h
Normal file
@@ -0,0 +1,39 @@
|
||||
#ifndef LIBPLACEBO_FILTER_H
|
||||
#define LIBPLACEBO_FILTER_H
|
||||
|
||||
#include <filesystem>
|
||||
|
||||
#include <libavutil/buffer.h>
|
||||
|
||||
#include "filter.h"
|
||||
|
||||
// LibplaceboFilter class definition
|
||||
class LibplaceboFilter : public Filter {
|
||||
private:
|
||||
AVFilterGraph *filter_graph;
|
||||
AVFilterContext *buffersrc_ctx;
|
||||
AVFilterContext *buffersink_ctx;
|
||||
AVBufferRef *device_ctx;
|
||||
int output_width;
|
||||
int output_height;
|
||||
const std::filesystem::path shader_path;
|
||||
AVRational output_time_base;
|
||||
|
||||
public:
|
||||
// Constructor
|
||||
LibplaceboFilter(int width, int height, const std::filesystem::path &shader_path);
|
||||
|
||||
// Destructor
|
||||
virtual ~LibplaceboFilter();
|
||||
|
||||
// Initializes the filter with decoder and encoder contexts
|
||||
int init(AVCodecContext *dec_ctx, AVCodecContext *enc_ctx) override;
|
||||
|
||||
// Processes an input frame and returns the processed frame
|
||||
AVFrame *process_frame(AVFrame *input_frame) override;
|
||||
|
||||
// Flushes any remaining frames
|
||||
int flush(std::vector<AVFrame *> &processed_frames) override;
|
||||
};
|
||||
|
||||
#endif // LIBPLACEBO_FILTER_H
|
||||
Reference in New Issue
Block a user