Case
aiosendspin -> SendspinKit
Start the server first, then the client. The client advertises a listener and PCM as its only supported audio format, the server connects in and streams audio derived from almost_silent.flac, and both adapters record each audio frame as it crossed the transport. The matrix verifies that every frame is message type 4 behind the 13-byte header (type, int64 timestamp, uint32 send_ahead), that the client read the same 13 bytes off each one, and that no chunk lasted longer than 150 ms or, the final chunk aside, less than 15 ms. This test does not compare the audio, and does not judge send_ahead saturation, which no adapter can observe.
Server
aiosendspin
Client
SendspinKit
Status
Failed
Harness gap, not a protocol result: the client adapter does not observe raw audio chunk frames, so the header the client read off each one cannot be judged; the server sent 13 bytes on every chunk
Server activation
Initial server/activate
What the aiosendspin server's own adapter recorded for its first server/activate on this connection, reported as sent. The case fails when none was sent, when its activities are not unique values from playback and pairing, or when it omits active_roles. Nothing else in it is checked against the specification: which activities and roles the matched PSK allows is not judged. A recording that cannot be read as that message is shown whole and not judged either.
Server group state
Every group/update after activation
What the aiosendspin server's own adapter recorded for each group/update it sent after its first server/activate on this connection, in order and reported as sent. The case fails when none followed, or when in any of them playback_state is not playing or stopped, or group_id or group_name is missing or not a string. How soon the first followed is not judged, because the specification says promptly and gives no bound, so one sent at any point in the case counts. Whether a change to a field produced a further message is not judged either. A recording of anything other than that message is shown whole and fails the case as a harness gap.
1 of 3
2 of 3
3 of 3
Inspection
Summaries, logs, and builds
Matrix result
RAW{
"case_dir": "artifacts/results/data/macos__server-initiated-audio-chunk-framing__aiosendspin__to__SendspinKit",
"client_exit_code": 0,
"client_impl": "SendspinKit",
"reason": "Harness gap, not a protocol result: the client adapter does not observe raw audio chunk frames, so the header the client read off each one cannot be judged; the server sent 13 bytes on every chunk",
"scenario_id": "server-initiated-audio-chunk-framing",
"scenario_revision": 4,
"server_exit_code": 0,
"server_impl": "aiosendspin",
"status": "failed",
"unsupported": false
}Server summary (JSON)
RAW{
"activation": {
"payload": {
"active_roles": [
"player@v1"
],
"activities": [
"playback"
]
},
"type": "server/activate"
},
"audio": {
"bit_depth": 16,
"channels": 1,
"chunked_by": "implementation",
"clip_seconds": 5.0,
"duration_seconds": 5.0,
"fixture": "/Users/runner/work/conformance/conformance/repos/sendspin-cli/tests/fixtures/almost_silent.flac",
"frame_alignment_samples": null,
"frame_count": 40000,
"legacy_header_reason": null,
"sample_rate": 8000,
"sent_audio_chunk_count": 200,
"sent_chunk_frames": [
{
"byte_count": 413,
"leading_hex": "0400000000510395440003c731",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "04000000005103f6ec000428a3",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "04000000005104589400048a22",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "04000000005104ba3c0004ebae",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "040000000051051be4000548a8",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "040000000051057d8c0005a99a",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "04000000005105df3400060ac3",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "0400000000510640dc00066c24",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "04000000005106a2840006cb9b",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "04000000005107042c00072d09",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "0400000000510765d400078e95",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "04000000005107c77c0007f023",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "04000000005108292400084fe4",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "040000000051088acc0008b162",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "04000000005108ec74000912f0",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "040000000051094e1c0009747f",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "04000000005109afc40009d3ed",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "0400000000510a116c000a3567",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "0400000000510a7314000a96c8",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "0400000000510ad4bc000af853",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "0400000000510b3664000b56c5",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "0400000000510b980c000bb835",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "0400000000510bf9b4000c19bd",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "0400000000510c5b5c000c7b4c",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "0400000000510cbd04000cdaf3",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "0400000000510d1eac000d3c6a",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "0400000000510d8054000d9dea",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "0400000000510de1fc000dff76",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "0400000000510e43a4000e5f8a",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "0400000000510ea54c000ec10e",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "0400000000510f06f4000f2271",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "0400000000510f689c000f83e8",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "0400000000510fca44000fe2ec",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "040000000051102bec00104462",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "040000000051108d940010a5f4",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "04000000005110ef3c00110789",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "0400000000511150e4001166fd",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "04000000005111b28c0011c864",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "040000000051121434001229eb",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "0400000000511275dc00128b76",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "04000000005112d7840012ea74",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "04000000005113392c00134bf1",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "040000000051139ad40013ad79",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "04000000005113fc7c00140f08",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "040000000051145e2400146eb0",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "04000000005114bfcc0014d032",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "040000000051152174001531b5",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "04000000005115831c00159342",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "04000000005115e4c40015f279",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "04000000005116466c001653d5",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "04000000005116a8140016b55f",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "0400000000511709bc001716e8",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "040000000051176b640017765f",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "04000000005117cd0c0017d7dc",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "040000000051182eb400183968",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "04000000005118905c00189af7",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "04000000005118f2040018fac2",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "0400000000511953ac00195c3e",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "04000000005119b5540019bdc8",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "0400000000511a16fc001a1f58",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "0400000000511a78a4001a7f2d",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "0400000000511ada4c001ae0b7",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "0400000000511b3bf4001b4243",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "0400000000511b9d9c001ba3d3",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "0400000000511bff44001c03d8",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "0400000000511c60ec001c6559",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "0400000000511cc294001cc6e5",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "0400000000511d243c001d2867",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "0400000000511d85e4001d8836",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "0400000000511de78c001de9b5",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "0400000000511e4934001e4b3a",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "0400000000511eaadc001eacc9",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "0400000000511f0c84001f0b0a",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "0400000000511f6e2c001f6c8c",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "0400000000511fcfd4001fce1f",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "04000000005120317c00202fb5",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "04000000005120932400208d9d",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "04000000005120f4cc0020eecd",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "04000000005121567400214fe4",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "04000000005121b81c0021b134",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "0400000000512219c400220e0c",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "040000000051227b6c00226f79",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "04000000005122dd140022d106",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "040000000051233ebc00233292",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "04000000005123a06400239286",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "04000000005124020c0023f3fb",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "0400000000512463b40024558a",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "04000000005124c55c0024b71d",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "04000000005125270400251720",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "0400000000512588ac0025789b",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "04000000005125ea540025da26",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "040000000051264bfc00263bb8",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "04000000005126ada400269b10",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "040000000051270f4c0026fc89",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "0400000000512770f400275e19",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "04000000005127d29c0027bfaf",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "04000000005128344400281e30",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "0400000000512895ec00287f83",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "04000000005128f7940028e112",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "04000000005129593c0029429f",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "04000000005129bae40029a1cb",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "0400000000512a1c8c002a02ea",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "0400000000512a7e34002a643d",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "0400000000512adfdc002ac5a2",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "0400000000512b4184002b247e",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "0400000000512ba32c002b85e0",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "0400000000512c04d4002be756",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "0400000000512c667c002c48e1",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "0400000000512cc824002ca7ce",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "0400000000512d29cc002d08e8",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "0400000000512d8b74002d6a1c",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "0400000000512ded1c002dcb7c",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "0400000000512e4ec4002e2960",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "0400000000512eb06c002e8ad5",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "0400000000512f1214002eec64",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "0400000000512f73bc002f4deb",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "0400000000512fd564002fabb4",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "04000000005130370c00300cf8",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "0400000000513098b400306e7a",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "04000000005130fa5c0030d006",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "040000000051315c0400312f7d",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "04000000005131bdac003190fe",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "040000000051321f540031f285",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "0400000000513280fc0032540f",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "04000000005132e2a40032b403",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "04000000005133444c0033157f",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "04000000005133a5f40033770e",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "04000000005134079c0033d89e",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "0400000000513469440034386e",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "04000000005134caec003499f4",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "040000000051352c940034fb83",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "040000000051358e3c00355d14",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "04000000005135efe40035bd18",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "04000000005136518c00361e9d",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "04000000005136b33400368021",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "0400000000513714dc0036e1b2",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "04000000005137768400373f18",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "04000000005137d82c0037a08a",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "0400000000513839d400380212",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "040000000051389b7c00386399",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "04000000005138fd240038c26b",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "040000000051395ecc003923e3",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "04000000005139c0740039855a",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "0400000000513a221c0039e6dd",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "0400000000513a83c4003a4650",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "0400000000513ae56c003aa7d4",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "0400000000513b4714003b0967",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "0400000000513ba8bc003b6aef",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "0400000000513c0a64003bcae7",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "0400000000513c6c0c003c2c66",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "0400000000513ccdb4003c8de9",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "0400000000513d2f5c003cef7a",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "0400000000513d9104003d4f23",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "0400000000513df2ac003db09c",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "0400000000513e5454003e1229",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "0400000000513eb5fc003e73b8",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "0400000000513f17a4003ed0e6",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "0400000000513f794c003f3208",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "0400000000513fdaf4003f9365",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "040000000051403c9c003ff4c1",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "040000000051409e4400403f22",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "04000000005140ffec0040a066",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "040000000051416194004101f1",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "04000000005141c33c0041636c",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "0400000000514224e40041c241",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "04000000005142868c004223b5",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "04000000005142e83400428537",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "0400000000514349dc0042e6c3",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "04000000005143ab84004345a2",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "040000000051440d2c0043a70d",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "040000000051446ed400440886",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "04000000005144d07c00446a0a",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "0400000000514532240044c987",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "0400000000514593cc00452aeb",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "04000000005145f57400458c71",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "04000000005146571c0045ed35",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "04000000005146b8c400464b34",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "040000000051471a6c0046aca1",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "040000000051477c1400470e25",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "04000000005147ddbc00476fb0",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "040000000051483f640047cff1",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "04000000005148a10c00483171",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "0400000000514902b4004892fa",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "04000000005149645c0048f489",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "04000000005149c604004954aa",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "0400000000514a27ac0049b612",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "0400000000514a8954004a1779",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "0400000000514aeafc004a78fb",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "0400000000514b4ca4004ad93b",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "0400000000514bae4c004b3abc",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "0400000000514c0ff4004b9c48",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "0400000000514c719c004bfdc7",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "0400000000514cd344004c5e1e",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "0400000000514d34ec004cbf6c",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "0400000000514d9694004d20fe",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "0400000000514df83c004d8292",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "0400000000514e59e4004de2dd",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "0400000000514ebb8c004e4463",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "0400000000514f1d34004ea5f8",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "0400000000514f7edc004f0789",
"payload_byte_count": 400
}
],
"sent_codec_header_sha256": null,
"sent_encoded_byte_count": 80000,
"sent_encoded_sha256": "b3481a3f75dea856a961e7842d12f8344c7147b3925f9f0b67c5445700bd4cf2",
"source_flac_sha256": "8fdda8244e318c63cd8b699fe461cd7cdddbb729327a0ba00d1bfdbe2192fe17",
"source_pcm_sha256": "9d447b5b270bc99b45bb9a616937e436c941ca56c477f9cbe16a93275a6b059e",
"trimmed_source_frames": 0
},
"availability_trace": [
{
"available": true,
"type": "client/state"
},
{
"phase": "sending",
"roles": [
"player"
],
"type": "stream/start"
},
{
"phase": "sent",
"roles": [
"player"
],
"type": "stream/start"
},
{
"available": true,
"type": "client/state"
},
{
"available": true,
"type": "client/state"
}
],
"client": {
"active_roles": [],
"client_id": "Oq3PzF_HXZOleXIB06XEOwhzTFsEIIO3Vi-4p35SGxM",
"name": "SendspinKit-client",
"supported_roles": [
"player@v1"
]
},
"discovery_method": "registry_fallback",
"group_updates": [
{
"payload": {
"group_id": "2da9262e-6cea-4c6d-a6c2-8e229114d723",
"group_name": "SendspinKit-client",
"playback_state": "stopped"
},
"type": "group/update"
},
{
"payload": {
"group_id": "2da9262e-6cea-4c6d-a6c2-8e229114d723",
"group_name": "SendspinKit-client",
"playback_state": "playing"
},
"type": "group/update"
},
{
"payload": {
"group_id": "2da9262e-6cea-4c6d-a6c2-8e229114d723",
"group_name": "SendspinKit-client",
"playback_state": "stopped"
},
"type": "group/update"
}
],
"implementation": "aiosendspin",
"initiator_role": "server",
"peer_hello": {
"payload": {
"device_info": {
"manufacturer": "Apple",
"product_name": "Mac",
"software_version": "Version 26.6.2 (Build 25G83)"
},
"name": "SendspinKit-client",
"player@v1_support": {
"buffer_capacity": 960000,
"supported_formats": [
{
"bit_depth": 16,
"channels": 1,
"codec": "pcm",
"sample_rate": 8000
}
]
},
"supported_pair_methods": {
"pairing_psk": {
"locations": [
"operator"
]
}
},
"supported_roles": [
"player@v1"
],
"unpaired_access": {
"enabled": true
}
},
"type": "client/hello"
},
"preferred_codec": "pcm",
"role": "server",
"scenario_id": "server-initiated-audio-chunk-framing",
"server_id": "dsIlKLOY1OqUfE4ig1m3id0r6yr2D5_3R-FJLQZI30I",
"server_name": "aiosendspin server",
"status": "ok",
"stream": {
"bit_depth": 16,
"channels": 1,
"codec": "pcm",
"codec_header": null,
"sample_rate": 8000
},
"time_exchange": [
{
"payload": {
"client_transmitted": 1358767756
},
"type": "client/time"
},
{
"payload": {
"client_transmitted": 1358767756,
"server_received": 1358768208,
"server_transmitted": 1358768599
},
"type": "server/time"
},
{
"payload": {
"client_transmitted": 1358865837
},
"type": "client/time"
},
{
"payload": {
"client_transmitted": 1358865837,
"server_received": 1358866406,
"server_transmitted": 1358866593
},
"type": "server/time"
},
{
"type": "other-sent"
},
{
"payload": {
"client_transmitted": 1359907431
},
"type": "client/time"
},
{
"payload": {
"client_transmitted": 1359907431,
"server_received": 1359908023,
"server_transmitted": 1359908237
},
"type": "server/time"
},
{
"payload": {
"client_transmitted": 1360912234
},
"type": "client/time"
},
{
"payload": {
"client_transmitted": 1360912234,
"server_received": 1360912917,
"server_transmitted": 1360913092
},
"type": "server/time"
},
{
"payload": {
"client_transmitted": 1361959496
},
"type": "client/time"
},
{
"payload": {
"client_transmitted": 1361959496,
"server_received": 1361960252,
"server_transmitted": 1361960689
},
"type": "server/time"
},
{
"payload": {
"client_transmitted": 1363070563
},
"type": "client/time"
},
{
"payload": {
"client_transmitted": 1363070563,
"server_received": 1363071531,
"server_transmitted": 1363071946
},
"type": "server/time"
},
{
"payload": {
"client_transmitted": 1364077509
},
"type": "client/time"
},
{
"payload": {
"client_transmitted": 1364077509,
"server_received": 1364078337,
"server_transmitted": 1364078818
},
"type": "server/time"
},
{
"type": "other-sent"
}
]
}Server log
RAWINFO:aiosendspin.server.server:Starting Sendspin server on port 19106
INFO:aiosendspin.server.server:Sendspin server started successfully on 127.0.0.1:19106
WARNING:aiosendspin.server.server:No IP addresses available for mDNS advertising. Clients may not be able to discover this server. Consider specifying addresses manually via advertise_addresses.
WARNING:aiosendspin.server.connection.Oq3PzF_HXZOleXIB06XEOwhzTFsEIIO3Vi-4p35SGxM:WebSocket closed, close_code=1006
{
"activation": {
"payload": {
"active_roles": [
"player@v1"
],
"activities": [
"playback"
]
},
"type": "server/activate"
},
"audio": {
"bit_depth": 16,
"channels": 1,
"chunked_by": "implementation",
"clip_seconds": 5.0,
"duration_seconds": 5.0,
"fixture": "/Users/runner/work/conformance/conformance/repos/sendspin-cli/tests/fixtures/almost_silent.flac",
"frame_alignment_samples": null,
"frame_count": 40000,
"legacy_header_reason": null,
"sample_rate": 8000,
"sent_audio_chunk_count": 200,
"sent_chunk_frames": [
{
"byte_count": 413,
"leading_hex": "0400000000510395440003c731",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "04000000005103f6ec000428a3",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "04000000005104589400048a22",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "04000000005104ba3c0004ebae",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "040000000051051be4000548a8",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "040000000051057d8c0005a99a",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "04000000005105df3400060ac3",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "0400000000510640dc00066c24",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "04000000005106a2840006cb9b",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "04000000005107042c00072d09",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "0400000000510765d400078e95",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "04000000005107c77c0007f023",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "04000000005108292400084fe4",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "040000000051088acc0008b162",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "04000000005108ec74000912f0",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "040000000051094e1c0009747f",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "04000000005109afc40009d3ed",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "0400000000510a116c000a3567",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "0400000000510a7314000a96c8",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "0400000000510ad4bc000af853",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "0400000000510b3664000b56c5",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "0400000000510b980c000bb835",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "0400000000510bf9b4000c19bd",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "0400000000510c5b5c000c7b4c",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "0400000000510cbd04000cdaf3",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "0400000000510d1eac000d3c6a",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "0400000000510d8054000d9dea",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "0400000000510de1fc000dff76",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "0400000000510e43a4000e5f8a",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "0400000000510ea54c000ec10e",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "0400000000510f06f4000f2271",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "0400000000510f689c000f83e8",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "0400000000510fca44000fe2ec",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "040000000051102bec00104462",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "040000000051108d940010a5f4",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "04000000005110ef3c00110789",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "0400000000511150e4001166fd",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "04000000005111b28c0011c864",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "040000000051121434001229eb",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "0400000000511275dc00128b76",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "04000000005112d7840012ea74",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "04000000005113392c00134bf1",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "040000000051139ad40013ad79",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "04000000005113fc7c00140f08",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "040000000051145e2400146eb0",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "04000000005114bfcc0014d032",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "040000000051152174001531b5",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "04000000005115831c00159342",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "04000000005115e4c40015f279",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "04000000005116466c001653d5",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "04000000005116a8140016b55f",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "0400000000511709bc001716e8",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "040000000051176b640017765f",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "04000000005117cd0c0017d7dc",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "040000000051182eb400183968",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "04000000005118905c00189af7",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "04000000005118f2040018fac2",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "0400000000511953ac00195c3e",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "04000000005119b5540019bdc8",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "0400000000511a16fc001a1f58",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "0400000000511a78a4001a7f2d",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "0400000000511ada4c001ae0b7",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "0400000000511b3bf4001b4243",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "0400000000511b9d9c001ba3d3",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "0400000000511bff44001c03d8",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "0400000000511c60ec001c6559",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "0400000000511cc294001cc6e5",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "0400000000511d243c001d2867",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "0400000000511d85e4001d8836",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "0400000000511de78c001de9b5",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "0400000000511e4934001e4b3a",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "0400000000511eaadc001eacc9",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "0400000000511f0c84001f0b0a",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "0400000000511f6e2c001f6c8c",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "0400000000511fcfd4001fce1f",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "04000000005120317c00202fb5",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "04000000005120932400208d9d",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "04000000005120f4cc0020eecd",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "04000000005121567400214fe4",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "04000000005121b81c0021b134",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "0400000000512219c400220e0c",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "040000000051227b6c00226f79",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "04000000005122dd140022d106",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "040000000051233ebc00233292",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "04000000005123a06400239286",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "04000000005124020c0023f3fb",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "0400000000512463b40024558a",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "04000000005124c55c0024b71d",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "04000000005125270400251720",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "0400000000512588ac0025789b",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "04000000005125ea540025da26",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "040000000051264bfc00263bb8",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "04000000005126ada400269b10",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "040000000051270f4c0026fc89",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "0400000000512770f400275e19",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "04000000005127d29c0027bfaf",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "04000000005128344400281e30",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "0400000000512895ec00287f83",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "04000000005128f7940028e112",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "04000000005129593c0029429f",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "04000000005129bae40029a1cb",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "0400000000512a1c8c002a02ea",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "0400000000512a7e34002a643d",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "0400000000512adfdc002ac5a2",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "0400000000512b4184002b247e",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "0400000000512ba32c002b85e0",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "0400000000512c04d4002be756",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "0400000000512c667c002c48e1",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "0400000000512cc824002ca7ce",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "0400000000512d29cc002d08e8",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "0400000000512d8b74002d6a1c",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "0400000000512ded1c002dcb7c",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "0400000000512e4ec4002e2960",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "0400000000512eb06c002e8ad5",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "0400000000512f1214002eec64",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "0400000000512f73bc002f4deb",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "0400000000512fd564002fabb4",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "04000000005130370c00300cf8",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "0400000000513098b400306e7a",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "04000000005130fa5c0030d006",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "040000000051315c0400312f7d",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "04000000005131bdac003190fe",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "040000000051321f540031f285",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "0400000000513280fc0032540f",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "04000000005132e2a40032b403",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "04000000005133444c0033157f",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "04000000005133a5f40033770e",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "04000000005134079c0033d89e",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "0400000000513469440034386e",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "04000000005134caec003499f4",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "040000000051352c940034fb83",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "040000000051358e3c00355d14",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "04000000005135efe40035bd18",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "04000000005136518c00361e9d",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "04000000005136b33400368021",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "0400000000513714dc0036e1b2",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "04000000005137768400373f18",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "04000000005137d82c0037a08a",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "0400000000513839d400380212",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "040000000051389b7c00386399",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "04000000005138fd240038c26b",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "040000000051395ecc003923e3",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "04000000005139c0740039855a",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "0400000000513a221c0039e6dd",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "0400000000513a83c4003a4650",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "0400000000513ae56c003aa7d4",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "0400000000513b4714003b0967",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "0400000000513ba8bc003b6aef",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "0400000000513c0a64003bcae7",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "0400000000513c6c0c003c2c66",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "0400000000513ccdb4003c8de9",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "0400000000513d2f5c003cef7a",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "0400000000513d9104003d4f23",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "0400000000513df2ac003db09c",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "0400000000513e5454003e1229",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "0400000000513eb5fc003e73b8",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "0400000000513f17a4003ed0e6",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "0400000000513f794c003f3208",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "0400000000513fdaf4003f9365",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "040000000051403c9c003ff4c1",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "040000000051409e4400403f22",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "04000000005140ffec0040a066",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "040000000051416194004101f1",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "04000000005141c33c0041636c",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "0400000000514224e40041c241",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "04000000005142868c004223b5",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "04000000005142e83400428537",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "0400000000514349dc0042e6c3",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "04000000005143ab84004345a2",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "040000000051440d2c0043a70d",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "040000000051446ed400440886",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "04000000005144d07c00446a0a",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "0400000000514532240044c987",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "0400000000514593cc00452aeb",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "04000000005145f57400458c71",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "04000000005146571c0045ed35",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "04000000005146b8c400464b34",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "040000000051471a6c0046aca1",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "040000000051477c1400470e25",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "04000000005147ddbc00476fb0",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "040000000051483f640047cff1",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "04000000005148a10c00483171",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "0400000000514902b4004892fa",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "04000000005149645c0048f489",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "04000000005149c604004954aa",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "0400000000514a27ac0049b612",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "0400000000514a8954004a1779",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "0400000000514aeafc004a78fb",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "0400000000514b4ca4004ad93b",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "0400000000514bae4c004b3abc",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "0400000000514c0ff4004b9c48",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "0400000000514c719c004bfdc7",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "0400000000514cd344004c5e1e",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "0400000000514d34ec004cbf6c",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "0400000000514d9694004d20fe",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "0400000000514df83c004d8292",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "0400000000514e59e4004de2dd",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "0400000000514ebb8c004e4463",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "0400000000514f1d34004ea5f8",
"payload_byte_count": 400
},
{
"byte_count": 413,
"leading_hex": "0400000000514f7edc004f0789",
"payload_byte_count": 400
}
],
"sent_codec_header_sha256": null,
"sent_encoded_byte_count": 80000,
"sent_encoded_sha256": "b3481a3f75dea856a961e7842d12f8344c7147b3925f9f0b67c5445700bd4cf2",
"source_flac_sha256": "8fdda8244e318c63cd8b699fe461cd7cdddbb729327a0ba00d1bfdbe2192fe17",
"source_pcm_sha256": "9d447b5b270bc99b45bb9a616937e436c941ca56c477f9cbe16a93275a6b059e",
"trimmed_source_frames": 0
},
"availability_trace": [
{
"available": true,
"type": "client/state"
},
{
"phase": "sending",
"roles": [
"player"
],
"type": "stream/start"
},
{
"phase": "sent",
"roles": [
"player"
],
"type": "stream/start"
},
{
"available": true,
"type": "client/state"
},
{
"available": true,
"type": "client/state"
}
],
"client": {
"active_roles": [],
"client_id": "Oq3PzF_HXZOleXIB06XEOwhzTFsEIIO3Vi-4p35SGxM",
"name": "SendspinKit-client",
"supported_roles": [
"player@v1"
]
},
"discovery_method": "registry_fallback",
"group_updates": [
{
"payload": {
"group_id": "2da9262e-6cea-4c6d-a6c2-8e229114d723",
"group_name": "SendspinKit-client",
"playback_state": "stopped"
},
"type": "group/update"
},
{
"payload": {
"group_id": "2da9262e-6cea-4c6d-a6c2-8e229114d723",
"group_name": "SendspinKit-client",
"playback_state": "playing"
},
"type": "group/update"
},
{
"payload": {
"group_id": "2da9262e-6cea-4c6d-a6c2-8e229114d723",
"group_name": "SendspinKit-client",
"playback_state": "stopped"
},
"type": "group/update"
}
],
"implementation": "aiosendspin",
"initiator_role": "server",
"peer_hello": {
"payload": {
"device_info": {
"manufacturer": "Apple",
"product_name": "Mac",
"software_version": "Version 26.6.2 (Build 25G83)"
},
"name": "SendspinKit-client",
"player@v1_support": {
"buffer_capacity": 960000,
"supported_formats": [
{
"bit_depth": 16,
"channels": 1,
"codec": "pcm",
"sample_rate": 8000
}
]
},
"supported_pair_methods": {
"pairing_psk": {
"locations": [
"operator"
]
}
},
"supported_roles": [
"player@v1"
],
"unpaired_access": {
"enabled": true
}
},
"type": "client/hello"
},
"preferred_codec": "pcm",
"role": "server",
"scenario_id": "server-initiated-audio-chunk-framing",
"server_id": "dsIlKLOY1OqUfE4ig1m3id0r6yr2D5_3R-FJLQZI30I",
"server_name": "aiosendspin server",
"status": "ok",
"stream": {
"bit_depth": 16,
"channels": 1,
"codec": "pcm",
"codec_header": null,
"sample_rate": 8000
},
"time_exchange": [
{
"payload": {
"client_transmitted": 1358767756
},
"type": "client/time"
},
{
"payload": {
"client_transmitted": 1358767756,
"server_received": 1358768208,
"server_transmitted": 1358768599
},
"type": "server/time"
},
{
"payload": {
"client_transmitted": 1358865837
},
"type": "client/time"
},
{
"payload": {
"client_transmitted": 1358865837,
"server_received": 1358866406,
"server_transmitted": 1358866593
},
"type": "server/time"
},
{
"type": "other-sent"
},
{
"payload": {
"client_transmitted": 1359907431
},
"type": "client/time"
},
{
"payload": {
"client_transmitted": 1359907431,
"server_received": 1359908023,
"server_transmitted": 1359908237
},
"type": "server/time"
},
{
"payload": {
"client_transmitted": 1360912234
},
"type": "client/time"
},
{
"payload": {
"client_transmitted": 1360912234,
"server_received": 1360912917,
"server_transmitted": 1360913092
},
"type": "server/time"
},
{
"payload": {
"client_transmitted": 1361959496
},
"type": "client/time"
},
{
"payload": {
"client_transmitted": 1361959496,
"server_received": 1361960252,
"server_transmitted": 1361960689
},
"type": "server/time"
},
{
"payload": {
"client_transmitted": 1363070563
},
"type": "client/time"
},
{
"payload": {
"client_transmitted": 1363070563,
"server_received": 1363071531,
"server_transmitted": 1363071946
},
"type": "server/time"
},
{
"payload": {
"client_transmitted": 1364077509
},
"type": "client/time"
},
{
"payload": {
"client_transmitted": 1364077509,
"server_received": 1364078337,
"server_transmitted": 1364078818
},
"type": "server/time"
},
{
"type": "other-sent"
}
]
}
Client summary (JSON)
RAW{
"audio": {
"audio_chunk_count": 200,
"received_chunk_frames": null,
"received_encoded_byte_count": 80000,
"received_pcm_sha256": "9d447b5b270bc99b45bb9a616937e436c941ca56c477f9cbe16a93275a6b059e",
"received_sample_count": 40000
},
"client_id": "SendspinKit-client-id",
"client_name": "SendspinKit-client",
"implementation": "SendspinKit",
"initiator_role": "server",
"peer_hello": {
"payload": {
"name": "aiosendspin server",
"server_id": "dsIlKLOY1OqUfE4ig1m3id0r6yr2D5_3R-FJLQZI30I"
},
"type": "server/hello"
},
"preferred_codec": "pcm",
"role": "client",
"scenario_id": "server-initiated-audio-chunk-framing",
"server": {
"name": "aiosendspin server",
"server_id": "dsIlKLOY1OqUfE4ig1m3id0r6yr2D5_3R-FJLQZI30I"
},
"status": "ok",
"stream": {
"bit_depth": 16,
"channels": 1,
"codec": "pcm",
"codec_header": null,
"sample_rate": 8000
}
}Client log
RAW[ADAPTER] Listening for server connection on ws://127.0.0.1:20106/sendspin
[ADAPTER] Connected to server: aiosendspin server
[ADAPTER] Stream started: pcm 8000Hz 1ch 16bit
[ADAPTER] Stream ended
[ADAPTER] Transport receive error: POSIXErrorCode(rawValue: 89): Operation canceled
{
"audio" : {
"audio_chunk_count" : 200,
"received_chunk_frames" : null,
"received_encoded_byte_count" : 80000,
"received_pcm_sha256" : "9d447b5b270bc99b45bb9a616937e436c941ca56c477f9cbe16a93275a6b059e",
"received_sample_count" : 40000
},
"client_id" : "SendspinKit-client-id",
"client_name" : "SendspinKit-client",
"implementation" : "SendspinKit",
"initiator_role" : "server",
"peer_hello" : {
"payload" : {
"name" : "aiosendspin server",
"server_id" : "dsIlKLOY1OqUfE4ig1m3id0r6yr2D5_3R-FJLQZI30I"
},
"type" : "server\/hello"
},
"preferred_codec" : "pcm",
"role" : "client",
"scenario_id" : "server-initiated-audio-chunk-framing",
"server" : {
"name" : "aiosendspin server",
"server_id" : "dsIlKLOY1OqUfE4ig1m3id0r6yr2D5_3R-FJLQZI30I"
},
"status" : "ok",
"stream" : {
"bit_depth" : 16,
"channels" : 1,
"codec" : "pcm",
"codec_header" : null,
"sample_rate" : 8000
}
}
[ADAPTER] Summary written to artifacts/results/data/macos__server-initiated-audio-chunk-framing__aiosendspin__to__SendspinKit/client-summary.json
Server build log · python-adapters · built · 0.24s
RAW.py'... Compiling 'src/conformance/_vendor/aiosendspin/server/roles/player/audio_transformers.py'... Compiling 'src/conformance/_vendor/aiosendspin/server/roles/player/capabilities.py'... Compiling 'src/conformance/_vendor/aiosendspin/server/roles/player/events.py'... Compiling 'src/conformance/_vendor/aiosendspin/server/roles/player/group.py'... Compiling 'src/conformance/_vendor/aiosendspin/server/roles/player/types.py'... Compiling 'src/conformance/_vendor/aiosendspin/server/roles/player/v1.py'... Compiling 'src/conformance/_vendor/aiosendspin/server/roles/registry.py'... Compiling 'src/conformance/_vendor/aiosendspin/server/roles/scheduled_state.py'... Listing 'src/conformance/_vendor/aiosendspin/server/roles/source'... Compiling 'src/conformance/_vendor/aiosendspin/server/roles/source/__init__.py'... Compiling 'src/conformance/_vendor/aiosendspin/server/roles/source/events.py'... Compiling 'src/conformance/_vendor/aiosendspin/server/roles/source/stream.py'... Compiling 'src/conformance/_vendor/aiosendspin/server/roles/source/v1.py'... Listing 'src/conformance/_vendor/aiosendspin/server/roles/visualizer'... Compiling 'src/conformance/_vendor/aiosendspin/server/roles/visualizer/__init__.py'... Compiling 'src/conformance/_vendor/aiosendspin/server/roles/visualizer/features.py'... Compiling 'src/conformance/_vendor/aiosendspin/server/roles/visualizer/group.py'... Compiling 'src/conformance/_vendor/aiosendspin/server/roles/visualizer/packing.py'... Compiling 'src/conformance/_vendor/aiosendspin/server/roles/visualizer/types.py'... Compiling 'src/conformance/_vendor/aiosendspin/server/roles/visualizer/v1.py'... Listing 'src/conformance/_vendor/aiosendspin/server/roles/visualizer_draft_r1'... Compiling 'src/conformance/_vendor/aiosendspin/server/roles/visualizer_draft_r1/__init__.py'... Compiling 'src/conformance/_vendor/aiosendspin/server/roles/visualizer_draft_r1/features.py'... Compiling 'src/conformance/_vendor/aiosendspin/server/roles/visualizer_draft_r1/packing.py'... Compiling 'src/conformance/_vendor/aiosendspin/server/roles/visualizer_draft_r1/role.py'... Compiling 'src/conformance/_vendor/aiosendspin/server/server.py'... Compiling 'src/conformance/_vendor/aiosendspin/util.py'... Listing 'src/conformance/adapters'... Compiling 'src/conformance/adapters/__init__.py'... Compiling 'src/conformance/adapters/_aiosendspin_pairing.py'... Compiling 'src/conformance/adapters/_aiosendspin_protocol_evidence.py'... Compiling 'src/conformance/adapters/aiosendspin_client.py'... Compiling 'src/conformance/adapters/aiosendspin_server.py'... Compiling 'src/conformance/adapters/placeholder.py'... Compiling 'src/conformance/cli.py'... Compiling 'src/conformance/flac.py'... Compiling 'src/conformance/merge.py'... Compiling 'src/conformance/pcm.py'... Compiling 'src/conformance/registry.py'... Listing 'src/conformance/validator'... Compiling 'src/conformance/validator/__init__.py'... Compiling 'src/conformance/validator/checks.py'... Compiling 'src/conformance/validator/cli.py'... Compiling 'src/conformance/validator/code_pairing.py'... Compiling 'src/conformance/validator/code_pairing_checks.py'... Compiling 'src/conformance/validator/discovery.py'... Compiling 'src/conformance/validator/findings.py'... Compiling 'src/conformance/validator/noncompliance_refs.py'... Compiling 'src/conformance/validator/prompter.py'... Compiling 'src/conformance/validator/recorder.py'... Compiling 'src/conformance/validator/report.py'... Compiling 'src/conformance/validator/session.py'... Compiling 'src/conformance/validator/storage.py'... Compiling 'src/conformance/validator/suite_checks.py'... Compiling 'src/conformance/validator/suites.py'... Listing 'src/sendspin_conformance.egg-info'... Listing 'scripts'... Compiling 'scripts/detect_regressions.py'... Compiling 'scripts/merge_results.py'... Compiling 'scripts/run_all.py'... Compiling 'scripts/setup_repositories.py'... Compiling 'scripts/setup_workspace.py'... Compiling 'scripts/vendor_aiosendspin.py'...
Client build log · SendspinKit-client · built · 44.96s
RAWdspinKit DiscoveredServer.swift [73/110] Compiling SendspinKit ServerDiscovery.swift [74/110] Compiling SendspinKit Log.swift [75/110] Compiling SendspinKit ActivateMessages.swift [76/110] Compiling SendspinKit ArtworkModels.swift [77/110] Compiling SendspinKit AudioCodec.swift [78/110] Compiling SendspinKit AudioFormatSpec.swift [79/110] Compiling SendspinKit BinaryMessage.swift [80/110] Compiling SendspinKit ClientRole.swift [81/110] Compiling SendspinKit ClientStateMessages.swift [82/110] Compiling SendspinKit CommandMessages.swift [83/110] Compiling SendspinKit GoodbyeMessage.swift [84/110] Compiling SendspinKit HelloMessages.swift [85/110] Compiling SendspinKit InitMessages.swift [86/110] Compiling SendspinKit LeaveMessage.swift [87/110] Compiling SendspinKit PairingMessages.swift [88/110] Compiling SendspinKit SendspinMessage.swift [89/110] Compiling SendspinKit ServerStateMessages.swift [90/110] Compiling SendspinKit StreamMessages.swift [91/110] Compiling SendspinKit TimeMessages.swift [92/110] Compiling SendspinKit VisualizerBinaryPayload.swift [93/110] Compiling SendspinKit SaturatingArithmetic.swift [94/110] Compiling SendspinKit SendspinKit.swift [95/110] Compiling SendspinKit ClockSyncProtocol.swift [96/110] Compiling SendspinKit ClockSynchronizer.swift [97/110] Compiling SendspinKit MonotonicClock.swift [98/110] Compiling SendspinKit SendspinTimeFilter.swift [99/110] Compiling SendspinKit TimeFilterSnapshot.swift [100/110] Compiling SendspinKit FrameInbox.swift [101/110] Compiling SendspinKit NWWebSocketTransport.swift [102/110] Compiling SendspinKit NoiseChannel.swift [103/110] Compiling SendspinKit NoiseSessionEstablisher.swift [104/110] Compiling SendspinKit SendspinEncoding.swift [105/110] Compiling SendspinKit SendspinTransport.swift [106/110] Compiling SendspinKit TransportError.swift [107/110] Compiling SendspinKit WatermarkedSink.swift [108/112] Compiling ConformanceSendspinKitClient main.swift [109/112] Emitting module ConformanceSendspinKitClient [109/112] Write Objects.LinkFileList [110/112] Linking ConformanceSendspinKitClient [111/112] Applying ConformanceSendspinKitClient Build complete! (32.67s) Fetching https://github.com/sbooth/ogg-binary-xcframework.git Fetching https://github.com/sbooth/flac-binary-xcframework.git [1/23] Fetching ogg-binary-xcframework [24/55] Fetching ogg-binary-xcframework, flac-binary-xcframework Fetched https://github.com/sbooth/flac-binary-xcframework.git from cache (0.68s) Fetched https://github.com/sbooth/ogg-binary-xcframework.git from cache (0.69s) Fetching https://github.com/jedisct1/swift-sodium.git [1/5013] Fetching swift-sodium Fetched https://github.com/jedisct1/swift-sodium.git from cache (4.94s) Creating working copy for https://github.com/sbooth/ogg-binary-xcframework.git Creating working copy for https://github.com/jedisct1/swift-sodium.git Creating working copy for https://github.com/sbooth/flac-binary-xcframework.git Working copy of https://github.com/sbooth/flac-binary-xcframework.git resolved at 0.2.0 Working copy of https://github.com/sbooth/ogg-binary-xcframework.git resolved at 0.1.3 Working copy of https://github.com/jedisct1/swift-sodium.git resolved at 0.9.1 Downloading binary artifact https://github.com/sbooth/flac-binary-xcframework/releases/download/0.2.0/FLAC.xcframework.zip Downloading binary artifact https://github.com/sbooth/ogg-binary-xcframework/releases/download/0.1.3/ogg.xcframework.zip [15516/618747] Downloading https://github.com/sbooth/ogg-binary-xcframework/releases/download/0.1.3/ogg.xcframework.zip [80803/4541165] Downloading https://github.com/sbooth/ogg-binary-xcframework/releases/download/0.1.3/ogg.xcframework.zip, https://github.com/sbooth/flac-binary-xcframework/releases/download/0.2.0/FLAC.xcframework.zip Downloaded https://github.com/sbooth/ogg-binary-xcframework/releases/download/0.1.3/ogg.xcframework.zip (0.52s) Downloaded https://github.com/sbooth/flac-binary-xcframework/releases/download/0.2.0/FLAC.xcframework.zip (0.71s)