Edit File by line

Deprecated: str_replace(): Passing null to parameter #2 ($replace) of type array|string is deprecated in /home/sportsfever/public_html/filemanger/function.php on line 93

Warning: Undefined array key "page_file_edit_line" in /home/sportsfever/public_html/filemanger/edit_text_line.php on line 32
/home/sportsfe.../httpdocs/clone/wp-inclu.../ID3
File: module.audio-video.asf.php
'GETID3_ASF_Content_Branding_Object' => '2211B3FA-BD23-11D2-B4B7-00A0C955FC6E',
[1500] Fix | Delete
'GETID3_ASF_Content_Encryption_Object' => '2211B3FB-BD23-11D2-B4B7-00A0C955FC6E',
[1501] Fix | Delete
'GETID3_ASF_Digital_Signature_Object' => '2211B3FC-BD23-11D2-B4B7-00A0C955FC6E',
[1502] Fix | Delete
'GETID3_ASF_Extended_Content_Encryption_Object' => '298AE614-2622-4C17-B935-DAE07EE9289C',
[1503] Fix | Delete
'GETID3_ASF_Simple_Index_Object' => '33000890-E5B1-11CF-89F4-00A0C90349CB',
[1504] Fix | Delete
'GETID3_ASF_Degradable_JPEG_Media' => '35907DE0-E415-11CF-A917-00805F5C442B',
[1505] Fix | Delete
'GETID3_ASF_Payload_Extension_System_Timecode' => '399595EC-8667-4E2D-8FDB-98814CE76C1E',
[1506] Fix | Delete
'GETID3_ASF_Binary_Media' => '3AFB65E2-47EF-40F2-AC2C-70A90D71D343',
[1507] Fix | Delete
'GETID3_ASF_Timecode_Index_Object' => '3CB73FD0-0C4A-4803-953D-EDF7B6228F0C',
[1508] Fix | Delete
'GETID3_ASF_Metadata_Library_Object' => '44231C94-9498-49D1-A141-1D134E457054',
[1509] Fix | Delete
'GETID3_ASF_Reserved_3' => '4B1ACBE3-100B-11D0-A39B-00A0C90348F6',
[1510] Fix | Delete
'GETID3_ASF_Reserved_4' => '4CFEDB20-75F6-11CF-9C0F-00A0C90349CB',
[1511] Fix | Delete
'GETID3_ASF_Command_Media' => '59DACFC0-59E6-11D0-A3AC-00A0C90348F6',
[1512] Fix | Delete
'GETID3_ASF_Header_Extension_Object' => '5FBF03B5-A92E-11CF-8EE3-00C00C205365',
[1513] Fix | Delete
'GETID3_ASF_Media_Object_Index_Parameters_Obj' => '6B203BAD-3F11-4E84-ACA8-D7613DE2CFA7',
[1514] Fix | Delete
'GETID3_ASF_Header_Object' => '75B22630-668E-11CF-A6D9-00AA0062CE6C',
[1515] Fix | Delete
'GETID3_ASF_Content_Description_Object' => '75B22633-668E-11CF-A6D9-00AA0062CE6C',
[1516] Fix | Delete
'GETID3_ASF_Error_Correction_Object' => '75B22635-668E-11CF-A6D9-00AA0062CE6C',
[1517] Fix | Delete
'GETID3_ASF_Data_Object' => '75B22636-668E-11CF-A6D9-00AA0062CE6C',
[1518] Fix | Delete
'GETID3_ASF_Web_Stream_Media_Subtype' => '776257D4-C627-41CB-8F81-7AC7FF1C40CC',
[1519] Fix | Delete
'GETID3_ASF_Stream_Bitrate_Properties_Object' => '7BF875CE-468D-11D1-8D82-006097C9A2B2',
[1520] Fix | Delete
'GETID3_ASF_Language_List_Object' => '7C4346A9-EFE0-4BFC-B229-393EDE415C85',
[1521] Fix | Delete
'GETID3_ASF_Codec_List_Object' => '86D15240-311D-11D0-A3A4-00A0C90348F6',
[1522] Fix | Delete
'GETID3_ASF_Reserved_2' => '86D15241-311D-11D0-A3A4-00A0C90348F6',
[1523] Fix | Delete
'GETID3_ASF_File_Properties_Object' => '8CABDCA1-A947-11CF-8EE4-00C00C205365',
[1524] Fix | Delete
'GETID3_ASF_File_Transfer_Media' => '91BD222C-F21C-497A-8B6D-5AA86BFC0185',
[1525] Fix | Delete
'GETID3_ASF_Old_RTP_Extension_Data' => '96800C63-4C94-11D1-837B-0080C7A37F95',
[1526] Fix | Delete
'GETID3_ASF_Advanced_Mutual_Exclusion_Object' => 'A08649CF-4775-4670-8A16-6E35357566CD',
[1527] Fix | Delete
'GETID3_ASF_Bandwidth_Sharing_Object' => 'A69609E6-517B-11D2-B6AF-00C04FD908E9',
[1528] Fix | Delete
'GETID3_ASF_Reserved_1' => 'ABD3D211-A9BA-11cf-8EE6-00C00C205365',
[1529] Fix | Delete
'GETID3_ASF_Bandwidth_Sharing_Exclusive' => 'AF6060AA-5197-11D2-B6AF-00C04FD908E9',
[1530] Fix | Delete
'GETID3_ASF_Bandwidth_Sharing_Partial' => 'AF6060AB-5197-11D2-B6AF-00C04FD908E9',
[1531] Fix | Delete
'GETID3_ASF_JFIF_Media' => 'B61BE100-5B4E-11CF-A8FD-00805F5C442B',
[1532] Fix | Delete
'GETID3_ASF_Stream_Properties_Object' => 'B7DC0791-A9B7-11CF-8EE6-00C00C205365',
[1533] Fix | Delete
'GETID3_ASF_Video_Media' => 'BC19EFC0-5B4D-11CF-A8FD-00805F5C442B',
[1534] Fix | Delete
'GETID3_ASF_Audio_Spread' => 'BFC3CD50-618F-11CF-8BB2-00AA00B4E220',
[1535] Fix | Delete
'GETID3_ASF_Metadata_Object' => 'C5F8CBEA-5BAF-4877-8467-AA8C44FA4CCA',
[1536] Fix | Delete
'GETID3_ASF_Payload_Ext_Syst_Sample_Duration' => 'C6BD9450-867F-4907-83A3-C77921B733AD',
[1537] Fix | Delete
'GETID3_ASF_Group_Mutual_Exclusion_Object' => 'D1465A40-5A79-4338-B71B-E36B8FD6C249',
[1538] Fix | Delete
'GETID3_ASF_Extended_Content_Description_Object' => 'D2D0A440-E307-11D2-97F0-00A0C95EA850',
[1539] Fix | Delete
'GETID3_ASF_Stream_Prioritization_Object' => 'D4FED15B-88D3-454F-81F0-ED5C45999E24',
[1540] Fix | Delete
'GETID3_ASF_Payload_Ext_System_Content_Type' => 'D590DC20-07BC-436C-9CF7-F3BBFBF1A4DC',
[1541] Fix | Delete
'GETID3_ASF_Old_File_Properties_Object' => 'D6E229D0-35DA-11D1-9034-00A0C90349BE',
[1542] Fix | Delete
'GETID3_ASF_Old_ASF_Header_Object' => 'D6E229D1-35DA-11D1-9034-00A0C90349BE',
[1543] Fix | Delete
'GETID3_ASF_Old_ASF_Data_Object' => 'D6E229D2-35DA-11D1-9034-00A0C90349BE',
[1544] Fix | Delete
'GETID3_ASF_Index_Object' => 'D6E229D3-35DA-11D1-9034-00A0C90349BE',
[1545] Fix | Delete
'GETID3_ASF_Old_Stream_Properties_Object' => 'D6E229D4-35DA-11D1-9034-00A0C90349BE',
[1546] Fix | Delete
'GETID3_ASF_Old_Content_Description_Object' => 'D6E229D5-35DA-11D1-9034-00A0C90349BE',
[1547] Fix | Delete
'GETID3_ASF_Old_Script_Command_Object' => 'D6E229D6-35DA-11D1-9034-00A0C90349BE',
[1548] Fix | Delete
'GETID3_ASF_Old_Marker_Object' => 'D6E229D7-35DA-11D1-9034-00A0C90349BE',
[1549] Fix | Delete
'GETID3_ASF_Old_Component_Download_Object' => 'D6E229D8-35DA-11D1-9034-00A0C90349BE',
[1550] Fix | Delete
'GETID3_ASF_Old_Stream_Group_Object' => 'D6E229D9-35DA-11D1-9034-00A0C90349BE',
[1551] Fix | Delete
'GETID3_ASF_Old_Scalable_Object' => 'D6E229DA-35DA-11D1-9034-00A0C90349BE',
[1552] Fix | Delete
'GETID3_ASF_Old_Prioritization_Object' => 'D6E229DB-35DA-11D1-9034-00A0C90349BE',
[1553] Fix | Delete
'GETID3_ASF_Bitrate_Mutual_Exclusion_Object' => 'D6E229DC-35DA-11D1-9034-00A0C90349BE',
[1554] Fix | Delete
'GETID3_ASF_Old_Inter_Media_Dependency_Object' => 'D6E229DD-35DA-11D1-9034-00A0C90349BE',
[1555] Fix | Delete
'GETID3_ASF_Old_Rating_Object' => 'D6E229DE-35DA-11D1-9034-00A0C90349BE',
[1556] Fix | Delete
'GETID3_ASF_Index_Parameters_Object' => 'D6E229DF-35DA-11D1-9034-00A0C90349BE',
[1557] Fix | Delete
'GETID3_ASF_Old_Color_Table_Object' => 'D6E229E0-35DA-11D1-9034-00A0C90349BE',
[1558] Fix | Delete
'GETID3_ASF_Old_Language_List_Object' => 'D6E229E1-35DA-11D1-9034-00A0C90349BE',
[1559] Fix | Delete
'GETID3_ASF_Old_Audio_Media' => 'D6E229E2-35DA-11D1-9034-00A0C90349BE',
[1560] Fix | Delete
'GETID3_ASF_Old_Video_Media' => 'D6E229E3-35DA-11D1-9034-00A0C90349BE',
[1561] Fix | Delete
'GETID3_ASF_Old_Image_Media' => 'D6E229E4-35DA-11D1-9034-00A0C90349BE',
[1562] Fix | Delete
'GETID3_ASF_Old_Timecode_Media' => 'D6E229E5-35DA-11D1-9034-00A0C90349BE',
[1563] Fix | Delete
'GETID3_ASF_Old_Text_Media' => 'D6E229E6-35DA-11D1-9034-00A0C90349BE',
[1564] Fix | Delete
'GETID3_ASF_Old_MIDI_Media' => 'D6E229E7-35DA-11D1-9034-00A0C90349BE',
[1565] Fix | Delete
'GETID3_ASF_Old_Command_Media' => 'D6E229E8-35DA-11D1-9034-00A0C90349BE',
[1566] Fix | Delete
'GETID3_ASF_Old_No_Error_Concealment' => 'D6E229EA-35DA-11D1-9034-00A0C90349BE',
[1567] Fix | Delete
'GETID3_ASF_Old_Scrambled_Audio' => 'D6E229EB-35DA-11D1-9034-00A0C90349BE',
[1568] Fix | Delete
'GETID3_ASF_Old_No_Color_Table' => 'D6E229EC-35DA-11D1-9034-00A0C90349BE',
[1569] Fix | Delete
'GETID3_ASF_Old_SMPTE_Time' => 'D6E229ED-35DA-11D1-9034-00A0C90349BE',
[1570] Fix | Delete
'GETID3_ASF_Old_ASCII_Text' => 'D6E229EE-35DA-11D1-9034-00A0C90349BE',
[1571] Fix | Delete
'GETID3_ASF_Old_Unicode_Text' => 'D6E229EF-35DA-11D1-9034-00A0C90349BE',
[1572] Fix | Delete
'GETID3_ASF_Old_HTML_Text' => 'D6E229F0-35DA-11D1-9034-00A0C90349BE',
[1573] Fix | Delete
'GETID3_ASF_Old_URL_Command' => 'D6E229F1-35DA-11D1-9034-00A0C90349BE',
[1574] Fix | Delete
'GETID3_ASF_Old_Filename_Command' => 'D6E229F2-35DA-11D1-9034-00A0C90349BE',
[1575] Fix | Delete
'GETID3_ASF_Old_ACM_Codec' => 'D6E229F3-35DA-11D1-9034-00A0C90349BE',
[1576] Fix | Delete
'GETID3_ASF_Old_VCM_Codec' => 'D6E229F4-35DA-11D1-9034-00A0C90349BE',
[1577] Fix | Delete
'GETID3_ASF_Old_QuickTime_Codec' => 'D6E229F5-35DA-11D1-9034-00A0C90349BE',
[1578] Fix | Delete
'GETID3_ASF_Old_DirectShow_Transform_Filter' => 'D6E229F6-35DA-11D1-9034-00A0C90349BE',
[1579] Fix | Delete
'GETID3_ASF_Old_DirectShow_Rendering_Filter' => 'D6E229F7-35DA-11D1-9034-00A0C90349BE',
[1580] Fix | Delete
'GETID3_ASF_Old_No_Enhancement' => 'D6E229F8-35DA-11D1-9034-00A0C90349BE',
[1581] Fix | Delete
'GETID3_ASF_Old_Unknown_Enhancement_Type' => 'D6E229F9-35DA-11D1-9034-00A0C90349BE',
[1582] Fix | Delete
'GETID3_ASF_Old_Temporal_Enhancement' => 'D6E229FA-35DA-11D1-9034-00A0C90349BE',
[1583] Fix | Delete
'GETID3_ASF_Old_Spatial_Enhancement' => 'D6E229FB-35DA-11D1-9034-00A0C90349BE',
[1584] Fix | Delete
'GETID3_ASF_Old_Quality_Enhancement' => 'D6E229FC-35DA-11D1-9034-00A0C90349BE',
[1585] Fix | Delete
'GETID3_ASF_Old_Number_of_Channels_Enhancement' => 'D6E229FD-35DA-11D1-9034-00A0C90349BE',
[1586] Fix | Delete
'GETID3_ASF_Old_Frequency_Response_Enhancement' => 'D6E229FE-35DA-11D1-9034-00A0C90349BE',
[1587] Fix | Delete
'GETID3_ASF_Old_Media_Object' => 'D6E229FF-35DA-11D1-9034-00A0C90349BE',
[1588] Fix | Delete
'GETID3_ASF_Mutex_Language' => 'D6E22A00-35DA-11D1-9034-00A0C90349BE',
[1589] Fix | Delete
'GETID3_ASF_Mutex_Bitrate' => 'D6E22A01-35DA-11D1-9034-00A0C90349BE',
[1590] Fix | Delete
'GETID3_ASF_Mutex_Unknown' => 'D6E22A02-35DA-11D1-9034-00A0C90349BE',
[1591] Fix | Delete
'GETID3_ASF_Old_ASF_Placeholder_Object' => 'D6E22A0E-35DA-11D1-9034-00A0C90349BE',
[1592] Fix | Delete
'GETID3_ASF_Old_Data_Unit_Extension_Object' => 'D6E22A0F-35DA-11D1-9034-00A0C90349BE',
[1593] Fix | Delete
'GETID3_ASF_Web_Stream_Format' => 'DA1E6B13-8359-4050-B398-388E965BF00C',
[1594] Fix | Delete
'GETID3_ASF_Payload_Ext_System_File_Name' => 'E165EC0E-19ED-45D7-B4A7-25CBD1E28E9B',
[1595] Fix | Delete
'GETID3_ASF_Marker_Object' => 'F487CD01-A951-11CF-8EE6-00C00C205365',
[1596] Fix | Delete
'GETID3_ASF_Timecode_Index_Parameters_Object' => 'F55E496D-9797-4B5D-8C8B-604DFE9BFB24',
[1597] Fix | Delete
'GETID3_ASF_Audio_Media' => 'F8699E40-5B4D-11CF-A8FD-00805F5C442B',
[1598] Fix | Delete
'GETID3_ASF_Media_Object_Index_Object' => 'FEB103F8-12AD-4C64-840F-2A1D2F7AD48C',
[1599] Fix | Delete
'GETID3_ASF_Alt_Extended_Content_Encryption_Obj' => 'FF889EF1-ADEE-40DA-9E71-98704BB928CE',
[1600] Fix | Delete
'GETID3_ASF_Index_Placeholder_Object' => 'D9AADE20-7C17-4F9C-BC28-8555DD98E2A2', // https://metacpan.org/dist/Audio-WMA/source/WMA.pm
[1601] Fix | Delete
'GETID3_ASF_Compatibility_Object' => '26F18B5D-4584-47EC-9F5F-0E651F0452C9', // https://metacpan.org/dist/Audio-WMA/source/WMA.pm
[1602] Fix | Delete
'GETID3_ASF_Media_Object_Index_Parameters_Object'=> '6B203BAD-3F11-48E4-ACA8-D7613DE2CFA7',
[1603] Fix | Delete
);
[1604] Fix | Delete
return $GUIDarray;
[1605] Fix | Delete
}
[1606] Fix | Delete
[1607] Fix | Delete
/**
[1608] Fix | Delete
* @param string $GUIDstring
[1609] Fix | Delete
*
[1610] Fix | Delete
* @return string|false
[1611] Fix | Delete
*/
[1612] Fix | Delete
public static function GUIDname($GUIDstring) {
[1613] Fix | Delete
static $GUIDarray = array();
[1614] Fix | Delete
if (empty($GUIDarray)) {
[1615] Fix | Delete
$GUIDarray = self::KnownGUIDs();
[1616] Fix | Delete
}
[1617] Fix | Delete
return array_search($GUIDstring, $GUIDarray);
[1618] Fix | Delete
}
[1619] Fix | Delete
[1620] Fix | Delete
/**
[1621] Fix | Delete
* @param int $id
[1622] Fix | Delete
*
[1623] Fix | Delete
* @return string
[1624] Fix | Delete
*/
[1625] Fix | Delete
public static function ASFIndexObjectIndexTypeLookup($id) {
[1626] Fix | Delete
static $ASFIndexObjectIndexTypeLookup = array();
[1627] Fix | Delete
if (empty($ASFIndexObjectIndexTypeLookup)) {
[1628] Fix | Delete
$ASFIndexObjectIndexTypeLookup[1] = 'Nearest Past Data Packet';
[1629] Fix | Delete
$ASFIndexObjectIndexTypeLookup[2] = 'Nearest Past Media Object';
[1630] Fix | Delete
$ASFIndexObjectIndexTypeLookup[3] = 'Nearest Past Cleanpoint';
[1631] Fix | Delete
}
[1632] Fix | Delete
return (isset($ASFIndexObjectIndexTypeLookup[$id]) ? $ASFIndexObjectIndexTypeLookup[$id] : 'invalid');
[1633] Fix | Delete
}
[1634] Fix | Delete
[1635] Fix | Delete
/**
[1636] Fix | Delete
* @param string $GUIDstring
[1637] Fix | Delete
*
[1638] Fix | Delete
* @return string
[1639] Fix | Delete
*/
[1640] Fix | Delete
public static function GUIDtoBytestring($GUIDstring) {
[1641] Fix | Delete
// Microsoft defines these 16-byte (128-bit) GUIDs in the strangest way:
[1642] Fix | Delete
// first 4 bytes are in little-endian order
[1643] Fix | Delete
// next 2 bytes are appended in little-endian order
[1644] Fix | Delete
// next 2 bytes are appended in little-endian order
[1645] Fix | Delete
// next 2 bytes are appended in big-endian order
[1646] Fix | Delete
// next 6 bytes are appended in big-endian order
[1647] Fix | Delete
[1648] Fix | Delete
// AaBbCcDd-EeFf-GgHh-IiJj-KkLlMmNnOoPp is stored as this 16-byte string:
[1649] Fix | Delete
// $Dd $Cc $Bb $Aa $Ff $Ee $Hh $Gg $Ii $Jj $Kk $Ll $Mm $Nn $Oo $Pp
[1650] Fix | Delete
[1651] Fix | Delete
$hexbytecharstring = chr(hexdec(substr($GUIDstring, 6, 2)));
[1652] Fix | Delete
$hexbytecharstring .= chr(hexdec(substr($GUIDstring, 4, 2)));
[1653] Fix | Delete
$hexbytecharstring .= chr(hexdec(substr($GUIDstring, 2, 2)));
[1654] Fix | Delete
$hexbytecharstring .= chr(hexdec(substr($GUIDstring, 0, 2)));
[1655] Fix | Delete
[1656] Fix | Delete
$hexbytecharstring .= chr(hexdec(substr($GUIDstring, 11, 2)));
[1657] Fix | Delete
$hexbytecharstring .= chr(hexdec(substr($GUIDstring, 9, 2)));
[1658] Fix | Delete
[1659] Fix | Delete
$hexbytecharstring .= chr(hexdec(substr($GUIDstring, 16, 2)));
[1660] Fix | Delete
$hexbytecharstring .= chr(hexdec(substr($GUIDstring, 14, 2)));
[1661] Fix | Delete
[1662] Fix | Delete
$hexbytecharstring .= chr(hexdec(substr($GUIDstring, 19, 2)));
[1663] Fix | Delete
$hexbytecharstring .= chr(hexdec(substr($GUIDstring, 21, 2)));
[1664] Fix | Delete
[1665] Fix | Delete
$hexbytecharstring .= chr(hexdec(substr($GUIDstring, 24, 2)));
[1666] Fix | Delete
$hexbytecharstring .= chr(hexdec(substr($GUIDstring, 26, 2)));
[1667] Fix | Delete
$hexbytecharstring .= chr(hexdec(substr($GUIDstring, 28, 2)));
[1668] Fix | Delete
$hexbytecharstring .= chr(hexdec(substr($GUIDstring, 30, 2)));
[1669] Fix | Delete
$hexbytecharstring .= chr(hexdec(substr($GUIDstring, 32, 2)));
[1670] Fix | Delete
$hexbytecharstring .= chr(hexdec(substr($GUIDstring, 34, 2)));
[1671] Fix | Delete
[1672] Fix | Delete
return $hexbytecharstring;
[1673] Fix | Delete
}
[1674] Fix | Delete
[1675] Fix | Delete
/**
[1676] Fix | Delete
* @param string $Bytestring
[1677] Fix | Delete
*
[1678] Fix | Delete
* @return string
[1679] Fix | Delete
*/
[1680] Fix | Delete
public static function BytestringToGUID($Bytestring) {
[1681] Fix | Delete
$GUIDstring = str_pad(dechex(ord($Bytestring[3])), 2, '0', STR_PAD_LEFT);
[1682] Fix | Delete
$GUIDstring .= str_pad(dechex(ord($Bytestring[2])), 2, '0', STR_PAD_LEFT);
[1683] Fix | Delete
$GUIDstring .= str_pad(dechex(ord($Bytestring[1])), 2, '0', STR_PAD_LEFT);
[1684] Fix | Delete
$GUIDstring .= str_pad(dechex(ord($Bytestring[0])), 2, '0', STR_PAD_LEFT);
[1685] Fix | Delete
$GUIDstring .= '-';
[1686] Fix | Delete
$GUIDstring .= str_pad(dechex(ord($Bytestring[5])), 2, '0', STR_PAD_LEFT);
[1687] Fix | Delete
$GUIDstring .= str_pad(dechex(ord($Bytestring[4])), 2, '0', STR_PAD_LEFT);
[1688] Fix | Delete
$GUIDstring .= '-';
[1689] Fix | Delete
$GUIDstring .= str_pad(dechex(ord($Bytestring[7])), 2, '0', STR_PAD_LEFT);
[1690] Fix | Delete
$GUIDstring .= str_pad(dechex(ord($Bytestring[6])), 2, '0', STR_PAD_LEFT);
[1691] Fix | Delete
$GUIDstring .= '-';
[1692] Fix | Delete
$GUIDstring .= str_pad(dechex(ord($Bytestring[8])), 2, '0', STR_PAD_LEFT);
[1693] Fix | Delete
$GUIDstring .= str_pad(dechex(ord($Bytestring[9])), 2, '0', STR_PAD_LEFT);
[1694] Fix | Delete
$GUIDstring .= '-';
[1695] Fix | Delete
$GUIDstring .= str_pad(dechex(ord($Bytestring[10])), 2, '0', STR_PAD_LEFT);
[1696] Fix | Delete
$GUIDstring .= str_pad(dechex(ord($Bytestring[11])), 2, '0', STR_PAD_LEFT);
[1697] Fix | Delete
$GUIDstring .= str_pad(dechex(ord($Bytestring[12])), 2, '0', STR_PAD_LEFT);
[1698] Fix | Delete
$GUIDstring .= str_pad(dechex(ord($Bytestring[13])), 2, '0', STR_PAD_LEFT);
[1699] Fix | Delete
$GUIDstring .= str_pad(dechex(ord($Bytestring[14])), 2, '0', STR_PAD_LEFT);
[1700] Fix | Delete
$GUIDstring .= str_pad(dechex(ord($Bytestring[15])), 2, '0', STR_PAD_LEFT);
[1701] Fix | Delete
[1702] Fix | Delete
return strtoupper($GUIDstring);
[1703] Fix | Delete
}
[1704] Fix | Delete
[1705] Fix | Delete
/**
[1706] Fix | Delete
* @param int $FILETIME
[1707] Fix | Delete
* @param bool $round
[1708] Fix | Delete
*
[1709] Fix | Delete
* @return float|int
[1710] Fix | Delete
*/
[1711] Fix | Delete
public static function FILETIMEtoUNIXtime($FILETIME, $round=true) {
[1712] Fix | Delete
// FILETIME is a 64-bit unsigned integer representing
[1713] Fix | Delete
// the number of 100-nanosecond intervals since January 1, 1601
[1714] Fix | Delete
// UNIX timestamp is number of seconds since January 1, 1970
[1715] Fix | Delete
// 116444736000000000 = 10000000 * 60 * 60 * 24 * 365 * 369 + 89 leap days
[1716] Fix | Delete
if ($round) {
[1717] Fix | Delete
return intval(round(($FILETIME - 116444736000000000) / 10000000));
[1718] Fix | Delete
}
[1719] Fix | Delete
return ($FILETIME - 116444736000000000) / 10000000;
[1720] Fix | Delete
}
[1721] Fix | Delete
[1722] Fix | Delete
/**
[1723] Fix | Delete
* @param int $WMpictureType
[1724] Fix | Delete
*
[1725] Fix | Delete
* @return string
[1726] Fix | Delete
*/
[1727] Fix | Delete
public static function WMpictureTypeLookup($WMpictureType) {
[1728] Fix | Delete
static $lookup = null;
[1729] Fix | Delete
if ($lookup === null) {
[1730] Fix | Delete
$lookup = array(
[1731] Fix | Delete
0x03 => 'Front Cover',
[1732] Fix | Delete
0x04 => 'Back Cover',
[1733] Fix | Delete
0x00 => 'User Defined',
[1734] Fix | Delete
0x05 => 'Leaflet Page',
[1735] Fix | Delete
0x06 => 'Media Label',
[1736] Fix | Delete
0x07 => 'Lead Artist',
[1737] Fix | Delete
0x08 => 'Artist',
[1738] Fix | Delete
0x09 => 'Conductor',
[1739] Fix | Delete
0x0A => 'Band',
[1740] Fix | Delete
0x0B => 'Composer',
[1741] Fix | Delete
0x0C => 'Lyricist',
[1742] Fix | Delete
0x0D => 'Recording Location',
[1743] Fix | Delete
0x0E => 'During Recording',
[1744] Fix | Delete
0x0F => 'During Performance',
[1745] Fix | Delete
0x10 => 'Video Screen Capture',
[1746] Fix | Delete
0x12 => 'Illustration',
[1747] Fix | Delete
0x13 => 'Band Logotype',
[1748] Fix | Delete
0x14 => 'Publisher Logotype'
[1749] Fix | Delete
);
[1750] Fix | Delete
$lookup = array_map(function($str) {
[1751] Fix | Delete
return getid3_lib::iconv_fallback('UTF-8', 'UTF-16LE', $str);
[1752] Fix | Delete
}, $lookup);
[1753] Fix | Delete
}
[1754] Fix | Delete
[1755] Fix | Delete
return (isset($lookup[$WMpictureType]) ? $lookup[$WMpictureType] : '');
[1756] Fix | Delete
}
[1757] Fix | Delete
[1758] Fix | Delete
/**
[1759] Fix | Delete
* @param string $asf_header_extension_object_data
[1760] Fix | Delete
* @param int $unhandled_sections
[1761] Fix | Delete
*
[1762] Fix | Delete
* @return array
[1763] Fix | Delete
*/
[1764] Fix | Delete
public function HeaderExtensionObjectDataParse(&$asf_header_extension_object_data, &$unhandled_sections) {
[1765] Fix | Delete
// https://web.archive.org/web/20140419205228/http://msdn.microsoft.com/en-us/library/bb643323.aspx
[1766] Fix | Delete
[1767] Fix | Delete
$offset = 0;
[1768] Fix | Delete
$objectOffset = 0;
[1769] Fix | Delete
$HeaderExtensionObjectParsed = array();
[1770] Fix | Delete
while ($objectOffset < strlen($asf_header_extension_object_data)) {
[1771] Fix | Delete
$offset = $objectOffset;
[1772] Fix | Delete
$thisObject = array();
[1773] Fix | Delete
[1774] Fix | Delete
$thisObject['guid'] = substr($asf_header_extension_object_data, $offset, 16);
[1775] Fix | Delete
$offset += 16;
[1776] Fix | Delete
$thisObject['guid_text'] = $this->BytestringToGUID($thisObject['guid']);
[1777] Fix | Delete
$thisObject['guid_name'] = $this->GUIDname($thisObject['guid_text']);
[1778] Fix | Delete
[1779] Fix | Delete
$thisObject['size'] = getid3_lib::LittleEndian2Int(substr($asf_header_extension_object_data, $offset, 8));
[1780] Fix | Delete
$offset += 8;
[1781] Fix | Delete
if ($thisObject['size'] <= 0) {
[1782] Fix | Delete
break;
[1783] Fix | Delete
}
[1784] Fix | Delete
[1785] Fix | Delete
switch ($thisObject['guid']) {
[1786] Fix | Delete
case GETID3_ASF_Extended_Stream_Properties_Object:
[1787] Fix | Delete
$thisObject['start_time'] = getid3_lib::LittleEndian2Int(substr($asf_header_extension_object_data, $offset, 8));
[1788] Fix | Delete
$offset += 8;
[1789] Fix | Delete
$thisObject['start_time_unix'] = $this->FILETIMEtoUNIXtime($thisObject['start_time']);
[1790] Fix | Delete
[1791] Fix | Delete
$thisObject['end_time'] = getid3_lib::LittleEndian2Int(substr($asf_header_extension_object_data, $offset, 8));
[1792] Fix | Delete
$offset += 8;
[1793] Fix | Delete
$thisObject['end_time_unix'] = $this->FILETIMEtoUNIXtime($thisObject['end_time']);
[1794] Fix | Delete
[1795] Fix | Delete
$thisObject['data_bitrate'] = getid3_lib::LittleEndian2Int(substr($asf_header_extension_object_data, $offset, 4));
[1796] Fix | Delete
$offset += 4;
[1797] Fix | Delete
[1798] Fix | Delete
$thisObject['buffer_size'] = getid3_lib::LittleEndian2Int(substr($asf_header_extension_object_data, $offset, 4));
[1799] Fix | Delete
$offset += 4;
[1800] Fix | Delete
[1801] Fix | Delete
$thisObject['initial_buffer_fullness'] = getid3_lib::LittleEndian2Int(substr($asf_header_extension_object_data, $offset, 4));
[1802] Fix | Delete
$offset += 4;
[1803] Fix | Delete
[1804] Fix | Delete
$thisObject['alternate_data_bitrate'] = getid3_lib::LittleEndian2Int(substr($asf_header_extension_object_data, $offset, 4));
[1805] Fix | Delete
$offset += 4;
[1806] Fix | Delete
[1807] Fix | Delete
$thisObject['alternate_buffer_size'] = getid3_lib::LittleEndian2Int(substr($asf_header_extension_object_data, $offset, 4));
[1808] Fix | Delete
$offset += 4;
[1809] Fix | Delete
[1810] Fix | Delete
$thisObject['alternate_initial_buffer_fullness'] = getid3_lib::LittleEndian2Int(substr($asf_header_extension_object_data, $offset, 4));
[1811] Fix | Delete
$offset += 4;
[1812] Fix | Delete
[1813] Fix | Delete
$thisObject['maximum_object_size'] = getid3_lib::LittleEndian2Int(substr($asf_header_extension_object_data, $offset, 4));
[1814] Fix | Delete
$offset += 4;
[1815] Fix | Delete
[1816] Fix | Delete
$thisObject['flags_raw'] = getid3_lib::LittleEndian2Int(substr($asf_header_extension_object_data, $offset, 4));
[1817] Fix | Delete
$offset += 4;
[1818] Fix | Delete
$thisObject['flags']['reliable'] = (bool) $thisObject['flags_raw'] & 0x00000001;
[1819] Fix | Delete
$thisObject['flags']['seekable'] = (bool) $thisObject['flags_raw'] & 0x00000002;
[1820] Fix | Delete
$thisObject['flags']['no_cleanpoints'] = (bool) $thisObject['flags_raw'] & 0x00000004;
[1821] Fix | Delete
$thisObject['flags']['resend_live_cleanpoints'] = (bool) $thisObject['flags_raw'] & 0x00000008;
[1822] Fix | Delete
[1823] Fix | Delete
$thisObject['stream_number'] = getid3_lib::LittleEndian2Int(substr($asf_header_extension_object_data, $offset, 2));
[1824] Fix | Delete
$offset += 2;
[1825] Fix | Delete
[1826] Fix | Delete
$thisObject['stream_language_id_index'] = getid3_lib::LittleEndian2Int(substr($asf_header_extension_object_data, $offset, 2));
[1827] Fix | Delete
$offset += 2;
[1828] Fix | Delete
[1829] Fix | Delete
$thisObject['average_time_per_frame'] = getid3_lib::LittleEndian2Int(substr($asf_header_extension_object_data, $offset, 8));
[1830] Fix | Delete
$offset += 8;
[1831] Fix | Delete
[1832] Fix | Delete
$thisObject['stream_name_count'] = getid3_lib::LittleEndian2Int(substr($asf_header_extension_object_data, $offset, 2));
[1833] Fix | Delete
$offset += 2;
[1834] Fix | Delete
[1835] Fix | Delete
$thisObject['payload_extension_system_count'] = getid3_lib::LittleEndian2Int(substr($asf_header_extension_object_data, $offset, 2));
[1836] Fix | Delete
$offset += 2;
[1837] Fix | Delete
[1838] Fix | Delete
for ($i = 0; $i < $thisObject['stream_name_count']; $i++) {
[1839] Fix | Delete
$streamName = array();
[1840] Fix | Delete
[1841] Fix | Delete
$streamName['language_id_index'] = getid3_lib::LittleEndian2Int(substr($asf_header_extension_object_data, $offset, 2));
[1842] Fix | Delete
$offset += 2;
[1843] Fix | Delete
[1844] Fix | Delete
$streamName['stream_name_length'] = getid3_lib::LittleEndian2Int(substr($asf_header_extension_object_data, $offset, 2));
[1845] Fix | Delete
$offset += 2;
[1846] Fix | Delete
[1847] Fix | Delete
$streamName['stream_name'] = substr($asf_header_extension_object_data, $offset, $streamName['stream_name_length']);
[1848] Fix | Delete
$offset += $streamName['stream_name_length'];
[1849] Fix | Delete
[1850] Fix | Delete
$thisObject['stream_names'][$i] = $streamName;
[1851] Fix | Delete
}
[1852] Fix | Delete
[1853] Fix | Delete
for ($i = 0; $i < $thisObject['payload_extension_system_count']; $i++) {
[1854] Fix | Delete
$payloadExtensionSystem = array();
[1855] Fix | Delete
[1856] Fix | Delete
$payloadExtensionSystem['extension_system_id'] = substr($asf_header_extension_object_data, $offset, 16);
[1857] Fix | Delete
$offset += 16;
[1858] Fix | Delete
$payloadExtensionSystem['extension_system_id_text'] = $this->BytestringToGUID($payloadExtensionSystem['extension_system_id']);
[1859] Fix | Delete
[1860] Fix | Delete
$payloadExtensionSystem['extension_system_size'] = getid3_lib::LittleEndian2Int(substr($asf_header_extension_object_data, $offset, 2));
[1861] Fix | Delete
$offset += 2;
[1862] Fix | Delete
if ($payloadExtensionSystem['extension_system_size'] <= 0) {
[1863] Fix | Delete
break 2;
[1864] Fix | Delete
}
[1865] Fix | Delete
[1866] Fix | Delete
$payloadExtensionSystem['extension_system_info_length'] = getid3_lib::LittleEndian2Int(substr($asf_header_extension_object_data, $offset, 4));
[1867] Fix | Delete
$offset += 4;
[1868] Fix | Delete
[1869] Fix | Delete
$payloadExtensionSystem['extension_system_info'] = substr($asf_header_extension_object_data, $offset, $payloadExtensionSystem['extension_system_info_length']);
[1870] Fix | Delete
$offset += $payloadExtensionSystem['extension_system_info_length'];
[1871] Fix | Delete
[1872] Fix | Delete
$thisObject['payload_extension_systems'][$i] = $payloadExtensionSystem;
[1873] Fix | Delete
}
[1874] Fix | Delete
[1875] Fix | Delete
break;
[1876] Fix | Delete
[1877] Fix | Delete
case GETID3_ASF_Advanced_Mutual_Exclusion_Object:
[1878] Fix | Delete
$thisObject['exclusion_type'] = substr($asf_header_extension_object_data, $offset, 16);
[1879] Fix | Delete
$offset += 16;
[1880] Fix | Delete
$thisObject['exclusion_type_text'] = $this->BytestringToGUID($thisObject['exclusion_type']);
[1881] Fix | Delete
[1882] Fix | Delete
$thisObject['stream_numbers_count'] = getid3_lib::LittleEndian2Int(substr($asf_header_extension_object_data, $offset, 2));
[1883] Fix | Delete
$offset += 2;
[1884] Fix | Delete
[1885] Fix | Delete
for ($i = 0; $i < $thisObject['stream_numbers_count']; $i++) {
[1886] Fix | Delete
$thisObject['stream_numbers'][$i] = getid3_lib::LittleEndian2Int(substr($asf_header_extension_object_data, $offset, 2));
[1887] Fix | Delete
$offset += 2;
[1888] Fix | Delete
}
[1889] Fix | Delete
[1890] Fix | Delete
break;
[1891] Fix | Delete
[1892] Fix | Delete
case GETID3_ASF_Stream_Prioritization_Object:
[1893] Fix | Delete
$thisObject['priority_records_count'] = getid3_lib::LittleEndian2Int(substr($asf_header_extension_object_data, $offset, 2));
[1894] Fix | Delete
$offset += 2;
[1895] Fix | Delete
[1896] Fix | Delete
for ($i = 0; $i < $thisObject['priority_records_count']; $i++) {
[1897] Fix | Delete
$priorityRecord = array();
[1898] Fix | Delete
[1899] Fix | Delete
$priorityRecord['stream_number'] = getid3_lib::LittleEndian2Int(substr($asf_header_extension_object_data, $offset, 2));
[1900] Fix | Delete
$offset += 2;
[1901] Fix | Delete
[1902] Fix | Delete
$priorityRecord['flags_raw'] = getid3_lib::LittleEndian2Int(substr($asf_header_extension_object_data, $offset, 2));
[1903] Fix | Delete
$offset += 2;
[1904] Fix | Delete
$priorityRecord['flags']['mandatory'] = (bool) $priorityRecord['flags_raw'] & 0x00000001;
[1905] Fix | Delete
[1906] Fix | Delete
$thisObject['priority_records'][$i] = $priorityRecord;
[1907] Fix | Delete
}
[1908] Fix | Delete
[1909] Fix | Delete
break;
[1910] Fix | Delete
[1911] Fix | Delete
case GETID3_ASF_Padding_Object:
[1912] Fix | Delete
// padding, skip it
[1913] Fix | Delete
break;
[1914] Fix | Delete
[1915] Fix | Delete
case GETID3_ASF_Metadata_Object:
[1916] Fix | Delete
$thisObject['description_record_counts'] = getid3_lib::LittleEndian2Int(substr($asf_header_extension_object_data, $offset, 2));
[1917] Fix | Delete
$offset += 2;
[1918] Fix | Delete
[1919] Fix | Delete
for ($i = 0; $i < $thisObject['description_record_counts']; $i++) {
[1920] Fix | Delete
$descriptionRecord = array();
[1921] Fix | Delete
[1922] Fix | Delete
$descriptionRecord['reserved_1'] = getid3_lib::LittleEndian2Int(substr($asf_header_extension_object_data, $offset, 2)); // must be zero
[1923] Fix | Delete
$offset += 2;
[1924] Fix | Delete
[1925] Fix | Delete
$descriptionRecord['stream_number'] = getid3_lib::LittleEndian2Int(substr($asf_header_extension_object_data, $offset, 2));
[1926] Fix | Delete
$offset += 2;
[1927] Fix | Delete
[1928] Fix | Delete
$descriptionRecord['name_length'] = getid3_lib::LittleEndian2Int(substr($asf_header_extension_object_data, $offset, 2));
[1929] Fix | Delete
$offset += 2;
[1930] Fix | Delete
[1931] Fix | Delete
$descriptionRecord['data_type'] = getid3_lib::LittleEndian2Int(substr($asf_header_extension_object_data, $offset, 2));
[1932] Fix | Delete
$offset += 2;
[1933] Fix | Delete
$descriptionRecord['data_type_text'] = self::metadataLibraryObjectDataTypeLookup($descriptionRecord['data_type']);
[1934] Fix | Delete
[1935] Fix | Delete
$descriptionRecord['data_length'] = getid3_lib::LittleEndian2Int(substr($asf_header_extension_object_data, $offset, 4));
[1936] Fix | Delete
$offset += 4;
[1937] Fix | Delete
[1938] Fix | Delete
$descriptionRecord['name'] = substr($asf_header_extension_object_data, $offset, $descriptionRecord['name_length']);
[1939] Fix | Delete
$offset += $descriptionRecord['name_length'];
[1940] Fix | Delete
[1941] Fix | Delete
$descriptionRecord['data'] = substr($asf_header_extension_object_data, $offset, $descriptionRecord['data_length']);
[1942] Fix | Delete
$offset += $descriptionRecord['data_length'];
[1943] Fix | Delete
switch ($descriptionRecord['data_type']) {
[1944] Fix | Delete
case 0x0000: // Unicode string
[1945] Fix | Delete
break;
[1946] Fix | Delete
[1947] Fix | Delete
case 0x0001: // BYTE array
[1948] Fix | Delete
// do nothing
[1949] Fix | Delete
break;
[1950] Fix | Delete
[1951] Fix | Delete
case 0x0002: // BOOL
[1952] Fix | Delete
$descriptionRecord['data'] = (bool) getid3_lib::LittleEndian2Int($descriptionRecord['data']);
[1953] Fix | Delete
break;
[1954] Fix | Delete
[1955] Fix | Delete
case 0x0003: // DWORD
[1956] Fix | Delete
case 0x0004: // QWORD
[1957] Fix | Delete
case 0x0005: // WORD
[1958] Fix | Delete
$descriptionRecord['data'] = getid3_lib::LittleEndian2Int($descriptionRecord['data']);
[1959] Fix | Delete
break;
[1960] Fix | Delete
[1961] Fix | Delete
case 0x0006: // GUID
[1962] Fix | Delete
$descriptionRecord['data_text'] = $this->BytestringToGUID($descriptionRecord['data']);
[1963] Fix | Delete
break;
[1964] Fix | Delete
}
[1965] Fix | Delete
[1966] Fix | Delete
$thisObject['description_record'][$i] = $descriptionRecord;
[1967] Fix | Delete
}
[1968] Fix | Delete
break;
[1969] Fix | Delete
[1970] Fix | Delete
case GETID3_ASF_Language_List_Object:
[1971] Fix | Delete
$thisObject['language_id_record_counts'] = getid3_lib::LittleEndian2Int(substr($asf_header_extension_object_data, $offset, 2));
[1972] Fix | Delete
$offset += 2;
[1973] Fix | Delete
[1974] Fix | Delete
for ($i = 0; $i < $thisObject['language_id_record_counts']; $i++) {
[1975] Fix | Delete
$languageIDrecord = array();
[1976] Fix | Delete
[1977] Fix | Delete
$languageIDrecord['language_id_length'] = getid3_lib::LittleEndian2Int(substr($asf_header_extension_object_data, $offset, 1));
[1978] Fix | Delete
$offset += 1;
[1979] Fix | Delete
[1980] Fix | Delete
$languageIDrecord['language_id'] = substr($asf_header_extension_object_data, $offset, $languageIDrecord['language_id_length']);
[1981] Fix | Delete
$offset += $languageIDrecord['language_id_length'];
[1982] Fix | Delete
[1983] Fix | Delete
$thisObject['language_id_record'][$i] = $languageIDrecord;
[1984] Fix | Delete
}
[1985] Fix | Delete
break;
[1986] Fix | Delete
[1987] Fix | Delete
case GETID3_ASF_Metadata_Library_Object:
[1988] Fix | Delete
$thisObject['description_records_count'] = getid3_lib::LittleEndian2Int(substr($asf_header_extension_object_data, $offset, 2));
[1989] Fix | Delete
$offset += 2;
[1990] Fix | Delete
[1991] Fix | Delete
for ($i = 0; $i < $thisObject['description_records_count']; $i++) {
[1992] Fix | Delete
$descriptionRecord = array();
[1993] Fix | Delete
[1994] Fix | Delete
$descriptionRecord['language_list_index'] = getid3_lib::LittleEndian2Int(substr($asf_header_extension_object_data, $offset, 2));
[1995] Fix | Delete
$offset += 2;
[1996] Fix | Delete
[1997] Fix | Delete
$descriptionRecord['stream_number'] = getid3_lib::LittleEndian2Int(substr($asf_header_extension_object_data, $offset, 2));
[1998] Fix | Delete
$offset += 2;
[1999] Fix | Delete
It is recommended that you Edit text format, this type of Fix handles quite a lot in one request
Function