미디어 원본 구성

Source Resolver를 사용하여 미디어 원본을 만드는 경우 구성 속성이 포함된 속성 저장소를 지정할 수 있습니다. 이러한 속성은 미디어 원본을 초기화하는 데 사용됩니다. 지원되는 속성 집합은 미디어 원본의 구현에 따라 달라집니다. 모든 미디어 원본이 구성 속성을 정의하는 것은 아닙니다.

다음 표에서는 Media Foundation에 제공되는 미디어 원본에 대한 구성 속성을 나열합니다. 타사 미디어 원본은 자체 사용자 지정 속성을 정의할 수 있습니다.

미디어 원본 속성
네트워크 원본 네트워크 원본 기능을 참조하세요.
ASF 미디어 원본

 

원본을 구성하려면 다음 단계를 수행합니다.

  1. PSCreateMemoryPropertyStore를 호출하여 새 속성 저장소를 만듭니다. 이 함수는 IPropertyStore 포인터를 반환합니다.
  2. IPropertyStore::SetValue를 호출하여 하나 이상의 구성 속성을 설정합니다.
  3. IMFSourceResolver::CreateObjectFromURL과 같은 원본 확인자의 생성 함수 중 하나를 호출하고 pProps 매개 변수에 IPropertyStore 포인터를 전달합니다.
// Creates a media source from a URL.

HRESULT CreateMediaSource(
    PCWSTR pszURL, 
    IPropertyStore *pConfig,    // Optional, can be NULL
    IMFMediaSource **ppSource
    )
{
    IMFSourceResolver* pSourceResolver = NULL;
    IUnknown* pSource = NULL;

    // Create the source resolver.
    HRESULT hr = MFCreateSourceResolver(&pSourceResolver);

    // Use the source resolver to create the media source.
    if (SUCCEEDED(hr))
    {
        MF_OBJECT_TYPE ObjectType;

        DbgLog(L"CreateObjectFromURL");

        hr = pSourceResolver->CreateObjectFromURL(
            pszURL,                     
            MF_RESOLUTION_MEDIASOURCE,  // Create a media source.
            pConfig,                    // Configuration properties.
            &ObjectType,                // Receives the object type. 
            &pSource            
            );

        DbgLog(L"CreateObjectFromURL - FINISHED");

    }

    if (SUCCEEDED(hr))
    {
        hr = pSource->QueryInterface(IID_PPV_ARGS(ppSource));
    }

    SafeRelease(&pSourceResolver);
    SafeRelease(&pSource);
    return hr;
}

원본 확인자는 IPropertyStore 포인터를 원본을 만드는 스키마 처리기 또는 바이트 스트림 처리기에 직접 전달합니다. 원본 확인자는 속성의 유효성을 검사하지 않습니다.

일반적으로 이러한 속성은 고급 설정에 사용됩니다. 속성 저장소를 제공하지 않으면 미디어 원본이 여전히 기본 설정으로 올바르게 작동해야 합니다.

원본 확인자