Chrome has none of these issues and as an effect brave is good. That’s why I’m testing brave.
I really tried this time, 9 month of Firefox.
971 karma · joined March 3, 2013
hn at jonasbengtson.se
https://jonasbengtson.se
Chrome has none of these issues and as an effect brave is good. That’s why I’m testing brave.
I really tried this time, 9 month of Firefox.
I don’t think this product will ever compete against the broad marketing effort of Nintendo however, it’s sort of a niche product in the end. With that said the comparison itself is odd.
Full disclosure: I do NOT own a deck and I do not intend to buy one.
Source: I lead the anti-abuse team at Discord
The issue here is the architectural difference between the hardware decoder and the GPU. What happens under the hood with MSE ( https://developer.mozilla.org/en-US/docs/Web/API/Media_Sourc...) is that you are responsible for handing off a buffer to the hardware decoder as a bitstream. Underneath, the GPU sets up a texture and sends the bitstream to the hardware decoder that's responsible for painting the decoded video into that texture.
What often ends up happening is that the GPU driver says "yes the hardware decoder can do this", it accepts the bitstream, sets up the texture for you which is bound against your canvas in HTML. Starts playing the video, moves the timeline playhead but the actual buffer is just an empty black texture. From the software's point of view, the pipeline is doing what it's supposed, due to the hardware decoder being a black box from the Javascript perspective it's impossible to know if it "actually" worked. Good decoders will throw errors or refuse to advance the PTS, bad decoders won't.
Knowing this, your second suggestion was to read back the canvas and detect video. That would work but the problem here is "what constitutes working video". We can detect if the video is just a black box but what if the video plays back but at 1 frame per second, or plays back with the wrong colors. It's impossible to know without knowing the exact source content, a luxury that a UGC platform like Twitch does not have.
For this reason just doing heuristics with WebGL is often the "best" path to detecting bad actors when it comes to decoders.
It's good to ask the hard questions and even though I'm not able to answer it in detail I still think that 'tmpz22' brought up a good point in that data can be used for both good and bad at the same time.
So the problem here is a bit different. It's not that devices will say "I can play Format X" and then not play it. It's that devices say "I can play Format X at Resolution A, B, C". When you give the device resolution A and B it succeeds but at resolution C it fails to decode it.
In H.264 this would be the "Level" https://en.wikipedia.org/wiki/Advanced_Video_Coding#Levels . A device may say that it can decode Level 4.2 but in reality it can only do 4.1. That means it can play back 1080p30 but not 1080p60. The only way to know is to actually try and observe the failure (which often btw is a silent failure fro m the browsers point of view, meaning you need to rely on user reports).
There is always a likelihood that data gets used for reasons beyond the original purpose. In the best of world the hardware that runs on consumers devices would do the right thing which would allow the web to be a perfect sandbox. I think we're slowly getting there, in terms of video it's slowly getting to a point where H.264 support is "universally true" rather than a minefield although VP9 and AV1 is a bit of being back to square one.
I think the spirit of my original comment was not to say "I promise that X company isn't doing Y" more to explain why this code existed in the first place. A search engine doesn't need to know what WebGL capabilities a device has as it doesn't deal with rendering whereas a site that has to work with hardware decoders most likely does need to know.
If you're interested why this data was exposed in the first place, the MDN docs has good info https://developer.mozilla.org/en-US/docs/Web/API/WEBGL_debug... . "Generally, the graphics driver information should only be used in edge cases to optimize your WebGL content or to debug GPU problems."
Sadly that's the reality of some of these tools. The intent was good and in many cases they are a necessity to create a web experience that works on every device. On the flip side this allows people to use this data to fingerprint.
"player-core-variant-....js" is the Javascript video player and it uses WebGL as a way to guess what video format the browser can handle. A lot of the times mobile android devices will say "I can play video X, Y, Z" but when sent a bitstream of Y it fails to decode it. WebGL allows you to get a good indication of the supported hardware features which you can use to guess what the actual underlying hardware decoder is.
This is sadly the state of a lot of "lower end" mobile SoCs. They will pretend to do anything but in reality it just... doesn't.
It makes me angry now even reading it. Why would this have any impact on the work the candidate would be able to perform?
The second part is finding a good sample rate that you can easily clock on VHS. That’s where the this stems from although they technically could have gone for a different sample rate at a lower bit depth. 44100 ended up being a good trade off between different requirements.
You're right that it's not that related to a bloom filter data structure.
Doesn't take that much time and the quality of the writing goes up when hearing the prose as I perceive it differently, which allows me to feed this back into the final edit.
Being able write a lib to plug into TouchDesigner or OF would make it fun to write other kinds of visualisations.
I understand exactly what you mean when you use the word cosplay, however, it also strikes me that this word wouldn’t be used in the same way 10 years ago as it is today. Just an observation.
So for me it's more about helping him risk manage, getting him on vaping instead of cigarettes is "less shitty" way of getting that fix for him, even if I'm fully aware that it's not healthy in any shape or form.
It's the lesser of two evils for sure, however, nobody should pick up vaping if you aren't currently smoking cigarettes.
Why is this important? Most of these cameras images end up on the web. VP9, HEVC and HEIC all support HDR10 so with the right processing this should come through.