Share via


비디오 색 원본

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

참고

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

 

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

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

CLSID 변수 이름: CLSID_ColorSource

속성

속성 Type 기본값 Description
"색" 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 표현을 보여줍니다. 이 경우 매개 변수 요소는 또는 선형 요소에서 지원되지 않습니다. 개체가 동적 속성을 지원하지 않기 때문입니다.

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