オーディオとビデオのスレッドが原因-CMSampleBufferGetSampleAttachmentsArrayの発展にブロックされています

背景

復号化するために、ハード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をブロックされます。新しいタスクを追加することはできませんデコードスレッドに貢献します。

おすすめ

転載: blog.csdn.net/shengpeng3344/article/details/93630674