Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
[O recurso associado a esta página, DirectShow, é um recurso herdado. Foi substituído por MediaPlayer, IMFMediaEnginee Audio/Video Capture in Media Foundation. Esses recursos foram otimizados para Windows 10 e Windows 11. A Microsoft recomenda vivamente que o novo código utilize 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.]
[Esta API não é suportada e pode ser alterada ou indisponível no futuro.]
As dicas a seguir ajudarão você a gerenciar projetos no DirectShow Editing Services.
Alterações na Linha do Tempo
- Se alterares a cronologia após criares o grafo de filtros, chama IRenderEngine::ConnectFrontEnd novamente para reconstruir o front-end. Normalmente, isso não afeta o resto do gráfico. Ocasionalmente, no entanto, o mecanismo de renderização precisa excluir o gráfico inteiro antes de reconstruir o front-end. (Por exemplo, isso acontece se você adicionar ou remover um grupo.) O método ConnectFrontEnd retorna S_WARN_OUTPUTRESET para sinalizar que excluiu o gráfico. Se isso acontecer, seu aplicativo deverá reconstruir a seção de renderização do gráfico.
- Para remover completamente todos os objetos da linha do tempo, chame o IAMTimeline::ClearAllGroups método.
Limpeza
- Quando terminar de usar um mecanismo de renderização, chame o IRenderEngine::ScrapIt método. Como com qualquer objeto COM, certifique-se de liberar cada ponteiro de interface quando terminar de usá-lo.
- O mecanismo de renderização não mantém uma contagem de referência na linha do tempo. Não liberte o cronograma antes de terminar de usá-lo, e chame sempre primeiro o ScrapIt no motor de renderização.
- Se você liberar todas as referências a uma linha do tempo, não use nenhum dos objetos nessa linha do tempo, mesmo que você esteja mantendo contagens de referência neles.
Instâncias Múltiplas de Linha do Tempo
- Não mova objetos da linha temporal entre linhas temporais. Cada objeto em uma linha do tempo deve ser criado por essa linha do tempo. A linha do tempo contém um cache interno com informações sobre os objetos que cria; Mover objetos da linha do tempo pode interromper o cache.
- Nunca use a mesma instância de um mecanismo de renderização com mais de uma linha do tempo. O mecanismo de renderização mantém um cache com informações sobre a linha do tempo. Várias linhas do tempo interromperão o cache e causarão resultados imprevisíveis. Se você precisar de duas linhas do tempo ativas, crie instâncias separadas de mecanismos de renderização para cada linha do tempo.
- Uma linha do tempo pode usar mais de um mecanismo de renderização, mas não ao mesmo tempo. Exclua o mecanismo de renderização antigo antes de usar outro mecanismo de renderização. (Normalmente, você faria isso quando mudasse do uso do mecanismo de renderização básico para visualização para o mecanismo de renderização inteligente para gravação de arquivos.)
Persistência
- O gráfico de filtro não é persistente quando você salva o projeto em um arquivo XML. Portanto, você perde todas as informações relacionadas à compactação inteligente, formato de compactação ou parâmetros de compactação. Cabe ao aplicativo restaurar esses parâmetros depois de carregar um projeto.
Tópicos relacionados