News for hackers. Stuff that matters.
Re:Xbox Cloud throttles performance if user agent is Linux by danpalmer on Tuesday July 05, 2022 @04:38AM (#31985833)
I’d guess this is user agent sniffing to determine codecs to use for the video.

Linux often doesn’t come with non-free codecs installed, these are often optional extras, even if many people install them.

Re:Xbox Cloud throttles performance if user agent is Linux by alxlaz on Tuesday July 05, 2022 @04:52AM (#31985916)
I'm pretty sure there have been better ways to do that for many years now, e.g. the media capabilities API. Hanlon's razor is tricky to apply with Microsoft, they have a bit of an, erm, history with these things.
Re:Xbox Cloud throttles performance if user agent is Linux by can16358p on Tuesday July 05, 2022 @06:02AM (#31986338)
Plausible deniability.

They will simply cover up their shady practices by saying "it was for codec checking" whereas they are also crippling the experience for Linux users.

Given that there are some very talented programmers out there who know what they are exactly doing, it's hard to believe that it's incompetence.

Re:Xbox Cloud throttles performance if user agent is Linux by bogwog on Tuesday July 05, 2022 @11:20AM (#31989263)
> it's hard to believe that it's incompetence.

On the one hand yes, but on the other hand, https://github.com/microsoft/terminal/issues/10362

Re:Xbox Cloud throttles performance if user agent is Linux by moron4hire on Tuesday July 05, 2022 @10:22AM (#31988495)
You basically need to be an expert on media encodings to know how to use the Media Capabilities API.

Random Web Front End Developer is not frequently going to be that person. And Person Who Managed All The Media Encodings is probably not likely to be working on the web front end.

Most likely scenario is the front end dev will get a chunk of JSON from the media encoding dev describing the media, and then be left to their own devices to figure out how to translate that into something the Media Capabilities API will understand.

Consistent results across browsers is also really difficult to achieve. Chrome in particular is super pedantic about the content type field. Firefox sometimes ignores parts of the content type field. It's nuts.

Re:Xbox Cloud throttles performance if user agent is Linux by BeefWellington on Tuesday July 05, 2022 @11:03AM (#31989068)
Sorry, you're suggesting that Microsoft's cloud gaming division doesn't employ people familiar with media APIs in web browsers?

It's an especially awful argument when switching the user-agent makes the problem disappear.

"Forgive the multi-billion dollar conglomerate with a vested interest in user capture; they probably just don't employ the proper people" is a very weak argument on something like this.

Re:Xbox Cloud throttles performance if user agent is Linux by moron4hire on Tuesday July 05, 2022 @11:11AM (#31989161)
Between how difficult the Media Capabilities API is to use correctly and the fact that no corporation is the superman you seen to be ascribing to Microsoft, yes, that's exactly what I'm suggesting.
Re:Xbox Cloud throttles performance if user agent is Linux by smoldesu on Tuesday July 05, 2022 @02:12PM (#31991697)
> Sorry, you're suggesting that Microsoft's cloud gaming division doesn't employ people familiar with media APIs in web browsers?

I mean, Apple makes even more money than MS, and they don't seem to know the first thing about online media codecs and cross-platform API sniffing. So... yes? Even as someone who uses Linux as their daily-driver, there's pretty much no way for me to get mad at Microsoft for what's pretty obviously a mistake (and not even a serious one at that). Microsoft is a hostile company, but that's not a reason to make their molehills into mountains for them. I seriously doubt a any of the outraged commentors on this page are typing their comment from a real Linux box anyways. They're more incensed by the opportunity to hate Microsoft than they are by the actual problem.

Re:Xbox Cloud throttles performance if user agent is Linux by moron4hire on Tuesday July 05, 2022 @08:10AM (#31987230)
The media capabilities API is basically useless. You have to query each format you support individually (with very specific details like resolution and bitrates, so you'll have to have all that data stored in a database that gets queried before attempting playback) and it's response is usually "everything is supported, nothing is smooth or power efficient".

EDIT: Forgot to mention, you need to know what the exact content type is for your media, both container and codec. With video, you also need to check the audio at the same time. And there isn't any documentation on the exact format that it's expecting.

It's a gigantic mess. You can't just give it a media stream and ask it "can you play this". It's often easier to just attempt to play the media and wait to see if it errors (which it can still do after even a few frames of playback succeed).

Re:Xbox Cloud throttles performance if user agent is Linux by pdpi on Tuesday July 05, 2022 @05:33AM (#31986176)
Microsoft isn't a monolithic entity. Over the last several years, the Xbox division has built a history of playing well with others, so I'm willing to give them specifically the benefit of the doubt. (developer tools has me cautiously optimistic, Windows division can still sod off)
Re:Xbox Cloud throttles performance if user agent is Linux by kuschku on Tuesday July 05, 2022 @07:08AM (#31986759)
Considering them trying to force users over to the Windows-exclusive Minecraft edition, I’d be wary of that division too.

If the rumors about timed exclusives for the new Bethesda games are true, too, they’ll have lost all goodwill.

Re:Xbox Cloud throttles performance if user agent is Linux by Akronymus on Tuesday July 05, 2022 @10:18AM (#31988455)
> Considering them trying to force users over to the Windows-exclusive Minecraft edition...

Oh, I need a link for that. definitely not a fan of their java changes, but I haven't heard about them trying to force users to use bedrock.

Re:Xbox Cloud throttles performance if user agent is Linux by sk0g on Tuesday July 05, 2022 @07:54AM (#31987100)
Meanwhile Nintendo never releases their games on other platforms, and Sony pays off external studios for timed and permanent exclusives, while sometimes releasing internal ones on PC years later.

Who exactly are they losing goodwill from?

Re:Xbox Cloud throttles performance if user agent is Linux by kuschku on Tuesday July 05, 2022 @10:17AM (#31988445)
You’re just comparing between consoles. But Microsoft’s Xbox division has been eating up marketshare in PC gaming as well, having replaced Windows Live Games and similar projects. And they’ve bought up a lot of game studios as well.

This behavior is normal in the console market, but not common in the PC market at all.

Re:Xbox Cloud throttles performance if user agent is Linux by sk0g on Tuesday July 05, 2022 @01:12PM (#31990898)
Because Xbox exclusives are about console exclusivity, they release their games on PC day one. The other console makers are even less consumer friendly.
Re:Xbox Cloud throttles performance if user agent is Linux by account42 on Wednesday July 06, 2022 @10:12AM (#32001243)
We'll see how many post-acquisition inXile, Obsidian, Doublefine etc. games make it to Linux/macOS compared to pre-acquisition, not counting those where they had contractual obligations to release Linux port (e.g. Psychonauts 2 was already sold for Linux via Fig before the acquisition) it doesn't look good so far.
Re:Xbox Cloud throttles performance if user agent is Linux by kadoban on Tuesday July 05, 2022 @09:26AM (#31987952)
> Meanwhile Nintendo never releases their games on other platforms, and Sony pays off external studios for timed and permanent exclusives, while sometimes releasing internal ones on PC years later.

"X sucks too!" is very rarely any kind of a defense at all. What does that have to do with Microsoft's behavior?

If you excuse bad behavior because there's a WhatAbout distraction, no criticism of anything will ever be valid.

Re:Xbox Cloud throttles performance if user agent is Linux by sk0g on Tuesday July 05, 2022 @01:11PM (#31990886)
I'm comparing to consoles because that's their competition. They see PC as an additional platform that they also release to, and exclusives refer to console platforms, not PC.
Re:Xbox Cloud throttles performance if user agent is Linux by danpalmer on Tuesday July 05, 2022 @05:01AM (#31985990)
Of course. This is a poor implementation however you look at it, but rather than being malicious targeting of Linux users to give them a poor experience, it's probably to do with available codecs.
Re:Xbox Cloud throttles performance if user agent is Linux by Max-q on Tuesday July 05, 2022 @05:19AM (#31986083)
If you read the thread, you will see that it’s not the case. Just change user agent in the Linux browser and it works — with nice resolution.
Re:Xbox Cloud throttles performance if user agent is Linux by alxlaz on Tuesday July 05, 2022 @05:31AM (#31986160)
That's because the person on the original thread has the non-free codecs installed and whatnot. @danpalmer is right to point out that their availability is not something you can rely on. Although this is definitely the wrong way to check it.

I'm not sure Microsoft is deliberately making things worse for Linux users, either, but the fact that a better implementation is both possible and straightforward enough suggests that cross-platform performance is not quite the priority that marketing materials make it out to be. We're not talking rocket science here. If this is indeed not specifically about Linux, then either Xbox Cloud's code review practices are at best questionable, or the paradigm that best describes their approach to client-side performance is #yolo.

Re:Xbox Cloud throttles performance if user agent is Linux by lloeki on Tuesday July 05, 2022 @07:42AM (#31987010)
What would be the motive? Forcing Linux users to buy a Xbox or a Windows license? I don't quite buy that: it's such a small market that I venture they'd rather have people be able to play at all via Xcloud and sell a Game Pass Ultimate subscription.

Also remember that Xcloud is still beta, with a feedback form after every session, and probably some telemetry. While it would technically not be rocket science to detect codecs, I'm more inclined to think that this is a blanket denylist because enough reports have come up and showed that using better codecs/higher quality produced a subpar experience even though codecs are reported as supported (which might come from a zillion reasons such as codecs falling back to software decoding, or underpowered hardware, and both could be true for PC, Chromebooks, and Android).

Re:Xbox Cloud throttles performance if user agent is Linux by danpalmer on Tuesday July 05, 2022 @06:55AM (#31986675)
I did read the thread, and as the other commenter has suggested, most users do install non-free codecs which is why this works, but also why Microsoft may have used the user agent as an indicator.
Re:Xbox Cloud throttles performance if user agent is Linux by Cthulhu_ on Tuesday July 05, 2022 @04:58AM (#31985962)
I was going to ask, isn't there some information exchange going on to determine what codecs can be used?
Re:Xbox Cloud throttles performance if user agent is Linux by jsnell on Tuesday July 05, 2022 @07:46AM (#31987031)
I'd guess it's not be about the codecs, but about hardware acceleration. I haven't tried Xbox Cloud Gaming, but when I tried Stadia a couple of years back it was completely unplayable with software VP9 at 1080p vs. as good as playing locally with hardware decoding.

The game streaming use case seems to be very different from general purpose video streaming: it's realtime, is not efficiently compressed (due to the realtime nature + tight latency budgets during encoding), and changes rapidly unlike the main other use of realtime video streaming (video calls). So if software decoding is fine for watching Netflix or making a Zoom call, this is different.

Browsers have APIs for detecting codec support, but I don't think there's anything for detecting hardware accelerated video decoding. But given Chrome on Linux doesn't support this on any hardware, it's a pretty decent heuristic.

Re:Xbox Cloud throttles performance if user agent is Linux by Neil44 on Tuesday July 05, 2022 @05:09AM (#31986033)
This is addressed in the comments on the linked page, the browsers on those platforms do support the required codecs and all that's required is a user agent change to get the xbox end to activate them.
Re:Xbox Cloud throttles performance if user agent is Linux by mbreese on Tuesday July 05, 2022 @05:20AM (#31986087)
This could also be explained by Microsoft not doing their browser sniffing well or realizing that the Linux browsers supported the other codecs. If we’re talking about proprietary codecs running on Linux, then the fact that they work at all with Xbox cloud gaming is a good thing. If the codecs have a quasi-legality to them (e.g. proprietary, but fork exists — no clue here — I don’t know the codecs), then this kind of unofficial support might be the best Microsoft can do. Otherwise, how can you detect a codec from a user agent?

My guess is that they are just lazily using User-agent as a proxy for codec detection. I don't think there is a reason to jump to a malicious intent here (even with existing priors).

Re:Xbox Cloud throttles performance if user agent is Linux by VoidWhisperer on Tuesday July 05, 2022 @05:33AM (#31986168)
This may help as far as detecting the codecs: https://developer.mozilla.org/en-US/docs/Web/API/Media_Capab...
Re:Xbox Cloud throttles performance if user agent is Linux by YawningAngel on Tuesday July 05, 2022 @06:18AM (#31986423)
That's an interesting rationale. Does Microsoft make pessimistic assumptions about the capabilities of Windows clients due to the existence of Windows N?
Re:Xbox Cloud throttles performance if user agent is Linux by Sayrus on Tuesday July 05, 2022 @04:55AM (#31985940)
That was what I was wondering too. If that's the case, there should be a notification that the quality is lowered and maybe an option in the settings to toggle these codecs (if there is no better way to detect supported codecs).