멀티 채널 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 채널 인코딩을 지원하지 않습니까?
에 따라 12 채널 ASBD 또는 12 채널 레이아웃을 사용하여 kExtAudioFileProperty_FileChannelLayout 속성을 설정할 때 발생합니다. – Tim
실제로 인코딩 함수 확인 kALACMaxChannels 8처럼 보입니다. – Tim
'ExtAudioFileCreateWithURL'가 매개 변수의 유효성을 검사하는 것이 합리적 일 것입니다. 나는 버그를 신청할 것이다. – sbooth