Lines Matching +full:style +full:. +full:local +full:. +full:ini

2 /// getID3() by James Heinrich <info@getid3.org>               //
3 // available at http://getid3.sourceforge.net //
4 // or https://www.getid3.org //
5 // also https://github.com/JamesHeinrich/getID3 //
8 // changelog.txt - part of getID3() //
9 // See readme.txt for more details //
21 1.9.20: [2020-06-30] James Heinrich :: 1.9.20-202006061653
27 » add demo.mysqli.php, remove demo.mysql.php
28 ¤ QuickTime.uuid now returned as an array (may contain multiple entries)
36 * bugfix (G:228) master.zip did not contain demos
41 * bugfix (G:222) demo.browse filesystem character encoding
43 * bugfix (G:219) Quicktime.UUID now parsed more discriminately for XML and other data types
46 * bugfix (G:216) ID3v2.write allow WMP rating in POPM
51 1.9.19: [2019-12-17] James Heinrich :: 1.9.19-201912131005
59 1.9.18: [2019-07-24] James Heinrich :: 1.9.18-201907240906
62 * bugfix (G:191) unsupported operand types module.audio.ac3.php:763
65 * bugfix (G:187) RIFF.WAVE.scot parsing
73 1.9.17: [2019-02-07] James Heinrich :: 1.9.17-201902071234
79 * bugfix: write.id3v2 year field
80 * bugfix: mp3.APE permit optional " dB" in ReplayGain tags
81 * placeholder support for .xz file format
83 1.9.16: [2018-10-17] James Heinrich :: 1.9.16-201810171314
105 * bugfix (#1900) demo.joinmp3 cut from end
109 * helperapps (Windows): updated vorbiscomment.exe, metaflac.exe to v1.3.2
112 1.9.15: [2017-10-26] James Heinrich :: 1.9.15-201709291043
115 * return RIFF.WAV.CART comments in merged comments section
118 * bugfix: (G:128) undefinied bsmod in module.ac3
127 1.9.14: [2017-03-27] James Heinrich
129 * bugfix (G:105): RIFF.WAVE.iXML multiple TIMESTAMP_SAMPLE_RATE
134 1.9.13: [2016-12-14] James Heinrich
135 * bugfix (G:89): ID3v2.4 custom genres with slashes
151 * bugfix (#1926) relax ID3v2.IsValidURL check
153 1.9.12: [2016-03-02] James Heinrich
159 1.9.11: [2015-12-24] James Heinrich
163 * bugfix (G:60): missing "break" in module.audio-video.quicktime.php
164 * bugfix (G:59): .gitignore comments
165 * bugfix (G:58): inconsistency in relation to module.tag.id3v2.php
168 * bugfix (G:55): readme.md variable reference
173 * demo.joinmp3.php enhancements
177 1.9.10: [2015-09-14] James Heinrich
179 * bugfix (#1892): extension.cache.mysql
188 1.9.9: [2014-12-18] James Heinrich
194 * bugfix: sys_get_temp_dir undefined before PHP 5.2.1
204 1.9.8: [2014-05-11] James Heinrich
206 new file: module.audio.amr.php
207 » Added composer.json, registered on packagist.org
215 encoding did not take place.
220 * Bugfix: demo.browse to use character set consistently
222 1.9.7: [2013-07-05] James Heinrich
223 * Bugfix: [module.audio-video.quicktime.php] track languages set
229 1.9.6: [2013-06-03] James Heinrich
231 See license.txt for more details.
235 * [demo.browse] disable edit-tag and delete-file links by default
238 1.9.5: [2013-02-20] James Heinrich, Dmitry Arkhipov
244 * Bugfix: [demo/demo.browse] might not display file or directory name
245 on PHP >=5.4.0 if filename not UTF-8 friendly
246 * Bugfix: [demo/demo.zip] could read more uncompressed data than
247 required; fail to read file if local data descriptor not set;
249 * Bugfix: [module.audio-video.riff] INFO comment chunks with null name
251 * Bugfix: [module.archive.gz] gzip files with filename stored may have
253 * Bugfix: [module.archive.zip] data_descriptor not parsed correctly
254 * Bugfix: [module.archive.zip] some newer compression methods unknown
255 * Bugfix: [module.archive.zip] not all flags parsed
256 * Bugfix: [module.archive.zip] local file header not parsed correctly
257 if file has zero values for compressed_size in Local File Header
264 * Bugfix: (#1426) MS Office 2007 file format now recognized as zip.msoffice
268 1.9.4b1: [2012-10-05] James Heinrich, Dmitry Arkhipov, Karl G. Holz
269 » New module: extension.cache.sqlite3.php (by Karl G. Holz)
270 » New demo: demos/getid3.demo.dirscan.php (by Karl G. Holz)
273 Scripting.FileSystemObject rather than parsing `dir` output
277 * (#1297) Added detection of MPEG Transport Stream files.
278 Stub module.audio-video.ts.php incomplete
282 * Bugfix: (#1357) demo.mysql.php mysql_table_exists() failed
289 * Bugfix: (#1309) ID3v2.2 content_group_description (TT2) did
290 not copy to same place as ID3v2.3/ID3v2.4 (TIT2)
292 * Bugfix: (#1306) extension.cache.mysql.php keyword TYPE->ENGINE
299 1.9.3: [2011-12-13] Dmitry Arkhipov, James Heinrich
301 1. Added support for A_MS/ACM audio codec
302 2. Fixed issues in tags, cues, chapters and clusters parsing
303 3. Fixed almost all errors with track_data_offset, errors
305 4. Optimized audio/video streams population with usage of the
307 5. Audio/video keys are now populated with data from the
309 6. Full WebM support
310 * Bugfix: demo.browse would not pop up warnings when clicked
315 1.9.2: [2011-12-08] James Heinrich, Dmitry Arkhipov
316 » significant rewrite to module.audio-video.matroska.php
322 * Bugfix: (#1266) variable tablename: extension.cache.mysql.php
323 * Bugfix: (#1265) unescaped # in regex in write.id3v2.php
331 * Bugfix: missing ) in write.real.php::RemoveReal()
333 extension.cache.*.php
336 1.9.1: [2011-08-10] James Heinrich
343 displayed by table_var_dump() in demo.browse.php
345 * Bugfix: (#1196) typo in module.audio-video.quicktime.php
350 now parsed for embedded images and handled per usual style
351 * Bugfix: (#1190) demo.mimeonly.php was broken since v1.9.0
357 1.9.0: [2011-06-20] James Heinrich
368 ¤ GPS data in MP4 files (e.g. iPhone) is now parsed (#1157)
376 returned completely.
377 * Bugfix: wrong image_mime used for images in demo.browse.php
378 * Bugfix: broken preg_match in module.audio.dss.php
381 (e.g. joint stereo reported as stereo)
384 * Bugfix: FLAC.picture was not returning under [data] +
388 * Bugfix: (#1177) ID3v2.4 extended headers were broken
393 * Bugfix: (#1156) demo.mysql.php not working
395 argument errors in module.tag.xmp.php
398 * Bugfix: (#1136) last character of unicode tags (e.g. ASF)
400 * Bugfix: (#1133) write.id3v2.php IsValidURL() was broken
401 * Bugfix: (#1126) ID3v2.POPM field was being clobbered
405 1.8.5: [2011-02-18] James Heinrich
410 » PHP v5.0.5 now minimum required version.
411 Removed obsolte functions from getid3.lib.php:
418 of tag writing can be completed. Certainly affects ID3v2,
421 * demo.browse.php now shows cover art as inline images
427 * Bugfix: demo.browse.php now encodes data according to
431 for RIFFs > 2GB.
442 1.8.4: [2011-02-03] James Heinrich
447 * Bugfix: (#1102) missing parentheses in write[.id3v2].php
448 * Bugfix: (#510) undefined IsValidDottedIP() in write.id3v2.php
451 1.8.3: [2011-01-18] James Heinrich
456 variables (e.g. support forum thread #798)
465 * Bugfix: [riff] prevent errors when RIFF.WAVE.BEXT chunk
472 1.8.2: [2010-12-06] James Heinrich
476 from Quicktime-style files (e.g. MP4/AAC)
485 1.8.1: [2010-11-25] James Heinrich
489 in gigabytes in php.ini (e.g. "2G")
497 data to make binary-safe. Existing cached data must be
504 demo.write.php
508 * Bugfix: (#877) detect if mbstring.func_overload is set in php.ini
509 * Bugfix: (#858) PHP safe_mode setting in php.ini incorrectly
515 1.8.0: [2010-11-23] James Heinrich
516 » Changes required for PHP v5.3+ compatability, including:
519 note: users of PHP v4.x may need to stay with getID3 v1.7.x
521 new file: module.misc.cue.php
524 currently used with module.graphic.jpg.php
525 new file: module.tag.xmp.php
532 ¤ RIFF.WAVE.SNDM (SoundMiner) metadata now parsed
537 iTunes v4.0-v7.0 (thanks ngbarnesØhotmail*com)
538 * demo.browse.php now shows video resolution and framerate (if no
550 (e.g. \\SERVER\Directory\Filename.mp3)
559 1.7.9: [2009-03-08] James Heinrich
561 new file: module.audio.dss.php
566 ¤ start aligning demos CSS styling with v2.x styles
567 new file: demos/getid3.css
574 ¤ added ID3v2 keys 'TCMP','TCP' to for writing iTunes-style tags
587 null byte for numeric ID3v2.4 genres
591 * Bugfix: cleaned up some malformed HTML errors in demo.browse.php
595 some random files (e.g. JPEGs) (thanks qwertywin)
600 1.7.8b3: [2008-07-13] James Heinrich
603 up to 2GB limit). See readme.txt for details on what formats
605 » Initial support for Matroska. Has only been tested with a
607 » Experimental support for PHP-RAR reading. Known buggy, disabled
629 1.7.8b2: [2007-10-15] James Heinrich, Allan Hansen
632 * Bugfix: 'comments_html' missing last letter in id3v2 tags.
633 * Bugfix: module objects (e.g. getid3_riff) that are instantiated
634 in other modules are explicitly disposed once no longer needed.
645 single files produced correct values).
656 timestamp not present). (thanks i*f*schulzØweb*de)
657 * Bugfix: TAR.GZ files produce PHP errors when
658 option_gzip_parse_contents == true in module.archive.gzip.php
662 1.7.8b1: [2007-01-08] Allan Hansen
663 » Major update to readme.txt
664 » PHP 4.2.0 required
665 » Tagwriter requires metaflac 1.1.1+ in order to write FLAC tags.
666 » Removed broken and non-fixable tagwriting module for real format.
668 https://www.getid3.org/phpBB3/viewtopic.php?t=677
669 » Avoided security issues with demo.browse.php, demo.write.php and
670 demo.mysql.php. These demos are now disabled by default and has
671 to be enabled in the source.
672 * Bugfix: id3v2 genre broken since 1.7.7.
673 » Added DTS module (module.audio.dts.php)
676 * Bugfix: Minor issues with midi module (avoid PHP_NOTICE).
677 * Bugfix: Minor issues with lyrics3 (avoid PHP_NOTICE).
680 * Bugfix: fread() zero bytes issue in real module.
682 video/x-ms-wmv for certain FourCCs.
683 * Bugfix: PHP_NOTICE issues with broken ID3v2 tag/garbage.
684 * Bugfix: PNG module broken in regards to gIFg and gIFx chunks.
687 problems.
688 * Bugfix: Some CBR MP3 files detected as VBR with plenty of warnings.
689 * Bugfix: PHP_NOTICE issues in MP3 module.
690 * Bugfix: Quicktime returned incorrect frame rate.
691 * Bugfix: DivByZero on zero length FLV files.
692 * Bugfix: PHP_NOTICE one some FLV files.
694 * Bugfix: ID3v2 LINK frames iconv error.
695 * Bugfix: ID3v2 padding length calculated incorrectly.
696 * Bugfix: ID3v2.3 extended headers non-conformance
697 » SVG file detection.
698 » Added SVG user module (user_modules/module.graphic.svg.php).
699 Thanks to Roan Horning.
701 * Bugfix: Wave files being detected as MP3.
702 * Bugfix: ASF padding offset bug.
704 chunks <> 16 bytes.
705 ¤ RIFF: Zero sized chunk invokes warning instead of error.
706 ¤ FLAC: Removed some ['raw'] keys.
709 1.7.7: [2006-06-25] Allan Hansen
711 several files.
712 * Bugfix: Do not return NULL video bitrate for ASF v3.
713 * Bugfix: getid3_lib::GetImageSize() broken => JPG module broken.
715 "--alt-preset n" / "--alt-preset cbr n" when scanning more files.
716 * Bugfix: Shorten module not escapeshellarg() filenames (UNIX only).
718 sha1_data (UNIX only).
719 * Bugfix: UNIX: head and tail called with -cNNN instead of "-c NNN".
721 (*.doc, *.xls, *.pps, etc) (thanks zeromassmediaØgmail*com)
723 unavailable (TYER is deprecated in ID3v2.4)
736 * Bugfix: Error message when padding in FLAC files were used up.
737 * Bugfix: Shorten module not working under windows.
738 ¤ Bugfix: gmmktime() instead of mktime().
740 modules to avoid E_STRICT notices with PHP5.1+.
743 long field names.
745 1.7.6: [2006-03-12] James Heinrich
750 * Bugfix: ['codec'] key warning in module.audio-video.asf.php
752 * Bugfix: undefined array in write.php
763 1.7.5: [2005-12-29] James Heinrich
765 module.audio-video.flv.php
766 (thanks Seth Kaufman <seth@whirl-i-gig.com> for code)
775 * Bugfix: missing ob_end_clean() in write.id3v2.php
778 1.7.4: [2005-05-04] James Heinrich
787 1.7.3: [2005-04-22] James Heinrich
788 » Added TAR support -- new file: module.archive.tar.php
790 » Added GZIP support -- new file: module.archive.gzip.php
792 * Bugfix: demo.browse.php now displays embedded images
793 internally instead of passing local filename as IMG
794 SRC (should allow demo.browse.php to correctly show
797 * Bugfix: minor UTF-8 display issues in demo.browse.php
798 * Bugfix: demo.browse.php now works even if the evil
803 * Bugfix: 'url_source' typo in module.tag.id3v2.php
809 ['totaltracks']. Previously ['tracknum'] was not
810 available and ['track'] had only xx.
811 Bugfixes and improvements to /demo/demo.mysql.php:
817 1.7.2: [2004-10-18] Allan Hansen
818 » Added support for WavPack v4.0+
822 Removed file: module.misc.exe.php
824 properly under PHP5.
827 above).
829 on those files.
840 ¤ Trim/unset wavpack encoder_options to match 2.0.0b2
841 output.
846 1.7.1b1: [July-26-2004] James Heinrich
851 New file: /getid3/module.graphic.tiff.php
854 not available. This means that iconv() is no longer required
857 » Added support for Monkey's Audio v3.98+ (thanks ahØartemis*dk)
859 New file: /demos/demo.basic.php
860 * Bugfix: LAME3.94+ presets cached incorrectly if multiple files
861 are scanned in one batch and first file is LAME3.93 or earlier
864 fails. (thanks Mike Billings)
868 * Bugfix: ['bitrate_mode'] typo in module.audio-video.real.php
875 /demo/getid3.browse.php
893 double-size will have "2" here. Other values are "1" and "0.5"
894 ¤ Added LAME preset guessing for --preset medium with v3.90.3
902 Editable textbox for parent directory in demo.browse.php
906 1.7.0-hotfix [2004-03-17] Allan Hansen
908 * Bugfix: PHP 4.1.x compatiblity - fgets($fp) => fgets($fp, 1024)
910 module.tag.id3v2.php
914 not needed otherwise. New 'iconv_req' in GetFileFormatArray()
915 only set for WMA/WMV/ASF. analyze() now refuses to analyse
916 WMA/ASF file if iconv is not present.
920 1.7.0: [January-19-2004] James Heinrich
925 tag-reading programs cannot read unsynchronised tags. Can be
926 overridden by setting id3v2_use_unsynchronisation to true.
928 ¤ extention.*.php renamed to extension.*.php
930 ¤ /demo/demo.check.php renamed to /demo/demo.browse.php
937 stream present in the file (usually only one). The data is a
938 copy of what is usually found in [audio]. If there are multiple
942 ¤ Added BruteForce mode to mp3 scanning. Disabled by default as
944 not really play will gain any benefit from this.
969 LAME3.94a15 and earlier
979 value for LAME3.94a16+ (thanks Gabriel)
980 md5_file() and sha1_file() now work under Windows in PHP < 4.2.0
981 and 4.3.0 respectively with helper apps
986 /demo/demo.browse.php now autogets both MD5 and SHA1 hashes for
992 1.7.0b5: [December-29-2003] James Heinrich
995 (and other) calculations. These binaries are now stored in the
996 directory defined as GETID3_HELPERAPPSDIR in getid3.php
997 (default is /helperapps/ parallel to /getid3/).
998 Note: This directory must not have any spaces in the pathname.
999 All neccesary files are available as a seperate download.
1000 See /helperapps/readme.txt for more information
1001 New file: /helperapps/readme.txt
1003 New file: /getid3/write.php
1004 /getid3/write.apetag.php
1005 /getid3/write.id3v1.php
1006 /getid3/write.id3v2.php
1007 /getid3/write.lyrics3.php
1008 /getid3/write.metaflac.php
1009 /getid3/write.vorbiscomment.php
1010 » Added support for Shorten - requires shorten binary (head.exe
1011 is also required under Windows).
1012 New file: /getid3/module.audio.shorten.php
1014 New file: /getid3/module.audio.rkau.php
1016 New file: /getid3/module.archive.szip.php
1018 New file: /getid3/extention.cache.mysql.php
1020 New file: /getid3/extention.cache.dbm.php
1023 for faster scanning when ID3v2 data is not required. If you
1024 want to enable this feature delete /getid3/module.tag.id3v2.php
1029 decoded 8-bit WAV. A warning will be generated for 8-bit FLAC
1048 formats that calculate ReplayGain.
1072 Added alternative md5_data via system call - twice as fast. Needs
1073 "getID3()-WindowsSupport" to work under Windows.
1075 ID3v2.4 compressed frames are now supported
1083 in place of large multi-dimensional array declarations.
1084 Memory saved: RIFF: ~200kB; ID3v2: ~475kB; ASF: ~50kB etc.
1088 1.7.0b4: [November-19-2003] James Heinrich
1092 » RealAudio files with old-style file format (v2-v4) are now
1109 to either 'MPEG-1' or 'MPEG-2' (rather than just 'MPEG'). If you
1127 * Bugfix: strpad vs str_pad typo in module.riff.php
1131 in module.audio.optimfrog.php
1132 * Bugfix: Undefined variable in table_var_dump() in demo/check.php
1138 "Xing") header frame. foobar2000 adds this to MP3 files when
1142 scaling value. (thanks sebastianØmaresweb*net)
1147 Old MPC encoder (before v1.06) was return as v0.00, now returned
1148 as 'Buschmann v1.7.0-v1.7.9 or Klemm v0.90-v1.05'
1152 Added 3ivx fourCCs to module.audio-video.quicktime.php
1158 1.7.0b3: [October-17-2003] James Heinrich
1159 » AC-3 (aka Dolby Digital) is now supported.
1160 New file: /getid3/module.audio.ac3.php
1163 corrupted. (thanks t*coombesØbendigo*vic*gov*au,
1166 as they're supposed to be.
1171 Fixed /demo/simple.php
1172 Fixed /demo/joinmp3.php
1173 Fixed /demo/mimeonly.php
1174 Fixed /demo/write.php
1177 1.7.0b2: [October-15-2003] James Heinrich
1178 » TTA Lossless Audio Compressor format now supported.
1179 (http://tta.iszf.irk.ru)
1180 New file: /getid3/module.graphic.tta.php
1181 » PhotoCD (PCD) format now supported. Image data for the three
1183 extracted.
1184 New file: /getid3/module.graphic.pcd.php
1187 ¤ Name of LAME preset used (if available, needs LAME v3.90+)
1190 ¤ VQF module now sets ['audio']['encoder_options'] to i.e. CBR96
1200 Ogg Vorbis 1.0+ VBR files 44k/48k sample rate/stereo files only.
1202 other Ogg Vorbis files.
1207 ¤ Fixed /demo/mysql.php and added some new features:
1216 * Bugfix: fixed MD5 calls in demo/check.php
1219 number - patch from Eugene Toder.
1221 i.e. "date" as well as WM/Year - patch from Eugene Toder.
1228 * Bugfix: NSV module died in 1.7.0b1
1229 * Bugfix: ASF module died in 1.7.0b1 when WM/Picture preset
1248 /demo/audioinfo.class.php now copies ['audio']['encoder_options']
1251 1.7.0b1: [2003-09-28] Allan Hansen
1252 This beta version was not made by James Heinrich. It was made by
1254 beta directly to me.
1256 James Heinrich will release 1.7.0 final, but it may take some time
1257 to work out the bugs from the major rewrite.
1259 This version could be called getID3lite. It makes a lot of checks
1262 It also is more library-like. Older versions of getID3() declared
1264 constants. 1.7.0beta1 still declares constants, but they are all
1265 prepended by GETID3_. It declares no global scope functions - they
1266 are all wrapped into classes.
1272 Renamed most files to module.something
1273 Changed header in all module.something to explain what they do
1279 ¤ Added prefix GETID3_ to all defined constants.
1280 ¤ Wrapped getid3.php into getid3 class
1281 ¤ Wrapped getid3.functions.php into getid3_lib class
1283 Moved several functions away from getid3.functions.php and
1284 into the files where they are actually used.
1285 Renamed getid3.functions.php to getid3.lib.php
1286 Moved getid3.rgad.php functions into getid3_lib
1287 Moved getid3.getimagesize.php funcitons ingo getid3_lib
1288 ¤ Moved getid3.ogginfo.php into ogg module
1295 of comments.
1296 Simplified code for detecting base path.
1297 Removed ob_ from InitializeFilepointerArray(). That was really a
1298 ugly HACK to get output from fopen. If user want the reason,
1301 on APE tag. It seems to work on my test file.
1303 array instead of appending to string. That simplified code in
1304 getid3.php too.
1306 Setting tags in individual modules instead of main getid3.php
1308 optional.
1310 desired encoding.
1312 with a TrimConvert() method. This uses iconv() for conversion.
1314 says it should.
1316 module with iconv(). id3v2 module also reads
1318 format. All other formats just add their comments in their
1320 different encoding, so this is needed.
1321 Did same thing as above with ISO module. However - it does not
1322 work. I need to find out how to specify big-endian unicode !=
1323 UNICODING encoding name given to iconv().
1324 Built-in assume mp3 format in getid3.php
1326 Updated demo/audioinfo.class.php
1327 Updated demo/check.php - some thing don't work!
1331 1.6.5: [October-06-2003] James Heinrich
1341 i.e. "date" as well as WM/Year - patch from Eugene Toder.
1352 1.6.4: [June-30-2003] James Heinrich
1357 » Added DeleteLyrics3() to getid3.lyrics3.php
1358 » Added FixID3v1Padding() to getid3.putid3.php
1361 New file: getid3.demo.joinmp3.php
1362 » Moved all contents of getid3.putid3.php into either
1363 getid3.id3v1.php or getid3.id3v2.php or getid3.functions.php as
1365 Removed file: getid3.putid3.php
1368 ¤ getid3.demo.scandir.php renamed to getid3.demo.mysql.php
1371 New file: getid3.demo.mimeonly.php
1373 with null characters but some taggers incorrectly use spaces).
1374 A warning will be generated if padding is invalid. New boolean
1375 key ['id3v1']['padding_valid'] indicates padding validity.
1379 only returned for LAME v3.90+
1383 in LAME v3.90+ but older versions will report longer more
1406 $ParseAllPossibleAtoms (default == false). Setting
1408 data array by unsetting ['quicktime']['moov'] before returning.
1411 that are not typically useful. Atom type suppressed are:
1424 calculated, and not removed due to lack of permissions. Temp
1427 properly removed when done.
1430 * Bugfix: SWF frame rates values were usually incorrect.
1431 (thanks alan.cheungØalumni*ust*hk and ubergeekØubergeek*tv)
1432 * Bugfix: ID3v2.2 files always flagged 4 bytes of invalid padding
1435 * Bugfix: Lyrics3, APE & ID3v1 can all now exist in the same file.
1445 * Bugfix: getid3.demo.simple.php had undefined variables if the
1453 Number of new features and bugfixes in getid3.demo.mysql.php
1460 Known issue with Meracl ID3 Tag Writer v1.3.4 truncating last byte
1463 getid3.demo.mysql.php now stores last-modified time for each file
1464 getid3.demo.mysql.php is now case-sensitive for filenames
1465 getid3.demo.mysql.php can generate M3U playlists of any of the
1467 etc.)
1468 getid3.demo.mysql.php can now find mismatched tag contents and
1470 getid3.demo.check.php now shows total number of errors & warnings
1477 1.6.3: [May-17-2003] James Heinrich
1479 New file: getid3.bonk.php
1481 New file: getid3.avr.php
1482 ¤ Contents of getid3.id3.php moved to getid3.id3v1.php
1483 Removed file: getid3.id3.php
1484 ¤ Contents of getid3.frames.php moved to getid3.id3v2.php
1485 Removed file: getid3.frames.php
1487 now stored in getid3.structure.txt rather than getid3.readme.txt
1488 New file: getid3.structure.txt
1490 as getid3.license.txt
1491 New file: getid3.license.txt
1495 encoded to UTF8 by default. For all ASCII/ANSI data this value
1496 should be left at the defaul value of FALSE.
1499 in a file at a position other than the start-of-file.
1516 contains the file listing without an empty array in between.
1517 * Bugfix: ID3v2 genreid was not being returned in some cases.
1524 * Bugfix: getid3.demo.scandir.php had undefined function error
1525 * Bugfix: getid3.demo.scandir.php would not display list of files
1527 Added link to getid3.demo.check.php from list of specific-tags
1528 files in getid3.demo.scandir.php
1531 1.6.2: [May-04-2003] James Heinrich
1532 » New official mirror site for getID3() - https://www.getid3.org
1534 New file: getid3.swf.php
1536 MPEG-video files. I don't have any actual documentation for
1539 it. Bug reports (or even better - documentation!) are welcome at
1540 info@getid3.org
1542 New file: getid3.demo.simple.php
1543 » getid3.demo.write.php now writes APE tags as well.
1544 ¤ Renamed getid3.write.php to getid3.demo.write.php
1545 ¤ Renamed audioinfo.class.php to getid3.demo.audioinfo.class.php
1546 ¤ getid3.php now automatically includes the getid3.functions.php
1547 function library file, no need to include it seperately.
1550 changed. The old function has been renamed to getLyrics3Data()
1551 ¤ Added DeleteAPEtag() function to getid3.ape.php
1552 ¤ HandleID3v1Tag() now only handles ID3v1. Lyrics3 processing is
1563 use that deprecated function.
1572 tag (http://gabriel.mp3-tech.org/mp3infotag.html)
1576 getID3() cannot determine average bitrate. If you know of
1578 info@getid3.org
1584 * Bugfix: getid3.demo.check.php is now case-insensitive when
1586 does not identify the file type.
1590 not being correctly identified.
1593 * Bugfix: getid3.demo.check.php now does in-depth scanning for MP2
1601 not being conditionally defined in getid3.functions.php
1602 (thanks rich.martinØreden-anders*com)
1614 VBR MPEG video files based on the audio bitrate.
1616 Added summary footer line to getid3.demo.check.php
1617 Added '.mpeg' to the list of assume-format-from-filenames list in
1618 getid3.demo.check.php
1621 getid3.demo.scandir.php
1623 lookup functions in getid3.riff.php
1627 for Lyrics3 v1)). getID3() now correctly parses these tags and
1628 issues a warning.
1630 HTML colors in getid3.demo.check.php are now defined as constant
1632 Added support for OptimFROG v4.50x (non-alpha) (new header fields)
1634 Added support for Lossless Audio v0.4 (thanks mikeØbevin*de)
1637 1.6.1: [March-03-2003] James Heinrich
1638 » Added support for writing APE v2.
1639 WriteAPEtag() in getid3.ape.php
1645 Removed file: getid3.aiff.php
1646 » Added support for OptimFROG (v4.50a and v4.2x)
1648 New file: getid3.optimfrog.php
1651 » Added support for NeXT/Sun .au format
1652 New file: getid3.au.php
1654 New file: getid3.voc.php
1659 » Added getid3.demo.scandir.php - a sample recursive scanning demo
1665 (currently only FLAC v0.5+). ['md5_data'] (if chosen to be
1667 compressed file. To check if 2 files are identical in every way,
1668 including all comments: compare ['md5_file']. To check if two
1670 ['md5_data_source']. To check if the compressed audio/video data
1673 FLAC in Ogg container, etc): compare ['md5_data'].
1678 $MD5dataIfMD5SourceKnown (default: false). If false the md5_data
1680 ['md5_data_source'] set, even if $MD5data == true.
1682 ¤ getid3.check.php renamed to getid3.demo.check.php
1683 ¤ Added GetTagOnly() function to getid3.php - similar to
1686 attempt is made to parse the data contents of the file at all.
1689 formats (when known). Both are boolean values - true means the
1691 compressed.
1693 ['video']['compression_ratio'] for all formats. Returns a number
1702 the MSB of each byte before MD5'ing. This is needed for 8-bit
1704 signed data rather than the original byte values. ['md5_data']
1713 contents with only the new ID3v2 tag in getid3.putid3.php
1722 * Bugfix: Potential infinite-loop condition in getid3.ogg.php
1723 (thanks afshin.behniaØsbcglobal*net)
1726 (thanks afshin.behniaØsbcglobal*net)
1738 * Bugfix: getid3.frames.php looking for non-existant key in USER
1740 Improved detection of RIFF-MP3 data. [unknown program] encodes
1744 for RIFF-WAV files with an INFO.ISFT chunk
1745 Generate a warning for FLAC files encoded with v0.3 or v0.4
1748 Modified getid3.check.php to display md5_data_source as well as
1750 Modified getid3.check.php to assume-format based on file extension
1758 1.6.0: [January-30-2003] James Heinrich
1764 strings. For example, if there are two artists then
1766 ['comments']['artist'][1] the other. All keys are forced
1767 lowercase. Comments will be stored in the ['comments'] array in
1778 in APE, it will be included in the ['comments'] array).
1780 in this or future versions of getID3().
1787 runs on UNIX system running PHP < 4.2.0)
1789 md5_data value. vorbiscomment must be downloaded from
1790 http://www.vorbis.com/download.psp and placed in the getID3()
1791 directory. All Ogg formats (Vorbis, OggFLAC, Speex) are affected
1793 vorbiscomment. OggFLAC and Speex files will be processed by
1795 in the event that VorbisComments are larger than 1 page (4-8kB).
1800 (such as format, bitrate, comments).
1801 New file: audioinfo.class.php
1802 » OggWrite() in getid3.ogginfo.php has been replaced with a new
1805 cannot be played.
1807 which must be downloaded from http://www.vorbis.com/download.psp
1808 and placed in the getID3() directory.
1811 ¤ New root key ['tags'] is now always returned for all formats.
1832 parameter). Check your code where you're calling
1839 the data inside that structure. For example, an Ogg file can
1841 Ogg container format. In that case, ['fileformat'] would be
1842 'ogg', but ['dataformat'] would be 'flac'.
1844 ['fileformat'] of 'riff' rather than 'wav' or 'avi'.
1846 because PHP does not support large file access. Attempting to
1848 ['error'] and ['filesize'] not set.
1850 files - even if illegal by format. Ogg will return warning if
1851 ID3/APE tags are present. (thanks ahØartemis*dk)
1857 ¤ Joliet now supported for ISO-9660.
1860 of the Unicode directory structure & filenames stored.
1861 ¤ Moved Monkey's Audio code from getid3.ape.php to seperate file.
1862 New file: getid3.monkey.php
1898 if the directory structure specifies files multiple times.
1900 file overwriting any former ones.
1906 all known issues with RIFF parsing. Users are, however,
1908 files.
1909 * Bugfix: Modified getid3.riff.php to return correct total
1928 Added support for FLAC cuesheets (FLAC 1.1.0+)
1941 lookup functions in getid3.riff.php
1942 Added numerous new known GUIDs to getid3.asf.php
1944 string with the current getID3() version.
1947 getid3.riff.php
1950 Modified getid3.check.php to only change \ directory seperators to
1952 Modified getid3.check.php to handle larger-than-2GB files (which
1954 Modified getid3.check.php to handle ['dataformat_audio'] and
1956 Modified getid3.check.php to show a list of present tags in one
1958 Modified getid3.check.php to show MD5 values. Initially disabled
1959 but can be enabled for a directory with a click. md5_file is
1962 Modified getid3.check.php to show errors and warnings. Details are
1963 visible with a mouseover or a click.
1964 Changed getid3.check.php to use SafeStripSlashes instead of a
1967 Added sample recursive scanning sample code to getid3.readme.txt
1971 1.5.7: [January-10-2003] James Heinrich
1972 » Added support for ISO 9660 (CD-ROM image) format. Most-useful
1976 New file: getid3.iso.php
1978 built-in PHP functions and/or ZZipLib support.
1981 and filesize info only under ['zip']['files'].
1983 and non-empty subdirectories. Information for all entries,
1987 file).
1997 of the full filename.
1999 ['filepath'].'/'.['filename'])
2016 that have image_type_to_mime_type() built in (ie PHP 4.3.0+)
2019 1.5.6: [December-31-2002] James Heinrich
2021 (www.nullsoft.com/nsv/)
2023 New file: getid3.nsv.php
2024 » Added support for CD-audio track files (track01.cda etc)
2045 (getid3.mp3.php)
2046 ¤ Removed old function getMP3header() from getid3.mp3.php
2049 10 to 25. This means scanning will be slightly slower, but more
2051 * Bugfix: ID3v2.2 - valid frame names not correctly detected
2053 * Bugfix: ID3v2.2 - valid padding not correctly detected
2063 * Bugfix: ChannelTypeID was incorrect in RVA2 ID3v2.4 frames
2071 rather than CBR. Note: to obtain VBR bitrate for headerless
2074 that. (thanks ahØartemis*dk for sample file)
2084 Put a sans-serif 9pt style on all text in getid3.check.php
2090 Speed improvement code changes to getid3.mp3.php (up to 24% faster
2095 1.5.5: [November-25-2002] James Heinrich
2096 » Added support for La (Lossless Audio - www.lossless-audio.com)
2098 New file: getid3.la.php
2099 ¤ Moved lookup functions from getid3.lookup.php to the files where
2100 they are used.
2101 New file: getid3.id3.php
2102 New file: getid3.rgad.php
2103 Removed file: getid3.lookup.php
2106 getAACADTSheaderFilepointer() in getid3.aac.php which now
2109 num_raw_data_blocks, which aren't usually very useful). Speed
2110 improvement with FALSE is about 35%.
2112 file is not accessible.
2115 as a constant at the top of getid3.mp3.php This will result in
2117 detecting false/invalid/corrupted VBR headers.
2118 ¤ fopen() errors now displayed in getid3.putid3.php
2119 (thanks miguel.dieckmannØhamburg*de)
2122 CBR mode. You should never need to call this directly, it's only
2124 header with CBR data. (thanks fletchØpobox*com)
2125 * Bugfix: ASF_Marker_Object in getid3.asf.php was always returning
2127 * Bugfix: VBR bitrate calculations in getid3.mp3.php only occur if
2128 ['mpeg']['audio']['VBR_frames'] is defined.
2130 * Bugfix: getid3.putid3.php no longer deletes original MP3 if
2133 getid3.putid3.php (thanks miguel*dieckmannØhamburg*de)
2134 getid3.asf.php now notes the error and continues parsing rather
2137 v1.5.4 changelog, rather than 100. (thanks ahØartemis*dk)
2140 Added FileSizeNiceDisplay() function to getid3.functions.php for
2141 formatting filesize output in kB, MB, GB, etc.
2144 1.5.4: [October-07-2002] James Heinrich
2145 » Added support for Quicktime.
2146 New file: getid3.quicktime.php
2147 » Added support for AAC files, both ADTS and ADIF header formats.
2149 header format, and it's hard to distinguish between the two. I
2157 that to be close enough).
2159 GetAllMP3info() function in getid3.php) unless you need it.
2161 New file: getid3.aac.php
2162 » Added bitrate distribution analysis option for MP3 VBR files. A
2165 counts how many frames of each bitrate exist. This information
2168 takes a very long time and does lots of disk I/O. Use with care.
2170 getid3.php to allow easy removal of support for any of the
2171 supported format. As stated above, I recommend commenting out
2172 AAC unless needed.
2177 * Bugfix: getid3.mpc.php was slightly miscalculating the number of
2182 * Bugfix: MonkeySamplesPerFrame() was incorrect for MAC v3.95+
2184 * Bugfix: getid3.check.php wasn't processing the assumeFormat
2188 incorrect bitrate/duration/etc info for such corrupt files.
2189 getid3.functions.php now includes a replacement utf8_decode()
2191 with the --with-xml option. (thanks stephaneØtekartists*com)
2194 1.5.3: [September-30-2002] James Heinrich
2195 » Added support for VQF. (thanks mtØmansonthomas*com for the idea)
2196 New file: getid3.vqf.php
2197 » Added support for FLAC. Comments, if present, are returned under
2198 ['ogg'] because they follow the Ogg Vorbis structure standard.
2199 New file: getid3.flac.php
2200 ¤ OS/2-format bitmaps are now correctly interpreted. The format of
2202 ['bmp']['type_version']. OS/2 bitmaps can be v1 or v2, Windows
2206 1.5.2: [September-25-2002] James Heinrich
2210 me the sample files.
2212 New file: getid3.real.php
2213 » Support for BMP added. Palette and pixel data can optionally be
2215 the option is there if you need it. Also includes PlotBMP()
2217 color PNG. This function requires GD v2.0+
2222 and tested. BITFIELDS support is also included for 16- & 32-bit
2227 results.
2228 New file: getid3.bmp.php
2230 New file: getid3.png.php
2234 New file: getid3.gif.php
2235 New file: getid3.jpg.php
2236 table_var_dump() simplified and now outputs &#123;-style character
2242 1.5.1: [September-20-2002] James Heinrich
2243 » Added support for MPEGplus/Musepack SV7. ['fileformat'] is 'SV7'
2247 New file: getid3.mpc.php
2255 comments. ['ogg']['comments'][n]['data'] is only useful if
2256 the field is supposed to contain binary data. It is a
2257 base64_decode()'d version of ['value'].
2262 ['ogg']['comments'][n]['data'] contains valid image data.
2296 (known to be an issue with CDex v1.40, but fixed by v1.50b7)
2299 Added bitrate column in getid3.check.php, and added some formatting
2305 1.5.0: [September-18-2002] James Heinrich
2306 » Ogg comment writing support added. getid3.write.php has been
2307 updated to allow for writing comment tags to both MP3 and Ogg.
2310 New file: getid3.ogginfo.php
2311 » Support for Monkey's Audio and APE tag added.
2313 New file: getid3.ape.php
2316 » getid3.thumbnail.php has been removed from the distribution and
2318 files in the same directory as the analyzed file. This should
2320 complexity. The naming convention for the images is
2321 filename.ext.[byte offset of APIC data].[jpg|gif|png]
2325 (see http://users.belgacom.net/gc247244/extra/tag.html)
2336 * Bugfix: RVA2 and EQU2 writing in getid3.putid3.php were
2338 * Bugfix: EQU2 in getid3.frames.php was reading Volume Adjustment
2348 1.4.3: [September-15-2002] James Heinrich
2350 ¤ New file: getid3.asf.php
2359 1.4.2: [September-12-2002] James Heinrich
2360 » getID3() now requires PHP v4.1.0 or higher because it now is
2362 globals ($_GET, $_SERVER, etc).
2363 * Bugfix: VBR MP3 files with Fraunhofer-style VBR header were not
2367 * Bugfix: Add stripslashes($EditorFilename) to getid3.write.php
2372 no longer discarded. (thanks to mikeØftl*com for sample
2373 Fraunhofer-style VBR file produced with MusicMatch v7.2)
2381 getid3.check.php (thanks to "Guest" in the forums for the idea)
2382 Changed amount of data read in getid3.getimagesize.php from 10kB
2383 to entire file. (thanks mikeØftl*com)
2385 getid3.functions.php
2387 ID3-writing code (getid3.putid3.php, etc)
2392 1.4.1b5: [May-30-2002] James Heinrich
2396 integers for frame size descriptors in ID3v2.3 and ID3v2.2
2400 from any file type. Currently gets info from ID3v1, ID3v2,
2401 Ogg, and RIFF/WAVE. Possible returned keys are:
2408 getid3.write.php
2410 in getid3.write.php
2411 Changed the comment-edit field in getid3.write.php to a multi-line
2413 getid3.write.php now only writes ID3v2 frames that have data
2414 Added default TXXX field to getid3.write.php to put a tagger info
2415 field when writing ID3v2 tags. Description is "ID3v2-tagged by"
2416 and data is "getID3() v[version] (www.silisoftware.com)"
2417 Changed getid3.check.php to use the new common info keys
2418 Improved file-format detection in getid3.check.php - if the auto-
2422 Added 'Edit ID3' link from getid3.check.php to getid3.write.php for
2424 Added 'Delete file' link from getid3.check.php to getid3.write.php
2427 Added some mouse-over titles for links in getid3.check.php
2430 1.4.1b4: [May-15-2002] James Heinrich
2431 * Bugfix: getid3.check.php wasn't parsing MP3s with invalid headers
2439 1.4.1b3: [May-01-2002] James Heinrich
2447 the static array not being cleared between uses. This is an
2448 updated fix because the one in 1.4.1b2 didn't work :o)
2453 getid3.check.php no longer attempts to scan all MIDI tracks in
2454 directory-browse mode, since this can take a long time. Detailed
2460 1.4.1b2: [April-18-2002] James Heinrich
2465 has been added. The assumedFormat parameter allows a file to be
2475 keys to the easy keys (['title'], etc.) (thanks Christian Fritz)
2477 getid3.thumbnail.php (thanks Christian Fritz)
2479 chunks parsed.
2487 that would very easily be more data than PHP could handle.
2489 getid3.check.php now displays entries in a more natural sort order:
2497 1.4.1b1: [April-11-2002] James Heinrich
2498 » Parses MIDI files.
2501 » Parses ZIP files (if ZZIPlib available, and only in PHP 4.0.7RC1
2502 and later (see http://www.php.net/manual/en/ref.zip.php)
2503 NOTE: currently untested as I'm unable to find php_zip.dll for
2507 » Parses PNG files (requires GD v1.6+ installed)
2508 » Parses GIF files (requires GD < v1.6 installed)
2511 identification of synch. For corrupt MP3 files this will be a bit
2512 slower, but hopefully produce more reliable results.
2516 http://66.96.216.160/cgi-bin/YaBB.pl
2519 images only) rather than a binary text dump in getid3.check.php
2520 (specifically table_var_dump()) for APIC frames. Made possible
2522 Filipe Laborde-Basto (www.rezox.com). You can right-click, save-as
2523 to extract the image to a file.
2533 the entire file and calculating the average bitrate. This is not
2546 * Bugfix: getid3.functions.php wasn't being included in
2547 getid3.write.php (thanks mikeØftl*com)
2548 * Bugfix: Browse:___ directory name in getid3.check.php wasn't
2556 getid3.check.php now scans filetypes based on content, not filename
2557 extension, and shows the filetype in the displayed output. Files
2562 getid3.check.php now has columns to show the presence of ID3v1,
2564 Helium2 (www.helium2.com) has been known to write ID3v2.4 tags with
2566 will override and parse the tag as ID3v2.3 if the tag would parse
2567 fine as ID3v2.3 when it's really specified as ID3v2.4 (thanks
2571 1.4.0b9: [April-05-2002] James Heinrich
2574 accurate). (thanks stephaneØtekartists*com for the idea)
2576 and comment fields were incorrect. (thanks Christian Fritz)
2577 * Bugfix: getid3.check.php would not browse directories with single
2578 quotes (') or double quotes (") in the directory name.
2584 scanning very large files. Also will not infinitely loop if it
2585 does not find what it's looking for. (thanks Christian Fritz)
2590 Added "file parsed in x.xxx seconds" to getid3.check.php
2591 Added "browse: <directory>" link to getid3.check.php
2593 getid3.write.php because Winamp (and probably many other
2594 ID3v2-aware tools) can only read up to ID3v2.3
2598 1.4.0b8: [April-04-2002] James Heinrich
2600 ¤ check.php renamed to getid3.check.php
2601 ¤ write.php renamed to getid3.write.php
2613 1.4.0b7: [April-03-2002] James Heinrich
2616 around and/or restructured. A lot of new data is in there too -
2617 codecs, frame size, etc.
2627 Removed !== FALSE (introduced in 1.4.0b6) from while(fread()) loops,
2628 some users were reporting problems with that syntax.
2630 Reformatted changelog.txt to 72-column width
2633 1.4.0b6: [April-01-2002] James Heinrich
2634 * Bugfix: 1.4.0b5 introduced a bug where any RIFF file other than
2644 Converted use of hexdec() in getid3.lookup.php to 0x1234 notation
2647 1.4.0b5: [March-28-2002] James Heinrich
2658 Improved code in check.php for dealing with symbolic links
2661 Added processing time indicator in check.php
2665 getid3.lookup.php
2673 1.4.0b4: [March-26-2002] James Heinrich
2681 (see http://privatewww.essex.ac.uk/~djmrob/replaygain/ for details
2686 Seperated out comments from top of getid3.php into getid3.readme.txt
2687 and changelog.txt
2688 Split out non-lookup functions from getid3.lookup.php to
2689 getid3.functions.php
2692 1.4.0b3: [March-25-2002] James Heinrich
2700 v1.4.0b1
2705 1.4.0b2: [March-21-2002] James Heinrich
2711 ID3v2.2, which also meant the ['id3']['id3v2']['comment'] field
2718 Added urlencode() where needed in check.php
2720 Fixed IE buffering/display problem in progress counter in check.php
2723 1.4.0b1: [March-11-2002] James Heinrich
2724 » ID3v2 writing support via WriteID3v2() in putid3.php
2726 putid3.php All ID3v1 and ID3v2 writing functions have been moved
2727 to putid3.php and example file write.php has been added to the
2765 ID3v2.2
2781 Added sample directory browser to check.php
2789 Added hack for mp3Rage (www.chaoticsoftware.com) that puts
2790 ID3v2.3-formatted MIME type instead of 3-char ID3v2.2-format image
2794 1.3.2: [February-15-2002] James Heinrich
2805 which caused ParseID3v2GenreString() to freeze).
2808 1.3.1: [February-13-2002] James Heinrich
2818 1.3.0: [February-13-2002] James Heinrich
2838 1.2.5: [January-30-2002] James Heinrich
2843 More complete support for ID3v2.3 FrameIDs
2844 Split out getid3.frames.php (FrameID-specific parsing function)
2845 Split out getid3.lookup.php (assorted lookup-table functions)
2846 Searches for what directory getid3.*.php support files are in (must
2847 be same as getid3.php, but doesn't have to be same as main file -
2848 for example your main file could be /index.php, but including
2849 /lib/getid3/getid3.php)
2850 Simplified, tweaked, changed and/or eliminated several functions.
2853 1.2.4: [January-26-2002] James Heinrich
2857 1.2.3: [January-24-2002] James Heinrich
2858 » ID3v2.2.x 3-char FrameIDs are now fully parsed
2860 the specs, I don't have test files for all of them. If anyone
2871 1.2.2: [January-18-2002] James Heinrich
2878 1.2.1: [January-17-2002] James Heinrich
2884 ¤ Enabled ['id3']['id3v2']['title'] etc for ID3v2.2.x
2886 ¤ Changed v1.?? version number format to v1.?.?
2898 specs at http://www.id3.org/id3v2.4.0-frames.txt
2901 the specs, I don't have test files for all of them. If anyone
2910 (thanks jaksonØgmx.net)
2914 (thanks jaksonØgmx.net)
2916 had changed from ID3v2.3 to ID3v2.4) - v2.3 flags were being
2919 (thanks jaksonØgmx.net for the idea)
2920 ID3v1 genres 126 through 147 (thanks jaksonØgmx.net)
2921 New table_var_dump() function in check.php
2922 (based partially on idea by jaksonØgmx.net)
2927 All functions merged into file getid3.php
2935 GetAllMP3info($filename) from getmp3header.php
2936 Now includes check.php - example file
2939 [Ed. Note: ['fileformat'] as of v1.2.1]
2943 * Bugfix: ID3v2.2.x frames weren't being parsed since they use
2944 6-byte rather than 10-byte headers as v2.3+ does
2968 ID3v2.4.0 specs) in addition to ID3v2.3.x tag-level