Signalformat

[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.]

Das Signalformat eines DV-Camcorders kann NTSC oder PAL, Standard oder Long-Play sein.

MSDV-Treiber

Um das Eingabesignalformat vom MSDV-Treiber abzurufen, rufen Sie die IAMExtTransport::GetTransportBasicParameters-Methode auf, und übergeben Sie das flag ED_TRANSBASIC_INPUT_SIGNAL. Die -Methode gibt eine definierte Konstante zurück, die das Format angibt.

Der folgende Code überprüft das Signalformat und verwendet diesen Wert, um die durchschnittliche Zeit pro Frame zu berechnen. Die Variable Mode empfängt die Signalformatkonstante.

LONG Mode, AvgTimePerFrame;
hr = MyDevCap.pTransport->GetTransportBasicParameters(
        ED_TRANSBASIC_INPUT_SIGNAL, &Mode, NULL);
if (SUCCEEDED(hr))
{
    switch (Mode)
    {
    case ED_TRANSBASIC_SIGNAL_525_60_SD: // NTSC SD
        AvgTimePerFrame = 33;  // 33 msec (29.97 FPS)
        break;
    case ED_TRANSBASIC_SIGNAL_525_60_SDL: // NTSC SDL
        AvgTimePerFrame = 33;  
        break;
    case ED_TRANSBASIC_SIGNAL_625_50_SD: // PAL SD
        AvgTimePerFrame = 40;  // 40 msec (25 FPS)
        break;
    case ED_TRANSBASIC_SIGNAL_625_50_SDL: // PAL SDL
        AvgTimePerFrame = 40;  
        break;
    default: 
        // Unknown type
        AvgTimePerFrame = 33; // Default
        break;
    }
}

Rufen Sie zum Abrufen des Ausgabesignalformats dieselbe Methode mit dem flag ED_TRANSBASIC_OUTPUT_SIGNAL auf.

UVC-Treiber

Um das Ein- oder Ausgabesignalformat vom UVC-Treiber abzurufen, rufen Sie IAMStreamConfig::GetFormat am Pin auf, und untersuchen Sie den Videoformatblock. (Für UVC-Geräte gibt der im vorherigen Beispiel gezeigte Code normalerweise ED_TRANSBASIC_SIGNAL_UNKNOWN zurück, sodass er nicht zuverlässig ist.)

Steuern eines DV-Camcorders