⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 module.audio-video.quicktime.php

📁 CMS系统 提供学习研究修改最好了 比流行的一些CMS简单 但是更容易理解 是帮助你学习PHPCMS系统的好东东哦
💻 PHP
📖 第 1 页 / 共 4 页
字号:
			case 'vmhd': // Video Media information HeaDer atom				$atomstructure['version']                = getid3_lib::BigEndian2Int(substr($atomdata,  0, 1));				$atomstructure['flags_raw']              = getid3_lib::BigEndian2Int(substr($atomdata,  1, 3));				$atomstructure['graphics_mode']          = getid3_lib::BigEndian2Int(substr($atomdata,  4, 2));				$atomstructure['opcolor_red']            = getid3_lib::BigEndian2Int(substr($atomdata,  6, 2));				$atomstructure['opcolor_green']          = getid3_lib::BigEndian2Int(substr($atomdata,  8, 2));				$atomstructure['opcolor_blue']           = getid3_lib::BigEndian2Int(substr($atomdata, 10, 2));				$atomstructure['flags']['no_lean_ahead'] = (bool) ($atomstructure['flags_raw'] & 0x001);				break;			case 'hdlr': // HanDLeR reference atom				$atomstructure['version']                = getid3_lib::BigEndian2Int(substr($atomdata,  0, 1));				$atomstructure['flags_raw']              = getid3_lib::BigEndian2Int(substr($atomdata,  1, 3)); // hardcoded: 0x0000				$atomstructure['component_type']         =                           substr($atomdata,  4, 4);				$atomstructure['component_subtype']      =                           substr($atomdata,  8, 4);				$atomstructure['component_manufacturer'] =                           substr($atomdata, 12, 4);				$atomstructure['component_flags_raw']    = getid3_lib::BigEndian2Int(substr($atomdata, 16, 4));				$atomstructure['component_flags_mask']   = getid3_lib::BigEndian2Int(substr($atomdata, 20, 4));				$atomstructure['component_name']         =      $this->Pascal2String(substr($atomdata, 24));				if (($atomstructure['component_subtype'] == 'STpn') && ($atomstructure['component_manufacturer'] == 'zzzz')) {					$ThisFileInfo['video']['dataformat'] = 'quicktimevr';				}				break;			case 'mdhd': // MeDia HeaDer atom				$atomstructure['version']               = getid3_lib::BigEndian2Int(substr($atomdata,  0, 1));				$atomstructure['flags_raw']             = getid3_lib::BigEndian2Int(substr($atomdata,  1, 3)); // hardcoded: 0x0000				$atomstructure['creation_time']         = getid3_lib::BigEndian2Int(substr($atomdata,  4, 4));				$atomstructure['modify_time']           = getid3_lib::BigEndian2Int(substr($atomdata,  8, 4));				$atomstructure['time_scale']            = getid3_lib::BigEndian2Int(substr($atomdata, 12, 4));				$atomstructure['duration']              = getid3_lib::BigEndian2Int(substr($atomdata, 16, 4));				$atomstructure['language_id']           = getid3_lib::BigEndian2Int(substr($atomdata, 20, 2));				$atomstructure['quality']               = getid3_lib::BigEndian2Int(substr($atomdata, 22, 2));				if ($atomstructure['time_scale'] == 0) {					$ThisFileInfo['error'][] = 'Corrupt Quicktime file: mdhd.time_scale == zero';					return false;				}				$atomstructure['creation_time_unix']    = getid3_lib::DateMac2Unix($atomstructure['creation_time']);				$atomstructure['modify_time_unix']      = getid3_lib::DateMac2Unix($atomstructure['modify_time']);				$atomstructure['playtime_seconds']      = $atomstructure['duration'] / $atomstructure['time_scale'];				$atomstructure['language']              = $this->QuicktimeLanguageLookup($atomstructure['language_id']);				if (empty($ThisFileInfo['comments']['language']) || (!in_array($atomstructure['language'], $ThisFileInfo['comments']['language']))) {					$ThisFileInfo['comments']['language'][] = $atomstructure['language'];				}				break;			case 'pnot': // Preview atom				$atomstructure['modification_date']      = getid3_lib::BigEndian2Int(substr($atomdata,  0, 4)); // "standard Macintosh format"				$atomstructure['version_number']         = getid3_lib::BigEndian2Int(substr($atomdata,  4, 2)); // hardcoded: 0x00				$atomstructure['atom_type']              =               substr($atomdata,  6, 4);        // usually: 'PICT'				$atomstructure['atom_index']             = getid3_lib::BigEndian2Int(substr($atomdata, 10, 2)); // usually: 0x01				$atomstructure['modification_date_unix'] = getid3_lib::DateMac2Unix($atomstructure['modification_date']);				break;			case 'crgn': // Clipping ReGioN atom				$atomstructure['region_size']   = getid3_lib::BigEndian2Int(substr($atomdata,  0, 2)); // The Region size, Region boundary box,				$atomstructure['boundary_box']  = getid3_lib::BigEndian2Int(substr($atomdata,  2, 8)); // and Clipping region data fields				$atomstructure['clipping_data'] =               substr($atomdata, 10);           // constitute a QuickDraw region.				break;			case 'load': // track LOAD settings atom				$atomstructure['preload_start_time'] = getid3_lib::BigEndian2Int(substr($atomdata,  0, 4));				$atomstructure['preload_duration']   = getid3_lib::BigEndian2Int(substr($atomdata,  4, 4));				$atomstructure['preload_flags_raw']  = getid3_lib::BigEndian2Int(substr($atomdata,  8, 4));				$atomstructure['default_hints_raw']  = getid3_lib::BigEndian2Int(substr($atomdata, 12, 4));				$atomstructure['default_hints']['double_buffer'] = (bool) ($atomstructure['default_hints_raw'] & 0x0020);				$atomstructure['default_hints']['high_quality']  = (bool) ($atomstructure['default_hints_raw'] & 0x0100);				break;			case 'tmcd': // TiMe CoDe atom			case 'chap': // CHAPter list atom			case 'sync': // SYNChronization atom			case 'scpt': // tranSCriPT atom			case 'ssrc': // non-primary SouRCe atom				for ($i = 0; $i < (strlen($atomdata) % 4); $i++) {					$atomstructure['track_id'][$i] = getid3_lib::BigEndian2Int(substr($atomdata, $i * 4, 4));				}				break;			case 'elst': // Edit LiST atom				$atomstructure['version']        = getid3_lib::BigEndian2Int(substr($atomdata,  0, 1));				$atomstructure['flags_raw']      = getid3_lib::BigEndian2Int(substr($atomdata,  1, 3)); // hardcoded: 0x0000				$atomstructure['number_entries'] = getid3_lib::BigEndian2Int(substr($atomdata,  4, 4));				for ($i = 0; $i < $atomstructure['number_entries']; $i++ ) {					$atomstructure['edit_list'][$i]['track_duration'] = getid3_lib::BigEndian2Int(substr($atomdata, 8 + ($i * 12) + 0, 4));					$atomstructure['edit_list'][$i]['media_time']     = getid3_lib::BigEndian2Int(substr($atomdata, 8 + ($i * 12) + 4, 4));					$atomstructure['edit_list'][$i]['media_rate']     = getid3_lib::BigEndian2Int(substr($atomdata, 8 + ($i * 12) + 8, 4));				}				break;			case 'kmat': // compressed MATte atom				$atomstructure['version']        = getid3_lib::BigEndian2Int(substr($atomdata,  0, 1));				$atomstructure['flags_raw']      = getid3_lib::BigEndian2Int(substr($atomdata,  1, 3)); // hardcoded: 0x0000				$atomstructure['matte_data_raw'] =               substr($atomdata,  4);				break;			case 'ctab': // Color TABle atom				$atomstructure['color_table_seed']   = getid3_lib::BigEndian2Int(substr($atomdata,  0, 4)); // hardcoded: 0x00000000				$atomstructure['color_table_flags']  = getid3_lib::BigEndian2Int(substr($atomdata,  4, 2)); // hardcoded: 0x8000				$atomstructure['color_table_size']   = getid3_lib::BigEndian2Int(substr($atomdata,  6, 2)) + 1;				for ($colortableentry = 0; $colortableentry < $atomstructure['color_table_size']; $colortableentry++) {					$atomstructure['color_table'][$colortableentry]['alpha'] = getid3_lib::BigEndian2Int(substr($atomdata, 8 + ($colortableentry * 8) + 0, 2));					$atomstructure['color_table'][$colortableentry]['red']   = getid3_lib::BigEndian2Int(substr($atomdata, 8 + ($colortableentry * 8) + 2, 2));					$atomstructure['color_table'][$colortableentry]['green'] = getid3_lib::BigEndian2Int(substr($atomdata, 8 + ($colortableentry * 8) + 4, 2));					$atomstructure['color_table'][$colortableentry]['blue']  = getid3_lib::BigEndian2Int(substr($atomdata, 8 + ($colortableentry * 8) + 6, 2));				}				break;			case 'mvhd': // MoVie HeaDer atom				$atomstructure['version']            =   getid3_lib::BigEndian2Int(substr($atomdata,  0, 1));				$atomstructure['flags_raw']          =   getid3_lib::BigEndian2Int(substr($atomdata,  1, 3));				$atomstructure['creation_time']      =   getid3_lib::BigEndian2Int(substr($atomdata,  4, 4));				$atomstructure['modify_time']        =   getid3_lib::BigEndian2Int(substr($atomdata,  8, 4));				$atomstructure['time_scale']         =   getid3_lib::BigEndian2Int(substr($atomdata, 12, 4));				$atomstructure['duration']           =   getid3_lib::BigEndian2Int(substr($atomdata, 16, 4));				$atomstructure['preferred_rate']     = getid3_lib::FixedPoint16_16(substr($atomdata, 20, 4));				$atomstructure['preferred_volume']   =   getid3_lib::FixedPoint8_8(substr($atomdata, 24, 2));				$atomstructure['reserved']           =                             substr($atomdata, 26, 10);				$atomstructure['matrix_a']           = getid3_lib::FixedPoint16_16(substr($atomdata, 36, 4));				$atomstructure['matrix_b']           = getid3_lib::FixedPoint16_16(substr($atomdata, 40, 4));				$atomstructure['matrix_u']           = getid3_lib::FixedPoint16_16(substr($atomdata, 44, 4));				$atomstructure['matrix_c']           = getid3_lib::FixedPoint16_16(substr($atomdata, 48, 4));				$atomstructure['matrix_v']           = getid3_lib::FixedPoint16_16(substr($atomdata, 52, 4));				$atomstructure['matrix_d']           = getid3_lib::FixedPoint16_16(substr($atomdata, 56, 4));				$atomstructure['matrix_x']           =  getid3_lib::FixedPoint2_30(substr($atomdata, 60, 4));				$atomstructure['matrix_y']           =  getid3_lib::FixedPoint2_30(substr($atomdata, 64, 4));				$atomstructure['matrix_w']           =  getid3_lib::FixedPoint2_30(substr($atomdata, 68, 4));				$atomstructure['preview_time']       =   getid3_lib::BigEndian2Int(substr($atomdata, 72, 4));				$atomstructure['preview_duration']   =   getid3_lib::BigEndian2Int(substr($atomdata, 76, 4));				$atomstructure['poster_time']        =   getid3_lib::BigEndian2Int(substr($atomdata, 80, 4));				$atomstructure['selection_time']     =   getid3_lib::BigEndian2Int(substr($atomdata, 84, 4));				$atomstructure['selection_duration'] =   getid3_lib::BigEndian2Int(substr($atomdata, 88, 4));				$atomstructure['current_time']       =   getid3_lib::BigEndian2Int(substr($atomdata, 92, 4));				$atomstructure['next_track_id']      =   getid3_lib::BigEndian2Int(substr($atomdata, 96, 4));				if ($atomstructure['time_scale'] == 0) {					$ThisFileInfo['error'][] = 'Corrupt Quicktime file: mvhd.time_scale == zero';					return false;				}				$atomstructure['creation_time_unix']        = getid3_lib::DateMac2Unix($atomstructure['creation_time']);				$atomstructure['modify_time_unix']          = getid3_lib::DateMac2Unix($atomstructure['modify_time']);				$ThisFileInfo['quicktime']['time_scale']    = $atomstructure['time_scale'];				$ThisFileInfo['quicktime']['display_scale'] = $atomstructure['matrix_a'];				$ThisFileInfo['playtime_seconds']           = $atomstructure['duration'] / $atomstructure['time_scale'];				break;			case 'tkhd': // TracK HeaDer atom				$atomstructure['version']             =   getid3_lib::BigEndian2Int(substr($atomdata,  0, 1));				$atomstructure['flags_raw']           =   getid3_lib::BigEndian2Int(substr($atomdata,  1, 3));				$atomstructure['creation_time']       =   getid3_lib::BigEndian2Int(substr($atomdata,  4, 4));				$atomstructure['modify_time']         =   getid3_lib::BigEndian2Int(substr($atomdata,  8, 4));				$atomstructure['trackid']             =   getid3_lib::BigEndian2Int(substr($atomdata, 12, 4));				$atomstructure['reserved1']           =   getid3_lib::BigEndian2Int(substr($atomdata, 16, 4));				$atomstructure['duration']            =   getid3_lib::BigEndian2Int(substr($atomdata, 20, 4));				$atomstructure['reserved2']           =   getid3_lib::BigEndian2Int(substr($atomdata, 24, 8));				$atomstructure['layer']               =   getid3_lib::BigEndian2Int(substr($atomdata, 32, 2));				$atomstructure['alternate_group']     =   getid3_lib::BigEndian2Int(substr($atomdata, 34, 2));				$atomstructure['volume']              =   getid3_lib::FixedPoint8_8(substr($atomdata, 36, 2));				$atomstructure['reserved3']           =   getid3_lib::BigEndian2Int(substr($atomdata, 38, 2));				$atomstructure['matrix_a']            = getid3_lib::FixedPoint16_16(substr($atomdata, 40, 4));				$atomstructure['matrix_b']            = getid3_lib::FixedPoint16_16(substr($atomdata, 44, 4));				$atomstructure['matrix_u']            = getid3_lib::FixedPoint16_16(substr($atomdata, 48, 4));				$atomstructure['matrix_c']            = getid3_lib::FixedPoint16_16(substr($atomdata, 52, 4));				$atomstructure['matrix_v']            = getid3_lib::FixedPoint16_16(substr($atomdata, 56, 4));				$atomstructure['matrix_d']            = getid3_lib::FixedPoint16_16(substr($atomdata, 60, 4));				$atomstructure['matrix_x']            =  getid3_lib::FixedPoint2_30(substr($atomdata, 64, 4));				$atomstructure['matrix_y']            =  getid3_lib::FixedPoint2_30(substr($atomdata, 68, 4));				$atomstructure['matrix_w']            =  getid3_lib::FixedPoint2_30(substr($atomdata, 72, 4));				$atomstructure['width']               = getid3_lib::FixedPoint16_16(substr($atomdata, 76, 4));				$atomstructure['height']              = getid3_lib::FixedPoint16_16(substr($atomdata, 80, 4));				$atomstructure['flags']['enabled']    = (bool) ($atomstructure['flags_raw'] & 0x0001);				$atomstructure['flags']['in_movie']   = (bool) ($atomstructure['flags_raw'] & 0x0002);				$atomstructure['flags']['in_preview'] = (bool) ($atomstructure['flags_raw'] & 0x0004);				$atomstructure['flags']['in_poster']  = (bool) ($atomstructure['flags_raw'] & 0x0008);				$atomstructure['creation_time_unix']  = getid3_lib::DateMac2Unix($atomstructure['creation_time']);				$atomstructure['modify_time_unix']    = getid3_lib::DateMac2Unix($atomstructure['modify_time']);				if (!isset($ThisFileInfo['video']['resolution_x']) || !isset($ThisFileInfo['video']['resolution_y'])) {					$ThisFileInfo['video']['resolution_x'] = $atomstructure['width'];					$ThisFileInfo['video']['resolution_y'] = $atomstructure['height'];				}				$ThisFileInfo['video']['resolution_x'] = max($ThisFileInfo['video']['resolution_x'], $atomstructure['width']);				$ThisFileInfo['video']['resolution_y'] = max($ThisFileInfo['video']['resolution_y'], $atomstructure['height']);				if (!empty($ThisFileInfo['video']['resolution_x']) && !empty($ThisFileInfo['video']['resolution_y'])) {					$ThisFileInfo['quicktime']['video']['resolution_x'] = $ThisFileInfo['video']['resolution_x'];					$ThisFileInfo['quicktime']['video']['resolution_y'] = $ThisFileInfo['video']['resolution_y'];				} else {					unset($ThisFileInfo['video']['resolution_x']);					unset($ThisFileInfo['video']['resolution_y']);					unset($ThisFileInfo['quicktime']['video']);				}				break;			case 'meta': // METAdata atom				// http://www.geocities.com/xhelmboyx/quicktime/formats/qti-layout.txt				$NextTagPosition = strpos($atomdata, '

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -