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; }