From 54246257c9ca0b7e14ebd1047be897f5f23b07d9 Mon Sep 17 00:00:00 2001 From: Dustin Thomas Date: Tue, 25 Mar 2025 16:26:35 -0500 Subject: [PATCH] setup Meson project, get the server to read a video feed from a local camera --- .gitignore | 3 ++- client.cpp | 8 ++++++++ meson.build | 13 +++++++++++++ server.cpp | 16 ++++++++++++++++ 4 files changed, 39 insertions(+), 1 deletion(-) create mode 100644 client.cpp create mode 100644 meson.build create mode 100644 server.cpp diff --git a/.gitignore b/.gitignore index 1a9aabe..d71f1c0 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,3 @@ .venv -.idea \ No newline at end of file +.idea +build \ No newline at end of file diff --git a/client.cpp b/client.cpp new file mode 100644 index 0000000..5185f23 --- /dev/null +++ b/client.cpp @@ -0,0 +1,8 @@ +#include + +using namespace std; + +int main() { + cout << "Hello World!" << endl; + return 0; +} \ No newline at end of file diff --git a/meson.build b/meson.build new file mode 100644 index 0000000..6d282b8 --- /dev/null +++ b/meson.build @@ -0,0 +1,13 @@ +project('video-streaming-poc', 'cpp') +add_project_arguments('-Wall', '-Wextra', language : 'cpp') + +opencv = dependency('opencv4', version : '>=4.0.0') +opencv_incl_dir = opencv.get_variable(cmake : 'OpenCV_INCLUDE_DIRECTORIES', pkgconfig : 'includedir') +include = include_directories(opencv_incl_dir) + +common = [] +client = common + ['client.cpp'] +server = common + ['server.cpp'] + +client_exe = executable('client', client, dependencies : opencv, include_directories : include) +server_exe = executable('server', server, dependencies : opencv, include_directories : include) \ No newline at end of file diff --git a/server.cpp b/server.cpp new file mode 100644 index 0000000..592c0aa --- /dev/null +++ b/server.cpp @@ -0,0 +1,16 @@ +#include +#include + +using namespace std; + +int main() { + cv::VideoCapture cap = cv::VideoCapture(0); + bool running = true; + cv::Mat image = cv::Mat::zeros(480, 640, CV_8UC3); + while (running) { + cap.read(image); + imshow("image", image); + running = cv::waitKey(30) != 27; + } + return 0; +}