IMFTranscodeSinkInfoProvider-Schnittstelle (mfidl.h)
Wird vom Aktivierungsobjekt der Transcodierungssenke implementiert.
Das Aktivierungsobjekt der Transcodierungssenke kann verwendet werden, um eine der folgenden Dateisenken zu erstellen:
- 3GP-Dateisenke
- MP3-Dateisenke
- MP4-Dateisenke
Vererbung
Die IMFTranscodeSinkInfoProvider-Schnittstelle erbt von der IUnknown-Schnittstelle . IMFTranscodeSinkInfoProvider verfügt auch über folgende Membertypen:
Methoden
Die IMFTranscodeSinkInfoProvider-Schnittstelle verfügt über diese Methoden.
IMFTranscodeSinkInfoProvider::GetSinkInfo Ruft die Medientypen für die Audio- und Videostreams ab, die im Transcodierungsprofil angegeben sind. |
IMFTranscodeSinkInfoProvider::SetOutputByteStream Legt einen Ausgabebytestream für die Transcodierungsmediensenke fest. |
IMFTranscodeSinkInfoProvider::SetOutputFile Legt den Namen der codierten Ausgabedatei fest. |
IMFTranscodeSinkInfoProvider::SetProfile Legt das Transcodierungsprofil für das Aktivierungsobjekt der Transcodierungssenke fest. |
Hinweise
Führen Sie die folgenden Schritte aus, um diese Schnittstelle zu verwenden:
- Rufen Sie MFCreateTranscodeSinkActivate auf, um das Transcode-Senkenaktivierungsobjekt zu erstellen.
- Fragen Sie das Aktivierungsobjekt für die IMFTranscodeSinkInfoProvider-Schnittstelle ab.
- Rufen Sie MFCreateTranscodeProfile auf, um ein Transcodierungsprofil zu erstellen.
- Legen Sie das attribut MF_TRANSCODE_CONTAINERTYPE für das Transcodierungsprofil fest. Das Attribut muss über einen der folgenden Werte verfügen:
- MFTranscodeContainerType_3GP
- MFTranscodeContainerType_MP3
- MFTranscodeContainerType_MPEG4
- Rufen Sie IMFTranscodeProfile::SetVideoAttributes und IMFTranscodeProfile::SetAudioAttributes auf, um die Video- und Audioformate anzugeben.
- Rufen Sie IMFTranscodeSinkInfoProvider::SetProfile auf, um das Transcodierungsprofil festzulegen.
- Rufen Sie eine der folgenden Methoden (aber nicht beide) auf, um die Ausgabedatei anzugeben:
- Rufen Sie IMFActivate::ActivateObject für das Aktivierungsobjekt auf, um die Mediensenke zu erstellen.
Beispiele
// Creates an activation object for the generic transcode sink.
HRESULT CreateTranscodeSinkActivate(
REFGUID guidContainerType,
IMFAttributes *pVideoAttributes,
IMFAttributes *pAudioAttributes,
IMFActivate *pByteStreamActivate,
IMFActivate **ppSinkActivate
)
{
IMFActivate* pSinkActivate = NULL;
IMFTranscodeSinkInfoProvider* pSinkInfoProvider = NULL;
IMFTranscodeProfile* pProfile = NULL;
IMFAttributes* pContainerAttributes = NULL;
HRESULT hr = MFCreateAttributes(&pContainerAttributes, 1);
if (FAILED(hr))
{
goto done;
}
// Create the transcode profile.
hr = MFCreateTranscodeProfile(&pProfile);
if (FAILED(hr))
{
goto done;
}
// Set the profile attributes.
hr = pContainerAttributes->SetGUID(MF_TRANSCODE_CONTAINERTYPE, guidContainerType);
if (FAILED(hr))
{
goto done;
}
hr = pProfile->SetContainerAttributes(pContainerAttributes);
if (FAILED(hr))
{
goto done;
}
if (pVideoAttributes)
{
hr = pProfile->SetVideoAttributes(pVideoAttributes);
if (FAILED(hr))
{
goto done;
}
}
if (pAudioAttributes)
{
hr = pProfile->SetAudioAttributes(pAudioAttributes);
if (FAILED(hr))
{
goto done;
}
}
// Create the transcode sink activation object.
hr = MFCreateTranscodeSinkActivate(&pSinkActivate);
if (FAILED(hr))
{
goto done;
}
hr = pSinkActivate->QueryInterface(IID_PPV_ARGS(&pSinkInfoProvider));
if (FAILED(hr))
{
goto done;
}
// Set the output byte stream.
hr = pSinkInfoProvider->SetOutputByteStream(pByteStreamActivate);
if (FAILED(hr))
{
goto done;
}
// Set the transcode profile.
hr = pSinkInfoProvider->SetProfile(pProfile);
if (FAILED(hr))
{
goto done;
}
// Return the activation object to the caller.
*ppSinkActivate = pSinkActivate;
(*ppSinkActivate)->AddRef();
done:
SafeRelease(&pProfile);
SafeRelease(&pSinkInfoProvider);
SafeRelease(&pSinkActivate);
SafeRelease(&pContainerAttributes);
return hr;
}
Anforderungen
Anforderung | Wert |
---|---|
Unterstützte Mindestversion (Client) | Windows 7 [nur Desktop-Apps] |
Unterstützte Mindestversion (Server) | Windows Server 2008 R2 [nur Desktop-Apps] |
Zielplattform | Windows |
Kopfzeile | mfidl.h |