#include <iostream>
#include <thread>
#include <cvb/device_factory.hpp>
#include <cvb/webstreaming/jpeg_converter.hpp>
#include <cvb/webstreaming/server.hpp>
const int port = 1112;
int main(int , char * []) {
try {
path += CVB_LIT("drivers/CVMock.vin");
auto stream = device->Stream();
jpegConverter->SetQuality(50);
jpegConverter->SetScale(1);
auto server =
bool running = true;
std::thread senderThread([&running, &server, stream] {
try {
stream->Start();
while (running) {
try {
std::chrono::milliseconds(500));
if (waitResult.Status != Cvb::WaitStatus::Ok)
throw std::runtime_error("wait status was not ok");
server->SendAsync(*waitResult.Image);
} catch (const std::runtime_error &error) {
std::cout << "sender loop error:" << std::endl;
std::cout << error.what() << std::endl;
std::cout << "retry after waiting for 500ms" << std::endl;
std::this_thread::sleep_for(std::chrono::milliseconds(500));
}
}
stream->TryAbort();
} catch (const std::runtime_error &error) {
std::cout << "sender thread error:" << std::endl;
std::cout << error.what() << std::endl;
}
});
(void)getchar();
running = false;
if (senderThread.joinable())
senderThread.join();
} catch (const std::runtime_error &error) {
std::cout << "main error:" << std::endl;
std::cout << error.what() << std::endl;
}
}
static std::shared_ptr< T > Open(const String &provider, AcquisitionStack acquisitionStack=AcquisitionStack::PreferVin)
static JPEGConverterPtr Create()
static ServerPtr Create(const String &ipAddress, int port, const ConverterPtr &converter)