Post

Replies

Boosts

Views

Activity

Reply to ProRes encoding on M1 Max fails for high bit depth buffers
It's been a couple of months since I posted this, and I wanted to try to summarize where we are with this issue. First, I think it's established that this is a bug (my report is FB9757381), and it's related to M1 devices with ProRes hardware acceleration (the Pro and Max variants). The specific bug is that the M1 Pro and Max implementations of the AVFoundation architecture will crash unexpectedly (and without prior warning) when buffers with pixel types kCVPixelFormatType_64ARGB are written. Other pixel types may also fail or behave unexpectedly (there are reports of alpha channel problems), but I haven't exhaustively tested them. A workaround proposed by the helpful @MirrorMan indicates that on all M1 chips (including Max and Pro), the pixel type kCVPixelFormatType_64RGBALE works without error, but it fails on Intel architectures. As a workaround, it's suboptimal because it requires querying the underlying silicon type and choosing a different pixel type, which is contrary to how we ought to write code on this platform. Also, it's not obvious that if we switched to the workaround pixel format that it would keep working in a future macOS update. In the absence of guidance from Apple, this workaround isn't viable. This is complicated by the API itself. In the documentation for the CoreVideo type constants, it is indicated that not all types are supported, but there's no way to know which ones are or aren't.  As a developer, I'm stuck. I have an application I support that runs everywhere except on the new MacBook Pro computers, where it crashes. I'm not able to give my clients an estimate on when the program will work. It would be very helpful to me if I could get an idea of Apple's thinking about this issue. For instance, does Apple agree this is a bug, and if so, is there a timeline for a fix? If it's not a bug and it's something I'm doing wrong, I'd like to know that too. If we are to use a workaround, that would be good to know as well.  I know it's normal policy that bugs are not acknowledged or commented upon, but I am asking for some help here. This is a case of new hardware and a somewhat vague API creating a stickier than normal situation, and I'd be very grateful for some feedback.
Jan ’22