#ifndef DEPTHGUIDE_PC_ENCODER_H #define DEPTHGUIDE_PC_ENCODER_H #include "pc_codec.hpp" #include "codec/image_encoder.h" #include "core/pc_utility.h" #include "image_process/cuda_impl/fake_color.cuh" #include "network/binary_utility.hpp" #include class pc_encoder { public: struct create_config { using method_type = pc_codec::encode_method_enum; method_type method = pc_codec::PC_RGB_DEPTH; fake_color_method depth_method = FAKE_800P; smart_cuda_stream *stream = nullptr; image_encoder *img_enc = nullptr; }; explicit pc_encoder(const create_config &conf); ~pc_encoder(); data_type encode(const pc_ptr &pc); void clear_cache(); private: struct impl; std::unique_ptr pimpl; }; #endif //DEPTHGUIDE_PC_ENCODER_H