2013-10-01 2 views
0

멀티 채널 Apple Lossless 파일의 특정 구성을 인코딩하는 데 문제가 있습니다. 2, 4, 6 채널 구성에 문제가 없지만 12 채널 파일을 생성하는 데 문제가 있습니다.ClientDataFormat 설정 오류

ExtAudioFile API를 사용하여 12 채널 AudioStreamBasicDescription 및 12 채널 FileChannelLayout으로 오디오 파일을 만들 수 있습니다. 클라이언트 레이아웃을 설정하기 전에 12 채널 ClientDataFormat을 설정하면 "fmt?"오류 코드가 표시됩니다.

ClientDataFormat에 대한 My AudioStreamBasicDescription은 다음과 같이 생성됩니다.

AudioStreamBasicDescription asbd; 

asbd.mSampleRate = m_sampleRate; 
asbd.mFormatID = kAudioFormatLinearPCM; 
asbd.mFormatFlags = kAudioFormatFlagIsFloat; 
asbd.mBytesPerPacket = m_channels * 64/8; 
asbd.mBytesPerFrame = asbd.mBytesPerPacket; 
asbd.mFramesPerPacket = 1; 
asbd.mBitsPerChannel = 64; 
asbd.mChannelsPerFrame = m_channels; 
asbd.mReserved = 0; 

샘플 속도는 176.4 kHz 및 m_channels가 올바르게 설정되어있다.이 2, 4, 6 채널 설정을 위해 제대로 일했다, 그래서 나는 그것이 잘못이라고 생각하지 않습니다. 나는 또한 32 비트를 사용하려고했습니다 64 비트 부동 소수점 대신 정수로 부호있는 정수를 반환하지만 결과는 같습니다.

내가 무엇을 놓치고 있는지 확실하지 않습니다. Apple Lossless 코덱은 12 채널 인코딩을 지원하지 않습니까?

답변

1

내가 MacOSForge의 사양이 최종 경우 확실히 모르겠지만 흥미로운 가능성이 있어요,하지만 난이 전달 될 때 오류가 ExtAudioFileCreateWithURL 일어날 것이라고 생각했을 것이다 http://alac.macosforge.org/trac/browser/trunk/ReadMe.txt

3. From one to eight channels are supported. Channel orders for the supported formats are described as: 
      Num Chan  Order 
      1    mono 
      2    stereo (Left, Right) 
      3    MPEG 3.0 B (Center, Left, Right) 
      4    MPEG 4.0 B (Center, Left, Right, Center Surround) 
      5    MPEG 5.0 D (Center, Left, Right, Left Surround, Right Surround) 
      6    MPEG 5.1 D (Center, Left, Right, Left Surround, Right Surround, Low Frequency Effects) 
      7    Apple AAC 6.1 (Center, Left, Right, Left Surround, Right Surround, Center Surround, Low Frequency Effects) 
      8    MPEG 7.1 B (Center, Left Center, Right Center, Left, Right, Left Surround, Right Surround, Low Frequency Effects) 
+0

에 따라 12 채널 ASBD 또는 12 채널 레이아웃을 사용하여 kExtAudioFileProperty_FileChannelLayout 속성을 설정할 때 발생합니다. – Tim

+0

실제로 인코딩 함수 확인 kALACMaxChannels 8처럼 보입니다. – Tim

+0

'ExtAudioFileCreateWithURL'가 매개 변수의 유효성을 검사하는 것이 합리적 일 것입니다. 나는 버그를 신청할 것이다. – sbooth