@@ -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
113142bool GStreamerQuirksManager::isEnabled () const
0 commit comments