DirectShow DirectShow 레퍼런스 DirectShow 구조체 AM_SAMPLE2_PROPERTIES [목차열람] [주소복사] [슬롯비우기] |
Microsoft DirectX 9.0 |
AM_SAMPLE2_PROPERTIES 구조체는, 미디어 샘플의 프로퍼티를 기술한다. IMediaSample2 인터페이스는 이 구조체를 사용한다.
구문
typedef struct tagAM_SAMPLE2_PROPERTIES {
DWORD cbData;
DWORD dwTypeSpecificFlags;
DWORD dwSampleFlags;
LONG lActual;
REFERENCE_TIME tStart;
REFERENCE_TIME tStop;
DWORD dwStreamId;
AM_MEDIA_TYPE *pMediaType;
BYTE *pbBuffer;
LONG cbBuffer;
} AM_SAMPLE2_PROPERTIES;
멤버
cbData
프로퍼티 데이터의 길이 (바이트 단위). 이 구조체 멤버는 확장용이다.
dwTypeSpecificFlags
타입 고유의 플래그. 플래그는 미디어 타입 마다 정의된다. 디폴트값은 AM_VIDEO_FLAG_INTERLEAVED_FRAME (제로). 비디오 스트림에는 다음의 플래그가 사용되고 있다.
플래그 | 값 | 설명 |
AM_VIDEO_FLAG_FIELD_MASK | 0x0003 | 이 마스크를 사용해 샘플이 필드인가 프레임인지를 조사한다. |
AM_VIDEO_FLAG_INTERLEAVED_FRAME | 0x0000 | 샘플은 프레임이다 (이 값을 테스트하는 경우는 반드시 AM_VIDEO_FLAG_FIELD_MASK 비트 마스크를 사용하는 것). |
AM_VIDEO_FLAG_FIELD1 | 0x0001 | 샘플은 필드 1 이다 (이 값을 테스트하는 경우는 반드시 AM_VIDEO_FLAG_FIELD_MASK 비트 마스크를 사용하는 것). |
AM_VIDEO_FLAG_FIELD2 | 0x0002 | 샘플은 필드 2 이다 (이 값을 테스트하는 경우는 반드시 AM_VIDEO_FLAG_FIELD_MASK 비트 마스크를 사용하는 것). |
AM_VIDEO_FLAG_FIELD1FIRST | 0x0004 | 이 플래그가 설정되어 있는 경우는, 필드 1 을 최초로 표시한다. 설정되지 않은 경우는, 필드 2 를 최초로 표시한다 (1 개의 샘플에 대해 2 개의 필드가 있는 경우에 한정해 적용된다). |
AM_VIDEO_FLAG_WEAVE | 0x0008 | 이 플래그가 설정되어 있는 경우는, 위브모드를 사용한다 (샘플을 비인터레이스화하지 않는다). 이 플래그가 설정되지 않은 경우는, 보브모드를 사용한다. 이 플래그는, 1 개의 샘플에 대해 2 개의 필드가 있는 경우에 한정해 적용된다. |
AM_VIDEO_FLAG_REPEAT_FIELD | 0x0040 | 이 플래그가 설정되어 있는 경우는, 2 번째의 필드를 표시한 다음에 다시 최초의 필드를 표시한다 (1 개의 샘플에 대해 2 개의 필드가 있는 경우에 한정해 적용된다). |
다른 플래그도 정의되고 있지만, 현재는 사용되지 않았다. dvdmedia.h 를 참조할것.
dwSampleFlags
AM_SAMPLE_PROPERTY_FLAGS 열거형의 플래그의 비트마다 편성. 미정도리의 비트는 예약되고 있어 제로가 아니면 안된다.
lActual
버퍼내의 유효한 데이터의 길이.
tStart
유효한 경우는 시작 타임. dwSampleFlags 멤버는 이 멤버가 유효한가 어떤가를 나타낸다.
tStop
유효한 경우는 종료 타임. dwSampleFlags 멤버는 이 멤버가 유효한가 어떤가를 나타낸다.
dwStreamId
스트림 식별자. 이 값이 AM_STREAM_MEDIA 의 경우, 스트림에는 미디어 데이터가 포함된다. 이 값이 AM_STREAM_CONTROL 의 경우, 스트림에는 컨트롤 정보가 포함된다. 애플리케이션은 0x80000000 이상의 값을 정의해, 애플리케이션 자신의 용도에 사용할 수 있다. 「AM_SAMPLE_PROPERTY_FLAGS 열거」를 참조할것.
pMediaType
포맷이 변경되었을 경우에, 미디어 타입을 지정하는 AM_MEDIA_TYPE 구조체의 포인터. 이 포맷이 변경되지 않을 때는, 이 멤버에는 NULL 를 지정한다.
pbBuffer
샘플 버퍼의 포인터.
cbBuffer
샘플 버퍼의 사이즈 (바이트 단위).
참조