关于audio各结构说明摘录

来源:互联网 发布:淘宝访客数影响因素 编辑:程序博客网 时间:2024/06/10 02:36

AudioStreamBasicDescription:

In audio data a frame is one sample across all channels. In non-interleaved

                    audio, the per frame fields identify one channel. In interleaved audio, the per

                    frame fields identify the set of n channels. In uncompressed audio, a Packet is

                    one frame, (mFramesPerPacket == 1). In compressed audio, a Packet is an

                    indivisible chunk of compressed data, for example an AAC packet will contain

                    1024 sample frames.


AudioStreamBasicDescription flags:

    @discussion     Typically, when an ASBD is being used, the fields describe the complete layout

                    of the sample data in the buffers that are represented by this description -

                    where typically those buffers are represented by an AudioBuffer that is

                    contained in an AudioBufferList.


                    However, when an ASBD has the kAudioFormatFlagIsNonInterleaved flag, the

                    AudioBufferList has a different structure and semantic. In this case, the ASBD

                    fields will describe the format of ONE of the AudioBuffers that are contained in

                    the list, AND each AudioBuffer in the list is determined to have a single (mono)

                    channel of audio data. Then, the ASBD's mChannelsPerFrame will indicate the

                    total number of AudioBuffers that are contained within the AudioBufferList -

                    where each buffer contains one channel. This is used primarily with the

                    AudioUnit (and AudioConverter) representation of this list - and won't be found

                    in the AudioHardware usage of this structure.