Share via


Formato de señal

[La característica asociada a esta página, DirectShow, es una característica heredada. Se ha reemplazado por MediaPlayer, IMFMediaEngine y Captura de audio/vídeo en Media Foundation. Esas características se han optimizado para Windows 10 y Windows 11. Microsoft recomienda encarecidamente que el nuevo código use MediaPlayer, IMFMediaEngine y Audio/Video Capture en Media Foundation en lugar de DirectShow, siempre que sea posible. Microsoft sugiere que el código existente que usa las API heredadas se reescriba para usar las nuevas API si es posible.

El formato de señal de una videocámara DV puede ser NTSC o PAL, estándar o de larga reproducción.

Controlador MSDV

Para obtener el formato de señal de entrada del controlador MSDV, llame al método IAMExtTransport::GetTransportBasicParameters y pase la marca ED_TRANSBASIC_INPUT_SIGNAL. El método devuelve una constante definida, que indica el formato.

El código siguiente comprueba el formato de señal y usa este valor para calcular el tiempo medio por fotograma. El modo variable recibe la constante de formato de señal.

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

Para obtener el formato de señal de salida, llame al mismo método con la marca ED_TRANSBASIC_OUTPUT_SIGNAL.

Controlador UVC

Para obtener el formato de señal de entrada o salida del controlador UVC, llame a IAMStreamConfig::GetFormat en la patilla y examine el bloque de formato de vídeo. (En el caso de los dispositivos UVC, el código que se muestra en el ejemplo anterior normalmente devuelve ED_TRANSBASIC_SIGNAL_UNKNOWN, por lo que no es confiable).

Control de una videocámara DV