Case
sendspin-server-cpp -> sendspin-dotnet
Start the server first, then the client. The client discovers or looks up the server, initiates the WebSocket connection, advertises PCM as its only supported audio format, streams audio derived from almost_silent.flac, and compares canonical PCM hashes.
Server
sendspin-server-cpp
Client
sendspin-dotnet
Status
Passed
PCM hashes match exactly
Server activation
Initial server/activate
What the sendspin-server-cpp 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 sendspin-server-cpp 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__client-initiated-pcm__sendspin-server-cpp__to__sendspin-dotnet",
"client_exit_code": 0,
"client_impl": "sendspin-dotnet",
"reason": "PCM hashes match exactly",
"scenario_id": "client-initiated-pcm",
"scenario_revision": 6,
"server_exit_code": 0,
"server_impl": "sendspin-server-cpp",
"status": "passed",
"unsupported": false
}Server summary (JSON)
RAW{
"activation": {
"payload": {
"active_roles": [
"player@v1"
],
"activities": []
},
"type": "server/activate"
},
"audio": {
"bit_depth": 16,
"channels": 1,
"clip_seconds": 5,
"duration_seconds": 5,
"fixture": "/Users/runner/work/conformance/conformance/repos/sendspin-cli/tests/fixtures/almost_silent.flac",
"frame_count": 40000,
"sample_rate": 8000,
"source_flac_sha256": "8fdda8244e318c63cd8b699fe461cd7cdddbb729327a0ba00d1bfdbe2192fe17",
"source_pcm_sha256": "9d447b5b270bc99b45bb9a616937e436c941ca56c477f9cbe16a93275a6b059e"
},
"availability_trace": [
{
"available": true,
"type": "client/state"
},
{
"phase": "sending",
"roles": [
"player"
],
"type": "stream/start"
},
{
"phase": "sent",
"roles": [
"player"
],
"type": "stream/start"
}
],
"client": {
"active_roles": [
"player@v1"
],
"client_id": "ycwxNh8HdagiWMbnBdw2u2Xj5e0hcMFkRBrlgH_VyAI",
"name": "sendspin-dotnet-client",
"supported_roles": [
"player@v1"
]
},
"discovery_method": "registry",
"group_updates": [
{
"payload": {
"group_id": "1",
"group_name": "sendspin-server-cpp server",
"playback_state": "stopped"
},
"type": "group/update"
},
{
"payload": {
"group_id": "1",
"group_name": "sendspin-server-cpp server",
"playback_state": "playing"
},
"type": "group/update"
},
{
"payload": {
"group_id": "1",
"group_name": "sendspin-server-cpp server",
"playback_state": "stopped"
},
"type": "group/update"
}
],
"implementation": "sendspin-server-cpp",
"initiator_role": "client",
"peer_hello": {
"payload": {
"device_info": {
"manufacturer": "Sendspin Conformance",
"product_name": "Conformance Dotnet Client",
"software_version": "0.1.0"
},
"name": "sendspin-dotnet-client",
"player@v1_support": {
"buffer_capacity": 2000000,
"supported_formats": [
{
"bit_depth": 16,
"channels": 1,
"codec": "pcm",
"sample_rate": 8000
}
]
},
"supported_pair_methods": {
"pairing_psk": {}
},
"supported_roles": [
"player@v1"
],
"unpaired_access": {
"enabled": true
}
},
"type": "client/hello"
},
"preferred_codec": "pcm",
"role": "server",
"scenario_id": "client-initiated-pcm",
"server_id": "uladRUBpmql8YYoswETRnfSDsfHkAiz5ZEKiD-Vv7m4",
"server_name": "sendspin-server-cpp server",
"status": "ok",
"stream": {
"bit_depth": 16,
"channels": 1,
"codec": "pcm",
"sample_rate": 8000
},
"time_exchange": [
{
"payload": {
"client_transmitted": 1792567113881772
},
"type": "client/time"
},
{
"payload": {
"client_transmitted": 1792567113881772,
"server_received": 597218048,
"server_transmitted": 597218711
},
"type": "server/time"
},
{
"payload": {
"client_transmitted": 1792567113952524
},
"type": "client/time"
},
{
"payload": {
"client_transmitted": 1792567113952524,
"server_received": 597285792,
"server_transmitted": 597285917
},
"type": "server/time"
},
{
"payload": {
"client_transmitted": 1792567113953088
},
"type": "client/time"
},
{
"payload": {
"client_transmitted": 1792567113953088,
"server_received": 597286253,
"server_transmitted": 597286296
},
"type": "server/time"
},
{
"payload": {
"client_transmitted": 1792567113953628
},
"type": "client/time"
},
{
"payload": {
"client_transmitted": 1792567113953628,
"server_received": 597286776,
"server_transmitted": 597286925
},
"type": "server/time"
},
{
"payload": {
"client_transmitted": 1792567113953970
},
"type": "client/time"
},
{
"payload": {
"client_transmitted": 1792567113953970,
"server_received": 597287125,
"server_transmitted": 597287181
},
"type": "server/time"
},
{
"payload": {
"client_transmitted": 1792567113954232
},
"type": "client/time"
},
{
"payload": {
"client_transmitted": 1792567113954232,
"server_received": 597287406,
"server_transmitted": 597287460
},
"type": "server/time"
},
{
"payload": {
"client_transmitted": 1792567113954440
},
"type": "client/time"
},
{
"payload": {
"client_transmitted": 1792567113954440,
"server_received": 597287595,
"server_transmitted": 597287634
},
"type": "server/time"
},
{
"payload": {
"client_transmitted": 1792567113954608
},
"type": "client/time"
},
{
"payload": {
"client_transmitted": 1792567113954608,
"server_received": 597287743,
"server_transmitted": 597287788
},
"type": "server/time"
},
{
"payload": {
"client_transmitted": 1792567114557989
},
"type": "client/time"
},
{
"payload": {
"client_transmitted": 1792567114557989,
"server_received": 597891358,
"server_transmitted": 597891493
},
"type": "server/time"
},
{
"payload": {
"client_transmitted": 1792567114558667
},
"type": "client/time"
},
{
"payload": {
"client_transmitted": 1792567114558667,
"server_received": 597891832,
"server_transmitted": 597891891
},
"type": "server/time"
},
{
"payload": {
"client_transmitted": 1792567114558980
},
"type": "client/time"
},
{
"payload": {
"client_transmitted": 1792567114558980,
"server_received": 597892257,
"server_transmitted": 597892300
},
"type": "server/time"
},
{
"payload": {
"client_transmitted": 1792567114559456
},
"type": "client/time"
},
{
"payload": {
"client_transmitted": 1792567114559456,
"server_received": 597892677,
"server_transmitted": 597892718
},
"type": "server/time"
},
{
"payload": {
"client_transmitted": 1792567114559745
},
"type": "client/time"
},
{
"payload": {
"client_transmitted": 1792567114559745,
"server_received": 597892941,
"server_transmitted": 597893011
},
"type": "server/time"
},
{
"payload": {
"client_transmitted": 1792567114560131
},
"type": "client/time"
},
{
"payload": {
"client_transmitted": 1792567114560131,
"server_received": 597893318,
"server_transmitted": 597893391
},
"type": "server/time"
},
{
"payload": {
"client_transmitted": 1792567114560410
},
"type": "client/time"
},
{
"payload": {
"client_transmitted": 1792567114560410,
"server_received": 597893643,
"server_transmitted": 597893743
},
"type": "server/time"
},
{
"payload": {
"client_transmitted": 1792567114560792
},
"type": "client/time"
},
{
"payload": {
"client_transmitted": 1792567114560792,
"server_received": 597893995,
"server_transmitted": 597894062
},
"type": "server/time"
},
{
"payload": {
"client_transmitted": 1792567115111424
},
"type": "client/time"
},
{
"payload": {
"client_transmitted": 1792567115111424,
"server_received": 598444826,
"server_transmitted": 598444926
},
"type": "server/time"
},
{
"payload": {
"client_transmitted": 1792567115112089
},
"type": "client/time"
},
{
"payload": {
"client_transmitted": 1792567115112089,
"server_received": 598445269,
"server_transmitted": 598445311
},
"type": "server/time"
},
{
"payload": {
"client_transmitted": 1792567115112378
},
"type": "client/time"
},
{
"payload": {
"client_transmitted": 1792567115112378,
"server_received": 598445544,
"server_transmitted": 598445608
},
"type": "server/time"
},
{
"payload": {
"client_transmitted": 1792567115112617
},
"type": "client/time"
},
{
"payload": {
"client_transmitted": 1792567115112617,
"server_received": 598445774,
"server_transmitted": 598445815
},
"type": "server/time"
},
{
"payload": {
"client_transmitted": 1792567115112826
},
"type": "client/time"
},
{
"payload": {
"client_transmitted": 1792567115112826,
"server_received": 598445967,
"server_transmitted": 598446003
},
"type": "server/time"
},
{
"payload": {
"client_transmitted": 1792567115113005
},
"type": "client/time"
},
{
"payload": {
"client_transmitted": 1792567115113005,
"server_received": 598446146,
"server_transmitted": 598446190
},
"type": "server/time"
},
{
"payload": {
"client_transmitted": 1792567115113173
},
"type": "client/time"
},
{
"payload": {
"client_transmitted": 1792567115113173,
"server_received": 598446312,
"server_transmitted": 598446359
},
"type": "server/time"
},
{
"payload": {
"client_transmitted": 1792567115113414
},
"type": "client/time"
},
{
"payload": {
"client_transmitted": 1792567115113414,
"server_received": 598446564,
"server_transmitted": 598446607
},
"type": "server/time"
},
{
"payload": {
"client_transmitted": 1792567115721599
},
"type": "client/time"
},
{
"payload": {
"client_transmitted": 1792567115721599,
"server_received": 599054909,
"server_transmitted": 599055021
},
"type": "server/time"
},
{
"payload": {
"client_transmitted": 1792567115722461
},
"type": "client/time"
},
{
"payload": {
"client_transmitted": 1792567115722461,
"server_received": 599055659,
"server_transmitted": 599055723
},
"type": "server/time"
},
{
"payload": {
"client_transmitted": 1792567115722897
},
"type": "client/time"
},
{
"payload": {
"client_transmitted": 1792567115722897,
"server_received": 599056110,
"server_transmitted": 599056183
},
"type": "server/time"
},
{
"payload": {
"client_transmitted": 1792567115723312
},
"type": "client/time"
},
{
"payload": {
"client_transmitted": 1792567115723312,
"server_received": 599056483,
"server_transmitted": 599056559
},
"type": "server/time"
},
{
"payload": {
"client_transmitted": 1792567115723762
},
"type": "client/time"
},
{
"payload": {
"client_transmitted": 1792567115723762,
"server_received": 599056948,
"server_transmitted": 599057025
},
"type": "server/time"
},
{
"payload": {
"client_transmitted": 1792567115724077
},
"type": "client/time"
},
{
"payload": {
"client_transmitted": 1792567115724077,
"server_received": 599057243,
"server_transmitted": 599057283
},
"type": "server/time"
},
{
"payload": {
"client_transmitted": 1792567115724465
},
"type": "client/time"
},
{
"payload": {
"client_transmitted": 1792567115724465,
"server_received": 599057665,
"server_transmitted": 599057746
},
"type": "server/time"
},
{
"payload": {
"client_transmitted": 1792567115724854
},
"type": "client/time"
},
{
"payload": {
"client_transmitted": 1792567115724854,
"server_received": 599058059,
"server_transmitted": 599058132
},
"type": "server/time"
},
{
"payload": {
"client_transmitted": 1792567116305521
},
"type": "client/time"
},
{
"payload": {
"client_transmitted": 1792567116305521,
"server_received": 599638979,
"server_transmitted": 599639153
},
"type": "server/time"
},
{
"payload": {
"client_transmitted": 1792567116316293
},
"type": "client/time"
},
{
"payload": {
"client_transmitted": 1792567116316293,
"server_received": 599649620,
"server_transmitted": 599649727
},
"type": "server/time"
},
{
"payload": {
"client_transmitted": 1792567116326301
},
"type": "client/time"
},
{
"payload": {
"client_transmitted": 1792567116326301,
"server_received": 599659860,
"server_transmitted": 599660009
},
"type": "server/time"
},
{
"payload": {
"client_transmitted": 1792567116336623
},
"type": "client/time"
},
{
"payload": {
"client_transmitted": 1792567116336623,
"server_received": 599669927,
"server_transmitted": 599670075
},
"type": "server/time"
},
{
"payload": {
"client_transmitted": 1792567116347107
},
"type": "client/time"
},
{
"payload": {
"client_transmitted": 1792567116347107,
"server_received": 599680404,
"server_transmitted": 599680585
},
"type": "server/time"
},
{
"payload": {
"client_transmitted": 1792567116357092
},
"type": "client/time"
},
{
"payload": {
"client_transmitted": 1792567116357092,
"server_received": 599690445,
"server_transmitted": 599690525
},
"type": "server/time"
},
{
"payload": {
"client_transmitted": 1792567116357581
},
"type": "client/time"
},
{
"payload": {
"client_transmitted": 1792567116357581,
"server_received": 599690828,
"server_transmitted": 599690972
},
"type": "server/time"
},
{
"payload": {
"client_transmitted": 1792567116368016
},
"type": "client/time"
},
{
"payload": {
"client_transmitted": 1792567116368016,
"server_received": 599701309,
"server_transmitted": 599701410
},
"type": "server/time"
},
{
"type": "other-sent"
},
{
"payload": {
"client_transmitted": 1792567116500848
},
"type": "client/time"
},
{
"payload": {
"client_transmitted": 1792567116500848,
"server_received": 599834169,
"server_transmitted": 599834273
},
"type": "server/time"
},
{
"payload": {
"client_transmitted": 1792567116505710
},
"type": "client/time"
},
{
"payload": {
"client_transmitted": 1792567116505710,
"server_received": 599838910,
"server_transmitted": 599838999
},
"type": "server/time"
},
{
"payload": {
"client_transmitted": 1792567116506824
},
"type": "client/time"
},
{
"payload": {
"client_transmitted": 1792567116506824,
"server_received": 599840125,
"server_transmitted": 599840241
},
"type": "server/time"
},
{
"payload": {
"client_transmitted": 1792567116507312
},
"type": "client/time"
},
{
"payload": {
"client_transmitted": 1792567116507312,
"server_received": 599840519,
"server_transmitted": 599840598
},
"type": "server/time"
},
{
"payload": {
"client_transmitted": 1792567116516663
},
"type": "client/time"
},
{
"payload": {
"client_transmitted": 1792567116516663,
"server_received": 599849917,
"server_transmitted": 599850098
},
"type": "server/time"
},
{
"payload": {
"client_transmitted": 1792567116517446
},
"type": "client/time"
},
{
"payload": {
"client_transmitted": 1792567116517446,
"server_received": 599850594,
"server_transmitted": 599850785
},
"type": "server/time"
},
{
"payload": {
"client_transmitted": 1792567116517963
},
"type": "client/time"
},
{
"payload": {
"client_transmitted": 1792567116517963,
"server_received": 599851124,
"server_transmitted": 599851174
},
"type": "server/time"
},
{
"payload": {
"client_transmitted": 1792567116528241
},
"type": "client/time"
},
{
"payload": {
"client_transmitted": 1792567116528241,
"server_received": 599861701,
"server_transmitted": 599861798
},
"type": "server/time"
},
{
"type": "other-sent"
}
]
}Server log
RAWsendspin-server-cpp: "sendspin-dotnet-client" at 127.0.0.1:49325 connected
listener: client sendspin-dotnet-client disconnected: server stopped
{
"status": "ok",
"implementation": "sendspin-server-cpp",
"role": "server",
"server_name": "sendspin-server-cpp server",
"scenario_id": "client-initiated-pcm",
"initiator_role": "client",
"preferred_codec": "pcm",
"server_id": "uladRUBpmql8YYoswETRnfSDsfHkAiz5ZEKiD-Vv7m4",
"discovery_method": "registry",
"peer_hello": {
"type": "client/hello",
"payload": {
"name": "sendspin-dotnet-client",
"supported_pair_methods": {
"pairing_psk": {}
},
"unpaired_access": {
"enabled": true
},
"supported_roles": [
"player@v1"
],
"player@v1_support": {
"supported_formats": [
{
"codec": "pcm",
"channels": 1,
"sample_rate": 8000,
"bit_depth": 16
}
],
"buffer_capacity": 2000000
},
"device_info": {
"product_name": "Conformance Dotnet Client",
"manufacturer": "Sendspin Conformance",
"software_version": "0.1.0"
}
}
},
"activation": {
"type": "server/activate",
"payload": {
"activities": [],
"active_roles": [
"player@v1"
]
}
},
"group_updates": [
{
"type": "group/update",
"payload": {
"playback_state": "stopped",
"group_id": "1",
"group_name": "sendspin-server-cpp server"
}
},
{
"type": "group/update",
"payload": {
"playback_state": "playing",
"group_id": "1",
"group_name": "sendspin-server-cpp server"
}
},
{
"type": "group/update",
"payload": {
"playback_state": "stopped",
"group_id": "1",
"group_name": "sendspin-server-cpp server"
}
}
],
"availability_trace": [
{
"type": "client/state",
"available": true
},
{
"type": "stream/start",
"phase": "sending",
"roles": [
"player"
]
},
{
"type": "stream/start",
"phase": "sent",
"roles": [
"player"
]
}
],
"time_exchange": [
{
"type": "client/time",
"payload": {
"client_transmitted": 1792567113881772
}
},
{
"type": "server/time",
"payload": {
"client_transmitted": 1792567113881772,
"server_received": 597218048,
"server_transmitted": 597218711
}
},
{
"type": "client/time",
"payload": {
"client_transmitted": 1792567113952524
}
},
{
"type": "server/time",
"payload": {
"client_transmitted": 1792567113952524,
"server_received": 597285792,
"server_transmitted": 597285917
}
},
{
"type": "client/time",
"payload": {
"client_transmitted": 1792567113953088
}
},
{
"type": "server/time",
"payload": {
"client_transmitted": 1792567113953088,
"server_received": 597286253,
"server_transmitted": 597286296
}
},
{
"type": "client/time",
"payload": {
"client_transmitted": 1792567113953628
}
},
{
"type": "server/time",
"payload": {
"client_transmitted": 1792567113953628,
"server_received": 597286776,
"server_transmitted": 597286925
}
},
{
"type": "client/time",
"payload": {
"client_transmitted": 1792567113953970
}
},
{
"type": "server/time",
"payload": {
"client_transmitted": 1792567113953970,
"server_received": 597287125,
"server_transmitted": 597287181
}
},
{
"type": "client/time",
"payload": {
"client_transmitted": 1792567113954232
}
},
{
"type": "server/time",
"payload": {
"client_transmitted": 1792567113954232,
"server_received": 597287406,
"server_transmitted": 597287460
}
},
{
"type": "client/time",
"payload": {
"client_transmitted": 1792567113954440
}
},
{
"type": "server/time",
"payload": {
"client_transmitted": 1792567113954440,
"server_received": 597287595,
"server_transmitted": 597287634
}
},
{
"type": "client/time",
"payload": {
"client_transmitted": 1792567113954608
}
},
{
"type": "server/time",
"payload": {
"client_transmitted": 1792567113954608,
"server_received": 597287743,
"server_transmitted": 597287788
}
},
{
"type": "client/time",
"payload": {
"client_transmitted": 1792567114557989
}
},
{
"type": "server/time",
"payload": {
"client_transmitted": 1792567114557989,
"server_received": 597891358,
"server_transmitted": 597891493
}
},
{
"type": "client/time",
"payload": {
"client_transmitted": 1792567114558667
}
},
{
"type": "server/time",
"payload": {
"client_transmitted": 1792567114558667,
"server_received": 597891832,
"server_transmitted": 597891891
}
},
{
"type": "client/time",
"payload": {
"client_transmitted": 1792567114558980
}
},
{
"type": "server/time",
"payload": {
"client_transmitted": 1792567114558980,
"server_received": 597892257,
"server_transmitted": 597892300
}
},
{
"type": "client/time",
"payload": {
"client_transmitted": 1792567114559456
}
},
{
"type": "server/time",
"payload": {
"client_transmitted": 1792567114559456,
"server_received": 597892677,
"server_transmitted": 597892718
}
},
{
"type": "client/time",
"payload": {
"client_transmitted": 1792567114559745
}
},
{
"type": "server/time",
"payload": {
"client_transmitted": 1792567114559745,
"server_received": 597892941,
"server_transmitted": 597893011
}
},
{
"type": "client/time",
"payload": {
"client_transmitted": 1792567114560131
}
},
{
"type": "server/time",
"payload": {
"client_transmitted": 1792567114560131,
"server_received": 597893318,
"server_transmitted": 597893391
}
},
{
"type": "client/time",
"payload": {
"client_transmitted": 1792567114560410
}
},
{
"type": "server/time",
"payload": {
"client_transmitted": 1792567114560410,
"server_received": 597893643,
"server_transmitted": 597893743
}
},
{
"type": "client/time",
"payload": {
"client_transmitted": 1792567114560792
}
},
{
"type": "server/time",
"payload": {
"client_transmitted": 1792567114560792,
"server_received": 597893995,
"server_transmitted": 597894062
}
},
{
"type": "client/time",
"payload": {
"client_transmitted": 1792567115111424
}
},
{
"type": "server/time",
"payload": {
"client_transmitted": 1792567115111424,
"server_received": 598444826,
"server_transmitted": 598444926
}
},
{
"type": "client/time",
"payload": {
"client_transmitted": 1792567115112089
}
},
{
"type": "server/time",
"payload": {
"client_transmitted": 1792567115112089,
"server_received": 598445269,
"server_transmitted": 598445311
}
},
{
"type": "client/time",
"payload": {
"client_transmitted": 1792567115112378
}
},
{
"type": "server/time",
"payload": {
"client_transmitted": 1792567115112378,
"server_received": 598445544,
"server_transmitted": 598445608
}
},
{
"type": "client/time",
"payload": {
"client_transmitted": 1792567115112617
}
},
{
"type": "server/time",
"payload": {
"client_transmitted": 1792567115112617,
"server_received": 598445774,
"server_transmitted": 598445815
}
},
{
"type": "client/time",
"payload": {
"client_transmitted": 1792567115112826
}
},
{
"type": "server/time",
"payload": {
"client_transmitted": 1792567115112826,
"server_received": 598445967,
"server_transmitted": 598446003
}
},
{
"type": "client/time",
"payload": {
"client_transmitted": 1792567115113005
}
},
{
"type": "server/time",
"payload": {
"client_transmitted": 1792567115113005,
"server_received": 598446146,
"server_transmitted": 598446190
}
},
{
"type": "client/time",
"payload": {
"client_transmitted": 1792567115113173
}
},
{
"type": "server/time",
"payload": {
"client_transmitted": 1792567115113173,
"server_received": 598446312,
"server_transmitted": 598446359
}
},
{
"type": "client/time",
"payload": {
"client_transmitted": 1792567115113414
}
},
{
"type": "server/time",
"payload": {
"client_transmitted": 1792567115113414,
"server_received": 598446564,
"server_transmitted": 598446607
}
},
{
"type": "client/time",
"payload": {
"client_transmitted": 1792567115721599
}
},
{
"type": "server/time",
"payload": {
"client_transmitted": 1792567115721599,
"server_received": 599054909,
"server_transmitted": 599055021
}
},
{
"type": "client/time",
"payload": {
"client_transmitted": 1792567115722461
}
},
{
"type": "server/time",
"payload": {
"client_transmitted": 1792567115722461,
"server_received": 599055659,
"server_transmitted": 599055723
}
},
{
"type": "client/time",
"payload": {
"client_transmitted": 1792567115722897
}
},
{
"type": "server/time",
"payload": {
"client_transmitted": 1792567115722897,
"server_received": 599056110,
"server_transmitted": 599056183
}
},
{
"type": "client/time",
"payload": {
"client_transmitted": 1792567115723312
}
},
{
"type": "server/time",
"payload": {
"client_transmitted": 1792567115723312,
"server_received": 599056483,
"server_transmitted": 599056559
}
},
{
"type": "client/time",
"payload": {
"client_transmitted": 1792567115723762
}
},
{
"type": "server/time",
"payload": {
"client_transmitted": 1792567115723762,
"server_received": 599056948,
"server_transmitted": 599057025
}
},
{
"type": "client/time",
"payload": {
"client_transmitted": 1792567115724077
}
},
{
"type": "server/time",
"payload": {
"client_transmitted": 1792567115724077,
"server_received": 599057243,
"server_transmitted": 599057283
}
},
{
"type": "client/time",
"payload": {
"client_transmitted": 1792567115724465
}
},
{
"type": "server/time",
"payload": {
"client_transmitted": 1792567115724465,
"server_received": 599057665,
"server_transmitted": 599057746
}
},
{
"type": "client/time",
"payload": {
"client_transmitted": 1792567115724854
}
},
{
"type": "server/time",
"payload": {
"client_transmitted": 1792567115724854,
"server_received": 599058059,
"server_transmitted": 599058132
}
},
{
"type": "client/time",
"payload": {
"client_transmitted": 1792567116305521
}
},
{
"type": "server/time",
"payload": {
"client_transmitted": 1792567116305521,
"server_received": 599638979,
"server_transmitted": 599639153
}
},
{
"type": "client/time",
"payload": {
"client_transmitted": 1792567116316293
}
},
{
"type": "server/time",
"payload": {
"client_transmitted": 1792567116316293,
"server_received": 599649620,
"server_transmitted": 599649727
}
},
{
"type": "client/time",
"payload": {
"client_transmitted": 1792567116326301
}
},
{
"type": "server/time",
"payload": {
"client_transmitted": 1792567116326301,
"server_received": 599659860,
"server_transmitted": 599660009
}
},
{
"type": "client/time",
"payload": {
"client_transmitted": 1792567116336623
}
},
{
"type": "server/time",
"payload": {
"client_transmitted": 1792567116336623,
"server_received": 599669927,
"server_transmitted": 599670075
}
},
{
"type": "client/time",
"payload": {
"client_transmitted": 1792567116347107
}
},
{
"type": "server/time",
"payload": {
"client_transmitted": 1792567116347107,
"server_received": 599680404,
"server_transmitted": 599680585
}
},
{
"type": "client/time",
"payload": {
"client_transmitted": 1792567116357092
}
},
{
"type": "server/time",
"payload": {
"client_transmitted": 1792567116357092,
"server_received": 599690445,
"server_transmitted": 599690525
}
},
{
"type": "client/time",
"payload": {
"client_transmitted": 1792567116357581
}
},
{
"type": "server/time",
"payload": {
"client_transmitted": 1792567116357581,
"server_received": 599690828,
"server_transmitted": 599690972
}
},
{
"type": "client/time",
"payload": {
"client_transmitted": 1792567116368016
}
},
{
"type": "server/time",
"payload": {
"client_transmitted": 1792567116368016,
"server_received": 599701309,
"server_transmitted": 599701410
}
},
{
"type": "other-sent"
},
{
"type": "client/time",
"payload": {
"client_transmitted": 1792567116500848
}
},
{
"type": "server/time",
"payload": {
"client_transmitted": 1792567116500848,
"server_received": 599834169,
"server_transmitted": 599834273
}
},
{
"type": "client/time",
"payload": {
"client_transmitted": 1792567116505710
}
},
{
"type": "server/time",
"payload": {
"client_transmitted": 1792567116505710,
"server_received": 599838910,
"server_transmitted": 599838999
}
},
{
"type": "client/time",
"payload": {
"client_transmitted": 1792567116506824
}
},
{
"type": "server/time",
"payload": {
"client_transmitted": 1792567116506824,
"server_received": 599840125,
"server_transmitted": 599840241
}
},
{
"type": "client/time",
"payload": {
"client_transmitted": 1792567116507312
}
},
{
"type": "server/time",
"payload": {
"client_transmitted": 1792567116507312,
"server_received": 599840519,
"server_transmitted": 599840598
}
},
{
"type": "client/time",
"payload": {
"client_transmitted": 1792567116516663
}
},
{
"type": "server/time",
"payload": {
"client_transmitted": 1792567116516663,
"server_received": 599849917,
"server_transmitted": 599850098
}
},
{
"type": "client/time",
"payload": {
"client_transmitted": 1792567116517446
}
},
{
"type": "server/time",
"payload": {
"client_transmitted": 1792567116517446,
"server_received": 599850594,
"server_transmitted": 599850785
}
},
{
"type": "client/time",
"payload": {
"client_transmitted": 1792567116517963
}
},
{
"type": "server/time",
"payload": {
"client_transmitted": 1792567116517963,
"server_received": 599851124,
"server_transmitted": 599851174
}
},
{
"type": "client/time",
"payload": {
"client_transmitted": 1792567116528241
}
},
{
"type": "server/time",
"payload": {
"client_transmitted": 1792567116528241,
"server_received": 599861701,
"server_transmitted": 599861798
}
},
{
"type": "other-sent"
}
],
"client": {
"client_id": "ycwxNh8HdagiWMbnBdw2u2Xj5e0hcMFkRBrlgH_VyAI",
"name": "sendspin-dotnet-client",
"supported_roles": [
"player@v1"
],
"active_roles": [
"player@v1"
]
},
"stream": {
"codec": "pcm",
"sample_rate": 8000,
"channels": 1,
"bit_depth": 16
},
"audio": {
"fixture": "/Users/runner/work/conformance/conformance/repos/sendspin-cli/tests/fixtures/almost_silent.flac",
"source_flac_sha256": "8fdda8244e318c63cd8b699fe461cd7cdddbb729327a0ba00d1bfdbe2192fe17",
"source_pcm_sha256": "9d447b5b270bc99b45bb9a616937e436c941ca56c477f9cbe16a93275a6b059e",
"clip_seconds": 5,
"sample_rate": 8000,
"channels": 1,
"bit_depth": 16,
"frame_count": 40000,
"duration_seconds": 5
}
}
Client summary (JSON)
RAW{
"audio": {
"audio_chunk_count": 50,
"received_encoded_sha256": "b3481a3f75dea856a961e7842d12f8344c7147b3925f9f0b67c5445700bd4cf2",
"received_pcm_sha256": "9d447b5b270bc99b45bb9a616937e436c941ca56c477f9cbe16a93275a6b059e",
"received_sample_count": 40000
},
"client_id": "ycwxNh8HdagiWMbnBdw2u2Xj5e0hcMFkRBrlgH_VyAI",
"client_name": "sendspin-dotnet-client",
"implementation": "sendspin-dotnet",
"initiator_role": "client",
"peer_hello": {
"active_roles": [
"player@v1"
],
"name": "sendspin-server-cpp server",
"server_id": "",
"source@v1_support": {
"supported_codecs": [
"pcm",
"flac",
"opus"
]
},
"version": 1
},
"preferred_codec": "pcm",
"reason": null,
"role": "client",
"scenario_id": "client-initiated-pcm",
"server": {
"connection_reason": null,
"server_id": "uladRUBpmql8YYoswETRnfSDsfHkAiz5ZEKiD-Vv7m4",
"server_name": "sendspin-server-cpp server"
},
"status": "ok",
"stream": {
"bit_depth": 16,
"channels": 1,
"codec": "pcm",
"sample_rate": 8000
}
}Client log
RAW07:18:33 info: Sendspin.SDK.Client.SendspinClientService[0] Connecting to ws://127.0.0.1:18935/sendspin
07:18:33 info: Sendspin.SDK.Connection.SendspinConnection[0] Connecting to ws://127.0.0.1:18935/sendspin...
07:18:33 info: Sendspin.SDK.Connection.SendspinConnection[0] Connected to ws://127.0.0.1:18935/sendspin
07:18:33 info: Sendspin.SDK.Client.SendspinClientService[0] Server hello received (encrypted): uladRUBpmql8YYoswETRnfSDsfHkAiz5ZEKiD-Vv7m4 (sendspin-server-cpp server)
07:18:33 info: Sendspin.SDK.Client.SendspinClientService[0] Sending client/hello (encrypted): {"type":"client/hello","payload":{"name":"sendspin-dotnet-client","supported_pair_methods":{"pairing_psk":{}},"unpaired_access":{"enabled":true},"supported_roles":["player@v1"],"player@v1_support":{"supported_formats":[{"codec":"pcm","channels":1,"sample_rate":8000,"bit_depth":16}],"buffer_capacity":2000000},"device_info":{"product_name":"Conformance Dotnet Client","manufacturer":"Sendspin Conformance","software_version":"0.1.0"}}}
07:18:33 info: Sendspin.SDK.Client.SendspinClientService[0] Server activate: activities [], roles [player@v1]
07:18:33 info: Sendspin.SDK.Client.SendspinClientService[0] Deferring initial client/state until clock sync converges
07:18:33 info: Sendspin.SDK.Client.SendspinClientService[0] Handshake complete with server uladRUBpmql8YYoswETRnfSDsfHkAiz5ZEKiD-Vv7m4 (sendspin-server-cpp server)
07:18:33 info: Sendspin.SDK.Client.SendspinClientService[0] group/update [sendspin-dotnet-client]: Group name changed '(none)' -> 'sendspin-server-cpp server'
07:18:36 info: Sendspin.SDK.Client.SendspinClientService[0] [ClockSync] Converged after 5 measurements
07:18:36 info: Sendspin.SDK.Client.SendspinClientService[0] Sending initial client/state: {"type":"client/state","payload":{"available":true,"player":{"volume":100,"muted":false,"output_delay_ms":0,"required_lead_time_ms":200,"min_buffer_ms":150,"supported_commands":["volume","mute","set_output_delay"]}}}
07:18:36 info: Sendspin.SDK.Client.SendspinClientService[0] Stream starting: PCM 8000Hz 1ch 16bit
07:18:36 info: Sendspin.SDK.Client.SendspinClientService[0] Server activate: activities [playback], roles [player@v1]
07:18:41 info: Sendspin.SDK.Client.SendspinClientService[0] Stream ended for roles: player
07:18:41 info: Sendspin.SDK.Client.SendspinClientService[0] Server activate: activities [], roles [player@v1]
07:18:41 warn: Sendspin.SDK.Connection.SendspinConnection[0] Connection closed unexpectedly
{
"status": "ok",
"reason": null,
"implementation": "sendspin-dotnet",
"role": "client",
"scenario_id": "client-initiated-pcm",
"initiator_role": "client",
"preferred_codec": "pcm",
"client_name": "sendspin-dotnet-client",
"client_id": "ycwxNh8HdagiWMbnBdw2u2Xj5e0hcMFkRBrlgH_VyAI",
"server": {
"server_id": "uladRUBpmql8YYoswETRnfSDsfHkAiz5ZEKiD-Vv7m4",
"server_name": "sendspin-server-cpp server",
"connection_reason": null
},
"peer_hello": {
"server_id": "",
"name": "sendspin-server-cpp server",
"source@v1_support": {
"supported_codecs": [
"pcm",
"flac",
"opus"
]
},
"version": 1,
"active_roles": [
"player@v1"
]
},
"stream": {
"codec": "pcm",
"sample_rate": 8000,
"channels": 1,
"bit_depth": 16
},
"audio": {
"received_pcm_sha256": "9d447b5b270bc99b45bb9a616937e436c941ca56c477f9cbe16a93275a6b059e",
"received_encoded_sha256": "b3481a3f75dea856a961e7842d12f8344c7147b3925f9f0b67c5445700bd4cf2",
"received_sample_count": 40000,
"audio_chunk_count": 50
}
}
Server build log · sendspin-server-cpp-server · built · 161.45s
RAWp-server.dir/trace_recorder.cpp.o
[100%] Linking CXX executable conformance-sendspin-server-cpp-server
[100%] Built target conformance-sendspin-server-cpp-server
/Users/runner/work/conformance/conformance/adapters/sendspin-server-cpp/server/build/_deps/noise_c-src/src/crypto/donna/poly1305-donna.c:21:6: warning: macro expansion producing 'defined' has undefined behavior [-Wexpansion-to-defined]
21 | #if (HAS_SIZEOF_INT128_64BIT || HAS_MSVC_64BIT || HAS_GCC_4_4_64BIT)
| ^
/Users/runner/work/conformance/conformance/adapters/sendspin-server-cpp/server/build/_deps/noise_c-src/src/crypto/donna/poly1305-donna.c:17:34: note: expanded from macro 'HAS_SIZEOF_INT128_64BIT'
17 | #define HAS_SIZEOF_INT128_64BIT (defined(__SIZEOF_INT128__) && defined(__LP64__))
| ^
/Users/runner/work/conformance/conformance/adapters/sendspin-server-cpp/server/build/_deps/noise_c-src/src/crypto/donna/poly1305-donna.c:21:6: warning: macro expansion producing 'defined' has undefined behavior [-Wexpansion-to-defined]
/Users/runner/work/conformance/conformance/adapters/sendspin-server-cpp/server/build/_deps/noise_c-src/src/crypto/donna/poly1305-donna.c:17:64: note: expanded from macro 'HAS_SIZEOF_INT128_64BIT'
17 | #define HAS_SIZEOF_INT128_64BIT (defined(__SIZEOF_INT128__) && defined(__LP64__))
| ^
/Users/runner/work/conformance/conformance/adapters/sendspin-server-cpp/server/build/_deps/noise_c-src/src/crypto/donna/poly1305-donna.c:21:33: warning: macro expansion producing 'defined' has undefined behavior [-Wexpansion-to-defined]
21 | #if (HAS_SIZEOF_INT128_64BIT || HAS_MSVC_64BIT || HAS_GCC_4_4_64BIT)
| ^
/Users/runner/work/conformance/conformance/adapters/sendspin-server-cpp/server/build/_deps/noise_c-src/src/crypto/donna/poly1305-donna.c:18:25: note: expanded from macro 'HAS_MSVC_64BIT'
18 | #define HAS_MSVC_64BIT (defined(_MSC_VER) && defined(_M_X64))
| ^
/Users/runner/work/conformance/conformance/adapters/sendspin-server-cpp/server/build/_deps/noise_c-src/src/crypto/donna/poly1305-donna.c:21:33: warning: macro expansion producing 'defined' has undefined behavior [-Wexpansion-to-defined]
/Users/runner/work/conformance/conformance/adapters/sendspin-server-cpp/server/build/_deps/noise_c-src/src/crypto/donna/poly1305-donna.c:18:46: note: expanded from macro 'HAS_MSVC_64BIT'
18 | #define HAS_MSVC_64BIT (defined(_MSC_VER) && defined(_M_X64))
| ^
/Users/runner/work/conformance/conformance/adapters/sendspin-server-cpp/server/build/_deps/noise_c-src/src/crypto/donna/poly1305-donna.c:21:51: warning: macro expansion producing 'defined' has undefined behavior [-Wexpansion-to-defined]
21 | #if (HAS_SIZEOF_INT128_64BIT || HAS_MSVC_64BIT || HAS_GCC_4_4_64BIT)
| ^
/Users/runner/work/conformance/conformance/adapters/sendspin-server-cpp/server/build/_deps/noise_c-src/src/crypto/donna/poly1305-donna.c:19:28: note: expanded from macro 'HAS_GCC_4_4_64BIT'
19 | #define HAS_GCC_4_4_64BIT (defined(__GNUC__) && defined(__LP64__) && ((__GNUC__ > 4) || ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 4))))
| ^
/Users/runner/work/conformance/conformance/adapters/sendspin-server-cpp/server/build/_deps/noise_c-src/src/crypto/donna/poly1305-donna.c:21:51: warning: macro expansion producing 'defined' has undefined behavior [-Wexpansion-to-defined]
/Users/runner/work/conformance/conformance/adapters/sendspin-server-cpp/server/build/_deps/noise_c-src/src/crypto/donna/poly1305-donna.c:19:49: note: expanded from macro 'HAS_GCC_4_4_64BIT'
19 | #define HAS_GCC_4_4_64BIT (defined(__GNUC__) && defined(__LP64__) && ((__GNUC__ > 4) || ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 4))))
| ^
6 warnings generated.Client build log · sendspin-dotnet-client · built · 17.06s
RAWSDK/Sendspin.SDK.csproj::TargetFramework=net10.0]
CSC : warning AD0001: Analyzer 'StyleCop.Analyzers.LayoutRules.SA1500BracesForMultiLineStatementsMustNotShareLine' threw an exception of type 'System.NullReferenceException' with message 'Object reference not set to an instance of an object.'. [/Users/runner/work/conformance/conformance/repos/sendspin-dotnet/src/Sendspin.SDK/Sendspin.SDK.csproj::TargetFramework=net10.0]
CSC : warning AD0001: Analyzer 'StyleCop.Analyzers.LayoutRules.SA1502ElementMustNotBeOnASingleLine' threw an exception of type 'System.NullReferenceException' with message 'Object reference not set to an instance of an object.'. [/Users/runner/work/conformance/conformance/repos/sendspin-dotnet/src/Sendspin.SDK/Sendspin.SDK.csproj::TargetFramework=net10.0]
CSC : warning AD0001: Analyzer 'StyleCop.Analyzers.LayoutRules.SA1508ClosingBracesMustNotBePrecededByBlankLine' threw an exception of type 'System.NullReferenceException' with message 'Object reference not set to an instance of an object.'. [/Users/runner/work/conformance/conformance/repos/sendspin-dotnet/src/Sendspin.SDK/Sendspin.SDK.csproj::TargetFramework=net10.0]
CSC : warning AD0001: Analyzer 'StyleCop.Analyzers.LayoutRules.SA1500BracesForMultiLineStatementsMustNotShareLine' threw an exception of type 'System.NullReferenceException' with message 'Object reference not set to an instance of an object.'. [/Users/runner/work/conformance/conformance/repos/sendspin-dotnet/src/Sendspin.SDK/Sendspin.SDK.csproj::TargetFramework=net10.0]
CSC : warning AD0001: Analyzer 'StyleCop.Analyzers.LayoutRules.SA1502ElementMustNotBeOnASingleLine' threw an exception of type 'System.NullReferenceException' with message 'Object reference not set to an instance of an object.'. [/Users/runner/work/conformance/conformance/repos/sendspin-dotnet/src/Sendspin.SDK/Sendspin.SDK.csproj::TargetFramework=net10.0]
CSC : warning AD0001: Analyzer 'StyleCop.Analyzers.LayoutRules.SA1508ClosingBracesMustNotBePrecededByBlankLine' threw an exception of type 'System.NullReferenceException' with message 'Object reference not set to an instance of an object.'. [/Users/runner/work/conformance/conformance/repos/sendspin-dotnet/src/Sendspin.SDK/Sendspin.SDK.csproj::TargetFramework=net10.0]
CSC : warning AD0001: Analyzer 'StyleCop.Analyzers.LayoutRules.SA1500BracesForMultiLineStatementsMustNotShareLine' threw an exception of type 'System.NullReferenceException' with message 'Object reference not set to an instance of an object.'. [/Users/runner/work/conformance/conformance/repos/sendspin-dotnet/src/Sendspin.SDK/Sendspin.SDK.csproj::TargetFramework=net10.0]
CSC : warning AD0001: Analyzer 'StyleCop.Analyzers.LayoutRules.SA1502ElementMustNotBeOnASingleLine' threw an exception of type 'System.NullReferenceException' with message 'Object reference not set to an instance of an object.'. [/Users/runner/work/conformance/conformance/repos/sendspin-dotnet/src/Sendspin.SDK/Sendspin.SDK.csproj::TargetFramework=net10.0]
CSC : warning AD0001: Analyzer 'StyleCop.Analyzers.LayoutRules.SA1508ClosingBracesMustNotBePrecededByBlankLine' threw an exception of type 'System.NullReferenceException' with message 'Object reference not set to an instance of an object.'. [/Users/runner/work/conformance/conformance/repos/sendspin-dotnet/src/Sendspin.SDK/Sendspin.SDK.csproj::TargetFramework=net10.0]
/Users/runner/work/conformance/conformance/adapters/sendspin-dotnet/client/Program.cs(607,52): warning CS0067: The event 'HashingAudioPipeline.ErrorOccurred' is never used [/Users/runner/work/conformance/conformance/adapters/sendspin-dotnet/client/Conformance.SendspinDotnet.Client.csproj]
/Users/runner/work/conformance/conformance/adapters/sendspin-dotnet/client/Program.cs(608,37): warning CS0067: The event 'HashingAudioPipeline.OutputLatencyChanged' is never used [/Users/runner/work/conformance/conformance/adapters/sendspin-dotnet/client/Conformance.SendspinDotnet.Client.csproj]
1228 Warning(s)
0 Error(s)
Time Elapsed 00:00:16.04