سؤال

In AudioStreamBasicDescription struct:

struct AudioStreamBasicDescription {
    Float64 mSampleRate;
    UInt32  mFormatID;
    UInt32  mFormatFlags;
    UInt32  mBytesPerPacket;
    UInt32  mFramesPerPacket;
    UInt32  mBytesPerFrame;
    UInt32  mChannelsPerFrame;
    UInt32  mBitsPerChannel;
    UInt32  mReserved; 
};

if we know nChannelsPerFrame and mBitsPerChannels, we can calculate mBytesPerFrame like this: mBytesPerFrame = mBitsPerChannels * mChannelsPerFrame / 8 (correct me if I'm wrong)

I believe that all of the fields exist for some reason. What is it for mBytesPerFrame?

هل كانت مفيدة؟

المحلول

Yes. The field can be used to aid in describing packing and alignment of LPCM sample data/frames. That's also mandatory for describing some external LPCM representations.

For example, you can specify a 20 bit sample size, but an implementation may favor to represent/transfer/store that using 3 bytes, or 24 bits (ignoring 4 bits per sample).

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top