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.matroska.php
$block_data['flags']['lacing_type'] = self::BlockLacingType($block_data['flags']['lacing']);
[1500] Fix | Delete
[1501] Fix | Delete
// Lace (when lacing bit is set)
[1502] Fix | Delete
if ($block_data['flags']['lacing'] > 0) {
[1503] Fix | Delete
$block_data['lace_frames'] = getid3_lib::BigEndian2Int($this->readEBMLelementData(1)) + 1; // Number of frames in the lace-1 (uint8)
[1504] Fix | Delete
if ($block_data['flags']['lacing'] != 0x02) {
[1505] Fix | Delete
for ($i = 1; $i < $block_data['lace_frames']; $i ++) { // Lace-coded size of each frame of the lace, except for the last one (multiple uint8). *This is not used with Fixed-size lacing as it is calculated automatically from (total size of lace) / (number of frames in lace).
[1506] Fix | Delete
if ($block_data['flags']['lacing'] == 0x03) { // EBML lacing
[1507] Fix | Delete
$block_data['lace_frames_size'][$i] = $this->readEBMLint(); // TODO: read size correctly, calc size for the last frame. For now offsets are deteminded OK with readEBMLint() and that's the most important thing.
[1508] Fix | Delete
}
[1509] Fix | Delete
else { // Xiph lacing
[1510] Fix | Delete
$block_data['lace_frames_size'][$i] = 0;
[1511] Fix | Delete
do {
[1512] Fix | Delete
$size = getid3_lib::BigEndian2Int($this->readEBMLelementData(1));
[1513] Fix | Delete
$block_data['lace_frames_size'][$i] += $size;
[1514] Fix | Delete
}
[1515] Fix | Delete
while ($size == 255);
[1516] Fix | Delete
}
[1517] Fix | Delete
}
[1518] Fix | Delete
if ($block_data['flags']['lacing'] == 0x01) { // calc size of the last frame only for Xiph lacing, till EBML sizes are now anyway determined incorrectly
[1519] Fix | Delete
$block_data['lace_frames_size'][] = $element['end'] - $this->current_offset - array_sum($block_data['lace_frames_size']);
[1520] Fix | Delete
}
[1521] Fix | Delete
}
[1522] Fix | Delete
}
[1523] Fix | Delete
[1524] Fix | Delete
if (!isset($info['matroska']['track_data_offsets'][$block_data['tracknumber']])) {
[1525] Fix | Delete
$info['matroska']['track_data_offsets'][$block_data['tracknumber']]['offset'] = $this->current_offset;
[1526] Fix | Delete
$info['matroska']['track_data_offsets'][$block_data['tracknumber']]['length'] = $element['end'] - $this->current_offset;
[1527] Fix | Delete
//$info['matroska']['track_data_offsets'][$block_data['tracknumber']]['total_length'] = 0;
[1528] Fix | Delete
}
[1529] Fix | Delete
//$info['matroska']['track_data_offsets'][$block_data['tracknumber']]['total_length'] += $info['matroska']['track_data_offsets'][$block_data['tracknumber']]['length'];
[1530] Fix | Delete
//$info['matroska']['track_data_offsets'][$block_data['tracknumber']]['duration'] = $block_data['timecode'] * ((isset($info['matroska']['info'][0]['TimecodeScale']) ? $info['matroska']['info'][0]['TimecodeScale'] : 1000000) / 1000000000);
[1531] Fix | Delete
[1532] Fix | Delete
// set offset manually
[1533] Fix | Delete
$this->current_offset = $element['end'];
[1534] Fix | Delete
[1535] Fix | Delete
return $block_data;
[1536] Fix | Delete
}
[1537] Fix | Delete
[1538] Fix | Delete
/**
[1539] Fix | Delete
* @param string $EBMLstring
[1540] Fix | Delete
*
[1541] Fix | Delete
* @return int|float|false
[1542] Fix | Delete
*/
[1543] Fix | Delete
private static function EBML2Int($EBMLstring) {
[1544] Fix | Delete
// http://matroska.org/specs/
[1545] Fix | Delete
[1546] Fix | Delete
// Element ID coded with an UTF-8 like system:
[1547] Fix | Delete
// 1xxx xxxx - Class A IDs (2^7 -2 possible values) (base 0x8X)
[1548] Fix | Delete
// 01xx xxxx xxxx xxxx - Class B IDs (2^14-2 possible values) (base 0x4X 0xXX)
[1549] Fix | Delete
// 001x xxxx xxxx xxxx xxxx xxxx - Class C IDs (2^21-2 possible values) (base 0x2X 0xXX 0xXX)
[1550] Fix | Delete
// 0001 xxxx xxxx xxxx xxxx xxxx xxxx xxxx - Class D IDs (2^28-2 possible values) (base 0x1X 0xXX 0xXX 0xXX)
[1551] Fix | Delete
// Values with all x at 0 and 1 are reserved (hence the -2).
[1552] Fix | Delete
[1553] Fix | Delete
// Data size, in octets, is also coded with an UTF-8 like system :
[1554] Fix | Delete
// 1xxx xxxx - value 0 to 2^7-2
[1555] Fix | Delete
// 01xx xxxx xxxx xxxx - value 0 to 2^14-2
[1556] Fix | Delete
// 001x xxxx xxxx xxxx xxxx xxxx - value 0 to 2^21-2
[1557] Fix | Delete
// 0001 xxxx xxxx xxxx xxxx xxxx xxxx xxxx - value 0 to 2^28-2
[1558] Fix | Delete
// 0000 1xxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx - value 0 to 2^35-2
[1559] Fix | Delete
// 0000 01xx xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx - value 0 to 2^42-2
[1560] Fix | Delete
// 0000 001x xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx - value 0 to 2^49-2
[1561] Fix | Delete
// 0000 0001 xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx - value 0 to 2^56-2
[1562] Fix | Delete
[1563] Fix | Delete
$first_byte_int = ord($EBMLstring[0]);
[1564] Fix | Delete
if (0x80 & $first_byte_int) {
[1565] Fix | Delete
$EBMLstring[0] = chr($first_byte_int & 0x7F);
[1566] Fix | Delete
} elseif (0x40 & $first_byte_int) {
[1567] Fix | Delete
$EBMLstring[0] = chr($first_byte_int & 0x3F);
[1568] Fix | Delete
} elseif (0x20 & $first_byte_int) {
[1569] Fix | Delete
$EBMLstring[0] = chr($first_byte_int & 0x1F);
[1570] Fix | Delete
} elseif (0x10 & $first_byte_int) {
[1571] Fix | Delete
$EBMLstring[0] = chr($first_byte_int & 0x0F);
[1572] Fix | Delete
} elseif (0x08 & $first_byte_int) {
[1573] Fix | Delete
$EBMLstring[0] = chr($first_byte_int & 0x07);
[1574] Fix | Delete
} elseif (0x04 & $first_byte_int) {
[1575] Fix | Delete
$EBMLstring[0] = chr($first_byte_int & 0x03);
[1576] Fix | Delete
} elseif (0x02 & $first_byte_int) {
[1577] Fix | Delete
$EBMLstring[0] = chr($first_byte_int & 0x01);
[1578] Fix | Delete
} elseif (0x01 & $first_byte_int) {
[1579] Fix | Delete
$EBMLstring[0] = chr($first_byte_int & 0x00);
[1580] Fix | Delete
}
[1581] Fix | Delete
[1582] Fix | Delete
return getid3_lib::BigEndian2Int($EBMLstring);
[1583] Fix | Delete
}
[1584] Fix | Delete
[1585] Fix | Delete
/**
[1586] Fix | Delete
* @param int $EBMLdatestamp
[1587] Fix | Delete
*
[1588] Fix | Delete
* @return float
[1589] Fix | Delete
*/
[1590] Fix | Delete
private static function EBMLdate2unix($EBMLdatestamp) {
[1591] Fix | Delete
// Date - signed 8 octets integer in nanoseconds with 0 indicating the precise beginning of the millennium (at 2001-01-01T00:00:00,000000000 UTC)
[1592] Fix | Delete
// 978307200 == mktime(0, 0, 0, 1, 1, 2001) == January 1, 2001 12:00:00am UTC
[1593] Fix | Delete
return round(($EBMLdatestamp / 1000000000) + 978307200);
[1594] Fix | Delete
}
[1595] Fix | Delete
[1596] Fix | Delete
/**
[1597] Fix | Delete
* @param int $target_type
[1598] Fix | Delete
*
[1599] Fix | Delete
* @return string|int
[1600] Fix | Delete
*/
[1601] Fix | Delete
public static function TargetTypeValue($target_type) {
[1602] Fix | Delete
// http://www.matroska.org/technical/specs/tagging/index.html
[1603] Fix | Delete
static $TargetTypeValue = array();
[1604] Fix | Delete
if (empty($TargetTypeValue)) {
[1605] Fix | Delete
$TargetTypeValue[10] = 'A: ~ V:shot'; // the lowest hierarchy found in music or movies
[1606] Fix | Delete
$TargetTypeValue[20] = 'A:subtrack/part/movement ~ V:scene'; // corresponds to parts of a track for audio (like a movement)
[1607] Fix | Delete
$TargetTypeValue[30] = 'A:track/song ~ V:chapter'; // the common parts of an album or a movie
[1608] Fix | Delete
$TargetTypeValue[40] = 'A:part/session ~ V:part/session'; // when an album or episode has different logical parts
[1609] Fix | Delete
$TargetTypeValue[50] = 'A:album/opera/concert ~ V:movie/episode/concert'; // the most common grouping level of music and video (equals to an episode for TV series)
[1610] Fix | Delete
$TargetTypeValue[60] = 'A:edition/issue/volume/opus ~ V:season/sequel/volume'; // a list of lower levels grouped together
[1611] Fix | Delete
$TargetTypeValue[70] = 'A:collection ~ V:collection'; // the high hierarchy consisting of many different lower items
[1612] Fix | Delete
}
[1613] Fix | Delete
return (isset($TargetTypeValue[$target_type]) ? $TargetTypeValue[$target_type] : $target_type);
[1614] Fix | Delete
}
[1615] Fix | Delete
[1616] Fix | Delete
/**
[1617] Fix | Delete
* @param int $lacingtype
[1618] Fix | Delete
*
[1619] Fix | Delete
* @return string|int
[1620] Fix | Delete
*/
[1621] Fix | Delete
public static function BlockLacingType($lacingtype) {
[1622] Fix | Delete
// http://matroska.org/technical/specs/index.html#block_structure
[1623] Fix | Delete
static $BlockLacingType = array();
[1624] Fix | Delete
if (empty($BlockLacingType)) {
[1625] Fix | Delete
$BlockLacingType[0x00] = 'no lacing';
[1626] Fix | Delete
$BlockLacingType[0x01] = 'Xiph lacing';
[1627] Fix | Delete
$BlockLacingType[0x02] = 'fixed-size lacing';
[1628] Fix | Delete
$BlockLacingType[0x03] = 'EBML lacing';
[1629] Fix | Delete
}
[1630] Fix | Delete
return (isset($BlockLacingType[$lacingtype]) ? $BlockLacingType[$lacingtype] : $lacingtype);
[1631] Fix | Delete
}
[1632] Fix | Delete
[1633] Fix | Delete
/**
[1634] Fix | Delete
* @param string $codecid
[1635] Fix | Delete
*
[1636] Fix | Delete
* @return string
[1637] Fix | Delete
*/
[1638] Fix | Delete
public static function CodecIDtoCommonName($codecid) {
[1639] Fix | Delete
// http://www.matroska.org/technical/specs/codecid/index.html
[1640] Fix | Delete
static $CodecIDlist = array();
[1641] Fix | Delete
if (empty($CodecIDlist)) {
[1642] Fix | Delete
$CodecIDlist['A_AAC'] = 'aac';
[1643] Fix | Delete
$CodecIDlist['A_AAC/MPEG2/LC'] = 'aac';
[1644] Fix | Delete
$CodecIDlist['A_AC3'] = 'ac3';
[1645] Fix | Delete
$CodecIDlist['A_EAC3'] = 'eac3';
[1646] Fix | Delete
$CodecIDlist['A_DTS'] = 'dts';
[1647] Fix | Delete
$CodecIDlist['A_FLAC'] = 'flac';
[1648] Fix | Delete
$CodecIDlist['A_MPEG/L1'] = 'mp1';
[1649] Fix | Delete
$CodecIDlist['A_MPEG/L2'] = 'mp2';
[1650] Fix | Delete
$CodecIDlist['A_MPEG/L3'] = 'mp3';
[1651] Fix | Delete
$CodecIDlist['A_PCM/INT/LIT'] = 'pcm'; // PCM Integer Little Endian
[1652] Fix | Delete
$CodecIDlist['A_PCM/INT/BIG'] = 'pcm'; // PCM Integer Big Endian
[1653] Fix | Delete
$CodecIDlist['A_QUICKTIME/QDMC'] = 'quicktime'; // Quicktime: QDesign Music
[1654] Fix | Delete
$CodecIDlist['A_QUICKTIME/QDM2'] = 'quicktime'; // Quicktime: QDesign Music v2
[1655] Fix | Delete
$CodecIDlist['A_VORBIS'] = 'vorbis';
[1656] Fix | Delete
$CodecIDlist['V_MPEG1'] = 'mpeg';
[1657] Fix | Delete
$CodecIDlist['V_THEORA'] = 'theora';
[1658] Fix | Delete
$CodecIDlist['V_REAL/RV40'] = 'real';
[1659] Fix | Delete
$CodecIDlist['V_REAL/RV10'] = 'real';
[1660] Fix | Delete
$CodecIDlist['V_REAL/RV20'] = 'real';
[1661] Fix | Delete
$CodecIDlist['V_REAL/RV30'] = 'real';
[1662] Fix | Delete
$CodecIDlist['V_QUICKTIME'] = 'quicktime'; // Quicktime
[1663] Fix | Delete
$CodecIDlist['V_MPEG4/ISO/AP'] = 'mpeg4';
[1664] Fix | Delete
$CodecIDlist['V_MPEG4/ISO/ASP'] = 'mpeg4';
[1665] Fix | Delete
$CodecIDlist['V_MPEG4/ISO/AVC'] = 'h264';
[1666] Fix | Delete
$CodecIDlist['V_MPEG4/ISO/SP'] = 'mpeg4';
[1667] Fix | Delete
$CodecIDlist['V_VP8'] = 'vp8';
[1668] Fix | Delete
$CodecIDlist['V_MS/VFW/FOURCC'] = 'vcm'; // Microsoft (TM) Video Codec Manager (VCM)
[1669] Fix | Delete
$CodecIDlist['A_MS/ACM'] = 'acm'; // Microsoft (TM) Audio Codec Manager (ACM)
[1670] Fix | Delete
}
[1671] Fix | Delete
return (isset($CodecIDlist[$codecid]) ? $CodecIDlist[$codecid] : $codecid);
[1672] Fix | Delete
}
[1673] Fix | Delete
[1674] Fix | Delete
/**
[1675] Fix | Delete
* @param int $value
[1676] Fix | Delete
*
[1677] Fix | Delete
* @return string
[1678] Fix | Delete
*/
[1679] Fix | Delete
private static function EBMLidName($value) {
[1680] Fix | Delete
static $EBMLidList = array();
[1681] Fix | Delete
if (empty($EBMLidList)) {
[1682] Fix | Delete
$EBMLidList[EBML_ID_ASPECTRATIOTYPE] = 'AspectRatioType';
[1683] Fix | Delete
$EBMLidList[EBML_ID_ATTACHEDFILE] = 'AttachedFile';
[1684] Fix | Delete
$EBMLidList[EBML_ID_ATTACHMENTLINK] = 'AttachmentLink';
[1685] Fix | Delete
$EBMLidList[EBML_ID_ATTACHMENTS] = 'Attachments';
[1686] Fix | Delete
$EBMLidList[EBML_ID_AUDIO] = 'Audio';
[1687] Fix | Delete
$EBMLidList[EBML_ID_BITDEPTH] = 'BitDepth';
[1688] Fix | Delete
$EBMLidList[EBML_ID_CHANNELPOSITIONS] = 'ChannelPositions';
[1689] Fix | Delete
$EBMLidList[EBML_ID_CHANNELS] = 'Channels';
[1690] Fix | Delete
$EBMLidList[EBML_ID_CHAPCOUNTRY] = 'ChapCountry';
[1691] Fix | Delete
$EBMLidList[EBML_ID_CHAPLANGUAGE] = 'ChapLanguage';
[1692] Fix | Delete
$EBMLidList[EBML_ID_CHAPPROCESS] = 'ChapProcess';
[1693] Fix | Delete
$EBMLidList[EBML_ID_CHAPPROCESSCODECID] = 'ChapProcessCodecID';
[1694] Fix | Delete
$EBMLidList[EBML_ID_CHAPPROCESSCOMMAND] = 'ChapProcessCommand';
[1695] Fix | Delete
$EBMLidList[EBML_ID_CHAPPROCESSDATA] = 'ChapProcessData';
[1696] Fix | Delete
$EBMLidList[EBML_ID_CHAPPROCESSPRIVATE] = 'ChapProcessPrivate';
[1697] Fix | Delete
$EBMLidList[EBML_ID_CHAPPROCESSTIME] = 'ChapProcessTime';
[1698] Fix | Delete
$EBMLidList[EBML_ID_CHAPSTRING] = 'ChapString';
[1699] Fix | Delete
$EBMLidList[EBML_ID_CHAPTERATOM] = 'ChapterAtom';
[1700] Fix | Delete
$EBMLidList[EBML_ID_CHAPTERDISPLAY] = 'ChapterDisplay';
[1701] Fix | Delete
$EBMLidList[EBML_ID_CHAPTERFLAGENABLED] = 'ChapterFlagEnabled';
[1702] Fix | Delete
$EBMLidList[EBML_ID_CHAPTERFLAGHIDDEN] = 'ChapterFlagHidden';
[1703] Fix | Delete
$EBMLidList[EBML_ID_CHAPTERPHYSICALEQUIV] = 'ChapterPhysicalEquiv';
[1704] Fix | Delete
$EBMLidList[EBML_ID_CHAPTERS] = 'Chapters';
[1705] Fix | Delete
$EBMLidList[EBML_ID_CHAPTERSEGMENTEDITIONUID] = 'ChapterSegmentEditionUID';
[1706] Fix | Delete
$EBMLidList[EBML_ID_CHAPTERSEGMENTUID] = 'ChapterSegmentUID';
[1707] Fix | Delete
$EBMLidList[EBML_ID_CHAPTERTIMEEND] = 'ChapterTimeEnd';
[1708] Fix | Delete
$EBMLidList[EBML_ID_CHAPTERTIMESTART] = 'ChapterTimeStart';
[1709] Fix | Delete
$EBMLidList[EBML_ID_CHAPTERTRACK] = 'ChapterTrack';
[1710] Fix | Delete
$EBMLidList[EBML_ID_CHAPTERTRACKNUMBER] = 'ChapterTrackNumber';
[1711] Fix | Delete
$EBMLidList[EBML_ID_CHAPTERTRANSLATE] = 'ChapterTranslate';
[1712] Fix | Delete
$EBMLidList[EBML_ID_CHAPTERTRANSLATECODEC] = 'ChapterTranslateCodec';
[1713] Fix | Delete
$EBMLidList[EBML_ID_CHAPTERTRANSLATEEDITIONUID] = 'ChapterTranslateEditionUID';
[1714] Fix | Delete
$EBMLidList[EBML_ID_CHAPTERTRANSLATEID] = 'ChapterTranslateID';
[1715] Fix | Delete
$EBMLidList[EBML_ID_CHAPTERUID] = 'ChapterUID';
[1716] Fix | Delete
$EBMLidList[EBML_ID_CLUSTER] = 'Cluster';
[1717] Fix | Delete
$EBMLidList[EBML_ID_CLUSTERBLOCK] = 'ClusterBlock';
[1718] Fix | Delete
$EBMLidList[EBML_ID_CLUSTERBLOCKADDID] = 'ClusterBlockAddID';
[1719] Fix | Delete
$EBMLidList[EBML_ID_CLUSTERBLOCKADDITIONAL] = 'ClusterBlockAdditional';
[1720] Fix | Delete
$EBMLidList[EBML_ID_CLUSTERBLOCKADDITIONID] = 'ClusterBlockAdditionID';
[1721] Fix | Delete
$EBMLidList[EBML_ID_CLUSTERBLOCKADDITIONS] = 'ClusterBlockAdditions';
[1722] Fix | Delete
$EBMLidList[EBML_ID_CLUSTERBLOCKDURATION] = 'ClusterBlockDuration';
[1723] Fix | Delete
$EBMLidList[EBML_ID_CLUSTERBLOCKGROUP] = 'ClusterBlockGroup';
[1724] Fix | Delete
$EBMLidList[EBML_ID_CLUSTERBLOCKMORE] = 'ClusterBlockMore';
[1725] Fix | Delete
$EBMLidList[EBML_ID_CLUSTERBLOCKVIRTUAL] = 'ClusterBlockVirtual';
[1726] Fix | Delete
$EBMLidList[EBML_ID_CLUSTERCODECSTATE] = 'ClusterCodecState';
[1727] Fix | Delete
$EBMLidList[EBML_ID_CLUSTERDELAY] = 'ClusterDelay';
[1728] Fix | Delete
$EBMLidList[EBML_ID_CLUSTERDURATION] = 'ClusterDuration';
[1729] Fix | Delete
$EBMLidList[EBML_ID_CLUSTERENCRYPTEDBLOCK] = 'ClusterEncryptedBlock';
[1730] Fix | Delete
$EBMLidList[EBML_ID_CLUSTERFRAMENUMBER] = 'ClusterFrameNumber';
[1731] Fix | Delete
$EBMLidList[EBML_ID_CLUSTERLACENUMBER] = 'ClusterLaceNumber';
[1732] Fix | Delete
$EBMLidList[EBML_ID_CLUSTERPOSITION] = 'ClusterPosition';
[1733] Fix | Delete
$EBMLidList[EBML_ID_CLUSTERPREVSIZE] = 'ClusterPrevSize';
[1734] Fix | Delete
$EBMLidList[EBML_ID_CLUSTERREFERENCEBLOCK] = 'ClusterReferenceBlock';
[1735] Fix | Delete
$EBMLidList[EBML_ID_CLUSTERREFERENCEPRIORITY] = 'ClusterReferencePriority';
[1736] Fix | Delete
$EBMLidList[EBML_ID_CLUSTERREFERENCEVIRTUAL] = 'ClusterReferenceVirtual';
[1737] Fix | Delete
$EBMLidList[EBML_ID_CLUSTERSILENTTRACKNUMBER] = 'ClusterSilentTrackNumber';
[1738] Fix | Delete
$EBMLidList[EBML_ID_CLUSTERSILENTTRACKS] = 'ClusterSilentTracks';
[1739] Fix | Delete
$EBMLidList[EBML_ID_CLUSTERSIMPLEBLOCK] = 'ClusterSimpleBlock';
[1740] Fix | Delete
$EBMLidList[EBML_ID_CLUSTERTIMECODE] = 'ClusterTimecode';
[1741] Fix | Delete
$EBMLidList[EBML_ID_CLUSTERTIMESLICE] = 'ClusterTimeSlice';
[1742] Fix | Delete
$EBMLidList[EBML_ID_CODECDECODEALL] = 'CodecDecodeAll';
[1743] Fix | Delete
$EBMLidList[EBML_ID_CODECDOWNLOADURL] = 'CodecDownloadURL';
[1744] Fix | Delete
$EBMLidList[EBML_ID_CODECID] = 'CodecID';
[1745] Fix | Delete
$EBMLidList[EBML_ID_CODECINFOURL] = 'CodecInfoURL';
[1746] Fix | Delete
$EBMLidList[EBML_ID_CODECNAME] = 'CodecName';
[1747] Fix | Delete
$EBMLidList[EBML_ID_CODECPRIVATE] = 'CodecPrivate';
[1748] Fix | Delete
$EBMLidList[EBML_ID_CODECSETTINGS] = 'CodecSettings';
[1749] Fix | Delete
$EBMLidList[EBML_ID_COLOURSPACE] = 'ColourSpace';
[1750] Fix | Delete
$EBMLidList[EBML_ID_CONTENTCOMPALGO] = 'ContentCompAlgo';
[1751] Fix | Delete
$EBMLidList[EBML_ID_CONTENTCOMPRESSION] = 'ContentCompression';
[1752] Fix | Delete
$EBMLidList[EBML_ID_CONTENTCOMPSETTINGS] = 'ContentCompSettings';
[1753] Fix | Delete
$EBMLidList[EBML_ID_CONTENTENCALGO] = 'ContentEncAlgo';
[1754] Fix | Delete
$EBMLidList[EBML_ID_CONTENTENCKEYID] = 'ContentEncKeyID';
[1755] Fix | Delete
$EBMLidList[EBML_ID_CONTENTENCODING] = 'ContentEncoding';
[1756] Fix | Delete
$EBMLidList[EBML_ID_CONTENTENCODINGORDER] = 'ContentEncodingOrder';
[1757] Fix | Delete
$EBMLidList[EBML_ID_CONTENTENCODINGS] = 'ContentEncodings';
[1758] Fix | Delete
$EBMLidList[EBML_ID_CONTENTENCODINGSCOPE] = 'ContentEncodingScope';
[1759] Fix | Delete
$EBMLidList[EBML_ID_CONTENTENCODINGTYPE] = 'ContentEncodingType';
[1760] Fix | Delete
$EBMLidList[EBML_ID_CONTENTENCRYPTION] = 'ContentEncryption';
[1761] Fix | Delete
$EBMLidList[EBML_ID_CONTENTSIGALGO] = 'ContentSigAlgo';
[1762] Fix | Delete
$EBMLidList[EBML_ID_CONTENTSIGHASHALGO] = 'ContentSigHashAlgo';
[1763] Fix | Delete
$EBMLidList[EBML_ID_CONTENTSIGKEYID] = 'ContentSigKeyID';
[1764] Fix | Delete
$EBMLidList[EBML_ID_CONTENTSIGNATURE] = 'ContentSignature';
[1765] Fix | Delete
$EBMLidList[EBML_ID_CRC32] = 'CRC32';
[1766] Fix | Delete
$EBMLidList[EBML_ID_CUEBLOCKNUMBER] = 'CueBlockNumber';
[1767] Fix | Delete
$EBMLidList[EBML_ID_CUECLUSTERPOSITION] = 'CueClusterPosition';
[1768] Fix | Delete
$EBMLidList[EBML_ID_CUECODECSTATE] = 'CueCodecState';
[1769] Fix | Delete
$EBMLidList[EBML_ID_CUEPOINT] = 'CuePoint';
[1770] Fix | Delete
$EBMLidList[EBML_ID_CUEREFCLUSTER] = 'CueRefCluster';
[1771] Fix | Delete
$EBMLidList[EBML_ID_CUEREFCODECSTATE] = 'CueRefCodecState';
[1772] Fix | Delete
$EBMLidList[EBML_ID_CUEREFERENCE] = 'CueReference';
[1773] Fix | Delete
$EBMLidList[EBML_ID_CUEREFNUMBER] = 'CueRefNumber';
[1774] Fix | Delete
$EBMLidList[EBML_ID_CUEREFTIME] = 'CueRefTime';
[1775] Fix | Delete
$EBMLidList[EBML_ID_CUES] = 'Cues';
[1776] Fix | Delete
$EBMLidList[EBML_ID_CUETIME] = 'CueTime';
[1777] Fix | Delete
$EBMLidList[EBML_ID_CUETRACK] = 'CueTrack';
[1778] Fix | Delete
$EBMLidList[EBML_ID_CUETRACKPOSITIONS] = 'CueTrackPositions';
[1779] Fix | Delete
$EBMLidList[EBML_ID_DATEUTC] = 'DateUTC';
[1780] Fix | Delete
$EBMLidList[EBML_ID_DEFAULTDURATION] = 'DefaultDuration';
[1781] Fix | Delete
$EBMLidList[EBML_ID_DISPLAYHEIGHT] = 'DisplayHeight';
[1782] Fix | Delete
$EBMLidList[EBML_ID_DISPLAYUNIT] = 'DisplayUnit';
[1783] Fix | Delete
$EBMLidList[EBML_ID_DISPLAYWIDTH] = 'DisplayWidth';
[1784] Fix | Delete
$EBMLidList[EBML_ID_DOCTYPE] = 'DocType';
[1785] Fix | Delete
$EBMLidList[EBML_ID_DOCTYPEREADVERSION] = 'DocTypeReadVersion';
[1786] Fix | Delete
$EBMLidList[EBML_ID_DOCTYPEVERSION] = 'DocTypeVersion';
[1787] Fix | Delete
$EBMLidList[EBML_ID_DURATION] = 'Duration';
[1788] Fix | Delete
$EBMLidList[EBML_ID_EBML] = 'EBML';
[1789] Fix | Delete
$EBMLidList[EBML_ID_EBMLMAXIDLENGTH] = 'EBMLMaxIDLength';
[1790] Fix | Delete
$EBMLidList[EBML_ID_EBMLMAXSIZELENGTH] = 'EBMLMaxSizeLength';
[1791] Fix | Delete
$EBMLidList[EBML_ID_EBMLREADVERSION] = 'EBMLReadVersion';
[1792] Fix | Delete
$EBMLidList[EBML_ID_EBMLVERSION] = 'EBMLVersion';
[1793] Fix | Delete
$EBMLidList[EBML_ID_EDITIONENTRY] = 'EditionEntry';
[1794] Fix | Delete
$EBMLidList[EBML_ID_EDITIONFLAGDEFAULT] = 'EditionFlagDefault';
[1795] Fix | Delete
$EBMLidList[EBML_ID_EDITIONFLAGHIDDEN] = 'EditionFlagHidden';
[1796] Fix | Delete
$EBMLidList[EBML_ID_EDITIONFLAGORDERED] = 'EditionFlagOrdered';
[1797] Fix | Delete
$EBMLidList[EBML_ID_EDITIONUID] = 'EditionUID';
[1798] Fix | Delete
$EBMLidList[EBML_ID_FILEDATA] = 'FileData';
[1799] Fix | Delete
$EBMLidList[EBML_ID_FILEDESCRIPTION] = 'FileDescription';
[1800] Fix | Delete
$EBMLidList[EBML_ID_FILEMIMETYPE] = 'FileMimeType';
[1801] Fix | Delete
$EBMLidList[EBML_ID_FILENAME] = 'FileName';
[1802] Fix | Delete
$EBMLidList[EBML_ID_FILEREFERRAL] = 'FileReferral';
[1803] Fix | Delete
$EBMLidList[EBML_ID_FILEUID] = 'FileUID';
[1804] Fix | Delete
$EBMLidList[EBML_ID_FLAGDEFAULT] = 'FlagDefault';
[1805] Fix | Delete
$EBMLidList[EBML_ID_FLAGENABLED] = 'FlagEnabled';
[1806] Fix | Delete
$EBMLidList[EBML_ID_FLAGFORCED] = 'FlagForced';
[1807] Fix | Delete
$EBMLidList[EBML_ID_FLAGINTERLACED] = 'FlagInterlaced';
[1808] Fix | Delete
$EBMLidList[EBML_ID_FLAGLACING] = 'FlagLacing';
[1809] Fix | Delete
$EBMLidList[EBML_ID_GAMMAVALUE] = 'GammaValue';
[1810] Fix | Delete
$EBMLidList[EBML_ID_INFO] = 'Info';
[1811] Fix | Delete
$EBMLidList[EBML_ID_LANGUAGE] = 'Language';
[1812] Fix | Delete
$EBMLidList[EBML_ID_MAXBLOCKADDITIONID] = 'MaxBlockAdditionID';
[1813] Fix | Delete
$EBMLidList[EBML_ID_MAXCACHE] = 'MaxCache';
[1814] Fix | Delete
$EBMLidList[EBML_ID_MINCACHE] = 'MinCache';
[1815] Fix | Delete
$EBMLidList[EBML_ID_MUXINGAPP] = 'MuxingApp';
[1816] Fix | Delete
$EBMLidList[EBML_ID_NAME] = 'Name';
[1817] Fix | Delete
$EBMLidList[EBML_ID_NEXTFILENAME] = 'NextFilename';
[1818] Fix | Delete
$EBMLidList[EBML_ID_NEXTUID] = 'NextUID';
[1819] Fix | Delete
$EBMLidList[EBML_ID_OUTPUTSAMPLINGFREQUENCY] = 'OutputSamplingFrequency';
[1820] Fix | Delete
$EBMLidList[EBML_ID_PIXELCROPBOTTOM] = 'PixelCropBottom';
[1821] Fix | Delete
$EBMLidList[EBML_ID_PIXELCROPLEFT] = 'PixelCropLeft';
[1822] Fix | Delete
$EBMLidList[EBML_ID_PIXELCROPRIGHT] = 'PixelCropRight';
[1823] Fix | Delete
$EBMLidList[EBML_ID_PIXELCROPTOP] = 'PixelCropTop';
[1824] Fix | Delete
$EBMLidList[EBML_ID_PIXELHEIGHT] = 'PixelHeight';
[1825] Fix | Delete
$EBMLidList[EBML_ID_PIXELWIDTH] = 'PixelWidth';
[1826] Fix | Delete
$EBMLidList[EBML_ID_PREVFILENAME] = 'PrevFilename';
[1827] Fix | Delete
$EBMLidList[EBML_ID_PREVUID] = 'PrevUID';
[1828] Fix | Delete
$EBMLidList[EBML_ID_SAMPLINGFREQUENCY] = 'SamplingFrequency';
[1829] Fix | Delete
$EBMLidList[EBML_ID_SEEK] = 'Seek';
[1830] Fix | Delete
$EBMLidList[EBML_ID_SEEKHEAD] = 'SeekHead';
[1831] Fix | Delete
$EBMLidList[EBML_ID_SEEKID] = 'SeekID';
[1832] Fix | Delete
$EBMLidList[EBML_ID_SEEKPOSITION] = 'SeekPosition';
[1833] Fix | Delete
$EBMLidList[EBML_ID_SEGMENT] = 'Segment';
[1834] Fix | Delete
$EBMLidList[EBML_ID_SEGMENTFAMILY] = 'SegmentFamily';
[1835] Fix | Delete
$EBMLidList[EBML_ID_SEGMENTFILENAME] = 'SegmentFilename';
[1836] Fix | Delete
$EBMLidList[EBML_ID_SEGMENTUID] = 'SegmentUID';
[1837] Fix | Delete
$EBMLidList[EBML_ID_SIMPLETAG] = 'SimpleTag';
[1838] Fix | Delete
$EBMLidList[EBML_ID_CLUSTERSLICES] = 'ClusterSlices';
[1839] Fix | Delete
$EBMLidList[EBML_ID_STEREOMODE] = 'StereoMode';
[1840] Fix | Delete
$EBMLidList[EBML_ID_OLDSTEREOMODE] = 'OldStereoMode';
[1841] Fix | Delete
$EBMLidList[EBML_ID_TAG] = 'Tag';
[1842] Fix | Delete
$EBMLidList[EBML_ID_TAGATTACHMENTUID] = 'TagAttachmentUID';
[1843] Fix | Delete
$EBMLidList[EBML_ID_TAGBINARY] = 'TagBinary';
[1844] Fix | Delete
$EBMLidList[EBML_ID_TAGCHAPTERUID] = 'TagChapterUID';
[1845] Fix | Delete
$EBMLidList[EBML_ID_TAGDEFAULT] = 'TagDefault';
[1846] Fix | Delete
$EBMLidList[EBML_ID_TAGEDITIONUID] = 'TagEditionUID';
[1847] Fix | Delete
$EBMLidList[EBML_ID_TAGLANGUAGE] = 'TagLanguage';
[1848] Fix | Delete
$EBMLidList[EBML_ID_TAGNAME] = 'TagName';
[1849] Fix | Delete
$EBMLidList[EBML_ID_TAGTRACKUID] = 'TagTrackUID';
[1850] Fix | Delete
$EBMLidList[EBML_ID_TAGS] = 'Tags';
[1851] Fix | Delete
$EBMLidList[EBML_ID_TAGSTRING] = 'TagString';
[1852] Fix | Delete
$EBMLidList[EBML_ID_TARGETS] = 'Targets';
[1853] Fix | Delete
$EBMLidList[EBML_ID_TARGETTYPE] = 'TargetType';
[1854] Fix | Delete
$EBMLidList[EBML_ID_TARGETTYPEVALUE] = 'TargetTypeValue';
[1855] Fix | Delete
$EBMLidList[EBML_ID_TIMECODESCALE] = 'TimecodeScale';
[1856] Fix | Delete
$EBMLidList[EBML_ID_TITLE] = 'Title';
[1857] Fix | Delete
$EBMLidList[EBML_ID_TRACKENTRY] = 'TrackEntry';
[1858] Fix | Delete
$EBMLidList[EBML_ID_TRACKNUMBER] = 'TrackNumber';
[1859] Fix | Delete
$EBMLidList[EBML_ID_TRACKOFFSET] = 'TrackOffset';
[1860] Fix | Delete
$EBMLidList[EBML_ID_TRACKOVERLAY] = 'TrackOverlay';
[1861] Fix | Delete
$EBMLidList[EBML_ID_TRACKS] = 'Tracks';
[1862] Fix | Delete
$EBMLidList[EBML_ID_TRACKTIMECODESCALE] = 'TrackTimecodeScale';
[1863] Fix | Delete
$EBMLidList[EBML_ID_TRACKTRANSLATE] = 'TrackTranslate';
[1864] Fix | Delete
$EBMLidList[EBML_ID_TRACKTRANSLATECODEC] = 'TrackTranslateCodec';
[1865] Fix | Delete
$EBMLidList[EBML_ID_TRACKTRANSLATEEDITIONUID] = 'TrackTranslateEditionUID';
[1866] Fix | Delete
$EBMLidList[EBML_ID_TRACKTRANSLATETRACKID] = 'TrackTranslateTrackID';
[1867] Fix | Delete
$EBMLidList[EBML_ID_TRACKTYPE] = 'TrackType';
[1868] Fix | Delete
$EBMLidList[EBML_ID_TRACKUID] = 'TrackUID';
[1869] Fix | Delete
$EBMLidList[EBML_ID_VIDEO] = 'Video';
[1870] Fix | Delete
$EBMLidList[EBML_ID_VOID] = 'Void';
[1871] Fix | Delete
$EBMLidList[EBML_ID_WRITINGAPP] = 'WritingApp';
[1872] Fix | Delete
}
[1873] Fix | Delete
[1874] Fix | Delete
return (isset($EBMLidList[$value]) ? $EBMLidList[$value] : dechex($value));
[1875] Fix | Delete
}
[1876] Fix | Delete
[1877] Fix | Delete
/**
[1878] Fix | Delete
* @param int $value
[1879] Fix | Delete
*
[1880] Fix | Delete
* @return string
[1881] Fix | Delete
*/
[1882] Fix | Delete
public static function displayUnit($value) {
[1883] Fix | Delete
// http://www.matroska.org/technical/specs/index.html#DisplayUnit
[1884] Fix | Delete
static $units = array(
[1885] Fix | Delete
0 => 'pixels',
[1886] Fix | Delete
1 => 'centimeters',
[1887] Fix | Delete
2 => 'inches',
[1888] Fix | Delete
3 => 'Display Aspect Ratio');
[1889] Fix | Delete
[1890] Fix | Delete
return (isset($units[$value]) ? $units[$value] : 'unknown');
[1891] Fix | Delete
}
[1892] Fix | Delete
[1893] Fix | Delete
/**
[1894] Fix | Delete
* @param array $streams
[1895] Fix | Delete
*
[1896] Fix | Delete
* @return array
[1897] Fix | Delete
*/
[1898] Fix | Delete
private static function getDefaultStreamInfo($streams)
[1899] Fix | Delete
{
[1900] Fix | Delete
$stream = array();
[1901] Fix | Delete
foreach (array_reverse($streams) as $stream) {
[1902] Fix | Delete
if ($stream['default']) {
[1903] Fix | Delete
break;
[1904] Fix | Delete
}
[1905] Fix | Delete
}
[1906] Fix | Delete
[1907] Fix | Delete
$unset = array('default', 'name');
[1908] Fix | Delete
foreach ($unset as $u) {
[1909] Fix | Delete
if (isset($stream[$u])) {
[1910] Fix | Delete
unset($stream[$u]);
[1911] Fix | Delete
}
[1912] Fix | Delete
}
[1913] Fix | Delete
[1914] Fix | Delete
$info = $stream;
[1915] Fix | Delete
$info['streams'] = $streams;
[1916] Fix | Delete
[1917] Fix | Delete
return $info;
[1918] Fix | Delete
}
[1919] Fix | Delete
[1920] Fix | Delete
}
[1921] Fix | Delete
[1922] Fix | Delete
It is recommended that you Edit text format, this type of Fix handles quite a lot in one request
Function