Emit deterministic Muninn feedback fixture

This commit is contained in:
Meta Vens 2026-06-18 21:30:41 +01:00
commit 4be2615cd1
2 changed files with 31 additions and 4 deletions

View file

@ -176,7 +176,8 @@ inline std::vector<uint8_t> encode_receiver_feedback_payload(
const std::string &stream_id,
const std::string &session_id,
uint64_t frame_id,
const std::vector<std::string> &missing_chunk_keys)
const std::vector<std::string> &missing_chunk_keys,
const std::string &observed_at)
{
MsgpackWriter record;
record.write_array_len(11);
@ -193,7 +194,7 @@ inline std::vector<uint8_t> encode_receiver_feedback_payload(
record.write_bool(true);
record.write_i64(0);
record.write_i64(0);
record.write_string(feedback_observed_at());
record.write_string(observed_at);
write_string_array(record, missing_chunk_keys);
const std::string record_key = stream_id + ":" + session_id + ":feedback:starfire.obs";
@ -207,7 +208,7 @@ inline std::vector<uint8_t> encode_receiver_feedback_payload(
document.write_string("recordKey");
document.write_string(record_key);
document.write_string("storedAt");
document.write_string(feedback_observed_at());
document.write_string(observed_at);
document.write_string("payloadEncoding");
document.write_string("messagepack");
document.write_string("payload");
@ -232,4 +233,18 @@ inline std::vector<uint8_t> encode_receiver_feedback_payload(
return wire.bytes();
}
inline std::vector<uint8_t> encode_receiver_feedback_payload(
const std::string &stream_id,
const std::string &session_id,
uint64_t frame_id,
const std::vector<std::string> &missing_chunk_keys)
{
return encode_receiver_feedback_payload(
stream_id,
session_id,
frame_id,
missing_chunk_keys,
feedback_observed_at());
}
} // namespace muninn_media_wire

View file

@ -1,4 +1,5 @@
#include <cstdint>
#include <iomanip>
#include <fstream>
#include <iostream>
#include <map>
@ -368,7 +369,8 @@ int main(int argc, char **argv)
{
if (argc < 2) {
std::cerr << "usage: muninn_media_decoder_probe <wire.bin> [more-wire.bin ...]\n"
<< " muninn_media_decoder_probe --feedback-fixture\n";
<< " muninn_media_decoder_probe --feedback-fixture\n"
<< " muninn_media_decoder_probe --feedback-fixture-hex\n";
return 2;
}
@ -379,6 +381,16 @@ int main(int argc, char **argv)
if (std::string(argv[index]) == "--feedback-fixture") {
bytes = muninn_media_wire::encode_receiver_feedback_payload(
"muninn.raven.av.rudp", "raven:test:video", 42, {"42:1", "42:3"});
} else if (std::string(argv[index]) == "--feedback-fixture-hex") {
bytes = muninn_media_wire::encode_receiver_feedback_payload(
"muninn.raven.av.rudp", "raven:test:video", 42, {"42:1", "42:3"}, "unix-ms:1000");
for (const auto byte : bytes) {
std::cout << std::hex << std::setw(2) << std::setfill('0')
<< static_cast<unsigned>(byte);
}
std::cout << "\n";
decoded_any = true;
continue;
} else {
std::ifstream file(argv[index], std::ios::binary);
bytes.assign(std::istreambuf_iterator<char>(file), std::istreambuf_iterator<char>());