В моем проекте я получаю непрозрачную структуру фильтра, основанную на GPUImage
. Я хочу создать приложение, которое может иметь видеовызов, как FaceTime, поэтому я использую эту структуру фильтров, предоставленную OpenGL ViewA
, для рендеринга изображения с камеры, используя мой собственный openGL viewB
для рендеринга удаленного видеопотока. теперь у меня проблема. viewA
нерегулярно отображал содержимое viewB
. особенно, когда изменился кадр представления A. вот так: формат пикселей удаленного видео — I420, а формат пикселей локального видео — NV12. так что технически
viewA
не может отображать содержимое viewB
. Как видите: viewA
показывает серое изображение viewB
. Я предполагаю, что viewA
каким-то образом получает плоские данные Y viewB
. когда viewA показывает серое изображение, частота кадров сильно замедляется. поскольку viewA
принадлежит непрозрачной структуре, я могу управлять только собственной частью рендеринга OpenGL viewB
. Я не знаю, как решить эту ошибку. Скорее всего, два EAGLContext конфликтуют, или viewA
и viewB
каким-то образом совместно используют буфер рендеринга/текстуры? Кто-нибудь, пожалуйста, помогите мне. Я борюсь с этим несколько дней.
Работа GPUImage с другим контекстом OpenGL не удалась
Ответы (1)
Оказалось, что к этой проблеме приводит запутанное управление контекстом OpenGL.
person
ooOlly
schedule
02.03.2017