DirectShow DirectShow 레퍼런스 DirectShow 구조체 AVISTREAMHEADER   [목차열람] [주소복사] [슬롯비우기]
AVISTREAMHEADER 구조체
 
Microsoft DirectX 9.0

AVISTREAMHEADER 구조체

AVISTREAMHEADER 구조체는, AVI 파일내의 1 개의 스트림에 관한 정보를 저장 한다.

구문

typedef struct _avistreamheader {
     FOURCC fcc;
     DWORD  cb;
     FOURCC fccType;
     FOURCC fccHandler;
     DWORD  dwFlags;
     WORD   wPriority;
     WORD   wLanguage;
     DWORD  dwInitialFrames;
     DWORD  dwScale;
     DWORD  dwRate;
     DWORD  dwStart;
     DWORD  dwLength;
     DWORD  dwSuggestedBufferSize;
     DWORD  dwQuality;
     DWORD  dwSampleSize;
     struct {
         short int left;
         short int top;
         short int right;
         short int bottom;
     }  rcFrame;
} AVISTREAMHEADER;

멤버

fcc

FOURCC 코드를 지정한다. 값은 'strh'가 아니면 안된다.

cb

구조체의 사이즈를 지정한다. 최초의 8 바이트분을 공제한 값을 지정한다.

fccType

스트림에 포함되는 데이터의 타입을 지정하는 FOURCC 를 포함한다. 비디오 및 오디오에 대해서 이하의 표준 AVI 값이 정의되고 있다.

FOURCC 설명
'auds' 오디오 스트림.
'mids' MIDI 스트림.
'txts' 텍스트 스트림.
'vids' 비디오 스트림.

fccHandler

특정의 데이터 핸들러를 나타내는 FOURCC 를 포함한다 (옵션). 데이터 핸들러는, 스트림에 대해서 적절한 핸들러이다. 오디오 스트림 또는 비디오 스트림에 대해, 스트림을 디코드하는 코덱을 지정한다.

dwFlags

데이터 스트림에 대한 플래그를 포함한다. 이러한 플래그의 상위 워드의 비트는, 스트림에 포함되는 데이터의 타입에 고유하다. 이하의 표준 플래그가 정의되고 있다.

설명
AVISF_DISABLED 이 스트림을 디폴트로 유효하게 하지 않는 것을 나타낸다.
AVISF_VIDEO_PALCHANGES 이 비디오 스트림으로 팔레트의 변경이 포함되는 것을 나타낸다. 이 플래그는, 재생 소프트웨어에 대해서, 팔레트를 애니메이션 할 필요가 있는 것을 경고한다.

dwPriority

스트림 타입의 우선 순위를 지정한다. 예를 들어, 복수의 오디오 스트림을 포함한 파일에서는, 우선 순위의 가장 높은 스트림이 디폴트의 스트림이 된다.

dwInitialFrames

인터리브 된 파일로, 오디오 데이터가 비디오 프레임으로부터 어느 정도 skew 되고 있는지를 지정한다. 보통은, 약 0.75 초이다. 인터리브 된 파일을 생성 하는 경우, 파일내에서 AVI 순서의 시작 프레임보다 전에 있는 프레임수를, 이 멤버로 지정한다. 이 멤버의 내용에 관한 더 자세한 정보는, 「Video for Windows Programmer's Guide」의 「Special Information for Interleaved Files」를 참조할것.

dwScale

dwRate 와 함께 사용해, 이 스트림이 사용하는 타임즈 케일을 지정한다. dwRatedwScale 로 나누는 것으로, 1 초 쯤의 샘플수가 요구된다. 비디오 스트림의 경우, 이것은 frame rate이다. 오디오 스트림의 경우, 이 레이트는 nBlockAlign 바이트의 오디오의 재생에 필요한 시간에 상당한다. 이것은 PCM 오디오의 경우는 샘플 레이트에 동일해진다.

dwRate

dwScale 를 참조할것.

dwStart

이 스트림의 시작 타임을 지정한다. 단위는, 메인 파일 헤더의 dwRatedwScale 멤버에 의해 정의된다. Usually, this is zero, but it can specify a delay time for a stream that does not start concurrently with the file.

dwLength

이 스트림의 길이를 지정한다. 단위는, 스트림의 헤더의 dwRatedwScale 멤버에 의해 정의된다.

dwSuggestedBufferSize

이 스트림을 읽어내기 위해서(때문에) 필요한 버퍼의 크기를 지정한다. 보통은, 스트림내의 최대의 체크에 대응하는 값이다. 올바른 버퍼 사이즈를 사용하는 것으로, 재생의 효율이 높아진다. 올바른 버퍼 사이즈를 모르는 경우는, 0 을 지정한다.

dwQuality

스트림내의 데이터의 품질을 나타내는 값을 지정한다. 품질은, 0 ~ 10,000 의 범위의 값으로 나타난다. 압축 데이터의 경우, 이것은 보통, 압축 소프트웨어에게 건네지는 품질 파라미터의 값을 나타낸다. -1 (으)로 설정했을 경우, 드라이버는 디폴트의 품질값을 사용한다.

dwSampleSize

데이터의 1 샘플의 사이즈를 지정한다. 샘플의 사이즈가 변화하는 경우는, 0 으로 설정한다. 이 값이 0 이 아닌 경우, 파일내에서 복수의 데이터 샘플을 1 개의 체크에 그룹화 할 수 있다. 0 의 경우, 각 데이터 샘플 (비디오 프레임등)은 각각 다른 체크에 포함되지 않으면 안 된다. 비디오 스트림의 경우, 이 값은 보통 0 이지만, 모든 비디오 프레임이 같은 사이즈이면, 0 이외의 값에도 할 수 있다. 오디오 스트림의 경우, 이 값은 오디오를 기술하는 WAVEFORMATEX 구조체의 nBlockAlign 멤버와 같지 않으면 안 된다.

rcFrame

AVI 메인 헤더 구조체의 dwWidthdwHeight 멤버에 의해 지정되는 동영상 직사각형내의 텍스트 또는 비디오 스트림에 대한 목적지 직사각형을 지정한다. 보통,rcFrame 멤버는, 복수의 비디오 스트림을 지원 하기 위해서 사용된다. 이 직사각형은, 동영상 직사각형에 대응하는 좌표로 설정해, 동영상 직사각형 전체를 갱신한다. 이 멤버의 단위는 픽셀이다. 목적지 직사각형의 좌상구석은, 동영상 직사각형의 좌상구석으로부터의 상대 지정이 된다.

주의

이 구조체의 멤버의 일부는,AVIMAINHEADER 구조체에도 존재하고 있다. AVIMAINHEADER 구조체에 포함되는 데이터는 파일 전체에 적용되지만,AVISTREAMHEADER 구조체에 포함되는 데이터는 1 개의 스트림에 대해서 적용된다.

요건

Aviriff.h 를 인클루드 하는 것.

참조

↑TOP