Formato de sinal
[O recurso associado a esta página, DirectShow, é um recurso herdado. Ele foi substituído por MediaPlayer, IMFMediaEngine e Captura de Áudio/Vídeo na Media Foundation. Esses recursos foram otimizados para Windows 10 e Windows 11. A Microsoft recomenda fortemente que o novo código use MediaPlayer, IMFMediaEngine e Captura de Áudio/Vídeo no Media Foundation em vez de DirectShow, quando possível. A Microsoft sugere que o código existente que usa as APIs herdadas seja reescrito para usar as novas APIs, se possível.]
O formato de sinal de uma filmadora DV pode ser NTSC ou PAL, standard ou long-play.
MSDV Driver
Para obter o formato de sinal de entrada do driver MSDV, chame o método IAMExtTransport::GetTransportBasicParameters e passe o sinalizador ED_TRANSBASIC_INPUT_SIGNAL. O método retorna uma constante definida, indicando o formato.
O código a seguir verifica o formato de sinal e usa esse valor para calcular o tempo médio por quadro. A variável Mode recebe a constante de formato de sinal.
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 obter o formato de sinal de saída, chame o mesmo método com o sinalizador ED_TRANSBASIC_OUTPUT_SIGNAL.
UVC Driver
Para obter o formato de sinal de entrada ou saída do driver UVC, chame IAMStreamConfig::GetFormat no pino e examine o bloco de formato de vídeo. (Para dispositivos UVC, o código mostrado no exemplo anterior geralmente retorna ED_TRANSBASIC_SIGNAL_UNKNOWN, portanto, não é confiável.)
Tópicos relacionados