2013년 12월 11일 수요일

SDK - ATEM Switchers (7 오디오 혼합하기)

7 오디오 혼합하기
오디오는 프로그램 출력에서 혼합되는 것이든지 미디어 플레이어나 외부 오디오 입력이나 입력의 비디오로 임베디드된 소스이든지 모든 스위처는  제어를 허용한다.

7.2 인터페이스 참조

7.2.1 IBMDSwitcherAudioMixer 인터페이스
모든 오디오 혼합하기 제어나 피드백의 뿌리 객체이다.
IBMDSwitcher 객체 인터페이스의 QueryInterface 메소드를 사용하여 포함되어질 것이다. IID 파라미터를 위한 IID_IBMDSwitcherAudioMixer 는 패스~

  • 관계된 인터페이스
    • IBMDSwitcher
      • 인터페이스ID
        • IID_IBMDSwitcher
      • IBMDSwitcher::QueryInterface는 IBMDSwitcherAudioMixer 객체 인터페이스를 반환할 수 있다.
  • 메소드
    • GetProgramOutGain, SetProgramOutGain
      • 현재 프로그램 출력 gain 값 가져오거나 설정하기
    • GetProgramOutBalance, SetProgramOutBalance
      • 현재 프로그램 출력 벨런스 값 가져오거나 설정하기
    • SetAllLevelNotificationsEnable
      • Opt-in 레벨 알림
    • ResetProgramOutLevelNotificationPeaks
      • 프로그램 출력 최대 레벨 통계에서 0으로 재설정
    • ResetAllLevelNotificationPeaks
      • 모든 스위처 최대 레벨 통계에서 0으로 재설정
    • AddCallback, RemoveCallback
    • CreateIterator

7.2.2 IBMDSwitcherAudioMixerCallback 인터페이스

7.2.3 IBMDSwitcherAudioInputIterator 인터페이스

7.2.4 IBMDSwitcherAudioInput 인터페이스
오디오 입력의 설정을 조작하는데 사용됨
  • 관계된 인터페이스
    • IBMDSwitcherAudioInputIterator
      • 인터페이스ID
        • IID_IBMDSwitcherAudioInputIterator
      • IBMDSwitcherAudioInputIterator::Next 메소드 호출이 성공한 후에 반환될 것임
  • 메소드
    • GetType
      • 오디오 입력 형식 가져오기
    • GetMixOption, SetMixOption
      • 현재 혼합 옵션
    • GetGain, SetGain
      • 현재 gain 값 가져오거나 설정하기
    • GetBalance, SetBalance
      • 현재 벨런스 값 가져오거나 설정하기
    • IsMixedIn
      • 현재 is-mixed-in 플래그 가져오기
    • GetAudioInputId
      • 오디오 입력의 식별자 가져오기
    • ResetLevelNotificationPeaks
      • 최대 레벨 통계에서 0으로 재설정
    • AddCallback, RemoveCallback

7.2.5 IBMDSwitcherAudioInputCallback 인터페이스

7.2.6 IBMDSwitcherAudioMonitorOutputIterator 인터페이스

7.2.7 IBMDSwitcherAudioMonitorOutput 인터페이스
오디오 모니터 출력 명세 파라미터 조작에 사용됨
  • 관계된 인터페이스
    • IBMDSwitcherAudioMonitorOutputIterator
      • 인터페이스ID
        • IID_IBMDSwitcherAudioMonitorOutput
      • IBMDSwitcherAudioMonitorOutputIterator::Next 로 포함될 수 있다.
  • 메소드
    • GetMonitorEnable, SetMonitorEnable
      • 현재 모니터-활성 플래그 가져오거나 설정하기
    • GetMute, SetMute
      • 현재 음소거 플래그 가져오거나 설정하기
    • GetGain, SetGain
      • 현재 gain 값 가져오거나 설정하기
    • GetSolo, SetSolo
      • 현재 독주 플래그 가져오거나 설정하기
    • GetSoloInput, SetSoloInput
      • 현재 독주되는 입력 가져오거나 설정하기
    • GetDim, SetDim
      • 현재 흐릿함 플래그 가져오거나 설정하기
    • GetDimLevel, SetDimLevel
      • 현재 흐릿함 정도 가져오거나 설정하기
    • ResetLevelNotificationPeaks
      • 최대 레벨 통계에서 0으로 재설정
    • AddCallback, RemoveCallback

7.2.8 IBMDSwitcherAudioMonitorOutputCallback 인터페이스

2013년 12월 9일 월요일

SDK - ATEM Switchers (6. SuperSource)

6 SuperSource (수퍼소스)
타겟 스위처가 사용 가능할 때, 수퍼소스는 단순 비디오 출력의 부분으로 박스에 표시 되는 것에 다양한 비디오 소스를 허락한다.

6.1 수퍼소스 자료형

6.1.1 수퍼소스 상자 이벤트 형
BMDSwitcherSuperSourceBoxEventType은 BMDSwitcherSuperSourceBox의 가능한 이벤트 형을 열거한다.

  • bmdSwitcherSuperSourceBoxEventTypeInputSourceChanged
    • 소스 입력 변경됨
  • bmdSwitcherSuperSourceBoxEventTypePositionXChanged
    • x 위치 변경됨
  • bmdSwitcherSuperSourceBoxEventTypePositionYChanged
    • y 위치 변경됨
  • bmdSwitcherSuperSourceBoxEventTypeSizeChanged
    • 크기 변경됨
  • bmdSwitcherSuperSourceBoxEventTypeCroppedChanged
    • 수확된 플래그 변경됨
  • bmdSwitcherSuperSourceBoxEventTypeCropTopChanged
    • 위 수확 값 변경됨
  • bmdSwitcherSuperSourceBoxEventTypeCropBottomChanged
    • 아래
  • bmdSwitcherSuperSourceBoxEventTypeCropLeftChanged
    • 왼쪽
  • bmdSwitcherSuperSourceBoxEventTypeCropRightChanged
    • 오른쪽

6.1.2 수퍼소스 입력 이벤트 형
BMDSwitcherInputSuperSourceEventType은 BMDSwitcherInputSuperSource의 가능한 이벤트 형을 열거한다.

6.1.3 수퍼소스 예술 옵션
BMDSwitcherSuperSourceArtOption은 IBMDSwitcherInputSuperSource 객체 인터페이스에 의해 사용되어지는 가능한 수퍼소스 예술 옵션을 열거한다.

6.2 인터페이스 참조

6.2.1 IBMDSwitcherInputSuperSource 인터페이스
IBMDSwitcherInputSuperSource 객체 인터페이스는 수퍼소스 입력의 설정 명세 조작에 사용된다.
  • 관계된 인터페이스
    • IBMDSwitcherInput
      • 인터페이스ID
        • IID_IBMDSwitcherInput
      • IBMDSwitcherInputSuperSource 객체 인터페이스는 IBMDSwitcherInput::QueryInterface로 포함되어질 수 있다.
  • 메소드
    • GetInputCut, SetInputCut
      • 현재 예술 cut 입력 가져오거나 설정하기
    • GetInputFill, SetInputFill
      • 현재 예술 채움 입력 가져오거나 설정하기
    • GetFillInputAvailabilityMask
      • 이 입력의 채움을 위한 사용가능한 마스크 가져오기
    • GetCutInputAvailabilityMask
      • 이 입력의 cut을 위한 사용가능한 마스크 가져오기
    • GetArtOption, SetArtOption
      • 현재 예술 옵션 가져오거나 설정하기
    • GetPreMultiplied, SetPreMultiplied
      • 현재 미리 곱해진 플래그 가져오거나 설정하기
    • GetClip, SetClip
      • 현재 예술 클립 값 가져오거나 설정하기
    • GetGain, SetGain
      • 현재 예술 gain을 가져오거나 설정하기
    • GetInverse, SetInverse
      • 현재 예술 반전 플래그 가져오거나 설정하기
    • GetBorderEnabled, SetBorderEnabled
      • 현재 경계 활성화된 플래그 가져오거나 설정하기
    • GetBorderBevel, SetBorderBevel
      • 현재 경계 사각 가져오거나 설정하기
    • GetBorderWidthOut, SetBorderWidthOut
      • 현재 경계 바깥쪽 너비 가져오거나 설정하기
    • GetBorderWidthIn, SetBorderWidthIn
      • 현재 경계 안쪽 너비 가져오거나 설정하기
    • GetBorderSoftnessOut, SetBorderSoftnessOut
      • 현재 경계 바깥쪽 유연성 가져오거나 설정하기
    • GetBorderSoftnessIn, SetBorderSoftnessIn
      • 현재 경계 안쪽 유연성 가져오거나 설정하기
    • GetBorderBevelSoftness, SetBorderBevelSoftness
      • 현재 경계 사각 유연성 가져오거나 설정하기
    • GetBorderBevelPosition, SetBorderBevelPosition
      • 현재 경계 사각 위치 가져오거나 설정하기
    • GetBorderHue, SetBorderHue
      • 현재 경계 색조값 가져오거나 설정하기
    • GetBorderSaturation, SetBorderSaturation
      • 현재 경계 채도값 가져오거나 설정하기
    • GetBorderLuma, SetBorderLuma
      • 현재 경계 밝기값 가져오거나 설정하기
    • GetBorderLightSourceDirection, SetBorderLightSourceDirection
      • 현재 경계 빛 소스 방향 가져오거나 설정하기
    • GetBorderLightSourceAltitude, SetBorderLightSourceAltitude
      • 현재 경계 빛 소스 높이 가져오거나 설정하기
    • AddCallback, RemoveCallback
    • CreateIterator

6.2.2 IBMDSwitcherInputSuperSourceCallback 인터페이스

6.2.3 IBMDSwitcherSuperSourceBoxIterator 인터페이스

6.2.4 IBMDSwitcherSuperSourceBox 인터페이스
수퍼소스 상자 설정 조작에 사용됨

  • 관계된 인터페이스
    • IBMDSwitcherSuperSourceBoxIterator
      • 인터페이스ID
        • IID_IBMDSwitcherSuperSourceBoxIterator
      • IBMDSwitcherSuperSourceBoxIterator::Next 메소드 호출이 성공한 이후 반환될 것임
  • 메소드
    • GetEnabled, SetEnabled
      • 현재 활성화된 플래그 가져오거나 설정하기
    • GetInputSource, SetInputSource
      • 입력 소스 가져오거나 설정하기
    • GetPositionX, SetPositionX
      • x 위치 가져오거나 설정하기
    • GetPositionY, SetPositionY
      • y 위치 가져오거나 설정하기
    • GetSize, SetSize
      • 크기 가져오거나 설정하기
    • GetCropped, SetCropped
      • 수확됨 플래그 가져오거나 설정하기
    • GetCropTop, SetCropTop
      • 위쪽 수확 값 가져오거나 설정하기
    • GetCropBottom, SetCropBottom
      • 아래쪽 수확 값 가져오거나 설정하기
    • GetCropLeft, SetCropLeft
      • 왼쪽 수확 값 가져오거나 설정하기
    • GetCropRight, SetCropRight
      • 오른쪽 수확 값 가져오거나 설정하기
    • ResetCrop
      • 기본 수확값 재설정
    • GetInputAvailabilityMask
      • 입력 사용가능한 마스크 가져오기
    • AddCallback, RemoveCallback

6.2.5 IBMDSwitcherSuperSourceBoxCallback 인터페이스

SDK - ATEM Switchers (5. Keyers)

5 Keyers
우리의 스위처에서 사용가능한 키어의 어떤 형태는 크로마 키잉 동작에 이 API 컴포넌트를 사용한다.

SDK - ATEM Switchers (4. 스위처 미디어)

4 스위처에 의해 사용되어지는 모든 미디어는 장면 그림이나 비디오 클립으로 이루어진 미디어 풀로부터 온다. 개발자는 이 SDK를 사용한 스위처의 미디어풀로부터 올리기와 내리기를 할 수 있다.








2013년 12월 8일 일요일

SDK - ATEM Switchers (3. 고급 변환)

3 고급 변환
변환은 소스들 사이에서 단순 컷 만들기보다 더 고급스럽게 할 수 있다.
이 API는 변환이 동작되기 위한 강력한 메소드를 많이 제공한다.

3.2 인터페이스 참조

3.2.1 IBMDSwitcherTransitionMixParameters 인터페이스
변환 설정 혼합 파라미터 명세 조작에 사용된다.
  • 관계된 인터페이스
    • IBMDSwitcherMixEffectBock
      • 인터페이스ID
        • IID_IBMDSwitcherMixEffectBlock
      • IBMDSwitcherTransitionMixParameters 객체 인터페이스는 IBMDSwitcherMixEffectBlock::QueryInterface로 포함될 수 있다.
  • 메소드
    • GetRate
      • 현재 비율 가져옴
    • SetRate
      • 비율 설정
    • AddCallback
      • 콜백 추가
    • RemoveCallback
      • 콜백 제거

3.2.2 IBMDSwitcherTransitionMixParametersCallback 인터페이스
IBMDSwitcherTransitionMixParameters 객체의 이벤트 발생 시 호출되는 메소드를 포함하고 있는 콜백 클래스이다.

3.2.3 IBMDSwitcherTransitionDipParameters 인터페이스
변환 설정 dip 파라미터 명세 조작에 사용됨

3.2.4 IBMDSwitcherTransitionDipParametersCallback 인터페이스
IBMDSwitcherTransitionDipParameters 객체의 이밴트 발생 시 호출되는 메소드를 포함하고 있는 콜백 클래스이다.

3.2.5 IBMDSwitcherTransitionWipeParametersCallback 인터페이스
IBMDSwitcherTransitionWipeParameters 객체의 이벤트 발생 시 호출되는 메소드를 포함하고 있는 콜백 클래스이다.

3.2.6 IBMDSwitcherTransitionWipeParameters 인터페이스
변환 설정 wipe 파라미터 명세 조작에 사용된다.
  • 관계된 인터페이스
    • IBMDSwitcherMixEffectBlock
      • 인터페이스ID
        • IID_IBMDSwitcherMixEffectBlock
      • IBMDSwitcherMixEffectBlock::QueryInterface로 포함되어질 수 있다.
  • 메소드
    • GetRate
    • SetRate
    • GetPattern
    • SetPattern
    • GetBorderSize
    • SetBorderSize
    • GetInputBorder
    • SetInputBorder
    • GetSymmetry
      • 현재 대칭을 가져옴
    • SetSymmetry
    • GetSoftness
    • SetSoftness
    • GetHorizontalOffset
    • SetHorizontalOffset
    • GetVerticalOffset
    • SetVerticalOffset
    • GetReverse
      • 반전 플래그 가져옴
    • SetReverse
    • GetFlipFlop
    • SetFlipFlop
    • AddCallback
    • RemoveCallback

3.2.7 IBMDSwitcherTransitionDVEParameters 인터페이스
변환 설정 DVE 파라미터 명세 조작에 사용됨
  • 관계된 이터페이스
    • IBMDSwitcherMixEffectBlock
      • 인터페이스ID
        • IID_IBMDSwitcherMixEffectBlock
      • IBMDSwitcherMixEffectBlock::QueryInterface로 포함되어질 수 있다.
  • 메소드
    • GetRate, SetRate
    • GetLogoRate, SetLogoRate
    • GetReverse, SetReverse
    • GetFlipFlop, SetFlipFlop
    • GetStyle, SetStyle
    • GetInputFill, SetInputFill
    • GetInputCut, SetInputCut
    • GetFillInputAvailabilityMask, SetFillInputAvailabilityMask
    • GetEnableKey, SetEnableKey
    • GetPreMultiplied, SetPreMultiplied
    • GetClip, SetClip
    • GetGain, SetGain
    • GetInverse, SetInverse
    • AddCallback, RemoveCallback

3.2.8 IBMDSwitcherTransitionDVEParametersCallback

3.2.9 IBMDSwitcherTransitionStingerParameters 인터페이스
변환설정 stinger(찌르기) 파라미터 명세 조작에 사용된다.
  • 관계된 인터페이스
    • IBMDSwitcherMixEffectBlock
      • 인터페이스ID
        • IID_IBMDSwitcherMixEffectBlock
      • IBMDSwitcherMixEffectBlock::QueryInterface로 포함되어질 수 있다.
  • 메소드
    • GetSource, SetSource
    • GetPreMultiplied, SetPreMultiplied
    • GetClip, SetClip
    • GetGain, SetGain
    • GetInverse, SetInverse
    • GetPreroll, SetPreroll
    • GetClipDuration, SetClipDuration
    • GetTriggerPoint, SetTriggerPoint
    • GetMixRate, SetMixRate
    • AddCallback, RemoveCallback
3.2.10 IBMDSwitcherTransitionStingerParametersCallback

3.2.11 IBMDSwitcherTransitionParameters 인터페이스
변환 설정 Stinger(찌르기) 명세 조작에 사용된다.
  • 관계된 인터페이스
    • IBMDSwitcherTransitionParameters
      • 인터페이스ID
        • IID_IBMDSwitcherTransitionParameters
      • IBMDSwitcherMixEffectBlock::QueryInterface로 포함되러질 수 있다.
  • 메소드
    • GetTransitionStyle
    • GetNextTransitionStyle, SetNextTransitionStyle
    • GetTransitionSelection
    • GetNextTransitionSelection, SetNextTransitionSelection
    • AddCallback, RemoveCallback

3.2.12 IBMDSwitcherTransitionParametersCallback 인터페이스

SDK - ATEM Switchers (2. 기초 스위처 제어)

2. 기초 스위처 제어
스위처 API는 ATEM 스위처 장비를 제어하기 위한 프레임워크를 제공한다. API는 스위처 입력 설정, 변화수행이나 컷 만들기같은 운용을 활성화한다.

2.1.1 스위처 설정과 변화
스위처 제어를 위한 응용프로그램은 다음의 단계를 수행할 것이다.

  • IBMDSwithcerDiscovery::ConnectTo 를 사용하여 스위처 장비에 연결하고 IBMDSwitcher 객체 인터페이스를 얻는다.
  • IBMDSwitcher::CreateIterator를 사용하여 IBMDSwitcherInputIterator 객체 인터페이스를 가져온다.
  • IBMDSwitcherInputIterator::Next에 의해 반환된 IBMDSwitcherInput은 IBMDSwitcherInput::GetInputId를 사용하여 입력의 유일한 ID를 끌어내고, IBMDSwitcherInput::GetString나 IBMDSwitcherInput::GetInt를 사용하여 입력의 이름과 같은 입력의 다른 속성들을 끌어낸다.
  • IBMDSwitcher::CreateIterator을 사용하여 IBMDSwitcherMixEffectBlockIterator 객체 인터페이스를 가져온다.
  • IBMDSwitcherMixEffectBlock 객체 인터페이스는 IBMDSwitcherMixEffectBlockIterator::Next를 사용하여 획득한다.
  • IBMDSwitcherMixEffectBlock::SetInt 사용하여 프로그램을 구성하고, 입력 할당에 의한 혼합 효과 블럭을 위한 미리보기 입력은  IBMDSwitcherInput::GetInputID에 의해 반환된다.
  • IBMDSwitcherMixEffectBlock::PerformTransition 호출에 의해 프로그램과 미리보기 입력 사이의 변환을 수행한다.
  • IBMDSwitcherMixEffectBlock::AddCallback을 사용하여 콜백을 설치하고 IBMDSwithcerMixEffectBlockCallback::PropertyChanged 콜백으로 변환을 통한 진행 결정과 변환 완료를 한 때를 받는다.

2.2 스위처 자료형
2.2.1 기초 스위처 자료형
  • BMDSwitcherInputId
    • BMDSwitcherInputId는 부호있는 64비트 정수형과 각 스위처 입력을 위한 유일한 ID가 사용된다.

2.2.2 스위처 이벤트형
BMDSwitcherEventType은 IBMDSwitcher를 위한 가능한 이벤트 형을 열거한다.
  • bmdSwitcherEventTypeVideoModeChanged
    • 비디오 표준 변경
  • bmdSwitcherEventTypeDownConverterModeChanged
    • 하향 변환 모드 변경
  • bmdSwitcherEventTypePowerStatusChanged
    • 전원 상태 변경
  • bmdSwitcherEventTypeDisconnected
    • 스위처 연결끊김

2.2.3 스위처 전원 상태
BMDSwitcherPowerStatus는 가능한 전원 상태 플래그를 열거한다. 형은 IBMDSwitcher 객체 인터페이스에 의해 사용된다.
  • bmdSwitcherPowerStatusSupply1
    • 공급 1 전원
  • bmdSwitcherPowerStatusSupply2
    • 공급 2 전원

2.2.4 스위처 비디오 모드
BMDSwitcherVideoMode는 스위처에 의해 사용되어지는 비디오 표준을 열거한다.
  • bmdSwitcherVideoMode525i5994NTSC
    • 세로 525픽셀, 인터레이스, 59.94Hz(NTSC)
  • bmdSwitcherVideoMode625i50AL
    • 세로 625픽셀, 인터레이스, 50Hz(PAL)
  • bmdSwitcherVideoMode525i5994Anamorphic
    • 세로 525픽셀, 인터레이스, 59.94Hz(anamorphic 16:9 widescreen)
  • bmdSwitcherVideoMode625i50Anamorphic
    • 세로 625픽셀, 인터레이스, 50Hz(anamorphic 16:9 widescreen)
  • bmdSwitcherVideoMode720p50
    • 세로 720픽셀, 프로그래시브, 50Hz
  • bmdSwitcherVideoMode720p5994
    • 세로 720픽셀, 프로그래시브, 59.94Hz
  • bmdSwitcherVideoMode1080i50
    • 세로 1080픽셀, 인터레이스, 50Hz
  • bmdSwitcherVideoMode1080i5994
    • 세로 1080픽셀, 인터레이스, 59.94Hz
  • bmdSwitcherVideoMode1080p2398
    • 세로 1080픽셀, 프로그래시브, 23.98Hz
  • bmdSwitcherVideoMode1080p24
    • 세로 1080픽셀, 프로그래시브, 24Hz
  • bmdSwitcherVideoMode1080p25
    • 세로 1080픽셀, 프로그래시브, 25Hz
  • bmdSwitcherVideoMode1080p2997
    • 세로 1080픽셀, 프로그래시브, 29.97Hz
  • bmdSwitcherVideoMode1080p50
    • 세로 1080픽셀, 프로그래시브, 50Hz
  • bmdSwitcherVideoMode1080p5994
    • 세로 1080픽셀, 프로그래시브, 59.94Hz
  • bmdSwitcherVideoMode4KHDp2398
    • 세로 2160픽셀, 가로 3840픽셀, 프로그래시브, 23.98Hz
  • bmdSwitcherVideoMode4KHDp24
    • 세로 2160픽셀, 가로 3840픽셀, 프로그래시브, 24Hz
  • bmdSwitcherVideoMode4KHDp25
    • 세로 2160픽셀, 가로 3840픽셀, 프로그래시브, 25Hz
  • bmdSwitcherVideoMode4KHDp2997
    • 세로 2160픽셀, 가로 3840픽셀, 프로그래시브, 29.97Hz

2.2.5 스위처 하향 변환 모드
BMDSwitcherDownConverterMode는 방송 표준 사이의 하향 변환을 위한 가능한 모드를 열거한다.
  • bmdSwitcherDownConverterModeCentreCut
    • 중심 자르기 변환
  • bmdSwitcherDownConverterModeLetterbox
    • 편지 상자 변환
  • bmdSwitcherDownConverterModeAnamorphic
    • 아나모픽 변환

2.2.6 스위처 입력 속성
BMDSwitcherInputPropertyId는 스위처 입력의 가능한 속성들을 열거한다.
  • bmdSwitcherInputPropertyIdPortType
    • 입력 포트형으로 BMDSwitcherPortType
  • bmdSwitcherInputPropertyIdInputAvailability
    • 입력 유효성으로 BMDSwitcherInputAvailability
  • bmdSwitcherInputPropertyIdShortName
    • 짧은 이름 설명 스위처 입력으로 4글자 제한 문자열
  • bmdSwitcherInputPropertyIdLongName
    • 긴 이름 설명 스위처 입력으로 20글자 제한 문자열
  • bmdSwitcherInputPropertyIdIsProgramTallied
    • 현재 프로그램에 부합되는 입력인지 아닌지를 표시하는 플래그
  • bmdSwitcherInputPropertyIdIsPreviewTallied
    • 현재 미리보그에 부합되는 입력인지 아닌지를 표시하는 플래그
  • bmdSwitcherInputPropertyIdAvailableExternalPortTypes
    • 유효한 외부 포트형으로 BMDSwitcherExternalPortType의 bit 마스크
  • bmdSwitcherInputPropertyIdCurrentExternalPortType
    • 선택된 외부 포트 형으로 BMDSwitcherExternalPortType

2.2.7 스위처 외부 포트형
BMDSwitcherExternalPortType은 입력을 위한 외부 포트 형의 다른 종류를 열거한다. 이 열거는 입력 포트가 하나 이상의 연결 형을 지원할 동안 bitset을 표현한다.
  • bmdSwitcherExternalPortTypeSDI
    • SDI 연결
  • bmdSwitcherExternalPortTypeHDMI
    • HDMI 연결
  • bmdSwitcherExternalPortTypeComponent
    • 콤포넌트 연결
  • bmdSwitcherExternalPortTypeComposite
    • 콤포지트 연결, 오직 SD 비디오 모드에서만 유효
  • bmdSwitcherExternalPortTypeSVideo
    • SVideo 연결, 오직 SD 비디오 모드에서만 유효
  • bmdSwitcherExternalPortTypeXLR
    • XLR 오디오 연결
  • bmdSwitcherExternalPortTypeAESEBU
    • AES EBU 오디오 연결
  • bmdSwitcherExternalPortTypeRCA
    • RCA 오디오 연결
  • bmdSwitcherExternalPortTypeInternal
    • 이것은 내부 입력 포트임

2.2.8 스위처 포트 타입
BMDSwitcherPortType은 스위치을 위해 유효한 가능한 스위처 입력 포트형을 열거한다.
  • bmdSwitcherPortTypeExternal
    • 포트는 물리적 연결자로 된 외부 포트이다.
  • bmdSwitcherPortTypeBlack
    • 포트는 검정 비디오 생성 포트이다.
  • bmdSwitcherPortTypeColorBars
    • 포트는 컬러바 생성 포트이다.
  • bmdSwitcherPortTypeColorGenerator
    • 포트는 색깔 생성 포트이다.
  • bmdSwitcherPortTypeMediaPlayerFill
    • 포트는 미디어 재생 채움 포트이다.
  • bmdSwitcherPortTypeMediaPlayerCut
    • 포트는 미디어 컷 포트이다.
  • bmdSwitcherPortTypeSuperSource
    • 포트는 슈퍼 소스 포트이다.
  • bmdSwitcherPortTypeMixEffectBlockOutput
    • 포트는 혼합 효과 블럭 출력 포트이다.
  • bmdSwitcherPortTypeAuxOutput
    • 포트는 보조 출력 포트이다.

2.2.9 스위처 입력 가능한 것
BMDSwitcherInputAvailability는 포트에 입력 가능한 것의 다른 종류를 열거한다. 이 열거는 입력이 다중으로 이용가능한 것을 가질수 있는동안 bitset을 표현한다.
  • bmdSwitcherInputAvailabilityMixEffectBlock0
    • 입력은 혼합 효과 블럭 0에 의해 사용되어지는 것이 유효하다.
  • bmdSwitcherInputAvailabilityMixEffectBlock1
    • 입력은 혼합 효과 블럭 1에 의해 사용되어지는 것이 유효하다.
  • bmdSwitcherInputAvailabilityAuxOutputs
    • 입력은 보조 출력에 의해 사용되어지는 것이 유효하다.
  • bmdSwitcherInputAvailabilityMultiView
    • 입력은 다중보기창으로 경로설정되어질 수 있다.
  • bmdSwitcherInputAvailabilitySuperSourceArt
    • 입력은 수퍼 소스 아트를 위해 사용되어지는 것이 유효하다.
  • bmdSwitcherInputAvailabilitySuperSourceBox
    • 입력은 수퍼 소스 박스를 위해 사용되어지는 것이 유효하다.
  • bmdSwitcherInputAvailabilityInputCut
    • 입력은 컷으로 사용되어지는 것이 유효하다.

2.2.10 스위처 혼합 효과 블럭 속성
BMDSwitcherMixEffectBlockPropertyId는 혼합 효과 블럭의 가능한 속성을 열거한다.

  • bmdSwitcherMixEffectBlockPropertyIdProgramInput
    • BMDSwitcherInputId 으로 프로그램 입력
  • bmdSwitcherMixEffectBlockPropertyIdPreviewInput
    • BMDSwitcherInputId 으로 프리뷰 입력
  • bmdSwitcherMixEffectBlockPropertyIdTransitionPosition
    • 시작 0에서 끝 1의 변화를 통한 진행을 0과 1 사이의 실수값 표현
  • bmdSwitcherMixEffectBlockPropertyIdTransitionFramesRemaining
    • 변화에서 남은 프레임의 정수 숫자
  • bmdSwitcherMixEffectBlockPropertyIdInTransition
    • 변화에서 혼합 효과 블럭 중인 상태의 논리값
  • bmdSwitcherMixEffectBlockPropertyIdFadeToBlackFramesRemaining
    • 검정으로 사라짐에서 남은 프레임의 정수 숫자
  • bmdSwitcherMixEffectBlockPropertyIdFadeToBlack
    • 검정으로 사라짐에서 혼합 효과 블럭 중인 상태의 논리값
  • bmdSwitcherMixEffectBlockPropertyIdPreviewLive
    • 프리뷰가 실시간일때 논리값 true
  • bmdSwitcherMixEffectBlockPropertyIdPreviewTransition
    • 프리뷰 변화가 활성일 때 논리값 true
  • bmdSwitcherMixEffectBlockPropertyIdInputAvailabilityMask
    • 이 혼합 효과 블럭에 상응하는 BMDSwitcherInputAvailability 비트 값
  • bmdSwitcherMixEffectBlockPropertyIdFadeToBlackRate
    • 프레임에서 검정으로 사라짐 비율
  • bmdSwitcherMixEffectBlockPropertyIdFadeToBlackFullyBlack
    • 검정으로 사라짐이 완전 검정일 때 논리값은 true
  • bmdSwitcherMixEffectBlockPropertyIdFadeToBlackInTransition
    • 검정으로 사람짐이 변화중일 때 논리값은 true

2.2.11 스위처 연결 오류
BMDSwitcherConnectToFailure는 스위처에 연결 시 발생할 수 있는 가능한 오류를 열거한다.



2.2.12 스위처 다중보기 레이아웃
BMDSwitcherMultiViewLayout은 다중보기에서 가능한 레이아웃 포멧을 열거한다.


2.2.13 스위처 색 이벤트
BMDSwitcherInputColorEventType은 IBMDSwitcherInputColorCallback를 위한 가능한 이벤트 형식을 열거한다.


2.2.14 스위처 보조(Aux) 이벤트
BMDSwitcherInputAuxEventType은 IBMDSwitcherInputAuxCallback를 위한 가능한 이벤트 형식을 열거한다.


2.2.15 스위처 다중보기 이벤트
BMDSwitcherMultiViewEventType은 IBMDSwitcherMultiViewCallback를 위한 가능한 이벤트 형식을 열거한다.


2.3 인터페이스 참조 (IBMDSwitcherDiscovery 인터페이스)
IBMDSwitcherDiscovery 객체 인터페이스는 물리적 스위처 장치로의 연결에 사용된다.

IBMDSwitcherDiscovery 객체 인터페이스에 참조는 native COM을 지원하는 플랫폼의 CoCreateInstance나, 다른 플랫폼의 CreateBMDSwitcherDiscoveryInstance로부터 얻을 수 있다.

  • 메소드
    • ConnectTo
  • 설명
    • 스위처에 연결


2.3.1.1 IBMDSwitcherDiscovery::ConnectTo 메소드
ConnectTo 메소드는 설정된 스위처에 연결하고, 스위처의 IBMDSwitcher 객체 인터페이스를 반환한다.
Note: ConnectTo는 동기 네트워크 연결로 동작한다. 이것은 호스트이름 크기와 네트워크 응답시간에 따라 몇초가 걸릴 것이다.

  • 문법
    • HRESULT connectTo(string deviceAddress, IBMDSwitcher** switcherDevice, BMDSwitcherConnectToFailure* failReason);
  • 파라미터
    • deviceAddress
      • in
      • 연결할려는 네트워크 호스트이름 또는 스위처의 IP 주소
    • switcherDevice
      • out
      • 연결된 스위처의 IBMDSwitcher 객체 인터페이스
    • failReason
      • out
      • BMDSwitcherConnectToFailure 값인 연결 실패의 이유
  • 반환값
    • E_FAIL
      • 실패
    • S_OK
      • 성공
    • E_POINTER
      • 스위처장치 또는 실패이유 파라미터가 잘못됨.

2.3.2 IBMDSwitcher 인터페이스
IBMDSwitcher 객체 인터페이스는 물리적 스위처 장치를 표현한다.
  • 관계된 인터페이스
    • IBMDSwitcherDiscovery
      • 인터페이스ID
        • IID_IBMDSwitcherDiscovery
      • IBMDSwitcher IBMDSwitcherDiscovery::ConnectTo 메소드 호출 성공 후에 객체는 반환될 것이다.
  • 메소드
    • GetProductName
      • 스위처의 제품 이름을 가져옴
    • GetVideoMode
      • 스위처에 적용된 비디오 표준을 가져옴
    • SetVideoMode
      • 스위처에 적용된 비디오 표준을 설정
    • GetDownConverterMode
      • 방송 표준들 사이로 하향 변화될 때 적용된 변환 모드를 가져옴
    • SetDownConverterMode
      • 방송 표준들 사이로 하향 변화될 때 적용된 변환 모드를 설정
    • GetPowerStatus
      • 스위처의 전원 상태를 가져옴
    • DoesSupportVideoMode
      • 비디오 표준이 스위처에의해 지원되는지 아닌지를 결정
    • CreateIterator
      • 반복자 생성
    • AddCallback
      • 스위처 이벤트를 받을 콜백 추가
    • RemoveCallback
      • 콜백 제거


2.3.3 IBMDSwitcherCallback 인터페이스
IBMDSwitcherCallback 객체 인터페이스는 IBMDSwitcher 객체에서 이벤트 발생 때 호출되는 메소드를 포함하고 있는 콜백 클래스이다. 모든 콜백 메소드처럼, 이 콜백 메소드는 다른 스레드로부터 호출될 것이다.

  • 관계된 인터페이스
    • IBMDSwitcher
      • 인터페이스ID
        • IID_IBMDSwitcher
      • IBMDSwitcherCallback 객체 인터페이스는 IBMDSwitcher::AddCallback로 설정되고 IBMDSwitcher::RemoveCallback로 제거된다.
  • 메소드
    • Notify
      • 인벤트 발생시 호출된다.

2.3.4 IBMDSwitcherInputIterator 인터페이스
IBMDSwitcherInputIterator 객체 인터페이스는 사용가능한 스위처 입력의 열거에 사용된다.
  • 관계된 인터페이스
    • IBMDSwitcher
      • 인터페이스ID
        • IID_IBMDSwitcher
      • IBMDSwitcher::CreateIterator는 IID_IBMDSwitcherInputIterator IDD가 설정될 때 IBMDSwitcherInputIterator 객체 인터페이스를 반환한다.
  • 메소드
    • Next
      • 다음 사용가능한 스위처 입력 반환
    • GetById
      • 입력 ID로 스위처 입력 반환

2.3.5 IBMDSwitcherInput 인터페이스
IBMDSwitcherInput 객체 인터페이스는 물리적 스위처 장치를 표시한다.
  • 관계된 인터페이스
    • IBMDSwitcherInputDiscovery
      • 인터페이스ID
        • IID_IBMDSwitcherInputDiscovery
      • IBMDSwitcherInput 객체는 IBMDSwitcherInputDiscovery::ConnectTo 메소드 호출 성공 후에 반환될 것이다.
  • 메소드
    • AddCallback
      • 수신 입력 속성 변경에 콜백 추가
    • RemoveCallback
      • 콜백 제거
    • GetInputId
      • 이 입력의 유일한 ID 가져옴
    • GetFlag
      • 논리 인코딩 모드 설정의 현재 값 가져옴
    • GetInt
      • int64_t 인코딩 모드 설정의 현재 값 가져옴
    • GetFloat
      • double 인코딩 모드 설정의 현재 값 가져옴
    • GetString
      • 문자열 인코딩 모드 설정의 현재 값 가져옴
    • SetFlag
      • 논리 인코딩 모드 설정의 값 설정
    • SetInt
      • int64_t  인코딩 모드 설정의 값 설정
    • SetFloat
      • double 인코딩 모드 설정의 값 설정
    • SetString
      • 문자열 인코딩 모드 설정의 값 설정

2.3.6 IBMDSwitcherInputCallback 인터페이스
IBMDSwitcherInputCallback 객체 인터페이스는 스위처 입력 속성 변경 시 호출되는 콜백 클래스이다.
  • 관계된 인터페이스
    • IBMDSwitcherInput
      • 인터페이스ID
        • IID_IBMDSwitcherInput
      • IBMDSwitcherInputCallback 객체 인터페이스는 IBMDSwitcherInput::AddCallback로 설정될 것이다.
  • 메소드
    • PropertyChanged
      • 스위처 입력 속성 변경됨

2.3.7 IBMDSwitcherMixEffectBlockIterator 인터페이스
IBMDSwitcherMixEffectBlockIterator 객체 인터페이스는 사용가능한 혼합 효과 블럭 열거에 사용된다.
  • 관계된 인터페이스
    • IBMDSwitcher
      • 인터페이스ID
        • IID_IBMDSwitcher
      • IBMDSwitcher::CreateIterator는 IID_IBMDSwitcherMixEffectBlockIterator IID가 설정될 때 IBMDSwitcherMixEffectBlockIterator 객체 인터페이스를 반환한다.
  • 메소드
    • Next
      • 다음 사용가능한 스위처 혼합 효과 블럭 반환

2.3.8 IBMDSwitcherMixEffectBlock 인터페이스
IBMDSwitcherMixEffectBlock 객체 인터페이스는 스위처 장치의 혼합 효과 블럭을 표시한다.
  • 관계된 인터페이스
    • IBMDSwitcherMixEffectBlockIterator
      • 인터페이스 ID
        • IID_IBMDSwitcherMixEffectBlockIterator
      • IBMDSwitcherMixEffectBlockIterator::Next는 스위처 장치의 각각의 사용가능한 혼합 효과 블럭을 위한 IBMDSwitcherMixEffectBlock 객체 인터페이스를 반환한다.
  • 메소드
    • CreateIterator
      • 반복자 생성
    • AddCallback
      • 수신 혼합 효과 블럭 속성 변경에 콜백 추가
    • RemoveCallback
      • 콜백 제거
    • GetFlag
      • 논리 인코딩 모드 설정의 현재 값 가져옴
    • GetInt
      • int64_t 인코딩 모드 설정의 현재 값 가져옴
    • GetFloat
      • double 인코딩 모드 설정의 현재 값 가져옴
    • GetString
      • 문자열 인코딩 모드 설정의 현재 값 가져옴
    • SetFlag
      • 논리 인코딩 모드 설정의 값 설정
    • SetInt
      • int64_t  인코딩 모드 설정의 값 설정
    • SetFloat
      • double 인코딩 모드 설정의 값 설정
    • SetString
      • 문자열 인코딩 모드 설정의 값 설정

2.3.9 IBMDSwitcherMixEffectBlockCallback Interface
IBMDSwitcherMixEffectBlockCallback 객체 인터페이스는 혼합 효과 블럭 속성 변경 시 호출되는 콜백 클래스이다.
  • 관계된 클래스
    • IBMDSwitcherMixEffectBlock
      • 인터페이스ID
        • IID_IBMDSwitcherMixEffectBlock
      • IBMDSwitcherMixEffectBlockCallback 객체 인터페이스는 IBMDSwitcherMixEffectBlock::AddCallback로 설정될 것이다.
  • 메소드
    • PropertyChanged
      • 혼합 효과 블럭 속성 변경

2.3.10 IBMDSwitcherInputColor 인터페이스
IBDSwitcherInputColor 객체 인터페이스는 색 생성 입력 포트 관리에 사용된다.
  • 관계된 인터페이스
    • IBMDSwitcherInput
      • 인터페이스ID
        • IID_IBMDSwitcherInput
      • IBMDSwitcherInputColor 객체 인터페이스는 IBMDSwitcherInput::QueryInterface로 포함될 수 있다.
  • 메소드
    • GetHue
      • 현재 색조값 가져옴
    • SetHue
      • 색조값 설정
    • GetSaturation
      • 현재 채도값 가져옴
    • SetSaturation
      • 채도값 설정
    • GetLuma
      • 현재 밝기값 가져옴
    • SetLuma
      • 밝기값 설정
    • AddCallback
      • 색 입력 콜백 추가
    • RemoveCallback
      • 색입력 콜백 제거


2.3.11 IBMDSwitcherInputColorCallback 인터페이스
IBMDSwitcherInputColorCallback 객체 인터페이스는 IBMDSwitcherInputColor 객체의 이벤트 발생 시 호출되는 메소드를 포함하고 있는 콜백 클래스이다. 모든 콜백 메소드처럼, 이 콜백 메소다는 다른 스레드로부터 호출될 것이다.
  • 관계된 인터페이스
    • IBMDSwitcherInputColor
      • 인터페이스ID
        • IID_IBMDSwitcherInputColor
      • IBMDSwitcherInputColorCallback 객체 인터페이스는 IBMDSwitcherInputColor::AddCallback로 설정되고 IBMDSwitcherInputColor::RemoveCallback로 제거된다.
  • 메소드
    • Notify
      • 이벤트 발생 시 호출됨

2.3.12 IBMDSwitcherInputAux 인터페이스
IBMDSwitcherInputAux 객체 인터페이스는 보조 출력 포트 관리에 사용된다.
  • 관계된 인터페이스
    • IBMDSwitcherInput
      • 인터페이스ID
        • IID_IBMDSwitcherInput
      • IBMDSwitcherInputAux 객체 인터페이스는 IBMDSwitcherInput::QueryInterface로 포함될 수 있다.
  • 메소드
    • GetInputSource
      • 선택된 입력 소드 가져옴
    • SetInputSource
      • 입력 소스 선택
    • GetInputAvailabilityMask
      • 보조 포트에 상응하는 BMDSwitcherInputAvailability 비트 값 가져옴
    • AddCallback
      • 보조 콜백 추가
    • RemoveCallback
      • 보조 콜백 제거

2.3.13 IBMDSwitcherInputAuxCallback 인터페이스
IBMDSwitcherInputAuxCallback 객체 인터페이스는 IBMDSwitcherInputAux 객체의 이벤트 발생 시 호출되는 메소드를 포함하고 있는 콜백 클래스이다. 모든 콜백 메소드처럼, 이 콜백 메소드는 다른 스레드로부터 호출될 것이다.
  • 관계된 인터페이스
    • IBMDSwitcherInputAux
      • 인터페이스ID
        • IID_IBMDSwitcherInputAux
      • IBMDSwitcherInputAuxCallback 객체 인터페이스는 IBMDSwitcherInputAux::AddCallback로 설정되고 IBMDSwitcherInputAux::RemoveCallback로 제거된다.
  • 메소드
    • Notify
      • 이벤트 발생시 호출됨

2.3.14 IBMDSwitcherMultiViewIterator 인터페이스
IBMDSwitcherMultiViewIterator는 사용가능한 다중보기 열거에 사용된다.

2.3.15 IBMDSwitcherMultiView 인터페이스
IBMDSwitcherMultiView 객체 인터페이스는 레이아웃 포맷 설정같은 다중보기 출력의 제어 함수 접근이나 다른 입력을 창으로 경로설정에 사용된다.
  • 관계된 인터페이스
    • IBMDSwitcherMultiViewIterator
      • 인터페이스ID
        • IID_IBMDSwitcherMultiViewIterator
      • IBMDSwitcherMultiView 객체는 IBMDSwitcherMultiViewIterator::Next 메소드 호출 성공 후에 반환될 것이다.
  • 메소드
    • GetLayout
      • 현제 레이아웃 포맷 가져옴
    • SetLayout
      • 레이아웃 포맷 설정
    • GetWindowInput
      • 창의 현재 입력 경로설정 가져옴
    • SetWindowInput
      • 창의 입력 경로설정 설정
    • GetWiondowCount
      • 사용가능한 창의 개수 가져옴
    • GetInputAvailabilityMask
      • 다중보기를 위한 상응하는 BMDSwitcherInputAvailability 비트 값 가져옴
    • CanRouteInputs
      • 다중보기가 고객 창에-입력 경로설정인지 아닌지 결정
    • AddCallback
      • 다중보기 콜백 추가
    • RemoveCallback
      • 다중보기 콜백 제거

2.3.16 IBMDSwitcherMultiViewCallback 인터페이스
IBMDSwitcherMultiViewCallback 객체 인터페이스는 IBMDSwitcherMultiView 객체의 이벤트 발생 시 호출되는 메소드를 포함한 콜백 클래스이다.

2013년 12월 2일 월요일

SDK - ATEM Switchers (1.개요)

1.4 인터페이스 참조
모든 객체 인터페이스는 IUnknown 인터페이스의 부클래스이다.

1.4.1 IUnknown 인터페이스
각각의 API 인터페이스는 표준 COM 기본 클래스인 IUnknown의 부클래스이다. IUnknown 객체 인터페이스는 참조 횟수와 인터페이스 ID로 관계된 인터페이스를 찾는 능력을 제공한다. 인터페이스 ID 메커니즘은 현재의 응용프로그램에 영향을 끼치지 않고 API에 인터페이스가 추가되는 것을 허용한다.

메소드 설명
QueryInterface 객체의 자식 인터페이스 지원에 접근을 제공
AddRef 객체의 참조 회수 증가
Release 객체의 참조 회수 감소. 마지막 참조가 제거될 때, 객체는 해제.

1.4.1.1 IUnknown::QueryInterface 메소드
QueryInterface 메소드는 객체 인터페이스의 관계된 인터페이스를 찾는다.

  • 문법
    • HRESULT  QueryInterface(REFIID id, void **outputInterface);
  • 파라메타
    • id
      • in
      • 찾는 인터페이스의 인터페이스 ID
    • outputInterface
      • out
      • 새로운 객체 인터페이스 또는 실패시 NULL

  • 반환값
    • E_NOINTERFACE
      • 인터페이스를 못 찾음
    • S_OK
      • 성공

1.4.1.2 IUnknown::AddRef 메소드
AddRef 메소드는 객체 인터페이스의 참조 회수를 상승한다.
  • 문법
    • ULONG  AddRef();
  • 반환값
    • Count
      • 새로운 참조 횟수 - 오직 디버그 목적을 위함

1.4.1.3 IUnknown::Release 메소드
Release 메소드는 객체 인터페이스의 참조 횟수를 감소한다. 객체로부터 마지막 참조가 제거될 때, 객체는 해제될 것이다.
  • 문법
    • ULONG Release();
  • 반환값
    • Count
      • 새로운 참조 횟수 - 오직 디버그 목적을 위함

1.5 프로젝트에서 스위처 API 사용
지원되는 샘플 응용프로그램은 각 지원되는 플랫폼의 프로젝트에 스위처 API를 포함하는 방법의 예제를 제공한다
당신의 프로젝트에 스위처 API를 사용하는 것은 하나 또는 그 이상의 파일이 포함되는 것을 요구한다.
윈도우즈 : BMDSwitcherAPI.idl
맥OS X : BMDSwitcherAPI.h, BMDSwitcherAPIDispatch.cpp

1.5.2 스위처 장비에 접근하기
스위처 장비는 IBMDSwitcherDiscovery 인터페이스를 통해 접근된다.

1.5.2.1 윈도우즈
스위처 API의 주 진입점은 CBMDSwitcherDiscovery 클래스이다. 이 클래스는 COM 사용 CoCreateInstance에서 포함되어져야 한다.

BMDSwitcherDiscovery* switcherDiscovery = NULL;
CoCreateInstance(CLSID_CBMDSwitcherDiscovery, NULL, CLSCTX_ALL,
                               IID_IBMDSwitcherDiscovery, (void**)&switcherDiscovery));

성공시, CoCreateInstance는 S_OK의 HRESULT를 반환하고 switcherDiscovery는 새로운 IBMDSwitcherDiscovery 객체 인터페이스를 가리킨다.