Compartilhar via


Função MFCreateTranscodeTopology (mfidl.h)

Cria uma topologia de transcodificação parcial.

O construtor de topologia subjacente cria uma topologia parcial conectando os objetos de pipeline necessários: origem, codificador e coletor. O codificador e o coletor são configurados de acordo com as configurações especificadas pelo chamador no perfil de transcodificação.

Para criar o objeto de perfil transcode, chame a função MFCreateTranscodeProfile e defina os atributos necessários chamando os métodos IMFTranscodeProfile apropriados.

O perfil de transcodificação configurado é passado para a função MFCreateTranscodeTopology , que cria a topologia transcode com as configurações apropriadas. Em seguida, o chamador pode definir essa topologia na Sessão de Mídia e iniciar a sessão para iniciar o processo de codificação. Quando a Sessão de Mídia termina, o arquivo transcodificado é gerado.

Sintaxe

HRESULT MFCreateTranscodeTopology(
  [in]  IMFMediaSource      *pSrc,
  [in]  LPCWSTR             pwszOutputFilePath,
  [in]  IMFTranscodeProfile *pProfile,
  [out] IMFTopology         **ppTranscodeTopo
);

Parâmetros

[in] pSrc

Um ponteiro para uma fonte de mídia que encapsula o arquivo de origem a ser transcodificado. O objeto de origem de mídia expõe a interface IMFMediaSource e pode ser criado usando o resolvedor de origem. Para obter mais informações, consulte Usando o resolvedor de origem.

[in] pwszOutputFilePath

Um ponteiro para uma cadeia de caracteres terminada em nulo que contém o nome e o caminho do arquivo de saída a ser gerado.

[in] pProfile

Um ponteiro para o perfil de transcodificação que contém as configurações do fluxo de áudio, do fluxo de vídeo e do contêiner no qual o arquivo é gravado. O objeto de perfil transcode expõe a interface IMFTranscodeProfile e deve ser criado chamando a função MFCreateTranscodeProfile . Depois que o objeto tiver sido criado, o chamador deverá fornecer as configurações chamando os métodos IMFTranscodeProfile apropriados.

[out] ppTranscodeTopo

Recebe um ponteiro para a interface IMFTopology do objeto de topologia transcode. O chamador deve liberar a interface.

Retornar valor

A função retorna um HRESULT. Os possíveis valores incluem, mas sem limitação, aqueles na tabela a seguir.

Código de retorno Descrição
S_OK
A chamada de função foi bem-sucedida e ppTranscodeTopo recebe um ponteiro para a topologia transcode.
E_INVALIDARG
pwszOutputFilePath contém caracteres inválidos.
MF_E_MEDIA_SOURCE_NO_STREAMS_SELECTED
Nenhum fluxo é selecionado na fonte de mídia.
MF_E_TRANSCODE_NO_CONTAINERTYPE
O perfil não contém o atributo MF_TRANSCODE_CONTAINERTYPE .
MF_E_TRANSCODE_NO_MATCHING_ENCODER
Para um ou mais fluxos, não é possível encontrar um codificador que aceite o tipo de mídia fornecido no perfil.
MF_E_TRANSCODE_PROFILE_NO_MATCHING_STREAMS
O perfil não especifica um tipo de mídia para nenhum dos fluxos selecionados na fonte de mídia.

Comentários

Por exemplo, código que usa essa função, confira os seguintes tópicos:

Requisitos

Requisito Valor
Cliente mínimo com suporte Windows 7 [somente aplicativos da área de trabalho]
Servidor mínimo com suporte Windows Server 2008 R2 [somente aplicativos da área de trabalho]
Plataforma de Destino Windows
Cabeçalho mfidl.h
Biblioteca Mf.lib
DLL Mf.dll

Confira também

IMFTopology

Funções do Media Foundation

Topologias

Transcode API