#ifndef DEPTHGUIDE_VERSATILE_CONVERTOR_H #define DEPTHGUIDE_VERSATILE_CONVERTOR_H #include "core/cuda_helper.hpp" #include "core/object_manager.h" #include enum convert_options { CVT_RGB_BGRA, CVT_NV12_RGB, CVT_FAKE_ENCODE_888I, CVT_FAKE_ENCODE_555P, CVT_FAKE_ENCODE_800P, CVT_FAKE_DECODE_888I, CVT_FAKE_DECODE_555P, CVT_FAKE_DECODE_800P, CVT_HALF_SPLIT }; class versatile_convertor { public: struct create_config { obj_name_type in_name; obj_name_type ext_in = invalid_obj_name; obj_name_type out_name; obj_name_type ext_out = invalid_obj_name; convert_options cvt_opt; smart_cuda_stream *stream = nullptr; }; explicit versatile_convertor(create_config conf); ~versatile_convertor(); private: struct impl; std::unique_ptr pimpl; }; #endif //DEPTHGUIDE_VERSATILE_CONVERTOR_H