ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 변환 필터 - DirectShow
    미디어/필터 2009. 2. 25. 23:36
    복사 변환 필터
    CTransformFilter
    .CheckInputType()    // virtual
    입력 핀과의 미디어 타입 협상

    .GetMediaType()    // virtual
    called by CTransformOutputPin::GetMediaType() // ???
    출력 핀의 미디어 타입 협상
    .CheckTransform()    // virtual
    출력 핀의 미디어 타입 협상이 완료될 수 있는지 여부
    .DecideBufferSize()    // virtual
    출력 핀의 버퍼 협상
    .EndOfStream()
    .Transform()    // virtual
    call .{CopySample}()
    call .{MyTransform}()

    .BeginFlush()    // called by CTransformInputPin::BeginFlush() // ???
    .EndFlush()    // called by CTransformInputPin::EndFlush() // ???
    .NewSegment()    // called by CTransformInputPin::NewSegment() // ???

    CTransformInputPin -> CBaseInputPin
    .CheckConnect()
    call CTransformFilter::CheckConnect()
    .CheckMediaType()
    call CTransformFilter::CheckInputType
    .CompleteConnect()    // virtual
    call CTransformFilter::CompleteConnect()
    .BreakConnect();                        // Override to release puller
    .Active();                            // pause state
    .Inactive();                            // stop state

    .CurrentMediaType()

    .EndOfStream()
    아래 쪽 필터에 전달

    .BeginFlush() // ???
    call CTransformFilter::BeginFlush() // ???

    .EndFlush() // ???
    call CTransformFilter::EndFlush() // ???

    .NewSegment() // ???
    call CTransformFilter::NewSegment() // ???

    CTransformOutputPin -> CBaseOutputPin
    IMediaSeeking    // CPosPassThru
    위 쪽 필터에 전달

    inplace 변환 필터
    CTransInPlaceFilter
    .Transform()    // virtual
    .CheckInputType()    // virtual

    CTransInPlaceInputPin -> CTransformInputPin

    CTransInPlaceOutputPin -> CTransformOutputPin

Designed by Tistory.