2016-05-05 15 views
0

Was wäre der beste Weg, um die Dekodierzeit eines durch den Mediacodec decodierten Frames zu berechnen? Die Ausführungszeit des folgenden Codes ist eindeutig nicht die richtige Zeit. Gibt es eine Möglichkeit zu wissen, wie lange jedes Frame/Frame zum Decodieren benötigt?MediaCodec Dekodierzeitberechnung

Danke.

startTime... 

dequeueInputBuffer(); 

getInputBuffer(); 

// copy frame to input buffer 

queueInputBuffer(); 

dequeueOutputBuffer(); 

releaseOutputBuffer(); 

stopTime... 

exectime = startTime - StopTime 

Antwort

1

Es ist schwierig, eine aussagekräftige Messung der Zeit zu erhalten erforderlich, um einen einzigen Rahmen zu dekodieren, da Sie Latenz Durchsatz als auch die Messung würden. Daten müssen von der App zum Medienserver-Prozess, in den Treiber, dekodiert werden, und dann müssen die decodierten Daten die gleiche Rückwärtsfahrt machen. Es kann zusätzliche Pipelining im Treiber selbst geben.

Sie können eine vernünftige Annäherung erreichen, indem Sie einige hundert Frames decodieren und dann die Gesamtzeit durch die Anzahl der Frames dividieren.

Was möchten Sie erreichen?

+0

Danke für die Antwort. Ich versuche, Echtzeit-Video-Streaming zu machen (Der Code oben ist in NDK). Nur benötigt, um zu sehen, wie lange die Dekodierungszeit ist, um Latenz zu messen. Ich bin nicht sicher, ob die Start- und Stopptimer auf der richtigen Linie sind, wie die Eingabe in die Warteschlange gestellt wird. – MyNameisAwesome

+3

Es spielt keine Rolle, wann die Eingabe in die Warteschlange gestellt wird - Sie möchten die Eingabe so voll wie möglich halten. Denken Sie daran, dass bei einigen Videoformaten codierte Frames in der falschen Reihenfolge angezeigt werden ... Wenn Sie versuchen, jeweils ein Frame zu füttern, würde es vollständig zum Stillstand kommen. Sie verwalten die Stimulation des Videos an dem Punkt, an dem der Ausgabepuffer freigegeben wird. Einige zusätzliche Hinweise zur Latenz finden Sie in http://stackoverflow.com/questions/21440820/ – fadden

+0

Vielen Dank für die Hilfe. – MyNameisAwesome