메타데이터 파싱 구현 파일 더 자세히 ...
#include "metadata_parser.hpp"
#include <iostream>
#include <regex>
#include <cstdio>
#include <chrono>
#include <queue>
#include <arpa/inet.h>
#include <openssl/ssl.h>
#include "ssl.hpp"
#include "config_manager.hpp"
함수 | |
atomic< bool > | parser_running (false) |
메타데이터 파서 실행 여부 플래그 | |
std::atomic< int > | bbox_buffer_delay_ms (2000) |
BBox 버퍼 지연(ms), 기본값 2400ms | |
std::atomic< int > | bbox_send_interval_ms (50) |
BBox 전송 간격(ms), 기본값 50ms | |
void | start_metadata_parser () |
메타데이터 파서를 시작합니다. | |
void | stop_metadata_parser () |
메타데이터 파서를 중지합니다. | |
void | parse_metadata () |
RTSP 스트림에서 메타데이터를 파싱하여 BBox 정보를 추출합니다. 파싱된 BBox는 latest_bboxes와 버퍼에 저장됩니다. | |
void | clear_bbox_buffer () |
BBox 버퍼를 완전히 비웁니다. | |
void | update_bbox_buffer (const std::vector< ServerBBox > &new_bboxes) |
새로운 BBox 데이터를 타임스탬프와 함께 버퍼에 추가하고 오래된 데이터를 정리합니다. | |
bool | send_bboxes_to_client (SSL *ssl) |
버퍼에서 BBox 데이터를 꺼내 클라이언트(SSL)로 전송합니다. | |
변수 | |
vector< ServerBBox > | latest_bboxes |
최근에 파싱된 BBox 목록 (스레드 안전) | |
mutex | bbox_mutex |
latest_bboxes 보호용 뮤텍스 | |
std::queue< TimestampedBBox > | bbox_buffer |
BBox 버퍼 (타임스탬프 포함) | |
std::mutex | bbox_buffer_mutex |
bbox_buffer 보호용 뮤텍스 | |
메타데이터 파싱 구현 파일
이 파일은 RTSP 스트림에서 메타데이터를 파싱하여 BBox 정보를 추출하고 관리하는 기능을 제공합니다.
std::atomic< int > bbox_buffer_delay_ms | ( | 2000 | ) |
BBox 버퍼 지연(ms), 기본값 2400ms
BBox 데이터를 버퍼에 저장할 때 적용되는 지연 시간입니다. 기본값은 2000ms입니다.
std::atomic< int > bbox_send_interval_ms | ( | 50 | ) |
BBox 전송 간격(ms), 기본값 50ms
클라이언트로 BBox 데이터를 전송하는 간격입니다. 기본값은 50ms입니다.
atomic< bool > parser_running | ( | false | ) |
메타데이터 파서 실행 여부 플래그
메타데이터 파서가 실행 중인지 여부를 나타내는 플래그입니다.
bool send_bboxes_to_client | ( | SSL * | ssl | ) |
버퍼에서 BBox 데이터를 꺼내 클라이언트(SSL)로 전송합니다.
ssl | OpenSSL SSL 포인터 |
void update_bbox_buffer | ( | const std::vector< ServerBBox > & | new_bboxes | ) |
새로운 BBox 데이터를 타임스탬프와 함께 버퍼에 추가하고 오래된 데이터를 정리합니다.
new_bboxes | 새로 파싱된 BBox 벡터 |
std::queue<TimestampedBBox> bbox_buffer |
BBox 버퍼 (타임스탬프 포함)
타임스탬프와 함께 저장된 BBox 데이터를 관리하는 큐입니다.
std::mutex bbox_buffer_mutex |
bbox_buffer 보호용 뮤텍스
BBox 버퍼를 보호하기 위한 뮤텍스입니다.
mutex bbox_mutex |
latest_bboxes 보호용 뮤텍스
최근에 파싱된 BBox 목록을 보호하기 위한 뮤텍스입니다.
vector<ServerBBox> latest_bboxes |
최근에 파싱된 BBox 목록 (스레드 안전)
최근에 파싱된 BBox 목록