Ich habe google und stackoverflow versucht, aber ich finde nicht die offizielle Dokumentation für Funktionen, die mit CVOpenGLESTexture beginnen. Ich kann sehen, dass sie von Core-Video sind, und ich weiß, dass sie auf iOS 5 hinzugefügt wurden, aber das Durchsuchen der Dokumentation gibt mir nichts.
Ich bin auf der Suche nach den Informationen über die Parameter, was sie tun, wie man sie benutzt, etc. wie in den anderen Apple Frameworks.
Bisher kann ich nur Befehle ausführen, um die Informationen zu sehen, aber das fühlt sich sehr komisch an. Oder gibt es eine Möglichkeit, dies hinzuzufügen, so dass es in der Schnellhilfe auf der rechten Seite auf xcode angezeigt werden kann?
Danke und Entschuldigung, wenn es eine dumme Frage ist.
PD: Der zentrale Video-Referenzführer scheint diese auch nicht zu erklären.
Leider gibt es wirklich keine Dokumentation zu diesen neuen Funktionen. Das Beste, was Sie jetzt finden werden, ist in der Header-Datei CVOpenGLESTextureCache.h
, wo Sie eine grundlegende Beschreibung der Funktionsparameter sehen:
Die schwierigeren Elemente sind die Attribute Wörterbücher, für die Sie leider Beispiele finden müssen, um diese Funktionen richtig nutzen zu können. Apple hat den GLCameraRipple und GPUImage Framework funktioniert (der Quellcode ist unter diesem Link verfügbar), also lege ich dar, was ich daraus analysieren konnte. Zuerst erstelle ich einen Textur-Cache mit dem folgenden Code:
%Vor%Der Kontext, auf den verwiesen wird, ist ein EAGL-Kontext, der für OpenGL ES 2.0 konfiguriert ist.
Ich verwende dies, um Videobilder von der Kamera des iOS-Geräts im Videospeicher zu behalten. Dazu verwende ich den folgenden Code:
%Vor%Dies erstellt eine neue CVOpenGLESTextureRef, die eine OpenGL ES-Textur darstellt, aus dem Textur-Cache. Diese Textur basiert auf dem von der Kamera übergebenen CVImageBufferRef. Diese Textur wird dann aus dem CVOpenGLESTextureRef abgerufen und entsprechende Parameter dafür gesetzt (was bei meiner Verarbeitung notwendig schien). Schließlich mache ich meine Arbeit an der Textur und räume auf, wenn ich fertig bin.
Dieser schnelle Upload-Prozess macht auf iOS-Geräten einen echten Unterschied. Der Upload und die Verarbeitung eines einzelnen 640x480-Videoframes auf einem iPhone 4S dauerte von 9,0 ms auf 1,8 ms.
Ich habe davon gehört funktioniert auch umgekehrt , was in bestimmten Situationen die Ersetzung von glReadPixels()
ermöglichen könnte, aber ich muss es noch versuchen.
Apple hat endlich die Dokumentation , vor etwas mehr als einer Woche.