다음을 통해 공유


비디오 색 원본

[DirectShow 이 페이지와 연결된 기능은 레거시 기능입니다. MediaPlayer, IMFMediaEngine, Media Foundation 오디오/비디오 캡처대체되었습니다. 이러한 기능은 Windows 10 및 Windows 11에 최적화되었습니다. Microsoft는 가능하면 새로운 코드에서 MediaPlayer, IMFMediaEngineAudio/Video Capture를 DirectShow대신 Media Foundation 사용하는 것이 좋습니다. 가능한 경우 레거시 API를 사용하는 기존 코드를 다시 작성하여 새 API를 사용하도록 제안합니다.]

메모

[사용되지 않습니다. 이 API는 이후 Windows 릴리스에서 제거될 수 있습니다.]

 

비디오 색 원본은 단색의 연속 비디오 이미지를 만듭니다.

클래스 ID(CLSID): {0CFDD070-581A-11D2-9EE6-006008039E37}

CLSID 변수 이름: CLSID_ColorSource

속성

재산 기본값 묘사
"색" DWORD 0 생성할 색을 지정합니다. 비고를 참조하세요.

 

발언

비디오 색 원본은 원본 개체와 함께 사용됩니다. 먼저 새 원본 개체를 만듭니다. 그런 다음 IAMTimelineObj::SetSubObjectGUID 메서드를 호출하여 원본 개체의 하위 개체 GUID를 CLSID_ColorSource 설정합니다.

색을 설정하려면 Property Setter 개체를 만들고 0에 "Color" 속성을 적용합니다. 이 속성의 값은 0xAARRGGBB 형식이16진수입니다. 여기서 AA 알파 값이고, RR 빨간색 값이고, GG 녹색 값이고, BB 파란색 값입니다. 알파 값은 0x00(투명)에서 0xFF(불투명)에 이르기까지 다양합니다. 속성이 정적이며 시간 0에 적용해야 합니다.

알파 값을 지정하지 않으면 기본적으로 0(투명)으로 설정됩니다. 32비트 색 비디오 프로젝트에서는 알파를 사용하여 비디오 색 원본을 완전히 투명하게 렌더링하는 전환 또는 효과가 발생합니다. 안전하려면 항상 알파를 지정합니다. 예를 들어 불투명 검정은 0xFF000000.

다음 코드 예제에서는이 개체를 사용 하는 방법을 보여 있습니다. IPropertySetter사용하는 방법에 대한 자세한 내용은 효과 및 전환 속성 설정참조하세요.

DWORD           dwYellow = 0xFFFF00;
IAMTimelineObj  *pSource = NULL;

// Create the source.
HRESULT hr = pTimeline->CreateEmptyNode(&pSource, TIMELINE_MAJOR_TYPE_SOURCE);
if (SUCCEEDED(hr))
{
    hr = pSource->SetStartStop(0, 50000000);
}

if (SUCCEEDED(hr))
{
    hr = pSource->SetSubObjectGUID(CLSID_ColorSource);
}

// Create a property setter.
if (SUCCEEDED(hr))
{
    IPropertySetter *pProp = NULL;
    
    hr = CoCreateInstance(CLSID_PropertySetter, NULL, CLSCTX_INPROC_SERVER, 
        IID_PPV_ARGS(&pProp));

    if SUCCEEDED(hr))
    {
        // Set the color.    
        DEXTER_PARAM param;
        DEXTER_VALUE val;

        param.Name = SysAllocString(OLESTR("Color"));
        param.dispID = 0;
        param.nValues = 1;

        if (param.Name == NULL)
        {
            hr = E_OUTOFMEMORY;
        }
        else
        {
            val.v.vt = VT_I4;
            val.v.lVal = dwYellow;
            val.rt = 0;  // Time must be zero.
            val.dwInterp = DEXTERF_JUMP;

            hr = pProp->AddProp(param, &val);
            
            SysFreeString(param.Name);
        }

        if (SUCCEEDED(hr))
        {
            hr = pSource->SetPropertySetter(pProp); 
        }
        pProp->Release();
    }
}

다음 예제에서는 이전 예제에서 만든 개체의 XML 표현을 보여줍니다. 이 경우 param 요소는 개체가 동적 속성을 지원하지 않으므로또는 선형 요소에서지원하지 않습니다.

<clip start="0" stop="5" clsid="{0CFDD070-581A-11D2-9EE6-006008039E37}">
    <param name="Color" value="16776960"/>
</clip>