class_docstr: A CoreAudio "extended audio file". Reads information and raw PCM
  audio data from any file that CoreAudio knows how to decode.
  
      >>> with ExtAudioFile('something.m4a') as f:
      >>>     print f.samplerate
      >>>     print f.channels
      >>>     print f.duration
      >>>     for block in f:
      >>>         do_something(block)
class_docstr_tok: ["A","CoreAudio","``","extended","audio","file","''",".","Reads","information","and","raw","PCM","audio","data","from","any","file","that","CoreAudio","knows","how","to","decode",".",">",">",">","with","ExtAudioFile","(","'something.m4a","'",")","as","f",":",">",">",">","print","f.samplerate",">",">",">","print","f.channels",">",">",">","print","f.duration",">",">",">","for","block","in","f",":",">",">",">","do_something","(","block",")"]
docstr: Set the client format parameters, specifying the desired PCM
  audio data format to be read from the file. Must be called
  before reading from the file.
code: def setup(self, bitdepth=16):
      """Set the client format parameters, specifying the desired PCM
      audio data format to be read from the file. Must be called
      before reading from the file.
      """
      fmt = self.get_file_format()
      newfmt = copy.copy(fmt)
  
      newfmt.mFormatID = AUDIO_ID_PCM
      newfmt.mFormatFlags = PCM_IS_SIGNED_INT | PCM_IS_PACKED
      newfmt.mBitsPerChannel = bitdepth
      newfmt.mBytesPerPacket = (
          fmt.mChannelsPerFrame * newfmt.mBitsPerChannel // 8
      )
      newfmt.mFramesPerPacket = 1
      newfmt.mBytesPerFrame = newfmt.mBytesPerPacket
      self.set_client_format(newfmt)
  
imports: import copy
  import ctypes
  import ctypes.util
  import os
  import sys
  from .exceptions import DecodeError
  from .base import AudioFile
label_desc: Use image node_id 9 for calling the ExtAudioFile obj's underlying member method code with example usage: obj.setup(bitdepth) without return types