#include <iostream>
#include <thread>
#include <cvb/webstreaming/server.hpp>
#include <cvb/webstreaming/jpeg_converter.hpp>
#include <cvb/device_factory.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);
bool running = true;
std::thread senderThread([&running, &server, stream]
{
try
{
stream->Start();
while (running)
{
try
{
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)