diff --git a/pkg/clientconfiguration/conf.go b/pkg/clientconfiguration/conf.go index 7fb5ae8d5..a23537159 100644 --- a/pkg/clientconfiguration/conf.go +++ b/pkg/clientconfiguration/conf.go @@ -51,7 +51,7 @@ var StaticConfigurations = []ConfigurationItem{ }, { Match: must.Get(NewScriptMatch(`(c.device_model == "xiaomi 2201117ti" && c.os == "android") || - ((c.browser == "firefox" || c.browser == "firefox mobile") && (c.os == "linux" || c.os == "android"))`)), + ((c.browser == "firefox" || c.browser == "firefox mobile") && c.os == "android")`)), Configuration: &livekit.ClientConfiguration{ DisabledCodecs: &livekit.DisabledCodecs{ Publish: []*livekit.Codec{ diff --git a/pkg/clientconfiguration/conf_test.go b/pkg/clientconfiguration/conf_test.go index 453d57cb8..2c0294ad0 100644 --- a/pkg/clientconfiguration/conf_test.go +++ b/pkg/clientconfiguration/conf_test.go @@ -19,10 +19,33 @@ import ( "github.com/stretchr/testify/require" + "github.com/livekit/protocol/codecs/mime" "github.com/livekit/protocol/livekit" "github.com/livekit/protocol/utils/must" ) +func TestStaticConfigurationH264(t *testing.T) { + cm := NewStaticClientConfigurationManager(StaticConfigurations) + + h264Disabled := func(info *livekit.ClientInfo) bool { + conf := cm.GetConfiguration(info) + if conf == nil || conf.DisabledCodecs == nil { + return false + } + for _, c := range conf.DisabledCodecs.Publish { + if mime.IsMimeTypeStringH264(c.Mime) { + return true + } + } + return false + } + + // desktop Linux Firefox publishes H.264 through OpenH264, so it must not be disabled + require.False(t, h264Disabled(&livekit.ClientInfo{Browser: "firefox", Os: "linux"})) + // Firefox for Android is still worked around + require.True(t, h264Disabled(&livekit.ClientInfo{Browser: "firefox mobile", Os: "android"})) +} + func TestScriptMatchConfiguration(t *testing.T) { t.Run("no merge", func(t *testing.T) { confs := []ConfigurationItem{