MCPcopy Create free account
hub / github.com/OpenHD/OpenHD / main

Function main

OpenHD/ohd_video/test/test_video.cpp:43–79  ·  view source on GitHub ↗

Can be used to test / validate a camera implementation. R.n prints info about the received frame(s) to stdout. (See DummyDebugLink)

Source from the content-addressed store, hash-verified

41// (See DummyDebugLink)
42//
43int main(int argc, char* argv[]) {
44 // We need root to read / write camera settings.
45 OHDUtil::terminate_if_not_root();
46 const auto platform = OHDPlatform::instance();
47
48 auto cameras = OHDVideoAir::discover_cameras();
49 openhd::BitrateDebugger bitrate_debugger{"Bitrate", true};
50
51 auto forwarder = openhd::UDPForwarder("127.0.0.1", 5600);
52 auto cb = [&forwarder, &bitrate_debugger](
53 int stream_index,
54 const openhd::FragmentedVideoFrame& fragmented_video_frame) {
55 int total_size = 0;
56 for (auto& fragemnt : fragmented_video_frame.rtp_fragments) {
57 forwarder.forwardPacketViaUDP(fragemnt->data(), fragemnt->size());
58 total_size += fragemnt->size();
59 }
60 if (fragmented_video_frame.dirty_frame) {
61 auto fragments =
62 make_fragments(fragmented_video_frame.dirty_frame->data(),
63 fragmented_video_frame.dirty_frame->size());
64 for (auto& fragment : fragments) {
65 forwarder.forwardPacketViaUDP(fragment->data(), fragment->size());
66 total_size += fragment->size();
67 }
68 }
69 // openhd::log::get_default()->debug("total size:{}", total_size);
70 bitrate_debugger.on_packet(total_size);
71 };
72 auto debug_link = std::make_shared<DummyDebugLink>();
73 debug_link->m_opt_frame_cb = cb;
74 OHDVideoAir ohdVideo(cameras, debug_link);
75 std::cout << "OHDVideo started\n";
76 OHDUtil::keep_alive_until_sigterm();
77 std::cerr << "OHDVideo stopped\n";
78 return 0;
79}

Callers

nothing calls this directly

Calls 5

UDPForwarderClass · 0.85
make_fragmentsFunction · 0.85
forwardPacketViaUDPMethod · 0.80
sizeMethod · 0.80
on_packetMethod · 0.80

Tested by

no test coverage detected