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.quicktime.php
*
[2500] Fix | Delete
* @return mixed|string
[2501] Fix | Delete
*/
[2502] Fix | Delete
public function QuicktimeAudioCodecLookup($codecid) {
[2503] Fix | Delete
static $QuicktimeAudioCodecLookup = array();
[2504] Fix | Delete
if (empty($QuicktimeAudioCodecLookup)) {
[2505] Fix | Delete
$QuicktimeAudioCodecLookup['.mp3'] = 'Fraunhofer MPEG Layer-III alias';
[2506] Fix | Delete
$QuicktimeAudioCodecLookup['aac '] = 'ISO/IEC 14496-3 AAC';
[2507] Fix | Delete
$QuicktimeAudioCodecLookup['agsm'] = 'Apple GSM 10:1';
[2508] Fix | Delete
$QuicktimeAudioCodecLookup['alac'] = 'Apple Lossless Audio Codec';
[2509] Fix | Delete
$QuicktimeAudioCodecLookup['alaw'] = 'A-law 2:1';
[2510] Fix | Delete
$QuicktimeAudioCodecLookup['conv'] = 'Sample Format';
[2511] Fix | Delete
$QuicktimeAudioCodecLookup['dvca'] = 'DV';
[2512] Fix | Delete
$QuicktimeAudioCodecLookup['dvi '] = 'DV 4:1';
[2513] Fix | Delete
$QuicktimeAudioCodecLookup['eqal'] = 'Frequency Equalizer';
[2514] Fix | Delete
$QuicktimeAudioCodecLookup['fl32'] = '32-bit Floating Point';
[2515] Fix | Delete
$QuicktimeAudioCodecLookup['fl64'] = '64-bit Floating Point';
[2516] Fix | Delete
$QuicktimeAudioCodecLookup['ima4'] = 'Interactive Multimedia Association 4:1';
[2517] Fix | Delete
$QuicktimeAudioCodecLookup['in24'] = '24-bit Integer';
[2518] Fix | Delete
$QuicktimeAudioCodecLookup['in32'] = '32-bit Integer';
[2519] Fix | Delete
$QuicktimeAudioCodecLookup['lpc '] = 'LPC 23:1';
[2520] Fix | Delete
$QuicktimeAudioCodecLookup['MAC3'] = 'Macintosh Audio Compression/Expansion (MACE) 3:1';
[2521] Fix | Delete
$QuicktimeAudioCodecLookup['MAC6'] = 'Macintosh Audio Compression/Expansion (MACE) 6:1';
[2522] Fix | Delete
$QuicktimeAudioCodecLookup['mixb'] = '8-bit Mixer';
[2523] Fix | Delete
$QuicktimeAudioCodecLookup['mixw'] = '16-bit Mixer';
[2524] Fix | Delete
$QuicktimeAudioCodecLookup['mp4a'] = 'ISO/IEC 14496-3 AAC';
[2525] Fix | Delete
$QuicktimeAudioCodecLookup['MS'."\x00\x02"] = 'Microsoft ADPCM';
[2526] Fix | Delete
$QuicktimeAudioCodecLookup['MS'."\x00\x11"] = 'DV IMA';
[2527] Fix | Delete
$QuicktimeAudioCodecLookup['MS'."\x00\x55"] = 'Fraunhofer MPEG Layer III';
[2528] Fix | Delete
$QuicktimeAudioCodecLookup['NONE'] = 'No Encoding';
[2529] Fix | Delete
$QuicktimeAudioCodecLookup['Qclp'] = 'Qualcomm PureVoice';
[2530] Fix | Delete
$QuicktimeAudioCodecLookup['QDM2'] = 'QDesign Music 2';
[2531] Fix | Delete
$QuicktimeAudioCodecLookup['QDMC'] = 'QDesign Music 1';
[2532] Fix | Delete
$QuicktimeAudioCodecLookup['ratb'] = '8-bit Rate';
[2533] Fix | Delete
$QuicktimeAudioCodecLookup['ratw'] = '16-bit Rate';
[2534] Fix | Delete
$QuicktimeAudioCodecLookup['raw '] = 'raw PCM';
[2535] Fix | Delete
$QuicktimeAudioCodecLookup['sour'] = 'Sound Source';
[2536] Fix | Delete
$QuicktimeAudioCodecLookup['sowt'] = 'signed/two\'s complement (Little Endian)';
[2537] Fix | Delete
$QuicktimeAudioCodecLookup['str1'] = 'Iomega MPEG layer II';
[2538] Fix | Delete
$QuicktimeAudioCodecLookup['str2'] = 'Iomega MPEG *layer II';
[2539] Fix | Delete
$QuicktimeAudioCodecLookup['str3'] = 'Iomega MPEG **layer II';
[2540] Fix | Delete
$QuicktimeAudioCodecLookup['str4'] = 'Iomega MPEG ***layer II';
[2541] Fix | Delete
$QuicktimeAudioCodecLookup['twos'] = 'signed/two\'s complement (Big Endian)';
[2542] Fix | Delete
$QuicktimeAudioCodecLookup['ulaw'] = 'mu-law 2:1';
[2543] Fix | Delete
}
[2544] Fix | Delete
return (isset($QuicktimeAudioCodecLookup[$codecid]) ? $QuicktimeAudioCodecLookup[$codecid] : '');
[2545] Fix | Delete
}
[2546] Fix | Delete
[2547] Fix | Delete
/**
[2548] Fix | Delete
* @param string $compressionid
[2549] Fix | Delete
*
[2550] Fix | Delete
* @return string
[2551] Fix | Delete
*/
[2552] Fix | Delete
public function QuicktimeDCOMLookup($compressionid) {
[2553] Fix | Delete
static $QuicktimeDCOMLookup = array();
[2554] Fix | Delete
if (empty($QuicktimeDCOMLookup)) {
[2555] Fix | Delete
$QuicktimeDCOMLookup['zlib'] = 'ZLib Deflate';
[2556] Fix | Delete
$QuicktimeDCOMLookup['adec'] = 'Apple Compression';
[2557] Fix | Delete
}
[2558] Fix | Delete
return (isset($QuicktimeDCOMLookup[$compressionid]) ? $QuicktimeDCOMLookup[$compressionid] : '');
[2559] Fix | Delete
}
[2560] Fix | Delete
[2561] Fix | Delete
/**
[2562] Fix | Delete
* @param int $colordepthid
[2563] Fix | Delete
*
[2564] Fix | Delete
* @return string
[2565] Fix | Delete
*/
[2566] Fix | Delete
public function QuicktimeColorNameLookup($colordepthid) {
[2567] Fix | Delete
static $QuicktimeColorNameLookup = array();
[2568] Fix | Delete
if (empty($QuicktimeColorNameLookup)) {
[2569] Fix | Delete
$QuicktimeColorNameLookup[1] = '2-color (monochrome)';
[2570] Fix | Delete
$QuicktimeColorNameLookup[2] = '4-color';
[2571] Fix | Delete
$QuicktimeColorNameLookup[4] = '16-color';
[2572] Fix | Delete
$QuicktimeColorNameLookup[8] = '256-color';
[2573] Fix | Delete
$QuicktimeColorNameLookup[16] = 'thousands (16-bit color)';
[2574] Fix | Delete
$QuicktimeColorNameLookup[24] = 'millions (24-bit color)';
[2575] Fix | Delete
$QuicktimeColorNameLookup[32] = 'millions+ (32-bit color)';
[2576] Fix | Delete
$QuicktimeColorNameLookup[33] = 'black & white';
[2577] Fix | Delete
$QuicktimeColorNameLookup[34] = '4-gray';
[2578] Fix | Delete
$QuicktimeColorNameLookup[36] = '16-gray';
[2579] Fix | Delete
$QuicktimeColorNameLookup[40] = '256-gray';
[2580] Fix | Delete
}
[2581] Fix | Delete
return (isset($QuicktimeColorNameLookup[$colordepthid]) ? $QuicktimeColorNameLookup[$colordepthid] : 'invalid');
[2582] Fix | Delete
}
[2583] Fix | Delete
[2584] Fix | Delete
/**
[2585] Fix | Delete
* @param int $stik
[2586] Fix | Delete
*
[2587] Fix | Delete
* @return string
[2588] Fix | Delete
*/
[2589] Fix | Delete
public function QuicktimeSTIKLookup($stik) {
[2590] Fix | Delete
static $QuicktimeSTIKLookup = array();
[2591] Fix | Delete
if (empty($QuicktimeSTIKLookup)) {
[2592] Fix | Delete
$QuicktimeSTIKLookup[0] = 'Movie';
[2593] Fix | Delete
$QuicktimeSTIKLookup[1] = 'Normal';
[2594] Fix | Delete
$QuicktimeSTIKLookup[2] = 'Audiobook';
[2595] Fix | Delete
$QuicktimeSTIKLookup[5] = 'Whacked Bookmark';
[2596] Fix | Delete
$QuicktimeSTIKLookup[6] = 'Music Video';
[2597] Fix | Delete
$QuicktimeSTIKLookup[9] = 'Short Film';
[2598] Fix | Delete
$QuicktimeSTIKLookup[10] = 'TV Show';
[2599] Fix | Delete
$QuicktimeSTIKLookup[11] = 'Booklet';
[2600] Fix | Delete
$QuicktimeSTIKLookup[14] = 'Ringtone';
[2601] Fix | Delete
$QuicktimeSTIKLookup[21] = 'Podcast';
[2602] Fix | Delete
}
[2603] Fix | Delete
return (isset($QuicktimeSTIKLookup[$stik]) ? $QuicktimeSTIKLookup[$stik] : 'invalid');
[2604] Fix | Delete
}
[2605] Fix | Delete
[2606] Fix | Delete
/**
[2607] Fix | Delete
* @param int $audio_profile_id
[2608] Fix | Delete
*
[2609] Fix | Delete
* @return string
[2610] Fix | Delete
*/
[2611] Fix | Delete
public function QuicktimeIODSaudioProfileName($audio_profile_id) {
[2612] Fix | Delete
static $QuicktimeIODSaudioProfileNameLookup = array();
[2613] Fix | Delete
if (empty($QuicktimeIODSaudioProfileNameLookup)) {
[2614] Fix | Delete
$QuicktimeIODSaudioProfileNameLookup = array(
[2615] Fix | Delete
0x00 => 'ISO Reserved (0x00)',
[2616] Fix | Delete
0x01 => 'Main Audio Profile @ Level 1',
[2617] Fix | Delete
0x02 => 'Main Audio Profile @ Level 2',
[2618] Fix | Delete
0x03 => 'Main Audio Profile @ Level 3',
[2619] Fix | Delete
0x04 => 'Main Audio Profile @ Level 4',
[2620] Fix | Delete
0x05 => 'Scalable Audio Profile @ Level 1',
[2621] Fix | Delete
0x06 => 'Scalable Audio Profile @ Level 2',
[2622] Fix | Delete
0x07 => 'Scalable Audio Profile @ Level 3',
[2623] Fix | Delete
0x08 => 'Scalable Audio Profile @ Level 4',
[2624] Fix | Delete
0x09 => 'Speech Audio Profile @ Level 1',
[2625] Fix | Delete
0x0A => 'Speech Audio Profile @ Level 2',
[2626] Fix | Delete
0x0B => 'Synthetic Audio Profile @ Level 1',
[2627] Fix | Delete
0x0C => 'Synthetic Audio Profile @ Level 2',
[2628] Fix | Delete
0x0D => 'Synthetic Audio Profile @ Level 3',
[2629] Fix | Delete
0x0E => 'High Quality Audio Profile @ Level 1',
[2630] Fix | Delete
0x0F => 'High Quality Audio Profile @ Level 2',
[2631] Fix | Delete
0x10 => 'High Quality Audio Profile @ Level 3',
[2632] Fix | Delete
0x11 => 'High Quality Audio Profile @ Level 4',
[2633] Fix | Delete
0x12 => 'High Quality Audio Profile @ Level 5',
[2634] Fix | Delete
0x13 => 'High Quality Audio Profile @ Level 6',
[2635] Fix | Delete
0x14 => 'High Quality Audio Profile @ Level 7',
[2636] Fix | Delete
0x15 => 'High Quality Audio Profile @ Level 8',
[2637] Fix | Delete
0x16 => 'Low Delay Audio Profile @ Level 1',
[2638] Fix | Delete
0x17 => 'Low Delay Audio Profile @ Level 2',
[2639] Fix | Delete
0x18 => 'Low Delay Audio Profile @ Level 3',
[2640] Fix | Delete
0x19 => 'Low Delay Audio Profile @ Level 4',
[2641] Fix | Delete
0x1A => 'Low Delay Audio Profile @ Level 5',
[2642] Fix | Delete
0x1B => 'Low Delay Audio Profile @ Level 6',
[2643] Fix | Delete
0x1C => 'Low Delay Audio Profile @ Level 7',
[2644] Fix | Delete
0x1D => 'Low Delay Audio Profile @ Level 8',
[2645] Fix | Delete
0x1E => 'Natural Audio Profile @ Level 1',
[2646] Fix | Delete
0x1F => 'Natural Audio Profile @ Level 2',
[2647] Fix | Delete
0x20 => 'Natural Audio Profile @ Level 3',
[2648] Fix | Delete
0x21 => 'Natural Audio Profile @ Level 4',
[2649] Fix | Delete
0x22 => 'Mobile Audio Internetworking Profile @ Level 1',
[2650] Fix | Delete
0x23 => 'Mobile Audio Internetworking Profile @ Level 2',
[2651] Fix | Delete
0x24 => 'Mobile Audio Internetworking Profile @ Level 3',
[2652] Fix | Delete
0x25 => 'Mobile Audio Internetworking Profile @ Level 4',
[2653] Fix | Delete
0x26 => 'Mobile Audio Internetworking Profile @ Level 5',
[2654] Fix | Delete
0x27 => 'Mobile Audio Internetworking Profile @ Level 6',
[2655] Fix | Delete
0x28 => 'AAC Profile @ Level 1',
[2656] Fix | Delete
0x29 => 'AAC Profile @ Level 2',
[2657] Fix | Delete
0x2A => 'AAC Profile @ Level 4',
[2658] Fix | Delete
0x2B => 'AAC Profile @ Level 5',
[2659] Fix | Delete
0x2C => 'High Efficiency AAC Profile @ Level 2',
[2660] Fix | Delete
0x2D => 'High Efficiency AAC Profile @ Level 3',
[2661] Fix | Delete
0x2E => 'High Efficiency AAC Profile @ Level 4',
[2662] Fix | Delete
0x2F => 'High Efficiency AAC Profile @ Level 5',
[2663] Fix | Delete
0xFE => 'Not part of MPEG-4 audio profiles',
[2664] Fix | Delete
0xFF => 'No audio capability required',
[2665] Fix | Delete
);
[2666] Fix | Delete
}
[2667] Fix | Delete
return (isset($QuicktimeIODSaudioProfileNameLookup[$audio_profile_id]) ? $QuicktimeIODSaudioProfileNameLookup[$audio_profile_id] : 'ISO Reserved / User Private');
[2668] Fix | Delete
}
[2669] Fix | Delete
[2670] Fix | Delete
/**
[2671] Fix | Delete
* @param int $video_profile_id
[2672] Fix | Delete
*
[2673] Fix | Delete
* @return string
[2674] Fix | Delete
*/
[2675] Fix | Delete
public function QuicktimeIODSvideoProfileName($video_profile_id) {
[2676] Fix | Delete
static $QuicktimeIODSvideoProfileNameLookup = array();
[2677] Fix | Delete
if (empty($QuicktimeIODSvideoProfileNameLookup)) {
[2678] Fix | Delete
$QuicktimeIODSvideoProfileNameLookup = array(
[2679] Fix | Delete
0x00 => 'Reserved (0x00) Profile',
[2680] Fix | Delete
0x01 => 'Simple Profile @ Level 1',
[2681] Fix | Delete
0x02 => 'Simple Profile @ Level 2',
[2682] Fix | Delete
0x03 => 'Simple Profile @ Level 3',
[2683] Fix | Delete
0x08 => 'Simple Profile @ Level 0',
[2684] Fix | Delete
0x10 => 'Simple Scalable Profile @ Level 0',
[2685] Fix | Delete
0x11 => 'Simple Scalable Profile @ Level 1',
[2686] Fix | Delete
0x12 => 'Simple Scalable Profile @ Level 2',
[2687] Fix | Delete
0x15 => 'AVC/H264 Profile',
[2688] Fix | Delete
0x21 => 'Core Profile @ Level 1',
[2689] Fix | Delete
0x22 => 'Core Profile @ Level 2',
[2690] Fix | Delete
0x32 => 'Main Profile @ Level 2',
[2691] Fix | Delete
0x33 => 'Main Profile @ Level 3',
[2692] Fix | Delete
0x34 => 'Main Profile @ Level 4',
[2693] Fix | Delete
0x42 => 'N-bit Profile @ Level 2',
[2694] Fix | Delete
0x51 => 'Scalable Texture Profile @ Level 1',
[2695] Fix | Delete
0x61 => 'Simple Face Animation Profile @ Level 1',
[2696] Fix | Delete
0x62 => 'Simple Face Animation Profile @ Level 2',
[2697] Fix | Delete
0x63 => 'Simple FBA Profile @ Level 1',
[2698] Fix | Delete
0x64 => 'Simple FBA Profile @ Level 2',
[2699] Fix | Delete
0x71 => 'Basic Animated Texture Profile @ Level 1',
[2700] Fix | Delete
0x72 => 'Basic Animated Texture Profile @ Level 2',
[2701] Fix | Delete
0x81 => 'Hybrid Profile @ Level 1',
[2702] Fix | Delete
0x82 => 'Hybrid Profile @ Level 2',
[2703] Fix | Delete
0x91 => 'Advanced Real Time Simple Profile @ Level 1',
[2704] Fix | Delete
0x92 => 'Advanced Real Time Simple Profile @ Level 2',
[2705] Fix | Delete
0x93 => 'Advanced Real Time Simple Profile @ Level 3',
[2706] Fix | Delete
0x94 => 'Advanced Real Time Simple Profile @ Level 4',
[2707] Fix | Delete
0xA1 => 'Core Scalable Profile @ Level1',
[2708] Fix | Delete
0xA2 => 'Core Scalable Profile @ Level2',
[2709] Fix | Delete
0xA3 => 'Core Scalable Profile @ Level3',
[2710] Fix | Delete
0xB1 => 'Advanced Coding Efficiency Profile @ Level 1',
[2711] Fix | Delete
0xB2 => 'Advanced Coding Efficiency Profile @ Level 2',
[2712] Fix | Delete
0xB3 => 'Advanced Coding Efficiency Profile @ Level 3',
[2713] Fix | Delete
0xB4 => 'Advanced Coding Efficiency Profile @ Level 4',
[2714] Fix | Delete
0xC1 => 'Advanced Core Profile @ Level 1',
[2715] Fix | Delete
0xC2 => 'Advanced Core Profile @ Level 2',
[2716] Fix | Delete
0xD1 => 'Advanced Scalable Texture @ Level1',
[2717] Fix | Delete
0xD2 => 'Advanced Scalable Texture @ Level2',
[2718] Fix | Delete
0xE1 => 'Simple Studio Profile @ Level 1',
[2719] Fix | Delete
0xE2 => 'Simple Studio Profile @ Level 2',
[2720] Fix | Delete
0xE3 => 'Simple Studio Profile @ Level 3',
[2721] Fix | Delete
0xE4 => 'Simple Studio Profile @ Level 4',
[2722] Fix | Delete
0xE5 => 'Core Studio Profile @ Level 1',
[2723] Fix | Delete
0xE6 => 'Core Studio Profile @ Level 2',
[2724] Fix | Delete
0xE7 => 'Core Studio Profile @ Level 3',
[2725] Fix | Delete
0xE8 => 'Core Studio Profile @ Level 4',
[2726] Fix | Delete
0xF0 => 'Advanced Simple Profile @ Level 0',
[2727] Fix | Delete
0xF1 => 'Advanced Simple Profile @ Level 1',
[2728] Fix | Delete
0xF2 => 'Advanced Simple Profile @ Level 2',
[2729] Fix | Delete
0xF3 => 'Advanced Simple Profile @ Level 3',
[2730] Fix | Delete
0xF4 => 'Advanced Simple Profile @ Level 4',
[2731] Fix | Delete
0xF5 => 'Advanced Simple Profile @ Level 5',
[2732] Fix | Delete
0xF7 => 'Advanced Simple Profile @ Level 3b',
[2733] Fix | Delete
0xF8 => 'Fine Granularity Scalable Profile @ Level 0',
[2734] Fix | Delete
0xF9 => 'Fine Granularity Scalable Profile @ Level 1',
[2735] Fix | Delete
0xFA => 'Fine Granularity Scalable Profile @ Level 2',
[2736] Fix | Delete
0xFB => 'Fine Granularity Scalable Profile @ Level 3',
[2737] Fix | Delete
0xFC => 'Fine Granularity Scalable Profile @ Level 4',
[2738] Fix | Delete
0xFD => 'Fine Granularity Scalable Profile @ Level 5',
[2739] Fix | Delete
0xFE => 'Not part of MPEG-4 Visual profiles',
[2740] Fix | Delete
0xFF => 'No visual capability required',
[2741] Fix | Delete
);
[2742] Fix | Delete
}
[2743] Fix | Delete
return (isset($QuicktimeIODSvideoProfileNameLookup[$video_profile_id]) ? $QuicktimeIODSvideoProfileNameLookup[$video_profile_id] : 'ISO Reserved Profile');
[2744] Fix | Delete
}
[2745] Fix | Delete
[2746] Fix | Delete
/**
[2747] Fix | Delete
* @param int $rtng
[2748] Fix | Delete
*
[2749] Fix | Delete
* @return string
[2750] Fix | Delete
*/
[2751] Fix | Delete
public function QuicktimeContentRatingLookup($rtng) {
[2752] Fix | Delete
static $QuicktimeContentRatingLookup = array();
[2753] Fix | Delete
if (empty($QuicktimeContentRatingLookup)) {
[2754] Fix | Delete
$QuicktimeContentRatingLookup[0] = 'None';
[2755] Fix | Delete
$QuicktimeContentRatingLookup[1] = 'Explicit';
[2756] Fix | Delete
$QuicktimeContentRatingLookup[2] = 'Clean';
[2757] Fix | Delete
$QuicktimeContentRatingLookup[4] = 'Explicit (old)';
[2758] Fix | Delete
}
[2759] Fix | Delete
return (isset($QuicktimeContentRatingLookup[$rtng]) ? $QuicktimeContentRatingLookup[$rtng] : 'invalid');
[2760] Fix | Delete
}
[2761] Fix | Delete
[2762] Fix | Delete
/**
[2763] Fix | Delete
* @param int $akid
[2764] Fix | Delete
*
[2765] Fix | Delete
* @return string
[2766] Fix | Delete
*/
[2767] Fix | Delete
public function QuicktimeStoreAccountTypeLookup($akid) {
[2768] Fix | Delete
static $QuicktimeStoreAccountTypeLookup = array();
[2769] Fix | Delete
if (empty($QuicktimeStoreAccountTypeLookup)) {
[2770] Fix | Delete
$QuicktimeStoreAccountTypeLookup[0] = 'iTunes';
[2771] Fix | Delete
$QuicktimeStoreAccountTypeLookup[1] = 'AOL';
[2772] Fix | Delete
}
[2773] Fix | Delete
return (isset($QuicktimeStoreAccountTypeLookup[$akid]) ? $QuicktimeStoreAccountTypeLookup[$akid] : 'invalid');
[2774] Fix | Delete
}
[2775] Fix | Delete
[2776] Fix | Delete
/**
[2777] Fix | Delete
* @param int $sfid
[2778] Fix | Delete
*
[2779] Fix | Delete
* @return string
[2780] Fix | Delete
*/
[2781] Fix | Delete
public function QuicktimeStoreFrontCodeLookup($sfid) {
[2782] Fix | Delete
static $QuicktimeStoreFrontCodeLookup = array();
[2783] Fix | Delete
if (empty($QuicktimeStoreFrontCodeLookup)) {
[2784] Fix | Delete
$QuicktimeStoreFrontCodeLookup[143460] = 'Australia';
[2785] Fix | Delete
$QuicktimeStoreFrontCodeLookup[143445] = 'Austria';
[2786] Fix | Delete
$QuicktimeStoreFrontCodeLookup[143446] = 'Belgium';
[2787] Fix | Delete
$QuicktimeStoreFrontCodeLookup[143455] = 'Canada';
[2788] Fix | Delete
$QuicktimeStoreFrontCodeLookup[143458] = 'Denmark';
[2789] Fix | Delete
$QuicktimeStoreFrontCodeLookup[143447] = 'Finland';
[2790] Fix | Delete
$QuicktimeStoreFrontCodeLookup[143442] = 'France';
[2791] Fix | Delete
$QuicktimeStoreFrontCodeLookup[143443] = 'Germany';
[2792] Fix | Delete
$QuicktimeStoreFrontCodeLookup[143448] = 'Greece';
[2793] Fix | Delete
$QuicktimeStoreFrontCodeLookup[143449] = 'Ireland';
[2794] Fix | Delete
$QuicktimeStoreFrontCodeLookup[143450] = 'Italy';
[2795] Fix | Delete
$QuicktimeStoreFrontCodeLookup[143462] = 'Japan';
[2796] Fix | Delete
$QuicktimeStoreFrontCodeLookup[143451] = 'Luxembourg';
[2797] Fix | Delete
$QuicktimeStoreFrontCodeLookup[143452] = 'Netherlands';
[2798] Fix | Delete
$QuicktimeStoreFrontCodeLookup[143461] = 'New Zealand';
[2799] Fix | Delete
$QuicktimeStoreFrontCodeLookup[143457] = 'Norway';
[2800] Fix | Delete
$QuicktimeStoreFrontCodeLookup[143453] = 'Portugal';
[2801] Fix | Delete
$QuicktimeStoreFrontCodeLookup[143454] = 'Spain';
[2802] Fix | Delete
$QuicktimeStoreFrontCodeLookup[143456] = 'Sweden';
[2803] Fix | Delete
$QuicktimeStoreFrontCodeLookup[143459] = 'Switzerland';
[2804] Fix | Delete
$QuicktimeStoreFrontCodeLookup[143444] = 'United Kingdom';
[2805] Fix | Delete
$QuicktimeStoreFrontCodeLookup[143441] = 'United States';
[2806] Fix | Delete
}
[2807] Fix | Delete
return (isset($QuicktimeStoreFrontCodeLookup[$sfid]) ? $QuicktimeStoreFrontCodeLookup[$sfid] : 'invalid');
[2808] Fix | Delete
}
[2809] Fix | Delete
[2810] Fix | Delete
/**
[2811] Fix | Delete
* @param string $keyname
[2812] Fix | Delete
* @param string|array $data
[2813] Fix | Delete
* @param string $boxname
[2814] Fix | Delete
*
[2815] Fix | Delete
* @return bool
[2816] Fix | Delete
*/
[2817] Fix | Delete
public function CopyToAppropriateCommentsSection($keyname, $data, $boxname='') {
[2818] Fix | Delete
static $handyatomtranslatorarray = array();
[2819] Fix | Delete
if (empty($handyatomtranslatorarray)) {
[2820] Fix | Delete
// http://www.geocities.com/xhelmboyx/quicktime/formats/qtm-layout.txt
[2821] Fix | Delete
// http://www.geocities.com/xhelmboyx/quicktime/formats/mp4-layout.txt
[2822] Fix | Delete
// http://atomicparsley.sourceforge.net/mpeg-4files.html
[2823] Fix | Delete
// https://code.google.com/p/mp4v2/wiki/iTunesMetadata
[2824] Fix | Delete
$handyatomtranslatorarray["\xA9".'alb'] = 'album'; // iTunes 4.0
[2825] Fix | Delete
$handyatomtranslatorarray["\xA9".'ART'] = 'artist';
[2826] Fix | Delete
$handyatomtranslatorarray["\xA9".'art'] = 'artist'; // iTunes 4.0
[2827] Fix | Delete
$handyatomtranslatorarray["\xA9".'aut'] = 'author';
[2828] Fix | Delete
$handyatomtranslatorarray["\xA9".'cmt'] = 'comment'; // iTunes 4.0
[2829] Fix | Delete
$handyatomtranslatorarray["\xA9".'com'] = 'comment';
[2830] Fix | Delete
$handyatomtranslatorarray["\xA9".'cpy'] = 'copyright';
[2831] Fix | Delete
$handyatomtranslatorarray["\xA9".'day'] = 'creation_date'; // iTunes 4.0
[2832] Fix | Delete
$handyatomtranslatorarray["\xA9".'dir'] = 'director';
[2833] Fix | Delete
$handyatomtranslatorarray["\xA9".'ed1'] = 'edit1';
[2834] Fix | Delete
$handyatomtranslatorarray["\xA9".'ed2'] = 'edit2';
[2835] Fix | Delete
$handyatomtranslatorarray["\xA9".'ed3'] = 'edit3';
[2836] Fix | Delete
$handyatomtranslatorarray["\xA9".'ed4'] = 'edit4';
[2837] Fix | Delete
$handyatomtranslatorarray["\xA9".'ed5'] = 'edit5';
[2838] Fix | Delete
$handyatomtranslatorarray["\xA9".'ed6'] = 'edit6';
[2839] Fix | Delete
$handyatomtranslatorarray["\xA9".'ed7'] = 'edit7';
[2840] Fix | Delete
$handyatomtranslatorarray["\xA9".'ed8'] = 'edit8';
[2841] Fix | Delete
$handyatomtranslatorarray["\xA9".'ed9'] = 'edit9';
[2842] Fix | Delete
$handyatomtranslatorarray["\xA9".'enc'] = 'encoded_by';
[2843] Fix | Delete
$handyatomtranslatorarray["\xA9".'fmt'] = 'format';
[2844] Fix | Delete
$handyatomtranslatorarray["\xA9".'gen'] = 'genre'; // iTunes 4.0
[2845] Fix | Delete
$handyatomtranslatorarray["\xA9".'grp'] = 'grouping'; // iTunes 4.2
[2846] Fix | Delete
$handyatomtranslatorarray["\xA9".'hst'] = 'host_computer';
[2847] Fix | Delete
$handyatomtranslatorarray["\xA9".'inf'] = 'information';
[2848] Fix | Delete
$handyatomtranslatorarray["\xA9".'lyr'] = 'lyrics'; // iTunes 5.0
[2849] Fix | Delete
$handyatomtranslatorarray["\xA9".'mak'] = 'make';
[2850] Fix | Delete
$handyatomtranslatorarray["\xA9".'mod'] = 'model';
[2851] Fix | Delete
$handyatomtranslatorarray["\xA9".'nam'] = 'title'; // iTunes 4.0
[2852] Fix | Delete
$handyatomtranslatorarray["\xA9".'ope'] = 'composer';
[2853] Fix | Delete
$handyatomtranslatorarray["\xA9".'prd'] = 'producer';
[2854] Fix | Delete
$handyatomtranslatorarray["\xA9".'PRD'] = 'product';
[2855] Fix | Delete
$handyatomtranslatorarray["\xA9".'prf'] = 'performers';
[2856] Fix | Delete
$handyatomtranslatorarray["\xA9".'req'] = 'system_requirements';
[2857] Fix | Delete
$handyatomtranslatorarray["\xA9".'src'] = 'source_credit';
[2858] Fix | Delete
$handyatomtranslatorarray["\xA9".'swr'] = 'software';
[2859] Fix | Delete
$handyatomtranslatorarray["\xA9".'too'] = 'encoding_tool'; // iTunes 4.0
[2860] Fix | Delete
$handyatomtranslatorarray["\xA9".'trk'] = 'track_number';
[2861] Fix | Delete
$handyatomtranslatorarray["\xA9".'url'] = 'url';
[2862] Fix | Delete
$handyatomtranslatorarray["\xA9".'wrn'] = 'warning';
[2863] Fix | Delete
$handyatomtranslatorarray["\xA9".'wrt'] = 'composer';
[2864] Fix | Delete
$handyatomtranslatorarray['aART'] = 'album_artist';
[2865] Fix | Delete
$handyatomtranslatorarray['apID'] = 'purchase_account';
[2866] Fix | Delete
$handyatomtranslatorarray['catg'] = 'category'; // iTunes 4.9
[2867] Fix | Delete
$handyatomtranslatorarray['covr'] = 'picture'; // iTunes 4.0
[2868] Fix | Delete
$handyatomtranslatorarray['cpil'] = 'compilation'; // iTunes 4.0
[2869] Fix | Delete
$handyatomtranslatorarray['cprt'] = 'copyright'; // iTunes 4.0?
[2870] Fix | Delete
$handyatomtranslatorarray['desc'] = 'description'; // iTunes 5.0
[2871] Fix | Delete
$handyatomtranslatorarray['disk'] = 'disc_number'; // iTunes 4.0
[2872] Fix | Delete
$handyatomtranslatorarray['egid'] = 'episode_guid'; // iTunes 4.9
[2873] Fix | Delete
$handyatomtranslatorarray['gnre'] = 'genre'; // iTunes 4.0
[2874] Fix | Delete
$handyatomtranslatorarray['hdvd'] = 'hd_video'; // iTunes 4.0
[2875] Fix | Delete
$handyatomtranslatorarray['ldes'] = 'description_long'; //
[2876] Fix | Delete
$handyatomtranslatorarray['keyw'] = 'keyword'; // iTunes 4.9
[2877] Fix | Delete
$handyatomtranslatorarray['pcst'] = 'podcast'; // iTunes 4.9
[2878] Fix | Delete
$handyatomtranslatorarray['pgap'] = 'gapless_playback'; // iTunes 7.0
[2879] Fix | Delete
$handyatomtranslatorarray['purd'] = 'purchase_date'; // iTunes 6.0.2
[2880] Fix | Delete
$handyatomtranslatorarray['purl'] = 'podcast_url'; // iTunes 4.9
[2881] Fix | Delete
$handyatomtranslatorarray['rtng'] = 'rating'; // iTunes 4.0
[2882] Fix | Delete
$handyatomtranslatorarray['soaa'] = 'sort_album_artist'; //
[2883] Fix | Delete
$handyatomtranslatorarray['soal'] = 'sort_album'; //
[2884] Fix | Delete
$handyatomtranslatorarray['soar'] = 'sort_artist'; //
[2885] Fix | Delete
$handyatomtranslatorarray['soco'] = 'sort_composer'; //
[2886] Fix | Delete
$handyatomtranslatorarray['sonm'] = 'sort_title'; //
[2887] Fix | Delete
$handyatomtranslatorarray['sosn'] = 'sort_show'; //
[2888] Fix | Delete
$handyatomtranslatorarray['stik'] = 'stik'; // iTunes 4.9
[2889] Fix | Delete
$handyatomtranslatorarray['tmpo'] = 'bpm'; // iTunes 4.0
[2890] Fix | Delete
$handyatomtranslatorarray['trkn'] = 'track_number'; // iTunes 4.0
[2891] Fix | Delete
$handyatomtranslatorarray['tven'] = 'tv_episode_id'; //
[2892] Fix | Delete
$handyatomtranslatorarray['tves'] = 'tv_episode'; // iTunes 6.0
[2893] Fix | Delete
$handyatomtranslatorarray['tvnn'] = 'tv_network_name'; // iTunes 6.0
[2894] Fix | Delete
$handyatomtranslatorarray['tvsh'] = 'tv_show_name'; // iTunes 6.0
[2895] Fix | Delete
$handyatomtranslatorarray['tvsn'] = 'tv_season'; // iTunes 6.0
[2896] Fix | Delete
[2897] Fix | Delete
// boxnames:
[2898] Fix | Delete
/*
[2899] Fix | Delete
$handyatomtranslatorarray['iTunSMPB'] = 'iTunSMPB';
[2900] Fix | Delete
$handyatomtranslatorarray['iTunNORM'] = 'iTunNORM';
[2901] Fix | Delete
$handyatomtranslatorarray['Encoding Params'] = 'Encoding Params';
[2902] Fix | Delete
$handyatomtranslatorarray['replaygain_track_gain'] = 'replaygain_track_gain';
[2903] Fix | Delete
$handyatomtranslatorarray['replaygain_track_peak'] = 'replaygain_track_peak';
[2904] Fix | Delete
$handyatomtranslatorarray['replaygain_track_minmax'] = 'replaygain_track_minmax';
[2905] Fix | Delete
$handyatomtranslatorarray['MusicIP PUID'] = 'MusicIP PUID';
[2906] Fix | Delete
$handyatomtranslatorarray['MusicBrainz Artist Id'] = 'MusicBrainz Artist Id';
[2907] Fix | Delete
$handyatomtranslatorarray['MusicBrainz Album Id'] = 'MusicBrainz Album Id';
[2908] Fix | Delete
$handyatomtranslatorarray['MusicBrainz Album Artist Id'] = 'MusicBrainz Album Artist Id';
[2909] Fix | Delete
$handyatomtranslatorarray['MusicBrainz Track Id'] = 'MusicBrainz Track Id';
[2910] Fix | Delete
$handyatomtranslatorarray['MusicBrainz Disc Id'] = 'MusicBrainz Disc Id';
[2911] Fix | Delete
[2912] Fix | Delete
// http://age.hobba.nl/audio/tag_frame_reference.html
[2913] Fix | Delete
$handyatomtranslatorarray['PLAY_COUNTER'] = 'play_counter'; // Foobar2000 - https://www.getid3.org/phpBB3/viewtopic.php?t=1355
[2914] Fix | Delete
$handyatomtranslatorarray['MEDIATYPE'] = 'mediatype'; // Foobar2000 - https://www.getid3.org/phpBB3/viewtopic.php?t=1355
[2915] Fix | Delete
*/
[2916] Fix | Delete
}
[2917] Fix | Delete
$info = &$this->getid3->info;
[2918] Fix | Delete
$comment_key = '';
[2919] Fix | Delete
if ($boxname && ($boxname != $keyname)) {
[2920] Fix | Delete
$comment_key = (isset($handyatomtranslatorarray[$boxname]) ? $handyatomtranslatorarray[$boxname] : $boxname);
[2921] Fix | Delete
} elseif (isset($handyatomtranslatorarray[$keyname])) {
[2922] Fix | Delete
$comment_key = $handyatomtranslatorarray[$keyname];
[2923] Fix | Delete
}
[2924] Fix | Delete
if ($comment_key) {
[2925] Fix | Delete
if ($comment_key == 'picture') {
[2926] Fix | Delete
// already copied directly into [comments][picture] elsewhere, do not re-copy here
[2927] Fix | Delete
return true;
[2928] Fix | Delete
}
[2929] Fix | Delete
$gooddata = array($data);
[2930] Fix | Delete
if ($comment_key == 'genre') {
[2931] Fix | Delete
// some other taggers separate multiple genres with semicolon, e.g. "Heavy Metal;Thrash Metal;Metal"
[2932] Fix | Delete
$gooddata = explode(';', $data);
[2933] Fix | Delete
}
[2934] Fix | Delete
foreach ($gooddata as $data) {
[2935] Fix | Delete
if (!empty($info['quicktime']['comments'][$comment_key]) && in_array($data, $info['quicktime']['comments'][$comment_key], true)) {
[2936] Fix | Delete
// avoid duplicate copies of identical data
[2937] Fix | Delete
continue;
[2938] Fix | Delete
}
[2939] Fix | Delete
$info['quicktime']['comments'][$comment_key][] = $data;
[2940] Fix | Delete
}
[2941] Fix | Delete
}
[2942] Fix | Delete
return true;
[2943] Fix | Delete
}
[2944] Fix | Delete
[2945] Fix | Delete
/**
[2946] Fix | Delete
* @param string $lstring
[2947] Fix | Delete
* @param int $count
[2948] Fix | Delete
*
[2949] Fix | Delete
* @return string
[2950] Fix | Delete
*/
[2951] Fix | Delete
public function LociString($lstring, &$count) {
[2952] Fix | Delete
// Loci strings are UTF-8 or UTF-16 and null (x00/x0000) terminated. UTF-16 has a BOM
[2953] Fix | Delete
// Also need to return the number of bytes the string occupied so additional fields can be extracted
[2954] Fix | Delete
$len = strlen($lstring);
[2955] Fix | Delete
if ($len == 0) {
[2956] Fix | Delete
$count = 0;
[2957] Fix | Delete
return '';
[2958] Fix | Delete
}
[2959] Fix | Delete
if ($lstring[0] == "\x00") {
[2960] Fix | Delete
$count = 1;
[2961] Fix | Delete
return '';
[2962] Fix | Delete
}
[2963] Fix | Delete
// check for BOM
[2964] Fix | Delete
if (($len > 2) && ((($lstring[0] == "\xFE") && ($lstring[1] == "\xFF")) || (($lstring[0] == "\xFF") && ($lstring[1] == "\xFE")))) {
[2965] Fix | Delete
// UTF-16
[2966] Fix | Delete
if (preg_match('/(.*)\x00/', $lstring, $lmatches)) {
[2967] Fix | Delete
$count = strlen($lmatches[1]) * 2 + 2; //account for 2 byte characters and trailing \x0000
[2968] Fix | Delete
return getid3_lib::iconv_fallback_utf16_utf8($lmatches[1]);
[2969] Fix | Delete
} else {
[2970] Fix | Delete
return '';
[2971] Fix | Delete
}
[2972] Fix | Delete
}
[2973] Fix | Delete
// UTF-8
[2974] Fix | Delete
if (preg_match('/(.*)\x00/', $lstring, $lmatches)) {
[2975] Fix | Delete
$count = strlen($lmatches[1]) + 1; //account for trailing \x00
[2976] Fix | Delete
return $lmatches[1];
[2977] Fix | Delete
}
[2978] Fix | Delete
return '';
[2979] Fix | Delete
}
[2980] Fix | Delete
[2981] Fix | Delete
/**
[2982] Fix | Delete
* @param string $nullterminatedstring
[2983] Fix | Delete
*
[2984] Fix | Delete
* @return string
[2985] Fix | Delete
*/
[2986] Fix | Delete
public function NoNullString($nullterminatedstring) {
[2987] Fix | Delete
// remove the single null terminator on null terminated strings
[2988] Fix | Delete
if (substr($nullterminatedstring, strlen($nullterminatedstring) - 1, 1) === "\x00") {
[2989] Fix | Delete
return substr($nullterminatedstring, 0, strlen($nullterminatedstring) - 1);
[2990] Fix | Delete
}
[2991] Fix | Delete
return $nullterminatedstring;
[2992] Fix | Delete
}
[2993] Fix | Delete
[2994] Fix | Delete
/**
[2995] Fix | Delete
* @param string $pascalstring
[2996] Fix | Delete
*
[2997] Fix | Delete
* @return string
[2998] Fix | Delete
*/
[2999] Fix | Delete
It is recommended that you Edit text format, this type of Fix handles quite a lot in one request
Function