Case
sendspin-go -> sendspin-cpp
Start the server first, then the client. The server loads the PCM audio derived from almost_silent.flac, the client advertises a listener and FLAC as its only supported audio format, the server connects in, uses the SDK to encode the PCM into FLAC, streams it to the client, and the matrix compares the transported FLAC header and chunk bytes as received by the client.
Server
sendspin-go
Client
sendspin-cpp
Status
Failed
Negotiated format not declared by the client: FLAC · mono · 8 kHz · 24-bit (via server.stream, client.stream); declared: FLAC · mono · 8 kHz · 16-bit
Inspection
Summaries, logs, and builds
Matrix result
RAW{
"case_dir": "artifacts/results/data/macos__server-initiated-flac__sendspin-go__to__sendspin-cpp",
"client_exit_code": 0,
"client_impl": "sendspin-cpp",
"reason": "Negotiated format not declared by the client: FLAC \u00b7 mono \u00b7 8 kHz \u00b7 24-bit (via server.stream, client.stream); declared: FLAC \u00b7 mono \u00b7 8 kHz \u00b7 16-bit",
"scenario_id": "server-initiated-flac",
"server_exit_code": 0,
"server_impl": "sendspin-go",
"status": "failed"
}Server summary (JSON)
RAW{
"audio": {
"bit_depth": 24,
"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,
"sent_audio_chunk_count": 1,
"sent_codec_header_sha256": "f7c0c5cea7e7afcc5cad7f40b3c292c811132bd60d65f8a55c383722ce6c1edb",
"sent_encoded_byte_count": 14698,
"sent_encoded_sha256": "7bc1b2ee421ee57d7ea84fee6b2a8301c83c56264081475e2c3f4ca7bd53a070",
"source_flac_sha256": "8fdda8244e318c63cd8b699fe461cd7cdddbb729327a0ba00d1bfdbe2192fe17",
"source_pcm_sha256": "f9ae8fe5e6c34fc6baa67cbb4a97224d777a0bfacf6d996449be1054824f66bf"
},
"client": {
"client_id": "sendspin-cpp-client-id",
"name": "sendspin-cpp-client",
"supported_roles": [
"player@v1"
]
},
"discovery_method": "registry_advertised",
"implementation": "sendspin-go",
"initiator_role": "server",
"peer_hello": {
"payload": {
"client_id": "sendspin-cpp-client-id",
"device_info": {
"mac_address": "f6:11:f3:38:d0:cc",
"manufacturer": "Sendspin Conformance",
"product_name": "sendspin-cpp Conformance Client",
"software_version": "0.2.0"
},
"name": "sendspin-cpp-client",
"player@v1_support": {
"buffer_capacity": 800000,
"supported_commands": [
"volume",
"mute"
],
"supported_formats": [
{
"bit_depth": 16,
"channels": 1,
"codec": "flac",
"sample_rate": 8000
}
]
},
"supported_roles": [
"player@v1"
],
"version": 1
},
"type": "client/hello"
},
"preferred_codec": "flac",
"role": "server",
"scenario_id": "server-initiated-flac",
"server_id": "sendspin-go-server",
"server_name": "sendspin-go server",
"status": "ok",
"stream": {
"bit_depth": 24,
"channels": 1,
"codec": "flac",
"codec_header": "ZkxhQ4AAACICQAJAAAAMAADIAfQBcAAHkwCKnZ7FLvzY30lWx+3k6wJC",
"sample_rate": 8000
}
}Server log
RAW{
"audio": {
"bit_depth": 24,
"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,
"sent_audio_chunk_count": 1,
"sent_codec_header_sha256": "f7c0c5cea7e7afcc5cad7f40b3c292c811132bd60d65f8a55c383722ce6c1edb",
"sent_encoded_byte_count": 14698,
"sent_encoded_sha256": "7bc1b2ee421ee57d7ea84fee6b2a8301c83c56264081475e2c3f4ca7bd53a070",
"source_flac_sha256": "8fdda8244e318c63cd8b699fe461cd7cdddbb729327a0ba00d1bfdbe2192fe17",
"source_pcm_sha256": "f9ae8fe5e6c34fc6baa67cbb4a97224d777a0bfacf6d996449be1054824f66bf"
},
"client": {
"client_id": "sendspin-cpp-client-id",
"name": "sendspin-cpp-client",
"supported_roles": [
"player@v1"
]
},
"discovery_method": "registry_advertised",
"implementation": "sendspin-go",
"initiator_role": "server",
"peer_hello": {
"payload": {
"client_id": "sendspin-cpp-client-id",
"device_info": {
"mac_address": "f6:11:f3:38:d0:cc",
"manufacturer": "Sendspin Conformance",
"product_name": "sendspin-cpp Conformance Client",
"software_version": "0.2.0"
},
"name": "sendspin-cpp-client",
"player@v1_support": {
"buffer_capacity": 800000,
"supported_commands": [
"volume",
"mute"
],
"supported_formats": [
{
"bit_depth": 16,
"channels": 1,
"codec": "flac",
"sample_rate": 8000
}
]
},
"supported_roles": [
"player@v1"
],
"version": 1
},
"type": "client/hello"
},
"preferred_codec": "flac",
"role": "server",
"scenario_id": "server-initiated-flac",
"server_id": "sendspin-go-server",
"server_name": "sendspin-go server",
"status": "ok",
"stream": {
"bit_depth": 24,
"channels": 1,
"codec": "flac",
"codec_header": "ZkxhQ4AAACICQAJAAAAMAADIAfQBcAAHkwCKnZ7FLvzY30lWx+3k6wJC",
"sample_rate": 8000
}
}
Client summary (JSON)
RAW{
"audio": {
"audio_chunk_count": 1,
"chunks_before_stream_start": 1,
"chunks_without_bit_depth": 0,
"hash_bit_depth": null,
"received_encoded_sha256": "7bc1b2ee421ee57d7ea84fee6b2a8301c83c56264081475e2c3f4ca7bd53a070",
"received_pcm_sha256": null,
"received_sample_count": 0
},
"client_id": "sendspin-cpp-client-id",
"client_name": "sendspin-cpp-client",
"implementation": "sendspin-cpp",
"initiator_role": "server",
"preferred_codec": "flac",
"reason": null,
"role": "client",
"scenario_id": "server-initiated-flac",
"server": {
"connection_reason": "playback",
"name": "sendspin-go server",
"server_id": "sendspin-go-server",
"version": 1
},
"status": "ok",
"stream": {
"bit_depth": 24,
"channels": 1,
"codec": "flac",
"codec_header": "ZkxhQ4AAACICQAJAAAAMAADIAfQBcAAHkwCKnZ7FLvzY30lWx+3k6wJC",
"sample_rate": 8000
}
}Client log
RAWI sendspin.ws_server: Starting server on port: 20032 (max connections: 4)
I sendspin.conn_mgr: Connection handshake complete: server_id=sendspin-go-server, connection_reason=playback
I sendspin.sync_task: Processed new codec header: flac, 8000 Hz, 1 ch, 24-bit
I sendspin.conn_mgr: Current connection lost
{"status":"ok","reason":null,"implementation":"sendspin-cpp","role":"client","scenario_id":"server-initiated-flac","initiator_role":"server","preferred_codec":"flac","client_name":"sendspin-cpp-client","client_id":"sendspin-cpp-client-id","server":{"server_id":"sendspin-go-server","name":"sendspin-go server","version":1,"connection_reason":"playback"},"stream":{"codec":"flac","sample_rate":8000,"channels":1,"bit_depth":24,"codec_header":"ZkxhQ4AAACICQAJAAAAMAADIAfQBcAAHkwCKnZ7FLvzY30lWx+3k6wJC"},"audio":{"audio_chunk_count":1,"chunks_before_stream_start":1,"chunks_without_bit_depth":0,"hash_bit_depth":null,"received_encoded_sha256":"7bc1b2ee421ee57d7ea84fee6b2a8301c83c56264081475e2c3f4ca7bd53a070","received_pcm_sha256":null,"received_sample_count":0}}Server build log · sendspin-go-server · built · 0.73s
RAWNo build detail was recorded.
Client build log · sendspin-cpp-client · built · 68.81s
RAW| ^
/Users/runner/work/conformance/conformance/adapters/sendspin-cpp/client/build/_deps/ixwebsocket-src/ixwebsocket/IXWebSocketPerMessageDeflateCodec.cpp:209:97: warning: unused parameter 'out' [-Wunused-parameter]
209 | bool WebSocketPerMessageDeflateDecompressor::decompress(const std::string& in, std::string& out)
| ^
In file included from /Users/runner/work/conformance/conformance/adapters/sendspin-cpp/client/build/_deps/ixwebsocket-src/ixwebsocket/IXWebSocketPerMessageDeflateCodec.cpp:7:
/Users/runner/work/conformance/conformance/adapters/sendspin-cpp/client/build/_deps/ixwebsocket-src/ixwebsocket/IXWebSocketPerMessageDeflateCodec.h:39:13: warning: private field '_flush' is not used [-Wunused-private-field]
39 | int _flush;
| ^
/Users/runner/work/conformance/conformance/adapters/sendspin-cpp/client/build/_deps/ixwebsocket-src/ixwebsocket/IXWebSocketPerMessageDeflateCodec.h:40:44: warning: private field '_compressBuffer' is not used [-Wunused-private-field]
40 | std::array<unsigned char, 1 << 14> _compressBuffer;
| ^
/Users/runner/work/conformance/conformance/adapters/sendspin-cpp/client/build/_deps/ixwebsocket-src/ixwebsocket/IXWebSocketPerMessageDeflateCodec.h:57:13: warning: private field '_flush' is not used [-Wunused-private-field]
57 | int _flush;
| ^
/Users/runner/work/conformance/conformance/adapters/sendspin-cpp/client/build/_deps/ixwebsocket-src/ixwebsocket/IXWebSocketPerMessageDeflateCodec.h:58:44: warning: private field '_compressBuffer' is not used [-Wunused-private-field]
58 | std::array<unsigned char, 1 << 14> _compressBuffer;
| ^
12 warnings generated.
/Users/runner/work/conformance/conformance/adapters/sendspin-cpp/client/build/_deps/ixwebsocket-src/ixwebsocket/IXWebSocketPerMessageDeflateOptions.cpp:17:26: warning: unused variable 'minServerMaxWindowBits' [-Wunused-const-variable]
17 | static const uint8_t minServerMaxWindowBits = 8;
| ^~~~~~~~~~~~~~~~~~~~~~
/Users/runner/work/conformance/conformance/adapters/sendspin-cpp/client/build/_deps/ixwebsocket-src/ixwebsocket/IXWebSocketPerMessageDeflateOptions.cpp:18:26: warning: unused variable 'maxServerMaxWindowBits' [-Wunused-const-variable]
18 | static const uint8_t maxServerMaxWindowBits = 15;
| ^~~~~~~~~~~~~~~~~~~~~~
/Users/runner/work/conformance/conformance/adapters/sendspin-cpp/client/build/_deps/ixwebsocket-src/ixwebsocket/IXWebSocketPerMessageDeflateOptions.cpp:21:26: warning: unused variable 'minClientMaxWindowBits' [-Wunused-const-variable]
21 | static const uint8_t minClientMaxWindowBits = 8;
| ^~~~~~~~~~~~~~~~~~~~~~
/Users/runner/work/conformance/conformance/adapters/sendspin-cpp/client/build/_deps/ixwebsocket-src/ixwebsocket/IXWebSocketPerMessageDeflateOptions.cpp:22:26: warning: unused variable 'maxClientMaxWindowBits' [-Wunused-const-variable]
22 | static const uint8_t maxClientMaxWindowBits = 15;
| ^~~~~~~~~~~~~~~~~~~~~~
4 warnings generated.
/Users/runner/work/conformance/conformance/adapters/sendspin-cpp/client/main.cpp:451:21: warning: 'send_command' is deprecated: use send_command(const ClientCommandControllerObject&); this overload cannot carry seek parameters and will be removed in v0.8.0 [-Wdeprecated-declarations]
451 | controller_.send_command(target.value());
| ^
/Users/runner/work/conformance/conformance/repos/sendspin-cpp/include/sendspin/controller_role.h:164:7: note: 'send_command' has been explicitly marked deprecated here
164 | [[deprecated(
| ^
1 warning generated.