背景
復号化するために、ハードVideoToolBoxを使用してビデオの再生は、その後、レンダリングのためのOpenGLを使用しています。
AVSampleBufferDisplayLayerとVideoToolBox二つの方法を使用してください。私たちは、自身のデコーディングを必要とCMSampleBufferRefを渡す必要があり、元のデコードを気にする必要はありません。
kCMSampleAttachmentKey_DisplayImmediately AVSampleBufferDisplayLayer意志を設定します
CFArrayRef attachments = CMSampleBufferGetSampleAttachmentsArray(sampleBuffer, YES);
CFMutableDictionaryRef dict = (CFMutableDictionaryRef)CFArrayGetValueAtIndex(attachments, 0);
CFDictionarySetValue(dict, kCMSampleAttachmentKey_DisplayImmediately, kCFBooleanTrue);
このコードデコードVideoToolBoxを使用する場合には、CMSampleBufferGetSampleAttachmentsArrayをブロックされます。新しいタスクを追加することはできませんデコードスレッドに貢献します。