Freigeben über


Fotosequenzmodus

Der Fotosequenzmodus ermöglicht das Aufnehmen einer Abfolge von Fotos als Reaktion auf einen einzelnen Fotoklick der Kamera. In diesem Modus sendet das Aufnahmesystem kontinuierlich Puffer an den Kameratreiber, um die Fotos in einer Sequenz aufzunehmen. Dieser Modus ermöglicht auch das Aufnehmen von Fotos aus einem Zeitraum vor dem Klicken auf Fotos.

Fotosequenzvorgang

Ein Kameratreiber unterstützt das KSPROPERTY_CAMERACONTROL_EXTENDED_PHOTOMODE-Steuerelement, wenn er in der Lage ist, Fotos zu sequenzieren. Die Aufnahmepipeline startet eine Fotosequenz, indem sie einen KS_VideoControlFlag_StartPhotoSequenceCapture Trigger an den Fotostream sendet. An diesem Punkt muss der Treiber mit dem Senden von Aufnahmepuffern beginnen. Die Aufnahmepipeline beendet die Fotosequenz, indem KS_VideoControlFlag_StopPhotoSequenceCapture gesendet wird, um den Fotostream auszuschalten. Für jedes abgeschlossene Foto wird ein neuer Puffer an den Treiber gesendet, in dem Frames aufgenommen werden.

Die Aufnahmepipeline verfügt über eine Konfigurationsphase für den Fotosequenzmodus, in der die Anzahl der vergangenen Frames konfiguriert wird, die für eine bestimmte Fotosequenzsitzung erforderlich sind. Während der Konfigurationsphase muss der Treiber die maximale Anzahl vergangener Fotoframes angeben, die er unterstützt. Außerdem gibt der Treiber an, wie viele Puffer erforderlich sind, um die erforderliche Anzahl vergangener Frames zu unterstützen.

Das erweiterte Steuerelement , KSPROPERTY_CAMERACONTROL_EXTENDED_PHOTOTRIGGERTIME, übergibt die tatsächliche Zeit, zu der der Benutzer in der Kameraanwendung auf den Fototrigger geklickt hat, um die Fotosequenz aufzunehmen. Ohne das richtige Timing weiß der Treiber nicht, von welchem Foto die Rückgabe der Frames beginnen soll, wenn der KS_VideoControlFlag_StartPhotoSequenceCapture-Trigger eintrifft. Mit diesem Steuerelement wird erwartet, dass der Treiber das Foto zurückgibt, das dem angegebenen Zeitpunkt des Fototriggers am nächsten kommt.

Aushandlung der Frameanzahl

Die folgende Abfolge von Vorgängen legt den Fotomodus und die Frameanzahl für den Kameratreiber fest.

  1. Eine Anwendung ruft eine API auf, um das Aufnahmesystem und den Treiber für eine Fotosequenzaufnahme vorzubereiten.

  2. Das Aufnahmesystem sendet einen Aufruf der erweiterten Fotomodus-Eigenschaftsanforderung an den Treiber, KSPROPERTY_CAMERACONTROL_EXTENDED_PHOTOMODE mit KSCAMERA_EXTENDEDPROP_PHOTOMODE_SEQUENCE in den Flags festgelegt, um den Übergang des Treibers in den Fotosequenzmodus zu starten.

    1. Der Treiber erhält die angeforderte Verlaufsframeanzahl aus der Anwendung. Der Treiber muss die Verlaufsframeanzahl zurückgeben, die unterstützt werden kann, zusammen mit der Anzahl der Puffer, die für die Aufbewahrung von Verlaufsframes erforderlich sind.

    2. Der Treiber muss mittels KsEdit die Struktur der Allocatoranforderungen des Pins mit der Anzahl der Puffer bei einem Übergangsaufruf im Fotosequenzmodus aktualisieren.

    3. Der Treiber ändert seinen internen Modus in den Fotosequenzmodus.

  3. Das Erfassungssystem versetzt den Pin in den Zustand KSSTATE_RUN und stellt dem Treiber die Anzahl der Puffer bereit, die für den Fotosequenzmodus angefordert wurden.

Steuerungsunterstützungsanforderungen

Unterstützung für die folgenden erweiterten Steuerelemente ist erforderlich, damit ein Kameratreiber den Fotosequenzmodus unterstützt.