Monger
2005-07-05, 14:39:33
Der Titel trifft's irgendwie nicht ganz, aber ich weiß nicht wie ich mein Problem in kurzen Worten zusammenfassen soll...
Ich bastel grade an einem kleinen Java Programm, das mir das Bild einer Webcam anzeigen soll. Ich hab einerseits die Oberfläche, die von Zeit zu Zeit (eine Sekunde) das Bild aktualisiert, und ich hab eine Art Treiber, der mir kontinuierlich die Bilder aus der Webcam in einen "PushBufferStream" hineinschreibt, von wo ich aus lesen kann.
Mein Problem ist jetzt folgendes: ich möchte nur ein Bild pro Sekunde anzeigen, statt der typischen 12,5 Bilder, die die Kamera automatisch liefert. Aber ich weiß einfach nicht wie...
Derzeit versucht meine Oberfläche, in jedem Zyklus sich ein Bild zu greifen, und zu aktualisieren. Da mein Zyklus langsamer als 12,5 fps ist, heißt das, dass ich alles nur in Zeitlupe sehe, weil im nächsten Zyklus ja auch nur wieder das nächste Bild abgeholt wird...
Ich müsste also alle Bilder verfallen lassen die zwischendrin sind. Nur, wie mache ich das? Wie sorge ich dafür, dass sobald meine Oberfläche ein Bild will, es wirklich nur das aktuellste kriegt?
Ich bastel grade an einem kleinen Java Programm, das mir das Bild einer Webcam anzeigen soll. Ich hab einerseits die Oberfläche, die von Zeit zu Zeit (eine Sekunde) das Bild aktualisiert, und ich hab eine Art Treiber, der mir kontinuierlich die Bilder aus der Webcam in einen "PushBufferStream" hineinschreibt, von wo ich aus lesen kann.
Mein Problem ist jetzt folgendes: ich möchte nur ein Bild pro Sekunde anzeigen, statt der typischen 12,5 Bilder, die die Kamera automatisch liefert. Aber ich weiß einfach nicht wie...
Derzeit versucht meine Oberfläche, in jedem Zyklus sich ein Bild zu greifen, und zu aktualisieren. Da mein Zyklus langsamer als 12,5 fps ist, heißt das, dass ich alles nur in Zeitlupe sehe, weil im nächsten Zyklus ja auch nur wieder das nächste Bild abgeholt wird...
Ich müsste also alle Bilder verfallen lassen die zwischendrin sind. Nur, wie mache ich das? Wie sorge ich dafür, dass sobald meine Oberfläche ein Bild will, es wirklich nur das aktuellste kriegt?