Skip to content

Commit 9fe243a

Browse files
committed
Quirks: Allow legacy platform ifdefs
1 parent 46fb7f9 commit 9fe243a

1 file changed

Lines changed: 42 additions & 13 deletions

File tree

Source/WebCore/platform/gstreamer/GStreamerQuirks.cpp

Lines changed: 42 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -56,10 +56,30 @@ GStreamerQuirksManager::GStreamerQuirksManager()
5656
return;
5757
#endif
5858

59-
const char* quirksList = g_getenv("WEBKIT_GST_QUIRKS");
60-
GST_DEBUG("Attempting to parse requested quirks: %s", GST_STR_NULL(quirksList));
61-
if (quirksList) {
62-
StringView quirks { quirksList, static_cast<unsigned>(strlen(quirksList)) };
59+
const char* quirksListFromEnvironment = g_getenv("WEBKIT_GST_QUIRKS");
60+
StringBuilder quirksListBuilder;
61+
if (quirksListFromEnvironment)
62+
quirksListBuilder.append(quirksListFromEnvironment);
63+
else {
64+
#if PLATFORM(AMLOGIC)
65+
quirksListBuilder.append("amlogic,");
66+
#endif
67+
#if PLATFORM(BROADCOM)
68+
quirksListBuilder.append("broadcom,");
69+
#endif
70+
#if PLATFORM(BCM_NEXUS)
71+
quirksListBuilder.append("bcmnexus,");
72+
#endif
73+
#if PLATFORM(REALTEK)
74+
quirksListBuilder.append("realtek,");
75+
#endif
76+
#if PLATFORM(WESTEROS)
77+
quirksListBuilder.append("westeros");
78+
#endif
79+
}
80+
auto quirks = quirksListBuilder.toString();
81+
GST_DEBUG("Attempting to parse requested quirks: %s", quirks.ascii().data());
82+
if (!quirks.isEmpty()) {
6383
if (WTF::equalLettersIgnoringASCIICase(quirks, "help"_s)) {
6484
WTFLogAlways("Supported quirks for WEBKIT_GST_QUIRKS are: amlogic, broadcom, bcmnexus, realtek, westeros");
6585
return;
@@ -78,7 +98,7 @@ GStreamerQuirksManager::GStreamerQuirksManager()
7898
else if (WTF::equalLettersIgnoringASCIICase(identifier, "westeros"_s))
7999
quirk = WTF::makeUnique<GStreamerQuirkWesteros>();
80100
else {
81-
GST_WARNING("Unknown quirk requested: %s. Skipping", identifier.toStringWithoutCopying().ascii().data());
101+
GST_WARNING("Unknown quirk requested: %s. Skipping", identifier.ascii().data());
82102
continue;
83103
}
84104

@@ -90,24 +110,33 @@ GStreamerQuirksManager::GStreamerQuirksManager()
90110
}
91111
}
92112

93-
const char* holePunchQuirk = g_getenv("WEBKIT_GST_HOLE_PUNCH_QUIRK");
94-
GST_DEBUG("Attempting to parse requested hole-punch quirk: %s", GST_STR_NULL(holePunchQuirk));
95-
if (!holePunchQuirk)
113+
const char* holePunchQuirkFromEnvironment = g_getenv("WEBKIT_GST_HOLE_PUNCH_QUIRK");
114+
String holePunchQuirk;
115+
if (holePunchQuirkFromEnvironment)
116+
holePunchQuirk = String::fromUTF8(holePunchQuirkFromEnvironment);
117+
else {
118+
#if USE(WESTEROS_SINK)
119+
holePunchQuirk = "westeros"_s;
120+
#elif PLATFORM(BCM_NEXUS)
121+
holePunchQuirk = "bcmnexus"_s;
122+
#endif
123+
}
124+
GST_DEBUG("Attempting to parse requested hole-punch quirk: %s", holePunchQuirk.ascii().data());
125+
if (holePunchQuirk.isEmpty())
96126
return;
97127

98-
StringView identifier { holePunchQuirk, static_cast<unsigned>(strlen(holePunchQuirk)) };
99-
if (WTF::equalLettersIgnoringASCIICase(identifier, "help"_s)) {
128+
if (WTF::equalLettersIgnoringASCIICase(holePunchQuirk, "help"_s)) {
100129
WTFLogAlways("Supported quirks for WEBKIT_GST_HOLE_PUNCH_QUIRK are: westeros, bcmnexus");
101130
return;
102131
}
103132

104133
// TODO: Maybe check this is coherent (somehow) with the quirk(s) selected above.
105-
if (WTF::equalLettersIgnoringASCIICase(identifier, "bcmnexus"_s))
134+
if (WTF::equalLettersIgnoringASCIICase(holePunchQuirk, "bcmnexus"_s))
106135
m_holePunchQuirk = WTF::makeUnique<GStreamerHolePunchQuirkBcmNexus>();
107-
else if (WTF::equalLettersIgnoringASCIICase(identifier, "westeros"_s))
136+
else if (WTF::equalLettersIgnoringASCIICase(holePunchQuirk, "westeros"_s))
108137
m_holePunchQuirk = WTF::makeUnique<GStreamerHolePunchQuirkWesteros>();
109138
else
110-
GST_WARNING("HolePunch quirk %s un-supported.", identifier.toStringWithoutCopying().ascii().data());
139+
GST_WARNING("HolePunch quirk %s un-supported.", holePunchQuirk.ascii().data());
111140
}
112141

113142
bool GStreamerQuirksManager::isEnabled() const

0 commit comments

Comments
 (0)