feat: add Chromecast playback support

This commit is contained in:
2026-10-13 17:31:37 +02:00
parent 74b4bfe6c1
commit bb777b0ecd
22 changed files with 3299 additions and 115 deletions
+12
View File
@@ -813,6 +813,18 @@ static void reporting(const std::string &base, const std::string &fixtures) {
std::abs([rows[0][@"position_seconds"] doubleValue] - 50) < .03 &&
[rows[0][@"completion_eligible"] boolValue],
"initial report is restored native position, not pre-resume zero");
PlayerState receiver = player_get_state(player.get());
receiver.position = 114;
receiver.status = PLAYER_PAUSED;
require(player_report_remote_state(player.get(), &receiver), "receiver-confirmed progress accepted");
require(player_close(player.get()), "close immediately after receiver progress");
until(player.get(), [&](auto state) {
auto current = progressRecords(path);
return state.status == PLAYER_EMPTY && [current.lastObject[@"event"] isEqualToString:@"closed"] &&
[current.lastObject[@"position_seconds"] doubleValue] == 114;
}, "closing drains final Cast position instead of abandoned decoder position");
require([progressRecords(path).lastObject[@"completion_eligible"] boolValue],
"receiver-confirmed video remains completion eligible");
require(openNetwork(player.get(), base, "/failure/av.mp4", "", 4, false, true, second),
"failed requested identity accepted asynchronously");
until(player.get(), [](auto state) { return state.status == PLAYER_ERROR; }, "failed reported open", true);