rtsp_tensorrt/pipeline/common/yaml_config_parser.hpp

37 lines
1.0 KiB
C++

#pragma once
#include <string>
#include <memory>
#include <iostream>
#include <yaml-cpp/yaml.h>
#include "../input/rtsp_reader.hpp"
#include "config_parser.hpp"
namespace pipeline {
class YamlConfigParser : public ConfigParser {
public:
YamlConfigParser() = default;
~YamlConfigParser() override = default;
bool parse(const std::string& config_file);
bool validate() override;
const PipelineConfig& getConfig() const override { return config_; }
// 配置解析函数
bool parseInputConfig(const YAML::Node& node);
bool parseModelConfig(const YAML::Node& node);
bool parseRenderConfig(const YAML::Node& node);
bool parseOutputConfig(const YAML::Node& node);
bool parseLogConfig(const YAML::Node& node);
bool parseRtspConfig(const YAML::Node& config, RtspReader::Config& rtsp_config);
// 获取原始配置
const YAML::Node& getYamlConfig() const { return yaml_config_; }
private:
PipelineConfig config_;
YAML::Node yaml_config_;
};
} // namespace pipeline