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: Get the file format description. This describes the type of
  data stored on disk.
code: def get_file_format(self):
      """Get the file format description. This describes the type of
      data stored on disk.
      """
      # Have cached file format?
      if self._file_fmt is not None:
          return self._file_fmt
  
      # Make the call to retrieve it.
      desc = AudioStreamBasicDescription()
      size = ctypes.c_int(ctypes.sizeof(desc))
      check(
          _coreaudio.ExtAudioFileGetProperty(
              self._obj,
              PROP_FILE_DATA_FORMAT,
              ctypes.byref(size),
              ctypes.byref(desc),
          )
      )
  
      # Cache result.
      self._file_fmt = desc
      return desc
  
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 4 for calling the ExtAudioFile obj's underlying member method code with example usage: obj.get_file_format() and returns: desc, self