function RIFFparseWAVEFORMATex($WaveFormatExData)
 {
     // shortcut
     $WaveFormatEx['raw'] = array();
     $WaveFormatEx_raw =& $WaveFormatEx['raw'];
     $WaveFormatEx_raw['wFormatTag'] = getid3_lib::LittleEndian2Int(substr($WaveFormatExData, 0, 2));
     $WaveFormatEx_raw['nChannels'] = getid3_lib::LittleEndian2Int(substr($WaveFormatExData, 2, 2));
     $WaveFormatEx_raw['nSamplesPerSec'] = getid3_lib::LittleEndian2Int(substr($WaveFormatExData, 4, 4));
     $WaveFormatEx_raw['nAvgBytesPerSec'] = getid3_lib::LittleEndian2Int(substr($WaveFormatExData, 8, 4));
     $WaveFormatEx_raw['nBlockAlign'] = getid3_lib::LittleEndian2Int(substr($WaveFormatExData, 12, 2));
     $WaveFormatEx_raw['wBitsPerSample'] = getid3_lib::LittleEndian2Int(substr($WaveFormatExData, 14, 2));
     if (strlen($WaveFormatExData) > 16) {
         $WaveFormatEx_raw['cbSize'] = getid3_lib::LittleEndian2Int(substr($WaveFormatExData, 16, 2));
     }
     $WaveFormatEx['codec'] = getid3_riff::RIFFwFormatTagLookup($WaveFormatEx_raw['wFormatTag']);
     $WaveFormatEx['channels'] = $WaveFormatEx_raw['nChannels'];
     $WaveFormatEx['sample_rate'] = $WaveFormatEx_raw['nSamplesPerSec'];
     $WaveFormatEx['bitrate'] = $WaveFormatEx_raw['nAvgBytesPerSec'] * 8;
     $WaveFormatEx['bits_per_sample'] = $WaveFormatEx_raw['wBitsPerSample'];
     return $WaveFormatEx;
 }
 public static function RIFFparseWAVEFORMATex($wave_format_ex_data)
 {
     $wave_format_ex['raw'] = array();
     $wave_format_ex_raw =& $wave_format_ex['raw'];
     getid3_lib::ReadSequence('LittleEndian2Int', $wave_format_ex_raw, $wave_format_ex_data, 0, array('wFormatTag' => 2, 'nChannels' => 2, 'nSamplesPerSec' => 4, 'nAvgBytesPerSec' => 4, 'nBlockAlign' => 2, 'wBitsPerSample' => 2));
     if (strlen($wave_format_ex_data) > 16) {
         $wave_format_ex_raw['cbSize'] = getid3_lib::LittleEndian2Int(substr($wave_format_ex_data, 16, 2));
     }
     $wave_format_ex['codec'] = getid3_riff::RIFFwFormatTagLookup($wave_format_ex_raw['wFormatTag']);
     $wave_format_ex['channels'] = $wave_format_ex_raw['nChannels'];
     $wave_format_ex['sample_rate'] = $wave_format_ex_raw['nSamplesPerSec'];
     $wave_format_ex['bitrate'] = $wave_format_ex_raw['nAvgBytesPerSec'] * 8;
     if (@$wave_format_ex_raw['wBitsPerSample']) {
         $wave_format_ex['bits_per_sample'] = $wave_format_ex_raw['wBitsPerSample'];
     }
     return $wave_format_ex;
 }