diff --git a/openvidu-test-e2e/src/test/java/io/openvidu/test/e2e/OpenViduTestAppE2eServerSdkTest.java b/openvidu-test-e2e/src/test/java/io/openvidu/test/e2e/OpenViduTestAppE2eServerSdkTest.java index 5755610dd..cc7675907 100644 --- a/openvidu-test-e2e/src/test/java/io/openvidu/test/e2e/OpenViduTestAppE2eServerSdkTest.java +++ b/openvidu-test-e2e/src/test/java/io/openvidu/test/e2e/OpenViduTestAppE2eServerSdkTest.java @@ -211,11 +211,20 @@ public class OpenViduTestAppE2eServerSdkTest extends AbstractOpenViduTestappE2eT if (!multiLayer || expectSimulcast) { Assertions.assertEquals(expectSimulcast, trackInfo.getSimulcast(), "Simulcast flag of the track published by the " + sdk + " SDK"); - // (the server's explicit SVC verdict: an SVC publication would be - // MULTIPLE_SPATIAL_LAYERS_PER_STREAM) - Assertions.assertEquals(VideoLayer.Mode.ONE_SPATIAL_LAYER_PER_STREAM, - trackInfo.getCodecs(0).getVideoLayerMode(), - "The track published by the " + sdk + " SDK should not be SVC"); + // The server's explicit SVC verdict: an SVC publication is + // MULTIPLE_SPATIAL_LAYERS_PER_STREAM, any other one + // ONE_SPATIAL_LAYER_PER_STREAM. + // TODO: expect ONE_SPATIAL_LAYER_PER_STREAM for the Go SDK too once + // server-sdk-go declares it for a single-track VP9/AV1 publish. v2.19.0 + // leaves the VideoLayerMode of that publish unset, so the server infers + // SVC for those codecs although the SDK forwards one plain encoding: + // https://github.com/livekit/server-sdk-go/issues/1046 + // https://github.com/livekit/server-sdk-go/pull/1045 + final VideoLayer.Mode expectedMode = "go".equals(sdk) && ("vp9".equals(codec) || "av1".equals(codec)) + ? VideoLayer.Mode.MULTIPLE_SPATIAL_LAYERS_PER_STREAM + : VideoLayer.Mode.ONE_SPATIAL_LAYER_PER_STREAM; + Assertions.assertEquals(expectedMode, trackInfo.getCodecs(0).getVideoLayerMode(), + "Video layer mode of the track published by the " + sdk + " SDK"); } for (Subscriber subscriber : earlySubscribers) {