Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Kaynak düğüm, bir medya kaynağından bir akışı temsil eder. Kaynak düğüm medya kaynağına, sunu tanımlayıcısına ve akış tanımlayıcısına yönelik işaretçiler içermelidir.
Topolojiye kaynak düğüm eklemek için aşağıdakileri yapın:
- Kaynak düğümü oluşturmak için MF_TOPOLOGY_SOURCESTREAM_NODE bayrağıyla MFCreateTopologyNode çağırın.
- Medya kaynağının işaretçisi ile düğümdeki MF_TOPONODE_SOURCE özniteliğini ayarlayın.
- Medya kaynağının sunu tanımlayıcısına bir işaretçiyle düğümdeki MF_TOPONODE_PRESENTATION_DESCRIPTOR özniteliğini ayarlayın.
- Düğümdeki MF_TOPONODE_STREAM_DESCRIPTOR özniteliğini, akış için akış tanımlayıcısına yönelik bir işaretçiyle ayarlayın.
- Düğümü topolojiye eklemek için IMFTopology::AddNode'ı çağırın.
Aşağıdaki örnek bir kaynak düğüm oluşturur ve başlatır.
// Add a source node to a topology.
HRESULT AddSourceNode(
IMFTopology *pTopology, // Topology.
IMFMediaSource *pSource, // Media source.
IMFPresentationDescriptor *pPD, // Presentation descriptor.
IMFStreamDescriptor *pSD, // Stream descriptor.
IMFTopologyNode **ppNode) // Receives the node pointer.
{
IMFTopologyNode *pNode = NULL;
// Create the node.
HRESULT hr = MFCreateTopologyNode(MF_TOPOLOGY_SOURCESTREAM_NODE, &pNode);
if (FAILED(hr))
{
goto done;
}
// Set the attributes.
hr = pNode->SetUnknown(MF_TOPONODE_SOURCE, pSource);
if (FAILED(hr))
{
goto done;
}
hr = pNode->SetUnknown(MF_TOPONODE_PRESENTATION_DESCRIPTOR, pPD);
if (FAILED(hr))
{
goto done;
}
hr = pNode->SetUnknown(MF_TOPONODE_STREAM_DESCRIPTOR, pSD);
if (FAILED(hr))
{
goto done;
}
// Add the node to the topology.
hr = pTopology->AddNode(pNode);
if (FAILED(hr))
{
goto done;
}
// Return the pointer to the caller.
*ppNode = pNode;
(*ppNode)->AddRef();
done:
SafeRelease(&pNode);
return hr;
}
İlgili konular