MPEG1WAVEFORMAT 구조체(mmreg.h)
[이 페이지와 연결된 기능인 DirectShow는 레거시 기능입니다. MediaPlayer, IMFMediaEngine 및 Media Foundation의 오디오/비디오 캡처로 대체되었습니다. 이러한 기능은 Windows 10 및 Windows 11 최적화되었습니다. 가능한 경우 새 코드가 DirectShow 대신 Media Foundation에서 MediaPlayer, IMFMediaEngine 및 오디오/비디오 캡처를 사용하는 것이 좋습니다. 가능한 경우 레거시 API를 사용하는 기존 코드를 다시 작성하여 새 API를 사용하도록 제안합니다.]
구조체는 MPEG1WAVEFORMAT
MPEG-1 오디오 데이터의 형식을 설명합니다.
구문
typedef struct mpeg1waveformat_tag {
WAVEFORMATEX wfx;
WORD fwHeadLayer;
DWORD dwHeadBitrate;
WORD fwHeadMode;
WORD fwHeadModeExt;
WORD wHeadEmphasis;
WORD fwHeadFlags;
DWORD dwPTSLow;
DWORD dwPTSHigh;
} MPEG1WAVEFORMAT;
멤버
wfx
오디오 형식에 대한 정보를 포함하는 WAVEFORMATEX 구조체입니다. 설명 부분을 참조하세요.
fwHeadLayer
다음 상수에 정의된 대로 MPEG 오디오 계층을 지정합니다.
값 | 의미 |
---|---|
|
계층 1 |
|
계층 2 |
|
계층 3 |
일부 MPEG 스트림에는 둘 이상의 레이어의 프레임이 포함될 수 있습니다. 그렇다면 플래그를 비트 OR과 결합합니다.
dwHeadBitrate
비트 전송률을 초당 비트 단위로 지정합니다. 이 값은 MPEG 프레임 헤더 코드가 아닌 실제 비트 전송률을 제공합니다. 비트 전송률이 가변이거나 비표준 비트 전송률인 경우 이 필드를 0으로 설정합니다.
fwHeadMode
다음 상수에 정의된 스트림 모드를 지정합니다.
값 | 의미 |
---|---|
|
스테레오 |
|
조인트 스테레오 |
|
이중 채널 |
|
단일 채널 |
일부 MPEG 스트림에는 다른 모드의 프레임이 포함될 수 있습니다. 그렇다면 플래그를 비트 OR과 결합합니다.
fwHeadModeExt
조인트 스테레오 인코딩에 대한 모드 확장을 지정합니다.
값 | MPEG 프레임 헤더 코드 | 레이어 1 및 2 | 계층 3 |
---|---|---|---|
0x01 | '00' | 밴드 4에서 31까지의 강도 스테레오 | 강도 스테레오 오프; 중간/측면(MS) 스테레오 끄기 |
0x02 | '01' | 밴드 8에서 31까지의 강도 스테레오 | 강도 스테레오 켜기; MS 스테레오 끄기 |
0x04 | '10' | 밴드 12에서 31까지의 강도 스테레오 | 강도 스테레오 오프; MS 스테레오 켜기 |
0x08 | '11' | 밴드 16에서 31까지의 강도 스테레오 | 강도 스테레오 오프; MS 스테레오 켜기 |
이러한 값은 비트 OR과 결합될 수 있습니다. 일반적으로 인코더는 신호의 특성에 따라 확장 모드 간에 동적으로 전환됩니다. 따라서 일반적인 조인트 스테레오 인코딩의 경우 이 필드를 0x0F(모든 플래그의 비트 OR)로 설정합니다. 그러나 이 필드를 사용하여 인코더를 허용 가능한 인코딩 형식 집합으로 제한할 수 있습니다.
이 필드는 fwHeadMode 에 ACM_MPEG_JOINTSTEREO 포함된 경우에만 적용됩니다. 다른 모드의 경우 이 필드를 0으로 설정합니다.
wHeadEmphasis
디코더에 필요한 강조 해제를 지정합니다.
값 | MPEG 프레임 헤더 | 코드 강조 해제 필요 |
---|---|---|
1 | '00' | 없음 |
2 | '01' | 50/15ms 강조 |
3 | '10' | 예약됨 |
4 | '11' | CCITT J.17 |
fwHeadFlags
다음 플래그 중 0개 이상의 비트 조합을 지정합니다.
인코더는 이러한 플래그를 사용하여 MPEG 오디오 프레임 헤더에서 해당 비트를 설정합니다.
dwPTSLow
오디오 스트림의 첫 번째 프레임에서 가장 중요한 32비트 프레젠테이션 타임스탬프(PTS)를 지정합니다.
dwPTSHigh
PTS의 가장 중요한 비트를 지정합니다. dwPTSLow 및 dwPTSHigh 필드는 단일 64비트 값으로 처리할 수 있습니다.
설명
MPEG-1 오디오의 경우 wfx 멤버에 정의된 WAVEFORMATEX 구조체에는 다음 값이 있어야 합니다.
WAVEFORMATEX 멤버 | 설명 |
---|---|
wFormatTag | Must be WAVE_FORMAT_MPEG |
nChannels | 모노 1개, 스테레오 2개 |
nSamplesPerSec | 샘플링 빈도가 고정된 경우 샘플링 빈도를 지정합니다. 변수인 경우 이 필드를 0으로 설정합니다. |
nAvgBytesPerSec | 평균 데이터 속도를 지정합니다. 계층 3에서 가변 비트 전송률 인코딩을 사용하는 경우 값이 유효한 MPEG-1 비트 전송률이 아닐 수 있습니다. |
nBlockAlign | 오디오 프레임 길이가 고정된 오디오 스트림의 경우 이 필드는 오디오 프레임의 길이를 지정합니다. 프레임 길이가 가변적인 경우 이 필드를 1로 설정합니다. 샘플링 빈도가 32kHz 또는 48kHz이고 비트 속도가 일정하면 오디오 프레임 크기가 일정합니다. 이 경우 다음과 같이 nBlockAlign 을 계산합니다.
|
wBitsPerSample | 사용되지 않음; 를 0으로 설정합니다. |
cbSize | WAVEFORMATEX 구조체 뒤의 형식 데이터 크기를 바이트 단위로 지정합니다. 표준 MPEG1WAVEFORMAT 구조체의 경우 이 값은 22바이트입니다. |
요구 사항
머리글 | mmreg.h |