特殊なケースですが、透過情報を持ったSampleBufferをAVSampleBufferDisplayLayer
にenqueueしても、背景が透過されないことがあります。
これはAVSampleBufferDisplayLayer
が透過できない訳ではなく、enqueueしたCMSampleBufferに透過情報があるかどうかのフラグが有効になっていないため起こる問題です。
次のようにSampleBufferに含まれるimageBufferに対してkCVImageBufferAlphaChannelIsOpaque
フラグを落とせば透過が有効になります。
imageBuffer.attachments.merge([kCVImageBufferAlphaChannelIsOpaque as String : false], mode: .shouldPropagate)