AVAssetWriterInputPixelBufferAdaptor pixelBufferPool wird nach einiger Zeit NULL

8

Ich verwende den pixelBufferPool innerhalb eines AVAssetWriterInputPixelBufferAdaptor, um Pixel-Puffer zur Verwendung mit der append-Methode zu erstellen. Nach dem Erstellen von 4 Puffern wird die Eigenschaft pixelBufferPool zu NULL;

Ich habe meine Schreiber, Eingabe und Adapter wie folgt eingerichtet:

%Vor%

und ich gebe Pixel-Puffer damit aus:

%Vor%

Wenn ich den Pixel-Puffer übergeben habe, um pixelPuffer anzufügen, gebe ich den Pixel-Puffer mit CVPixelBufferRelease frei. Zu keinem Zeitpunkt, bevor dies NULL geht, rufe ich markAsFinished, endSessionAtSourceTime oder finishWriting auf. Außerdem geht der Adapter selbst nicht NULL.

Die meisten Posts, die ich lese, sprechen davon, dass der Pool aufgrund eines falsch konfigurierten Adapters von Anfang an abwesend ist, aber meiner ist da, aber nur für kurze Zeit. Hat noch jemand dieses Verhalten gesehen?

    
davidbitton 20.06.2011, 16:02
quelle

2 Antworten

3

Dies kann bei einem Pixel-Puffer-Adapterfehler passieren. Der Pixel-Puffer-Adapter kann aufgrund von Frames, die außer Betrieb sind oder mit der gleichen Präsentationszeit, in einen Fehlerzustand versetzt werden.

    
AlexeyVMP 14.03.2014, 06:19
quelle
4

Ich hatte das gleiche Problem. Wie ich herausgefunden habe, passiert das, wenn einige der CMTime s, die du in appendPixelBuffer:withPresentationTime: gesetzt hast, gleich sind. Dies kann beispielsweise passieren, wenn Sie CMTimeMakeWithSeconds mit einer zu groben Zeitskala verwenden.

    
Dominik Seibold 15.12.2011 06:56
quelle

Tags und Links