forked from external-repos/esp32cam-rtsp
Fixes
This commit is contained in:
@@ -12,9 +12,12 @@
|
|||||||
class micro_rtsp_server : WiFiServer
|
class micro_rtsp_server : WiFiServer
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
micro_rtsp_server(const micro_rtsp_camera& source, unsigned frame_interval = 100, unsigned short port = 554);
|
micro_rtsp_server(const micro_rtsp_camera& source, unsigned frame_interval = 100);
|
||||||
~micro_rtsp_server();
|
~micro_rtsp_server();
|
||||||
|
|
||||||
|
void begin(unsigned short port = 554);
|
||||||
|
void end();
|
||||||
|
|
||||||
unsigned get_frame_interval() { return frame_interval_; }
|
unsigned get_frame_interval() { return frame_interval_; }
|
||||||
unsigned set_frame_interval(unsigned value) { return frame_interval_ = value; }
|
unsigned set_frame_interval(unsigned value) { return frame_interval_ = value; }
|
||||||
|
|
||||||
|
|||||||
@@ -14,12 +14,13 @@ micro_rtsp_camera::~micro_rtsp_camera()
|
|||||||
|
|
||||||
esp_err_t micro_rtsp_camera::initialize(camera_config_t *camera_config)
|
esp_err_t micro_rtsp_camera::initialize(camera_config_t *camera_config)
|
||||||
{
|
{
|
||||||
|
|
||||||
init_result = esp_camera_init(camera_config);
|
init_result = esp_camera_init(camera_config);
|
||||||
if (init_result == ESP_OK)
|
if (init_result == ESP_OK)
|
||||||
update_frame();
|
update_frame();
|
||||||
else
|
else
|
||||||
log_e("Camera initialization failed: 0x%x", init_result);
|
log_e("Camera initialization failed: 0x%02x", init_result);
|
||||||
|
|
||||||
|
return init_result;
|
||||||
}
|
}
|
||||||
|
|
||||||
esp_err_t micro_rtsp_camera::deinitialize()
|
esp_err_t micro_rtsp_camera::deinitialize()
|
||||||
|
|||||||
@@ -3,15 +3,13 @@
|
|||||||
#include <memory>
|
#include <memory>
|
||||||
|
|
||||||
// Check client connections every 100 milliseconds
|
// Check client connections every 100 milliseconds
|
||||||
#define CHECK_CLIENT_INTERVAL 100
|
#define CHECK_CLIENT_INTERVAL 10
|
||||||
#define STREAM_NAME "mjpeg/1"
|
|
||||||
|
|
||||||
micro_rtsp_server::micro_rtsp_server(const micro_rtsp_camera &source, unsigned frame_interval /*= 100*/, unsigned short port /*= 554*/)
|
micro_rtsp_server::micro_rtsp_server(const micro_rtsp_camera &source, unsigned frame_interval /*= 100*/)
|
||||||
: source_(source)
|
: source_(source)
|
||||||
{
|
{
|
||||||
log_i("starting RTSP server");
|
log_i("starting RTSP server");
|
||||||
frame_interval_ = frame_interval;
|
frame_interval_ = frame_interval;
|
||||||
begin(port);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
micro_rtsp_server::~micro_rtsp_server()
|
micro_rtsp_server::~micro_rtsp_server()
|
||||||
@@ -19,6 +17,16 @@ micro_rtsp_server::~micro_rtsp_server()
|
|||||||
end();
|
end();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void micro_rtsp_server::begin(unsigned short port /*= 554*/)
|
||||||
|
{
|
||||||
|
WiFiServer::begin(port);
|
||||||
|
}
|
||||||
|
|
||||||
|
void micro_rtsp_server::end()
|
||||||
|
{
|
||||||
|
WiFiServer::end();
|
||||||
|
}
|
||||||
|
|
||||||
void micro_rtsp_server::loop()
|
void micro_rtsp_server::loop()
|
||||||
{
|
{
|
||||||
auto now = millis();
|
auto now = millis();
|
||||||
|
|||||||
@@ -37,7 +37,7 @@ framework = arduino
|
|||||||
#upload_flags = --auth='ESP32CAM-RTSP'
|
#upload_flags = --auth='ESP32CAM-RTSP'
|
||||||
|
|
||||||
# Partition scheme for OTA
|
# Partition scheme for OTA
|
||||||
board_build.partitions = min_spiffs.csv
|
#board_build.partitions = max_spiffs.csv
|
||||||
|
|
||||||
monitor_speed = 115200
|
monitor_speed = 115200
|
||||||
monitor_rts = 0
|
monitor_rts = 0
|
||||||
|
|||||||
12
src/main.cpp
12
src/main.cpp
@@ -303,6 +303,8 @@ void update_camera_settings()
|
|||||||
void start_rtsp_server()
|
void start_rtsp_server()
|
||||||
{
|
{
|
||||||
log_v("start_rtsp_server");
|
log_v("start_rtsp_server");
|
||||||
|
|
||||||
|
server.begin(RTSP_PORT);
|
||||||
// Add RTSP service to mDNS
|
// Add RTSP service to mDNS
|
||||||
// HTTP is already set by iotWebConf
|
// HTTP is already set by iotWebConf
|
||||||
MDNS.addService("rtsp", "tcp", RTSP_PORT);
|
MDNS.addService("rtsp", "tcp", RTSP_PORT);
|
||||||
@@ -393,17 +395,17 @@ void setup()
|
|||||||
// Try to initialize 3 times
|
// Try to initialize 3 times
|
||||||
for (auto i = 0; i < 3; i++)
|
for (auto i = 0; i < 3; i++)
|
||||||
{
|
{
|
||||||
|
log_i("Initializing camera...");
|
||||||
camera_init_result = initialize_camera();
|
camera_init_result = initialize_camera();
|
||||||
if (camera_init_result == ESP_OK)
|
if (camera_init_result == ESP_OK)
|
||||||
{
|
|
||||||
update_camera_settings();
|
|
||||||
break;
|
break;
|
||||||
}
|
|
||||||
|
|
||||||
log_e("Failed to initialize camera. Error: 0x%0x. Frame size: %s, frame rate: %d ms, jpeg quality: %d", camera_init_result, param_frame_size.value(), param_frame_duration.value(), param_jpg_quality.value());
|
log_e("Failed to initialize camera. Error: 0x%04x. Frame size: %s, frame rate: %d ms, jpeg quality: %d", camera_init_result, param_frame_size.value(), param_frame_duration.value(), param_jpg_quality.value());
|
||||||
delay(500);
|
delay(500);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
update_camera_settings();
|
||||||
|
|
||||||
// Set up required URL handlers on the web server
|
// Set up required URL handlers on the web server
|
||||||
web_server.on("/", HTTP_GET, handle_root);
|
web_server.on("/", HTTP_GET, handle_root);
|
||||||
web_server.on("/config", []
|
web_server.on("/config", []
|
||||||
@@ -421,7 +423,7 @@ void loop()
|
|||||||
{
|
{
|
||||||
iotWebConf.doLoop();
|
iotWebConf.doLoop();
|
||||||
|
|
||||||
server.loop();
|
server.loop();
|
||||||
|
|
||||||
sleep(0);
|
sleep(0);
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user