From 3b270b5becc29b6679f06cc91d9a7af429222f9f Mon Sep 17 00:00:00 2001 From: John Varghese Date: Mon, 9 Jun 2025 22:19:45 +0530 Subject: [PATCH] Bug fix --- ESP32CAM-ONVIF/onvif_server.cpp | 21 ++++++++++++++++++++- ESP32CAM-ONVIF/onvif_server.h | 5 +++++ ESP32CAM-ONVIF/web_config.cpp | 8 +++++--- 3 files changed, 30 insertions(+), 4 deletions(-) diff --git a/ESP32CAM-ONVIF/onvif_server.cpp b/ESP32CAM-ONVIF/onvif_server.cpp index f8dfc26..6e8d7bc 100644 --- a/ESP32CAM-ONVIF/onvif_server.cpp +++ b/ESP32CAM-ONVIF/onvif_server.cpp @@ -43,6 +43,25 @@ String getDeviceInfoResponse() { ""; } +String getStreamUriResponse() { + String ip = WiFi.localIP().toString(); + return + "" + "" + "" + "" + "" + "rtsp://" + ip + ":554/mjpeg/1" + "false" + "false" + "PT0S" + "" + "" + "" + ""; +} + void handle_onvif_soap() { String req = onvifServer.arg(0); if (req.indexOf("GetCapabilities") > 0) { @@ -93,7 +112,7 @@ void handle_onvif_discovery() { void onvif_server_start() { onvifServer.on("/onvif/device_service", HTTP_POST, handle_onvif_soap); onvifServer.begin(); - onvifUDP.beginMulticast(WiFi.localIP(), IPAddress(239,255,255,250), 3702); + onvifUDP.beginMulticast(IPAddress(239,255,255,250), 3702); // Fixed: use only 2 args Serial.println("[INFO] ONVIF server started."); } diff --git a/ESP32CAM-ONVIF/onvif_server.h b/ESP32CAM-ONVIF/onvif_server.h index 41e1dbe..9936d9b 100644 --- a/ESP32CAM-ONVIF/onvif_server.h +++ b/ESP32CAM-ONVIF/onvif_server.h @@ -1,3 +1,8 @@ #pragma once +#include +#include +#include +#include + void onvif_server_start(); void onvif_server_loop(); diff --git a/ESP32CAM-ONVIF/web_config.cpp b/ESP32CAM-ONVIF/web_config.cpp index acff168..f8aea8e 100644 --- a/ESP32CAM-ONVIF/web_config.cpp +++ b/ESP32CAM-ONVIF/web_config.cpp @@ -31,7 +31,9 @@ void web_config_start() { return; } // Protect static files with authentication - webConfigServer.serveStatic("/", SPIFFS, "/").setDefaultFile("index.html").setAuthentication(WEB_USER, WEB_PASS); + webConfigServer.serveStatic("/", SPIFFS, "/"); + webConfigServer.setDefaultFile("index.html"); + webConfigServer.setAuthentication(WEB_USER, WEB_PASS); // === API ENDPOINTS === webConfigServer.on("/api/status", HTTP_GET, []() { @@ -77,10 +79,10 @@ void web_config_start() { if (doc.containsKey("awb")) s->set_whitebal(s, doc["awb"]); if (doc.containsKey("awb_gain")) s->set_awb_gain(s, doc["awb_gain"]); if (doc.containsKey("wb_mode")) s->set_wb_mode(s, doc["wb_mode"]); - if (doc.containsKey("aec")) s->set_aec(s, doc["aec"]); + if (doc.containsKey("aec")) s->set_aec2(s, doc["aec"]); if (doc.containsKey("aec2")) s->set_aec2(s, doc["aec2"]); if (doc.containsKey("ae_level")) s->set_ae_level(s, doc["ae_level"]); - if (doc.containsKey("agc")) s->set_agc(s, doc["agc"]); + if (doc.containsKey("agc")) s->set_gain_ctrl(s, doc["agc"]); if (doc.containsKey("gainceiling")) s->set_gainceiling(s, doc["gainceiling"]); if (doc.containsKey("bpc")) s->set_bpc(s, doc["bpc"]); if (doc.containsKey("wpc")) s->set_wpc(s, doc["wpc"]);