This commit is contained in:
Rene Zeldenthuis
2024-02-11 00:42:55 +01:00
parent 9ba11162d8
commit 97fc4ceb33
26 changed files with 590 additions and 30 deletions

View File

@@ -0,0 +1,39 @@
#pragma once
#include <list>
#include <WiFiServer.h>
#include <ESPmDNS.h>
#include <OV2640.h>
#include <CRtspSession.h>
#include <arduino-timer.h>
#include <OV2640Streamer.h>
class rtsp_server : public WiFiServer
{
public:
rtsp_server(OV2640 &cam, unsigned long interval, int port = 554);
void doLoop();
size_t num_connected();
private:
struct rtsp_client
{
public:
rtsp_client(const WiFiClient &client, OV2640 &cam);
WiFiClient wifi_client;
// RTSP session and state
std::shared_ptr<CRtspSession> session;
};
OV2640 cam_;
OV2640Streamer _streamer;
std::list<std::unique_ptr<rtsp_client>> clients_;
uintptr_t task_;
Timer<> timer_;
static bool client_handler(void *);
};