Delen via


Signaalindeling

[De functie die is gekoppeld aan deze pagina, DirectShow, is een verouderde functie. Het is vervangen door MediaPlayer, IMFMediaEngineen Audio/Video Capture in Media Foundation. Deze functies zijn geoptimaliseerd voor Windows 10 en Windows 11. Microsoft raadt ten zeerste aan om nieuwe code te gebruiken MediaPlayer, IMFMediaEngine en Audio/Video Capture in Media Foundation in plaats van DirectShow, indien mogelijk. Microsoft stelt voor dat bestaande code die gebruikmaakt van de verouderde API's, indien mogelijk opnieuw worden geschreven om de nieuwe API's te gebruiken.]

De signaalindeling van een DV-webcam kan NTSC of PAL, standaard of longplay zijn.

MSDV-stuurprogramma

Als u de indeling van het invoersignaal van het MSDV-stuurprogramma wilt ophalen, roept u de IAMExtTransport::GetTransportBasicParameters methode aan en geeft u de vlag ED_TRANSBASIC_INPUT_SIGNAL door. De methode retourneert een gedefinieerde constante, die de notatie aangeeft.

De volgende code controleert de signaalindeling en gebruikt deze waarde om de gemiddelde tijd per frame te berekenen. De variabelemodus ontvangt de signaalnotatieconstante.

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;
    }
}

Als u de indeling van het uitvoersignaal wilt ophalen, roept u dezelfde methode aan met de vlag ED_TRANSBASIC_OUTPUT_SIGNAL.

UVC-stuurprogramma

Als u de indeling van het invoer- of uitvoersignaal van het UVC-stuurprogramma wilt ophalen, roept u IAMStreamConfig::GetFormat op de pin aan en bekijkt u het videoformaatblok. (Voor UVC-apparaten retourneert de code die in het vorige voorbeeld wordt weergegeven, meestal ED_TRANSBASIC_SIGNAL_UNKNOWN, zodat deze niet betrouwbaar is.)

een DV- beheren