Partager via


Signal Format

[La fonctionnalité associée à cette page, DirectShow, est une fonctionnalité héritée. Il a été remplacé par MediaPlayer, IMFMediaEngine et Audio/Video Capture dans Media Foundation. Ces fonctionnalités ont été optimisées pour Windows 10 et Windows 11. Microsoft recommande vivement au nouveau code d’utiliser MediaPlayer, IMFMediaEngine et La capture audio/vidéo dans Media Foundation au lieu de DirectShow, lorsque cela est possible. Microsoft suggère que le code existant qui utilise les API héritées soit réécrit pour utiliser les nouvelles API si possible.]

Le format de signal d’un caméscope DV peut être NTSC ou PAL, standard ou long-play.

Pilote MSDV

Pour obtenir le format du signal d’entrée à partir du pilote MSDV, appelez la méthode IAMExtTransport::GetTransportBasicParameters et passez l’indicateur ED_TRANSBASIC_INPUT_SIGNAL. La méthode retourne une constante définie, indiquant le format.

Le code suivant vérifie le format du signal et utilise cette valeur pour calculer la durée moyenne par trame. Le mode variable reçoit la constante de format de signal.

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

Pour obtenir le format du signal de sortie, appelez la même méthode avec l’indicateur ED_TRANSBASIC_OUTPUT_SIGNAL.

Pilote UVC

Pour obtenir le format du signal d’entrée ou de sortie à partir du pilote UVC, appelez IAMStreamConfig::GetFormat sur le code pin et examinez le bloc de format vidéo. (Pour les appareils UVC, le code indiqué dans l’exemple précédent retourne généralement ED_TRANSBASIC_SIGNAL_UNKNOWN, de sorte qu’il n’est pas fiable.)

Contrôle d’un caméscope DV