401 karma · joined February 22, 2014
That sounds like one of these high-risk, high-reward things that are great for people / projects / companies who have nothing to lose, but is not a great baseline strategy for an established market player. AV2 is here with support from aomedia and its members. AV2 will be used, and we need a production-grade decoder regardless of where AI is at, so it makes much more conservative business sense to use established approaches (language: c/asm, devteam: ffmpeg/dav1d) as a starting point. While that's happening, we can dabble in AI and other risky stuff and see if it helps. If so, great, and if not, nothing lost.
No.
How? We have - at times - had democrats in charge since 2017 and they did nothing to resolve this either. We appear to be waiting for flying pigs.
This is untrue. The rule is not about taxation, but deductions/expenses. If your expenses cover most revenue, you owe little in taxes. With this rule, a particular type of expense (software engineering salaries) is no longer deductible from revenue to calculate taxable income over which taxes are owed. So you might previously owe no taxes, but now you do. The deduction might carry over to the next few years and eventually (after 6 years) you will reach the same point - assuming your salaries don't go up and your business doesn't grow. The remainder in deductions will be returned after the business stops employing software engineers. I'm not sure why anyone would want the tax code to incentivize a business outcome that all of us would consider failure.
It should be obvious that both are pursued independently whenever it makes sense. The idea that one should precede the other or is more important than the other is simply untrue.
And don't forget that any asm-optimized variant always has a C fallback for generic platforms lacking a hand-optimized variant which is also used to verify the asm-optimized variant using checkasm. This might not be linked into your binary/library (the linker eliminated it because it's never used), but the code exists nonetheless.
Not ported, but rather re-implemented. So: yes.
A bit more detail: during build, on x86, the FFmpeg binary would include hand-written AVX2 (and SSSE3, and AVX512, etc.) implementations of CPU-intensive functions, and on Arm, the FFmpeg binary would include hand-written Neon implementations (and a bunch of extensions; e.g. dotprod) instead.
At runtime (when you start the FFmpeg binary), FFmpeg "asks" the CPU what instruction sets it supports. Each component (decoder, encoder, etc.) - when used - will then set function pointers (for CPU-intensive tasks) which are initialized to a C version, and these are updated to the Neon or AVX2 version depending on what's included in the build and supported by this specific device.
So in practice, all CPU-intensive tasks for components in use will run hand-written Neon code for you, and hand-written AVX2 for me. For people on obscure devices, it will run the regular C fallback.
There have been repeated promises by congress to fix it but these efforts have failed so far. The latest attempt, HR7024, received overwhelming support in the house but stalled in the senate over objections by Idaho senator Mike Crapo and was later voted down (mostly by senate Rs, but also notable by a handful of progressive Ds).
"the issues around tens of thousands of unpaid developers writing the core of the world’s most critical infrastructure nowadays."
We need to take opensource software sustainability much more seriously.
Foreign-run software companies not affected by this law, big companies with deep pockets that don't need to fear upstart competition, and other industries that are not R&E but can enjoy the lower tax rates from TCJA that were paid for with this revenue.