37 lines
1.0 KiB
C++
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
|