Share via


Fotosequenzmodus

Der Fotosequenzmodus ermöglicht die Aufnahme einer Fotosequenz 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 die Aufnahme von Fotos aus einem Zeitraum vor dem Fotoklick.

Fotosequenzvorgang

Ein Kameratreiber unterstützt das KSPROPERTY_CAMERACONTROL_EXTENDED_PHOTOMODE-Steuerelement , wenn Fotos sequenziert werden können. Die Aufnahmepipeline startet eine Fotosequenz, indem ein KS_VideoControlFlag_StartPhotoSequenceCapture Trigger an den Fotostream gesendet wird. An diesem Punkt muss der Treiber mit dem Senden von Erfassungspuffern beginnen. Die Aufnahmepipeline beendet die Fotosequenz, indem sie KS_VideoControlFlag_StopPhotoSequenceCapture nach unten sendet, um den Fotostream auszulösen. Für jedes fertige Foto wird ein neuer Puffer an den Treiber gesendet, in dem Frames erfasst werden können.

Die Aufnahmepipeline verfügt über eine Konfigurationsphase für den Fotosequenzmodus, in der die Anzahl vergangener 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 benötigt werden, 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 diese Zeit weiß der Treiber nicht, von welcher Fotoaufnahme Frames zurückgegeben werden sollen, wenn der KS_VideoControlFlag_StartPhotoSequenceCapture Trigger eintrifft. Mit diesem Steuerelement wird erwartet, dass der Treiber das Foto zurückgibt, das der angegebenen Fototriggerzeit 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 ruft die Anforderung der erweiterten Fotomodus-Eigenschaft an den Treiber auf, KSPROPERTY_CAMERACONTROL_EXTENDED_PHOTOMODE mit in den Flags festgelegten KSCAMERA_EXTENDEDPROP_PHOTOMODE_SEQUENCE, um den Übergang des Treibers in den Fotosequenzmodus zu starten.

    1. Der Treiber erhält die angeforderte Verlaufsrahmenanzahl der Anwendung. Der Treiber muss die Anzahl der Verlaufsrahmen zurückgeben, die er unterstützen kann, zusammen mit der Anzahl der Puffer, die zum Speichern von Verlaufsframes erforderlich sind.

    2. Der Treiber muss die Struktur der Zuweisungsanforderungen des Pins mit der Anzahl der Puffer aktualisieren, die durch den Übergangsaufruf des Fotosequenzmodus mithilfe von KsEdit erstellt werden.

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

  3. Das Aufnahmesystem überwechselt den Pin zu KSSTATE_RUN und stellt dem Treiber die Anzahl der Puffer zur Verfügung, die für den Fotosequenzmodus angefordert werden.

Steuern der Supportanforderungen

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