DirectShow DirectShow 샘플 캡춰 샘플 DVApp 샘플   [목차열람] [주소복사] [슬롯비우기]
DVApp 샘플
 
Microsoft DirectX 9.0

DVApp 샘플

설명

디지털 비디오 (DV) 캡춰 애플리케이션.

이 샘플은, DV 캠 코다를 제어하는 다양한 타입의 필터 그래프를 생성 하는 방법을 소개한다. DV 캠 코다를 사용한 캡춰, 프리뷰, 전송, 장치 제어의 방법도 가리킨다.

패스

소스 : (SDK 루트) \Samples\C++\DirectShow\Capture\DVApp

실행 가능 파일 : (SDK 루트) \Samples\C++\DirectShow\Bin\DVApp.exe

사용자 가이드

DVApp 애플리케이션은 이하의 모드를 지원 한다.

캡춰 모드와 전송 모드에서는 프리뷰도 행해진다. 이러한 각 모드는 프리뷰를 불가로 하는 No Preview 옵션도 이와 같이 가지고 있다. 프리뷰없이의 캡춰 링은 보다 효율적으로, 드롭 프레임을 줄일 수가 있다.

애플리케이션은 프리뷰 모드로 시작 한다. 다른 모드를 선택하려면 ,[Graph Mode] 메뉴로부터 선택하는 것. 각 모드에 대해서, DVApp 는 그 모드의 기능을 지원 하는 필터 그래프를 생성 한다. GraphEdit (. grf) 파일로서 그 그래프를 보존하려면 ,[File] 메뉴로부터 [Save Graph to File] 를 선택하는 것. GraphEdit 로 파일을 열기 전에, DVApp 를 종료시키는 것.

파일에 캡춰 하려면 , 다음의 조작을 실행한다.

  1. [File] 메뉴로부터,[Set Output File] 를 선택해, 파일명을 입력한다.
  2. [Graph Mode] 메뉴로부터, (type 1 이나 type 2, with preview 나 without preview 로) [DV to File] 모드를 선택한다.
  3. [Record] 를 클릭한다.
  4. 캠 코다가 VTR 모드의 경우는,[Play] 를 클릭한다.
  5. 캡춰를 정지하려면 ,[Stop] 를 클릭한다.

파일로부터 캠 코다에 전송 하려면 , 다음의 조작을 실행한다

  1. [File] 메뉴로부터 [Set Input File] 를 클릭해, DV 파일을 선택한다. 파일은 선택된 모드 (Type-1 나 Type-2)와 일치해야 한다.
  2. [Graph Mode] 메뉴로부터, (type 1 이나 type 2, with preview 나 without preview 로) [File to DV] 모드를 선택한다.
  3. [Play] 를 클릭한다.
  4. 데이터를 테이프에 녹화하려면 ,[Record] 를 클릭한다.
  5. 전송을 정지하려면 ,[Stop] 를 클릭한다.

캠 코다가 VTR 모드의 경우, 사용자는 애플리케이션의 [VCR-style] 버튼을 통해 전송 메카니즘을 제어할 수 있다. 테이프를 시크 하려면 , 타겟 타임 코드를 입력해 시크 버튼을 클릭한다.

애플리케이션이 캡춰 하는 데이터량을 제한하려면 ,[File] 메뉴로부터 [Capture Size] 를 선택한다.

테이프 포맷 (NTSC 나 PAL)을 체크하려면 ,[Options] 메뉴로부터 [Check Tape] 를 선택한다.

프리뷰 윈도우의 사이즈를 변경하려면 ,[Options] 메뉴로부터 [Change Decode Size] 를 선택한다.

프로그래밍 정보

이 애플리케이션의 주된 목적은, 다양한 DV 캡춰 그래프와 DV 전송 그래프의 생성 방법을 나타내는 것이다.

장치의 착탈

애플리케이션은 2 개가 다른 테크닉을 사용해 장치의 착탈을 처리한다. 장치가 장착되었을 때, 애플리케이션의 메시지 루프는 WM_DEVICECHANGE 메시지에 대응한다. 장치가 떼어졌을 때, 애플리케이션은 필터 그래프 매니저로부터의 EC_DEVICE_LOST 이벤트에 대응한다. 어느 쪽의 어프로치도 동작하지만, EC_DEVICE_LOST 이벤트는, 필터 그래프에 장치가 존재하는 것을 필요로 한다.

애플리케이션은 한 번에 1 개의 장치만을 처리한다. 현재의 장치가 떼어지면 애플리케이션은 시스템 위에의별의 DV 장치를 찾는다.

몇개의 DV 캠 코다에서는, 카메라 모드와 VTR 모드를 스윗치 했을 때에 장치 상실 메시지가 발생하기 위해(때문에), 사용자가 장치를 셧 오프 해야 한다. 애플리케이션은 적절한 메뉴 커멘드를 이용 가능/불가로 하는 것으로 이것에 대응한다. 그러나, 사용자가 모드간을 재빠르게 바꾸면 캠 코다는 장치 상실 메시지를 생성하지 않는 경우가 있다. [Options] 메뉴로부터 [Refresh Mode] 를 선택하는 것에 의해 메뉴를 업데이트 시킬 수가 있다. 셧 오프없이 모드를 바꿀 수가 있지만, VTR 모드에 스윗치 되었을 때에 만 장치 상실 메시지를 보내는 DV 캠 코다도 있다.

 :  Microsoft Windows NT 4.0 이전으로는, 장치 장착에 사용되는 데이터 타입을 지원 하지 않는다. 이러한 플랫폼에 대해서의 애플리케이션을 컴파일 하기 위해서, WINVER 가 0x500 보다 작은 경우, 데이터 타입은 조건적으로 인클루드 된다. 그러나, 애플리케이션은 이러한 플랫폼에서의 장치 검지를 지원 하지 않는다.

장치 제어

애플리케이션의 [Play] 버튼과 [Record] 버튼의 기능은 현재의 모드에 의존한다.

샘플 애플리케이션은 프레임 정밀도의 캡춰는 실시하지 않는다. 몇개의 포인트로, 애플리케이션은 Sleep 함수를 호출해 장치의 반응을 기다린다. 장치 상태의 변경시에는, 최신의 DV 캠 코다가 통지를 송신한다. 이전의 장치는 통지를 지원 하고 있지 않는 경우가 있다. 샘플의 목적으로부터는,Sleep 호출이 심플한 해결 방법이다.

참조

↑TOP