wp/wp-includes/ID3/module.audio-video.asf.php
changeset 7 cf61fcea0001
parent 5 5e2f62d02dcd
child 16 a86126ab1dd4
equal deleted inserted replaced
6:490d5cc509ed 7:cf61fcea0001
   264 					$thisfile_asf_headerextensionobject['objectsize']          = $NextObjectSize;
   264 					$thisfile_asf_headerextensionobject['objectsize']          = $NextObjectSize;
   265 					$thisfile_asf_headerextensionobject['reserved_1']          = substr($ASFHeaderData, $offset, 16);
   265 					$thisfile_asf_headerextensionobject['reserved_1']          = substr($ASFHeaderData, $offset, 16);
   266 					$offset += 16;
   266 					$offset += 16;
   267 					$thisfile_asf_headerextensionobject['reserved_1_guid']     = $this->BytestringToGUID($thisfile_asf_headerextensionobject['reserved_1']);
   267 					$thisfile_asf_headerextensionobject['reserved_1_guid']     = $this->BytestringToGUID($thisfile_asf_headerextensionobject['reserved_1']);
   268 					if ($thisfile_asf_headerextensionobject['reserved_1'] != GETID3_ASF_Reserved_1) {
   268 					if ($thisfile_asf_headerextensionobject['reserved_1'] != GETID3_ASF_Reserved_1) {
   269 						$info['warning'][] = 'header_extension_object.reserved_1 GUID ('.$this->BytestringToGUID($thisfile_asf_headerextensionobject['reserved_1']).') does not match expected "GETID3_ASF_Reserved_1" GUID ('.$this->BytestringToGUID(GETID3_ASF_Reserved_1).')';
   269 						$this->warning('header_extension_object.reserved_1 GUID ('.$this->BytestringToGUID($thisfile_asf_headerextensionobject['reserved_1']).') does not match expected "GETID3_ASF_Reserved_1" GUID ('.$this->BytestringToGUID(GETID3_ASF_Reserved_1).')');
   270 						//return false;
   270 						//return false;
   271 						break;
   271 						break;
   272 					}
   272 					}
   273 					$thisfile_asf_headerextensionobject['reserved_2']          = getid3_lib::LittleEndian2Int(substr($ASFHeaderData, $offset, 2));
   273 					$thisfile_asf_headerextensionobject['reserved_2']          = getid3_lib::LittleEndian2Int(substr($ASFHeaderData, $offset, 2));
   274 					$offset += 2;
   274 					$offset += 2;
   275 					if ($thisfile_asf_headerextensionobject['reserved_2'] != 6) {
   275 					if ($thisfile_asf_headerextensionobject['reserved_2'] != 6) {
   276 						$info['warning'][] = 'header_extension_object.reserved_2 ('.getid3_lib::PrintHexBytes($thisfile_asf_headerextensionobject['reserved_2']).') does not match expected value of "6"';
   276 						$this->warning('header_extension_object.reserved_2 ('.getid3_lib::PrintHexBytes($thisfile_asf_headerextensionobject['reserved_2']).') does not match expected value of "6"');
   277 						//return false;
   277 						//return false;
   278 						break;
   278 						break;
   279 					}
   279 					}
   280 					$thisfile_asf_headerextensionobject['extension_data_size'] = getid3_lib::LittleEndian2Int(substr($ASFHeaderData, $offset, 4));
   280 					$thisfile_asf_headerextensionobject['extension_data_size'] = getid3_lib::LittleEndian2Int(substr($ASFHeaderData, $offset, 4));
   281 					$offset += 4;
   281 					$offset += 4;
   314 					$thisfile_asf_codeclistobject['objectsize']                = $NextObjectSize;
   314 					$thisfile_asf_codeclistobject['objectsize']                = $NextObjectSize;
   315 					$thisfile_asf_codeclistobject['reserved']                  = substr($ASFHeaderData, $offset, 16);
   315 					$thisfile_asf_codeclistobject['reserved']                  = substr($ASFHeaderData, $offset, 16);
   316 					$offset += 16;
   316 					$offset += 16;
   317 					$thisfile_asf_codeclistobject['reserved_guid']             = $this->BytestringToGUID($thisfile_asf_codeclistobject['reserved']);
   317 					$thisfile_asf_codeclistobject['reserved_guid']             = $this->BytestringToGUID($thisfile_asf_codeclistobject['reserved']);
   318 					if ($thisfile_asf_codeclistobject['reserved'] != $this->GUIDtoBytestring('86D15241-311D-11D0-A3A4-00A0C90348F6')) {
   318 					if ($thisfile_asf_codeclistobject['reserved'] != $this->GUIDtoBytestring('86D15241-311D-11D0-A3A4-00A0C90348F6')) {
   319 						$info['warning'][] = 'codec_list_object.reserved GUID {'.$this->BytestringToGUID($thisfile_asf_codeclistobject['reserved']).'} does not match expected "GETID3_ASF_Reserved_1" GUID {86D15241-311D-11D0-A3A4-00A0C90348F6}';
   319 						$this->warning('codec_list_object.reserved GUID {'.$this->BytestringToGUID($thisfile_asf_codeclistobject['reserved']).'} does not match expected "GETID3_ASF_Reserved_1" GUID {86D15241-311D-11D0-A3A4-00A0C90348F6}');
   320 						//return false;
   320 						//return false;
   321 						break;
   321 						break;
   322 					}
   322 					}
   323 					$thisfile_asf_codeclistobject['codec_entries_count'] = getid3_lib::LittleEndian2Int(substr($ASFHeaderData, $offset, 4));
   323 					$thisfile_asf_codeclistobject['codec_entries_count'] = getid3_lib::LittleEndian2Int(substr($ASFHeaderData, $offset, 4));
   324 					$offset += 4;
   324 					$offset += 4;
   347 						$offset += $CodecInformationLength;
   347 						$offset += $CodecInformationLength;
   348 
   348 
   349 						if ($thisfile_asf_codeclistobject_codecentries_current['type_raw'] == 2) { // audio codec
   349 						if ($thisfile_asf_codeclistobject_codecentries_current['type_raw'] == 2) { // audio codec
   350 
   350 
   351 							if (strpos($thisfile_asf_codeclistobject_codecentries_current['description'], ',') === false) {
   351 							if (strpos($thisfile_asf_codeclistobject_codecentries_current['description'], ',') === false) {
   352 								$info['warning'][] = '[asf][codec_list_object][codec_entries]['.$CodecEntryCounter.'][description] expected to contain comma-seperated list of parameters: "'.$thisfile_asf_codeclistobject_codecentries_current['description'].'"';
   352 								$this->warning('[asf][codec_list_object][codec_entries]['.$CodecEntryCounter.'][description] expected to contain comma-separated list of parameters: "'.$thisfile_asf_codeclistobject_codecentries_current['description'].'"');
   353 							} else {
   353 							} else {
   354 
   354 
   355 								list($AudioCodecBitrate, $AudioCodecFrequency, $AudioCodecChannels) = explode(',', $this->TrimConvert($thisfile_asf_codeclistobject_codecentries_current['description']));
   355 								list($AudioCodecBitrate, $AudioCodecFrequency, $AudioCodecChannels) = explode(',', $this->TrimConvert($thisfile_asf_codeclistobject_codecentries_current['description']));
   356 								$thisfile_audio['codec'] = $this->TrimConvert($thisfile_asf_codeclistobject_codecentries_current['name']);
   356 								$thisfile_audio['codec'] = $this->TrimConvert($thisfile_asf_codeclistobject_codecentries_current['name']);
   357 
   357 
   410 									case 48000:
   410 									case 48000:
   411 										$thisfile_audio['sample_rate'] = 48000;
   411 										$thisfile_audio['sample_rate'] = 48000;
   412 										break;
   412 										break;
   413 
   413 
   414 									default:
   414 									default:
   415 										$info['warning'][] = 'unknown frequency: "'.$AudioCodecFrequency.'" ('.$this->TrimConvert($thisfile_asf_codeclistobject_codecentries_current['description']).')';
   415 										$this->warning('unknown frequency: "'.$AudioCodecFrequency.'" ('.$this->TrimConvert($thisfile_asf_codeclistobject_codecentries_current['description']).')');
   416 										break;
   416 										break;
   417 								}
   417 								}
   418 
   418 
   419 								if (!isset($thisfile_audio['channels'])) {
   419 								if (!isset($thisfile_audio['channels'])) {
   420 									if (strstr($AudioCodecChannels, 'stereo')) {
   420 									if (strstr($AudioCodecChannels, 'stereo')) {
   456 					$thisfile_asf_scriptcommandobject['objectsize']           = $NextObjectSize;
   456 					$thisfile_asf_scriptcommandobject['objectsize']           = $NextObjectSize;
   457 					$thisfile_asf_scriptcommandobject['reserved']             = substr($ASFHeaderData, $offset, 16);
   457 					$thisfile_asf_scriptcommandobject['reserved']             = substr($ASFHeaderData, $offset, 16);
   458 					$offset += 16;
   458 					$offset += 16;
   459 					$thisfile_asf_scriptcommandobject['reserved_guid']        = $this->BytestringToGUID($thisfile_asf_scriptcommandobject['reserved']);
   459 					$thisfile_asf_scriptcommandobject['reserved_guid']        = $this->BytestringToGUID($thisfile_asf_scriptcommandobject['reserved']);
   460 					if ($thisfile_asf_scriptcommandobject['reserved'] != $this->GUIDtoBytestring('4B1ACBE3-100B-11D0-A39B-00A0C90348F6')) {
   460 					if ($thisfile_asf_scriptcommandobject['reserved'] != $this->GUIDtoBytestring('4B1ACBE3-100B-11D0-A39B-00A0C90348F6')) {
   461 						$info['warning'][] = 'script_command_object.reserved GUID {'.$this->BytestringToGUID($thisfile_asf_scriptcommandobject['reserved']).'} does not match expected "GETID3_ASF_Reserved_1" GUID {4B1ACBE3-100B-11D0-A39B-00A0C90348F6}';
   461 						$this->warning('script_command_object.reserved GUID {'.$this->BytestringToGUID($thisfile_asf_scriptcommandobject['reserved']).'} does not match expected "GETID3_ASF_Reserved_1" GUID {4B1ACBE3-100B-11D0-A39B-00A0C90348F6}');
   462 						//return false;
   462 						//return false;
   463 						break;
   463 						break;
   464 					}
   464 					}
   465 					$thisfile_asf_scriptcommandobject['commands_count']       = getid3_lib::LittleEndian2Int(substr($ASFHeaderData, $offset, 2));
   465 					$thisfile_asf_scriptcommandobject['commands_count']       = getid3_lib::LittleEndian2Int(substr($ASFHeaderData, $offset, 2));
   466 					$offset += 2;
   466 					$offset += 2;
   515 					$thisfile_asf_markerobject['objectsize']           = $NextObjectSize;
   515 					$thisfile_asf_markerobject['objectsize']           = $NextObjectSize;
   516 					$thisfile_asf_markerobject['reserved']             = substr($ASFHeaderData, $offset, 16);
   516 					$thisfile_asf_markerobject['reserved']             = substr($ASFHeaderData, $offset, 16);
   517 					$offset += 16;
   517 					$offset += 16;
   518 					$thisfile_asf_markerobject['reserved_guid']        = $this->BytestringToGUID($thisfile_asf_markerobject['reserved']);
   518 					$thisfile_asf_markerobject['reserved_guid']        = $this->BytestringToGUID($thisfile_asf_markerobject['reserved']);
   519 					if ($thisfile_asf_markerobject['reserved'] != $this->GUIDtoBytestring('4CFEDB20-75F6-11CF-9C0F-00A0C90349CB')) {
   519 					if ($thisfile_asf_markerobject['reserved'] != $this->GUIDtoBytestring('4CFEDB20-75F6-11CF-9C0F-00A0C90349CB')) {
   520 						$info['warning'][] = 'marker_object.reserved GUID {'.$this->BytestringToGUID($thisfile_asf_markerobject['reserved_1']).'} does not match expected "GETID3_ASF_Reserved_1" GUID {4CFEDB20-75F6-11CF-9C0F-00A0C90349CB}';
   520 						$this->warning('marker_object.reserved GUID {'.$this->BytestringToGUID($thisfile_asf_markerobject['reserved_1']).'} does not match expected "GETID3_ASF_Reserved_1" GUID {4CFEDB20-75F6-11CF-9C0F-00A0C90349CB}');
   521 						break;
   521 						break;
   522 					}
   522 					}
   523 					$thisfile_asf_markerobject['markers_count'] = getid3_lib::LittleEndian2Int(substr($ASFHeaderData, $offset, 4));
   523 					$thisfile_asf_markerobject['markers_count'] = getid3_lib::LittleEndian2Int(substr($ASFHeaderData, $offset, 4));
   524 					$offset += 4;
   524 					$offset += 4;
   525 					$thisfile_asf_markerobject['reserved_2'] = getid3_lib::LittleEndian2Int(substr($ASFHeaderData, $offset, 2));
   525 					$thisfile_asf_markerobject['reserved_2'] = getid3_lib::LittleEndian2Int(substr($ASFHeaderData, $offset, 2));
   526 					$offset += 2;
   526 					$offset += 2;
   527 					if ($thisfile_asf_markerobject['reserved_2'] != 0) {
   527 					if ($thisfile_asf_markerobject['reserved_2'] != 0) {
   528 						$info['warning'][] = 'marker_object.reserved_2 ('.getid3_lib::PrintHexBytes($thisfile_asf_markerobject['reserved_2']).') does not match expected value of "0"';
   528 						$this->warning('marker_object.reserved_2 ('.getid3_lib::PrintHexBytes($thisfile_asf_markerobject['reserved_2']).') does not match expected value of "0"');
   529 						break;
   529 						break;
   530 					}
   530 					}
   531 					$thisfile_asf_markerobject['name_length'] = getid3_lib::LittleEndian2Int(substr($ASFHeaderData, $offset, 2));
   531 					$thisfile_asf_markerobject['name_length'] = getid3_lib::LittleEndian2Int(substr($ASFHeaderData, $offset, 2));
   532 					$offset += 2;
   532 					$offset += 2;
   533 					$thisfile_asf_markerobject['name'] = substr($ASFHeaderData, $offset, $thisfile_asf_markerobject['name_length']);
   533 					$thisfile_asf_markerobject['name'] = substr($ASFHeaderData, $offset, $thisfile_asf_markerobject['name_length']);
   574 					$thisfile_asf_bitratemutualexclusionobject['objectsize']           = $NextObjectSize;
   574 					$thisfile_asf_bitratemutualexclusionobject['objectsize']           = $NextObjectSize;
   575 					$thisfile_asf_bitratemutualexclusionobject['reserved']             = substr($ASFHeaderData, $offset, 16);
   575 					$thisfile_asf_bitratemutualexclusionobject['reserved']             = substr($ASFHeaderData, $offset, 16);
   576 					$thisfile_asf_bitratemutualexclusionobject['reserved_guid']        = $this->BytestringToGUID($thisfile_asf_bitratemutualexclusionobject['reserved']);
   576 					$thisfile_asf_bitratemutualexclusionobject['reserved_guid']        = $this->BytestringToGUID($thisfile_asf_bitratemutualexclusionobject['reserved']);
   577 					$offset += 16;
   577 					$offset += 16;
   578 					if (($thisfile_asf_bitratemutualexclusionobject['reserved'] != GETID3_ASF_Mutex_Bitrate) && ($thisfile_asf_bitratemutualexclusionobject['reserved'] != GETID3_ASF_Mutex_Unknown)) {
   578 					if (($thisfile_asf_bitratemutualexclusionobject['reserved'] != GETID3_ASF_Mutex_Bitrate) && ($thisfile_asf_bitratemutualexclusionobject['reserved'] != GETID3_ASF_Mutex_Unknown)) {
   579 						$info['warning'][] = 'bitrate_mutual_exclusion_object.reserved GUID {'.$this->BytestringToGUID($thisfile_asf_bitratemutualexclusionobject['reserved']).'} does not match expected "GETID3_ASF_Mutex_Bitrate" GUID {'.$this->BytestringToGUID(GETID3_ASF_Mutex_Bitrate).'} or  "GETID3_ASF_Mutex_Unknown" GUID {'.$this->BytestringToGUID(GETID3_ASF_Mutex_Unknown).'}';
   579 						$this->warning('bitrate_mutual_exclusion_object.reserved GUID {'.$this->BytestringToGUID($thisfile_asf_bitratemutualexclusionobject['reserved']).'} does not match expected "GETID3_ASF_Mutex_Bitrate" GUID {'.$this->BytestringToGUID(GETID3_ASF_Mutex_Bitrate).'} or  "GETID3_ASF_Mutex_Unknown" GUID {'.$this->BytestringToGUID(GETID3_ASF_Mutex_Unknown).'}');
   580 						//return false;
   580 						//return false;
   581 						break;
   581 						break;
   582 					}
   582 					}
   583 					$thisfile_asf_bitratemutualexclusionobject['stream_numbers_count'] = getid3_lib::LittleEndian2Int(substr($ASFHeaderData, $offset, 2));
   583 					$thisfile_asf_bitratemutualexclusionobject['stream_numbers_count'] = getid3_lib::LittleEndian2Int(substr($ASFHeaderData, $offset, 2));
   584 					$offset += 2;
   584 					$offset += 2;
   635 							$thisfile_asf_errorcorrectionobject['silence_data']          = substr($ASFHeaderData, $offset, $thisfile_asf_errorcorrectionobject['silence_data_length']);
   635 							$thisfile_asf_errorcorrectionobject['silence_data']          = substr($ASFHeaderData, $offset, $thisfile_asf_errorcorrectionobject['silence_data_length']);
   636 							$offset += $thisfile_asf_errorcorrectionobject['silence_data_length'];
   636 							$offset += $thisfile_asf_errorcorrectionobject['silence_data_length'];
   637 							break;
   637 							break;
   638 
   638 
   639 						default:
   639 						default:
   640 							$info['warning'][] = 'error_correction_object.error_correction_type GUID {'.$this->BytestringToGUID($thisfile_asf_errorcorrectionobject['reserved']).'} does not match expected "GETID3_ASF_No_Error_Correction" GUID {'.$this->BytestringToGUID(GETID3_ASF_No_Error_Correction).'} or  "GETID3_ASF_Audio_Spread" GUID {'.$this->BytestringToGUID(GETID3_ASF_Audio_Spread).'}';
   640 							$this->warning('error_correction_object.error_correction_type GUID {'.$this->BytestringToGUID($thisfile_asf_errorcorrectionobject['reserved']).'} does not match expected "GETID3_ASF_No_Error_Correction" GUID {'.$this->BytestringToGUID(GETID3_ASF_No_Error_Correction).'} or  "GETID3_ASF_Audio_Spread" GUID {'.$this->BytestringToGUID(GETID3_ASF_Audio_Spread).'}');
   641 							//return false;
   641 							//return false;
   642 							break;
   642 							break;
   643 					}
   643 					}
   644 
   644 
   645 					break;
   645 					break;
   759 							case 0x0005: // WORD
   759 							case 0x0005: // WORD
   760 								$thisfile_asf_extendedcontentdescriptionobject_contentdescriptor_current['value'] = getid3_lib::LittleEndian2Int($thisfile_asf_extendedcontentdescriptionobject_contentdescriptor_current['value']);
   760 								$thisfile_asf_extendedcontentdescriptionobject_contentdescriptor_current['value'] = getid3_lib::LittleEndian2Int($thisfile_asf_extendedcontentdescriptionobject_contentdescriptor_current['value']);
   761 								break;
   761 								break;
   762 
   762 
   763 							default:
   763 							default:
   764 								$info['warning'][] = 'extended_content_description.content_descriptors.'.$ExtendedContentDescriptorsCounter.'.value_type is invalid ('.$thisfile_asf_extendedcontentdescriptionobject_contentdescriptor_current['value_type'].')';
   764 								$this->warning('extended_content_description.content_descriptors.'.$ExtendedContentDescriptorsCounter.'.value_type is invalid ('.$thisfile_asf_extendedcontentdescriptionobject_contentdescriptor_current['value_type'].')');
   765 								//return false;
   765 								//return false;
   766 								break;
   766 								break;
   767 						}
   767 						}
   768 						switch ($this->TrimConvert(strtolower($thisfile_asf_extendedcontentdescriptionobject_contentdescriptor_current['name']))) {
   768 						switch ($this->TrimConvert(strtolower($thisfile_asf_extendedcontentdescriptionobject_contentdescriptor_current['name']))) {
   769 
   769 
   960 					break;
   960 					break;
   961 
   961 
   962 				default:
   962 				default:
   963 					// Implementations shall ignore any standard or non-standard object that they do not know how to handle.
   963 					// Implementations shall ignore any standard or non-standard object that they do not know how to handle.
   964 					if ($this->GUIDname($NextObjectGUIDtext)) {
   964 					if ($this->GUIDname($NextObjectGUIDtext)) {
   965 						$info['warning'][] = 'unhandled GUID "'.$this->GUIDname($NextObjectGUIDtext).'" {'.$NextObjectGUIDtext.'} in ASF header at offset '.($offset - 16 - 8);
   965 						$this->warning('unhandled GUID "'.$this->GUIDname($NextObjectGUIDtext).'" {'.$NextObjectGUIDtext.'} in ASF header at offset '.($offset - 16 - 8));
   966 					} else {
   966 					} else {
   967 						$info['warning'][] = 'unknown GUID {'.$NextObjectGUIDtext.'} in ASF header at offset '.($offset - 16 - 8);
   967 						$this->warning('unknown GUID {'.$NextObjectGUIDtext.'} in ASF header at offset '.($offset - 16 - 8));
   968 					}
   968 					}
   969 					$offset += ($NextObjectSize - 16 - 8);
   969 					$offset += ($NextObjectSize - 16 - 8);
   970 					break;
   970 					break;
   971 			}
   971 			}
   972 		}
   972 		}
  1181 					$thisfile_asf_dataobject['total_data_packets'] = getid3_lib::LittleEndian2Int(substr($DataObjectData, $offset, 8));
  1181 					$thisfile_asf_dataobject['total_data_packets'] = getid3_lib::LittleEndian2Int(substr($DataObjectData, $offset, 8));
  1182 					$offset += 8;
  1182 					$offset += 8;
  1183 					$thisfile_asf_dataobject['reserved']           = getid3_lib::LittleEndian2Int(substr($DataObjectData, $offset, 2));
  1183 					$thisfile_asf_dataobject['reserved']           = getid3_lib::LittleEndian2Int(substr($DataObjectData, $offset, 2));
  1184 					$offset += 2;
  1184 					$offset += 2;
  1185 					if ($thisfile_asf_dataobject['reserved'] != 0x0101) {
  1185 					if ($thisfile_asf_dataobject['reserved'] != 0x0101) {
  1186 						$info['warning'][] = 'data_object.reserved ('.getid3_lib::PrintHexBytes($thisfile_asf_dataobject['reserved']).') does not match expected value of "0x0101"';
  1186 						$this->warning('data_object.reserved ('.getid3_lib::PrintHexBytes($thisfile_asf_dataobject['reserved']).') does not match expected value of "0x0101"');
  1187 						//return false;
  1187 						//return false;
  1188 						break;
  1188 						break;
  1189 					}
  1189 					}
  1190 
  1190 
  1191 					// Data Packets                     array of:    variable        //
  1191 					// Data Packets                     array of:    variable        //
  1317 
  1317 
  1318 
  1318 
  1319 				default:
  1319 				default:
  1320 					// Implementations shall ignore any standard or non-standard object that they do not know how to handle.
  1320 					// Implementations shall ignore any standard or non-standard object that they do not know how to handle.
  1321 					if ($this->GUIDname($NextObjectGUIDtext)) {
  1321 					if ($this->GUIDname($NextObjectGUIDtext)) {
  1322 						$info['warning'][] = 'unhandled GUID "'.$this->GUIDname($NextObjectGUIDtext).'" {'.$NextObjectGUIDtext.'} in ASF body at offset '.($offset - 16 - 8);
  1322 						$this->warning('unhandled GUID "'.$this->GUIDname($NextObjectGUIDtext).'" {'.$NextObjectGUIDtext.'} in ASF body at offset '.($offset - 16 - 8));
  1323 					} else {
  1323 					} else {
  1324 						$info['warning'][] = 'unknown GUID {'.$NextObjectGUIDtext.'} in ASF body at offset '.($this->ftell() - 16 - 8);
  1324 						$this->warning('unknown GUID {'.$NextObjectGUIDtext.'} in ASF body at offset '.($this->ftell() - 16 - 8));
  1325 					}
  1325 					}
  1326 					$this->fseek(($NextObjectSize - 16 - 8), SEEK_CUR);
  1326 					$this->fseek(($NextObjectSize - 16 - 8), SEEK_CUR);
  1327 					break;
  1327 					break;
  1328 			}
  1328 			}
  1329 		}
  1329 		}
  1403 
  1403 
  1404 						$thisfile_audio['codec']   = $thisfile_audio['encoder'];
  1404 						$thisfile_audio['codec']   = $thisfile_audio['encoder'];
  1405 						break;
  1405 						break;
  1406 
  1406 
  1407 					default:
  1407 					default:
  1408 						$info['warning'][] = 'Unknown streamtype: [codec_list_object][codec_entries]['.$streamnumber.'][type_raw] == '.$streamdata['type_raw'];
  1408 						$this->warning('Unknown streamtype: [codec_list_object][codec_entries]['.$streamnumber.'][type_raw] == '.$streamdata['type_raw']);
  1409 						break;
  1409 						break;
  1410 
  1410 
  1411 				}
  1411 				}
  1412 			}
  1412 			}
  1413 		}
  1413 		}
  1915 					break;
  1915 					break;
  1916 
  1916 
  1917 				default:
  1917 				default:
  1918 					$unhandled_sections++;
  1918 					$unhandled_sections++;
  1919 					if ($this->GUIDname($thisObject['guid_text'])) {
  1919 					if ($this->GUIDname($thisObject['guid_text'])) {
  1920 						$this->getid3->info['warning'][] = 'unhandled Header Extension Object GUID "'.$this->GUIDname($thisObject['guid_text']).'" {'.$thisObject['guid_text'].'} at offset '.($offset - 16 - 8);
  1920 						$this->warning('unhandled Header Extension Object GUID "'.$this->GUIDname($thisObject['guid_text']).'" {'.$thisObject['guid_text'].'} at offset '.($offset - 16 - 8));
  1921 					} else {
  1921 					} else {
  1922 						$this->getid3->info['warning'][] = 'unknown Header Extension Object GUID {'.$thisObject['guid_text'].'} in at offset '.($offset - 16 - 8);
  1922 						$this->warning('unknown Header Extension Object GUID {'.$thisObject['guid_text'].'} in at offset '.($offset - 16 - 8));
  1923 					}
  1923 					}
  1924 					break;
  1924 					break;
  1925 			}
  1925 			}
  1926 			$HeaderExtensionObjectParsed[] = $thisObject;
  1926 			$HeaderExtensionObjectParsed[] = $thisObject;
  1927 
  1927