2017-06-29 1 views
0

Beim Testen von 360-Video auf unserem Gerät mit Cobalt ruft der Anwendungsrenderer-Thread häufig die Funktion SbPlayerGetCurrentFrame() auf, aber es gibt kein SbDecodeTargetGetInfo() und SbDecodeTargetRelease() sogar wir haben das SbDecodeTarget-Objekt durch die Funktion SbPlayerGetCurrentFrame() zurückgegeben. In howto_decode_to_texture.md, sagte er, dass:Der Renderer-Thread ruft SbDecodeTargetGetInfo() während der Wiedergabe von 360-Video nicht auf

Once the application has acquired a valid SbDecodeTarget object through a call to SbPlayerGetCurrentFrame(), it will call SbDecodeTargetGetInfo() on it. 

Dies bedeutet, dass wir die SbDecodeTarget gültig ist oder nicht keine gültige SbDecodeTarget in Funktion SbPlayerGetCurrentFrame() zurückgeben, wenn ja, wie Thread-Renderer überprüfen? Die Cobalt-Version ist 10.56829.

+0

rief ich hier durch den Code verfolgen würde : https://cobalt.googlesource.com/cobalt/+/master/src/cobalt/layout/box_generator.cc#68 und sehen, ob das Dekodierungsziel gültig ist oder nicht. Wenn es gültig ist, sollte der Aufruf von CreateImageFromSbDecodeTarget() in Zeile 71 zu einem Aufruf von SbDecodeTargetGetInfo() führen. –

+1

Hallo, Andrew, Vielen Dank für Ihre Hilfe, mit dem Code, den Sie erwähnten, habe ich SbPlayerGetCurrentFrame() aufgerufen, ohne das korrekte Dekodierungsziel zurückzugeben, so dass der Renderer-Thread ungültiges Zielobjekt erhält und SbDecodeTargetGetInfo() nicht aufruft. und SbDecodeTargetRelease(). –

+0

Freut mich zu hören, dass Sie das gelöst haben! –

Antwort

1

fand ich, dass wir SbPlayerGetCurrentFrame() ohne Rück die richtige Decodierung Ziel, so dass der Renderer Thread ungültig Zielobjekt bekommen und nicht nennen SbDecodeTargetGetInfo() und SbDecodeTargetRelease()

Verwandte Themen