1 Star 0 Fork 0

qinxude/rk3568ui

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
rtspcamera.h 1.22 KB
一键复制 编辑 原始数据 按行查看 历史
qinxude 提交于 2024-09-05 11:50 . update for rtsp camera
#ifndef RTSPCAMERA_H
#define RTSPCAMERA_H
#include <atomic>
#include <iostream>
#include <chrono>
#include <vector>
#include <thread>
#include <mutex>
#include <opencv2/opencv.hpp>
extern "C" {
#include <libavcodec/avcodec.h>
#include <libavformat/avformat.h>
#include <libavutil/dict.h>
#include <libavutil/imgutils.h>
#include <libavutil/samplefmt.h>
#include <libavutil/timestamp.h>
#include <libswscale/swscale.h>
}
class RtspCamera {
public:
RtspCamera(const std::string& rtspUrl);
~RtspCamera();
bool initFFmpeg();
bool startCapture();
void stopCapture();
cv::Mat getLatestFrame();
private:
void captureLoop();
int ConverFrameToRgb(AVFrame *input_frame, AVFrame *output_frame, AVPixelFormat inputFormate);
private:
std::string m_rtspUrl;
AVFormatContext* m_pFormatCtx;
AVCodecContext* m_pCodecCtx;
AVFrame* m_pFrame;
AVFrame* m_pFrameRGB;
uint8_t* m_buffer;
int m_videoIndex;
AVDictionary* m_options;
std::thread m_captureThread;
std::mutex m_frameMutex;
cv::Mat m_latestFrame;
std::atomic<bool> m_isCapturing;
std::atomic<bool> m_isRequest;
int m_cameraIndex;
static int cameraSeq;
static std::mutex seqMux;
};
#endif // RTSPCAMERA_H
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
C++
1
https://gitee.com/qinxude/rk3568ui.git
[email protected]:qinxude/rk3568ui.git
qinxude
rk3568ui
rk3568ui
master

搜索帮助