add stream discovery and receiving
This commit is contained in:
@@ -1,6 +1,27 @@
|
||||
const std = @import("std");
|
||||
const omt = @cImport(@cInclude("libomt.h"));
|
||||
|
||||
fn discoverStream() ?[*c]u8 {
|
||||
var discovery_count: i32 = 0;
|
||||
|
||||
while (discovery_count == 0) {
|
||||
const discovered = omt.omt_discovery_getaddresses(&discovery_count);
|
||||
std.log.info("Found {} streams:", .{discovery_count});
|
||||
|
||||
const count: usize = @intCast(discovery_count);
|
||||
for (0..count) |i| {
|
||||
const name = discovered[i];
|
||||
std.log.info(" {s}", .{name});
|
||||
}
|
||||
|
||||
if (discovery_count > 0) {
|
||||
return discovered[0];
|
||||
}
|
||||
std.Thread.sleep(1000 * 1000 * 1000);
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
pub fn main() !void {
|
||||
// var gpa = std.heap.GeneralPurposeAllocator(.{}){};
|
||||
// const allocator = gpa.allocator();
|
||||
@@ -8,16 +29,16 @@ pub fn main() !void {
|
||||
std.log.info("Receiving...", .{});
|
||||
omt.omt_setloggingfilename("omtrecvtest.log");
|
||||
|
||||
var found_address_count: i32 = 0;
|
||||
_ = omt.omt_discovery_getaddresses(&found_address_count);
|
||||
const stream = discoverStream() orelse undefined;
|
||||
|
||||
std.log.info("Found {d} omt addresses\n", .{found_address_count});
|
||||
// TODO: How to coerce C string array into something printable again?
|
||||
// std.log.info("Listening to {s}", @as([*:0]u8, stream));
|
||||
|
||||
const receiver_flags = omt.OMTFrameType_Video | omt.OMTFrameType_Audio | omt.OMTFrameType_Metadata;
|
||||
const receiver = omt.omt_receive_create(
|
||||
"pop-os (Omtoy Sender)",
|
||||
stream,
|
||||
receiver_flags,
|
||||
omt.OMTPreferredVideoFormat_UYVYorUYVAorP216orPA16,
|
||||
omt.OMTPreferredVideoFormat_UYVYorBGRA,
|
||||
0,
|
||||
);
|
||||
defer omt.omt_receive_destroy(receiver);
|
||||
|
||||
Reference in New Issue
Block a user