Freigeben über


IAMTimelineObj::SetStartStop-Methode

[Das dieser Seite zugeordnete Feature DirectShow ist ein Legacyfeature. Es wurde von MediaPlayer, IMFMediaEngine und Audio/Video Capture in Media Foundation abgelöst. Diese Features wurden für Windows 10 und Windows 11 optimiert. Microsoft empfiehlt dringend, dass neuer Code mediaPlayer, IMFMediaEngine und Audio/Video Capture in Media Foundation anstelle von DirectShow verwendet, wenn möglich. Microsoft schlägt vor, dass vorhandener Code, der die Legacy-APIs verwendet, so umgeschrieben wird, dass nach Möglichkeit die neuen APIs verwendet werden.]

Hinweis

[Veraltet. Diese API kann aus zukünftigen Versionen von Windows entfernt werden.]

 

Die SetStartStop -Methode legt die Start- und Stoppzeiten des Objekts relativ zum übergeordneten Objekt fest.

Syntax

HRESULT SetStartStop(
   REFERENCE_TIME Start,
   REFERENCE_TIME Stop
);

Parameter

Starten

Neue Startzeit in 100 Nanosekundeneinheiten oder –1, um die vorhandene Startzeit beizubehalten.

Beenden

Neue Stoppzeit in 100 Nanosekundeneinheiten oder –1, um die vorhandene Stoppzeit beizubehalten.

Rückgabewert

Gibt einen der folgenden HRESULT-Werte zurück:

Rückgabecode BESCHREIBUNG
S_OK
Erfolg.
E_INVALIDARG
Ungültiges Argument.
E_NOTIMPL
Nicht implementiert.

 

Bemerkungen

Titel, Kompositionen und Gruppen implementieren diese Methode nicht. Für diese Objekte ist die Startzeit immer null, und die Stoppzeit ist die maximale Stoppzeit der enthaltenen Objekte.

Legen Sie keine überlappenden Zeiten für Quellobjekte innerhalb derselben Spur fest. Dies kann zu undefiniertem Verhalten führen.

Bei Quellobjekten sind die Start- und Endzeiten unabhängig von den Medienstart- und Medienstoppzeiten. Das Ändern eines Wertepaars ändert sich nicht am anderen. Um die Start- und Endzeiten der Medien festzulegen, rufen Sie die IAMTimelineSrc::SetMediaTimes-Methode auf. Weitere Informationen finden Sie unter Time in DirectShow Editing Services.

Um framegenaue Schnitte und Übergänge zu erhalten, legen Sie die Parameter Start und Stop auf Rahmengrenzen fest. Sie können die IAMTimelineObj::FixTimes-Methode verwenden, um einen Zeitwert in die nächste Framegrenze zu konvertieren, oder die folgende Funktion verwenden, um von der Framenummer in die Referenzzeit zu konvertieren:

REFERENCE_TIME inline FrameNumToTime(LONGLONG frame, double fps)
{
    double dt = (frame * 10000000 / fps);
    if (frame >= 0) 
    {
        dt += 0.5;    }
    else
    {
        dt -= 0.5;
    }
    return (REFERENCE_TIME)dt;
}

Hinweis

Die Headerdatei Qedit.h ist nicht mit Direct3D-Headern ab Version 7 kompatibel.

 

Hinweis

Um Qedit.h zu erhalten, laden Sie das Microsoft Windows SDK Update für Windows Vista und .NET Framework 3.0 herunter. Qedit.h ist im Microsoft Windows SDK für Windows 7 und .NET Framework 3.5 Service Pack 1 nicht verfügbar.

 

Anforderungen

Anforderung Wert
Header
Qedit.h
Bibliothek
Strmiids.lib

Siehe auch

IAMTimelineObj-Schnittstelle

Fehler- und Erfolgscodes