source: extensions/charlies_content/getid3/changelog.txt @ 27649

Last change on this file since 27649 was 3318, checked in by vdigital, 15 years ago

+ Add Charlies' content to depository

  • Property svn:eol-style set to LF
  • Property svn:keywords set to Author Date Id Revision
File size: 18.4 KB
Line 
1// +----------------------------------------------------------------------+
2// | PHP version 5                                                        |
3// +----------------------------------------------------------------------+
4// | Copyright (c) 2002-2006 James Heinrich, Allan Hansen                 |
5// +----------------------------------------------------------------------+
6// | This source file is subject to version 2 of the GPL license,         |
7// | that is bundled with this package in the file license.txt and is     |
8// | available through the world-wide-web at the following url:           |
9// | http://www.gnu.org/copyleft/gpl.html                                 |
10// +----------------------------------------------------------------------+
11// | getID3() - http://getid3.sourceforge.net or http://www.getid3.org    |
12// +----------------------------------------------------------------------+
13// | Authors: James Heinrich <infoØgetid3*org>                            |
14// |          Allan Hansen <ahØartemis*dk>                                |
15// +----------------------------------------------------------------------+
16// | Changelog                                                            |
17// +----------------------------------------------------------------------+
18//
19// $Id: changelog.txt 3318 2009-05-20 21:54:10Z vdigital $
20
21
22
23        »  denotes a major feature addition/change
24        ¤  denotes a change in the returned structure
25        !  denotes a cry for help from developers
26* Bugfix:  denotes a fixed bug
27
28
29getID3() 2.x Version History
30============================
31
32
332.0.0b4: [2007-01-12] Allan Hansen
34
35    GENERAL
36    » Major update to readme.txt
37    » Added new section sample apps
38    »    Added well-written sample application "morg".
39         See sample_apps/morg/screen_shots for more
40    ¤ option_tags_process now generates root key 'comments' with merged
41      values from 'tags'.
42    ¤ Removed option_tags_html. HTML entities is a thing of the past.
43      Use UTF-8 encoded pages instead. Saves bandwidth and is much easier.
44    * Bugfix: PHP_NOTICE issue in BigEndian2Float().
45    » Tag writing support: ID3v1
46    » Tag writing support: APEtag
47    » Tag writing support: FLAC
48    » Tag writing support: Ogg Vorbis
49    » Tag writing support: Lyrics3
50    » SVG  file detection (no parsing)
51    » PAR2 file detection (no parsing)
52    » Got rid of windowed and option_helperapps_dir. Helper apps must be
53      somewhere in the path, e.g. c:\windows\system32 or /usr/bin
54
55    ASF MODULE:
56    * Bugfix: Wrong mime type (video/x-ms-wma instead of video/x-ms-wmv)
57    for certain FourCCs.
58    * Bugfix: Padding offset bug.
59
60    DATA_HASH MODULE:
61    ¤ copy md5_data_source to md5_data if option set to true
62   
63    DTS MODULE:
64    » New module (module.audio.dts.php)
65   
66    FLV MODULE:
67    * Bugfix: DivByZero on zero length FLV files.
68    * Bugfix: PHP_NOTICE one some files.
69   
70    ID3v1 MODULE:
71    ¤ Removed: Padding check.
72   
73    ID3v2 MODULE:
74    * Bugfix: PHP_NOTICE issues with broken ID3v2 tag/garbage.
75    * Bugfix: UTF-8/16 encoded frames terminated by \x00.
76    * Bugfix: ID3v2 LINK frames iconv error.
77    * Bugfix: Padding length calculated incorrectly.
78    * Bugfix: ID3v2.3 extended headers non-conformance.
79
80    LYRICS3 MODULE
81    * Bugfix: Minor issues with lyrics3 (avoid PHP_NOTICE).
82   
83    PNG MODULE:
84    * Bugfix: Module broken in regards to gIFg and gIFx chunks.
85   
86    MIDI MODULE
87    * Bugfix: Minor issues with midi module (avoid PHP_NOTICE).
88
89    MP3 MODULE:
90    * Bugfix: Removed whitespace after ?>
91    * Bugfix: Some CBR MP3 files detected as VBR with plenty of warnings.
92    * Bugfix: PHP_NOTICE issues.
93   
94    MPC MODULE:
95    ¤ Mime type returned: audio/x-musepack
96   
97    QUICKTIME MODULE:
98    * Bugfix: TYPO in variable, resulting in unknown errors.
99    * Bugfix: Incorrect frame rate returned.
100   
101    REAL MODULE:
102    * Bugfix: fread() zero bytes issue.
103   
104    RIFF MODULE:
105    * Bugfix: Wave files being detected as MP3.
106    ¤ Zero sized chunk invokes warning instead of error.
107   
108    SHORTEN MODULE:
109    * Bugfix: Not working for wav files with fmt chunks <> 16 bytes.
110   
111    XIPH MODULE:
112    » replaygain_reference_loudness from FLAC 1.1.3 moved from comments
113      to ['replay_gain']['reference_volume'].
114    » Supporting FLAC 1.1.3 PICTURE block.
115    ¤ FLAC: Removed some ['raw'] keys.
116   
117
1182.0.0b3: [2006-06-25] Allan Hansen
119     
120    AAC_ADTS MODULE
121    * Bugfix: Static bitrate cache wrong result when parsing several files
122   
123    ASF MODULE
124    * Bugfix: Do not return NULL video bitrate for ASF v3.
125    * Bugfix: ['codec'] key warning in module.audio-video.asf.php from 1.7.6,
126    * Bugfix: audio & video bitrates sometimes wrong in ASF files from 1.7.6,
127    ¤ ASF lyrics now returned under [comments][lyrics] from 1.7.5,
128   
129    BMP MODULE
130    * Bugfix: Undocumented bugfix between 1.7.3 and 1.7.6,
131     
132    DATA_HASH MODULE
133    * Bugfix: Filenames not escaped with escapeshellarg() under UNIX.
134    * Bugfix: UNIX: head and tail called with -cNNN instead of "-c NNN".
135   
136    FLV MODULE
137    » No longer reads entire file into memory.
138   
139    ID3v1 MODULE
140    ¤  Put back id3v1 padding check, since it exists in 1.7.6.
141   
142    ID3v2 MODULE
143    * Bugfix: PHP notices on bad ID3v2 frames from 1.7.6.
144    * Bugfix: 'url_source' typo in module.tag.id3v2.php from 1.7.3.
145    ¤ ID3v2 "TDRC" frame now used as "year" in comments if TYER
146      unavailable (TYER is deprecated in ID3v2.4)
147    ¤ Bugfix: gmmktime() instead of mktime().
148     
149    ISO MODULE
150    ¤ Using gmmktime() instead of mktime().
151   
152    GZIP MODULE
153    ! Module is a memory hog. Reads entire file into memory. It also
154      gzdeflates() it to memory. Will use lots of memory on huge files.
155      Please someone rewrite it to work with filepointers and seeking.
156    » info['gzip']['files'] removed. Contains redundant information only.
157    » Replaced ['tar'] key with ['parsed_content']. Module can now parse
158      anything that getID3() can parse - not just tar files.
159     
160    JPEG MODULE
161    * Bugfix: Error when php exif support enabled.
162
163    LYRICS MODULE
164    ¤ Comments are no longer trimmed.
165
166    QUICKTIME MODULE
167    * Bugfix: incorrect dimensions from disabled Quicktime tracks from 1.7.6,
168    ¤ Added ['quicktime']['hinting'] key (boolean) from 1.7.4,
169    * Bugfix: Quicktime 'mvhd' matrix values were wrong from 1.7.3,
170
171    MIDI MODULE
172    * Bugfix: Fixed bug that reported wrong playing time on some files.
173   
174    MP3 MODULE
175    » Module fully working.
176    » Memory caches are reset when scanning new file. Might make analyse
177      slightly slower, but will save lots of memory.
178    » Removed unrecommended bruteforce code.
179    * Bugfix: Encoder options should now return proper "--alt-preset n" / 
180      "--alt-preset cbr n" when scanning more files.
181    * Bugfix: added LAME preset guessing for presets 410,420,440,490
182      (thanks adminØlogbud*com)
183   
184    RIFF MODULE
185    ¤ No longer returns zero bits_per_sample for multiple formats.
186    * Bugfix: Missing 'lossless' key in RIFF-WAV from 1.7.4.
187    ¤ Using gmmktime() instead of mktime().
188   
189    SHORTEN MODULE
190    * Bugfix: Filenames not escaped with escapeshellarg() under UNIX.
191   
192    TAR MODULE
193    » Module rewritten to work with filepointer only. Makes parsing a lot
194      faster (will fseek() past data). Also saves a lot of memory, expecially
195      with large files.
196    » Added warning for non ASCII filenames, which breaks specification. 
197    » info['tar']['files'] removed. Contains redundant information only. Also
198      causes problems for non ASCII tar files, as filenames are used as keys
199      in PHP arrays.
200   
201    XIPH MODULE
202    * Bugfix: Error message when padding in FLAC files were used up.
203   
204    ZIP MODULE
205    ¤ Using gmmktime() instead of mktime().
206   
207    ICONV_REPLACEMENT MODULE
208    * Bugfix: Major UTF-8 to UTF-16/ISO-8859-1 conversion bug (empty string
209    returned) when iconv() not available - from 1.7.4.
210    * Bugfix: Other major bugfixes that broke the module.
211
212    demo.joinmp3.php
213    Demo removed - out of getID3()'s scope.
214   
215    PDF files can now be detected, but not parsed/analyzed.
216    MSOffice files can now be detected, but not parsed/analyzed.
217   
218
2192.0.0b2: [2004-11-01] Allan Hansen
220
221    GENERAL
222    * Bugfixes: Analyzed 3,000 files and compared result with 1.7.2 - several
223      minor bugs were fixed. Output of 2.0.0 should match 1.7.2 reasonable well.
224    * Bugfix: fail_id3 and fail_ape code never executed.
225      Wavpack4 support
226      Quicktime/MP3-in-MP4, Apple Lossless support
227    » New encoding_id3v2 option/hack for broken ID3v2 tags
228    ¤ Tags are no longer trim()ed.
229    ¤ Some ['bits_per_sample'] == 0 removed
230    » New option_analyze - disable to detect format only.
231    » New option_accurate_results - disable to greatly speed up parsing of
232      AAC/ADTS, headerless MP3/MP2 VBR, midi (later), possible more in future.
233      Warnings issued when disabled and accuracy affected!
234
235    AAC/ADTS
236    » Memory caches destroyed after analyze() to free up memory.
237   
238    LA MODULE
239    * Bugfix: RIFF tags now parsed properly
240   
241    OPTIMFROG MODULE
242    * Bugfix: RIFF tags now parsed properly
243   
244    WAVPACK MODULE
245    * Bugfix: RIFF trailer now parsed properly
246   
247    QUICKTIME MODULE
248    ¤ option_extra_info determines whether atom_data is returned
249    ¤ Removed $ParseAllPossibleAtoms option. We should only return useful data.
250      zlib support in PHP optional reqirement
251    * Bugfix: New iTunes crashes PHP - temp fix - no tags on those files.
252     
253    RIFF MODULE
254    * Bugfix: Wavpack3 extra fields now parsed properly.
255    ¤ RIFF tags in Litewave files now parsed properly
256   
257    BONK MODULE
258    * Bugfix: ['bonk']['ID3']['valid'] now returns bool instead of object
259   
260    NSV MODULE
261    * Bugfix: PCM part ignored
262   
263    APETAG MODULE
264    * Bugfix: APEtag 1.0 broken
265   
266    ASF MODULE
267    ¤ Embedded ID3v2 tags processes again - supported by Windows Media Player.
268   
269    DEMOS
270    » demo.browse.php scans directories faster with inaccurate results.
271    » demo.browse.php now uses javascript alert to show longer warnings etc
272      instead of tool tips.
273    » demo.browse.php now shows embedded covers just like the 1.7.x demo.
274    » demo.browse.dhtml.php - DHTML version of the browser. Has progressive
275      display in MSIE - but quite slow when scanning LOTS of files.
276    » New demo.mime_only.php for returning mime type only.
277    » Search example in demo.mysql.php
278   
279
2802.0.0b1: [2004-08-23] Allan Hansen
281
282    » Major memory savings. 1.7.1 use 25% more memory under PHP 5.0.0 than
283      PHP 4.3.7. 2.0.0b1 memory usage is comparable to 1.7.1 under PHP 4.3.7.
284      See Memory.xls for details (will not be included in 2.0.0 final).
285      Loading all modules requires 4,277 kb of memory (4,171 with iconv()
286      support in PHP. Some of the modules  require more memory while scanning,
287      as they cache the results - MP3 and AAC/ADTS in particular.
288
289    » New internal testing method. Output of 2.0.0 matches that of 1.7.1
290      exactly - except those places where we deliberately changed something.
291      If something is changed it is because we did not have a test file
292      to show it.
293
294    » New extras directory.
295      This contains multiple usefull code snips that really does not
296      belong to the main getID3() codebase - i.e. stuff that the user most
297      likely can/will do differently.
298     
299    » Deleted getid3_lib.php
300      - Some common functions moved to getid3.php - getid3_lib declared
301        there.
302      - Replaygain function moved to getid3.php   - new class
303        geti3_replaygain.
304      - iconv() replacement function moved to new lib module.
305      - md5/sha1 data hash function moved to new lib module.
306      - Some function moved to the files that use them.
307      - CopyTagsToComments() moved to extras dir.
308      - EmbeddedLookup() gone - PHP5 use way more memory that way.
309     
310    » magic_quotes_runtime must be disabled before running getID3().
311      If you use them, use set_magic_quotes_runtime(0) and
312      set_magic_quotes_runtime(1) around your getID3() block.
313      Older versions turned them on and off automatically. This would
314      require a lot extra code, since they needed being restored before
315      every first level throw.
316     
317    * Bugfix: Fixed multiple bugs in the caching extentions .
318     
319      Optimized most modules using new getid3_ReadSequence()
320     
321      Checked all(most) code using error_reporting (E_STRICT | E_ALL)
322
323    ¤ Removed all dead modules: EXE, RAR, Bink, Matroska, MOD*.
324    ¤ Kept magic bytes - getid3 will detect them and do nothing and return
325      warning instead of error.
326     
327    ¤ Disabled quicktime and mpeg modules as they depend on mp3-
328
329    Reformatted and updated dependencies.txt
330
331
332    GETID3 MAIN
333    ¤ getid3 option_tags_html     now defaults to false.
334    ¤ getid3 option_max_2gb_check now defaults to false.
335    ¤ New getid3 option_tags_images defaults to false. Scan tags for binary
336      image data - ID3v2 and vorbiscomments only. Possible apetag later.
337     
338
339    JPEG MODULE
340    ¤ Renamed module from jpg to jpeg.
341    ¤ Changed mime type to correct image/jpeg.
342    ¤ Added optional exif depency to depencies.txt for jpeg files.
343     
344
345    PNG MODULE
346    ¤ Made png zlib dependecy optional.
347     
348
349    BMP MODULE
350    » Removed unused and unneeded PlotBMP() in bmp module.
351      Removed extract_palette and extract_data code
352      - This does not belong in getid3. We should analyze files, not process
353        them.  If the user wants to display bmp files to the browser she can
354        convert them with ImageMagick or something similar. She will
355        probably have it installed already to resize user uploaded images.
356     
357
358    PCD MODULE
359    » Removed $ExtractData from pcd module - same reason as BMP.
360     
361
362    SWF MODULE
363    ¤ Added zlib dependecy REQUIRED for swf.
364
365
366    ID3v1 MODULE
367    ¤  Removed id3v1 padding check - who cares?
368       - also removed in lyrics3 - if needed - it needs to be done differently
369       - no access to warnings and no sorting!
370         
371
372    ID3v2 MODULE
373    ¤ Made id3v2 zlib dependecy optional.
374    ¤ id3v2 - images  - changed 'image_mime' to actual mime type.
375
376
377    AAC MODULE(s)
378    » Split aac module in two - aac_adif and aac_adts.
379      This saves memory if user only have files of one type (very likely).
380      Replaced getid3_lib::Bin2Dec() with bindec() in aac modules - speed.
381
382
383    AC3 MODULE
384      Added ac3 optional dependency to dependencies.txt.
385    ¤ Changed riff module dependency on mp3 to optional.
386      Changed wawpack references in riff module to wavpack3.
387    * Bugfix: RIFFparseWavPackHeader() needs 28 bytes, not 22.
388     
389   
390    ASF MODULE
391    » Removed id3v1 dependency
392    » Removed id3v2 dependency
393    ¤ ASF genres are no longer case adjustet to match standard ID3v1 ones.
394    ¤ Embedded ID3v2 tags no longer processes. Not part of the ASF spec.
395    ¤ Changed warning at line 71 to error.
396    » Removed a lot of unneeded conversions between Bytestring and GUID
397    » Changed the constants from bytestring to GUID
398    * Bugfix: Fixed incorrect warning messages on 
399        {4B1ACBE3-100B-11D0-A39B-00A0C90348F6}
400        {4CFEDB20-75F6-11CF-9C0F-00A0C90349CB}
401    ¤ Removed objectid, fileid, reserved_1_id and reserved where 'same'_guid
402      exists.
403
404
405    MP3 MODULE
406    ¤ MARKED MP3 MODULE BROKEN
407      Removed echoerrors debugcode in mp3 module.
408      Removed bruteforce code in mp3 module - never executed in 1.7.
409      Removed $scan_as_cbr - not used.
410   
411
412    MPC MODULE(s)   
413    » Split mpc module in two - SV7 in "mpc" and SV4-6 in mpc_old.
414      This saves memory if user only have files of one type (very likely).
415     
416     
417    OGG, FLAC MODULES
418    » Merged interdependant modules ogg and flac into new module xiph.
419    ¤ Updated FLACapplicationIDLookup() with 2 new entries.
420
421   
422    REAL MODULE
423    ¤ Removed 'unknown' keys.
424
425     
426    SHORTEN MODULE
427    » Improved UNIX shorten binary detection. Scanning `which shorten`,
428      /usr/bin, /usr/local/bin and checking is_executable()
429
430   
431    ISO MODULE     
432    ¤ Removed unused_ indexes in iso modules - they are afterall not used.
433     
434
435    DEMOS
436    » Created new index.php in demos/ explaining what the different demos
437      does.
438
439    » Rewrote demo.browse.php completely.
440      - Using public domain HTML abstraction library by Allan Hansen.
441      - Removed security breach - able to browse any parent directory .
442      - A $root_path must be set before browsing.
443      - Screen width option.
444      - Compressed filename column using title=.
445      - Removed filesize column - not really that interesting.
446      - Removed md5data column.
447      - Removed total at the bottom - the user can probably figure out
448        how to implement this himself.
449      - Added Audio column: sample_rate/bits_per_sample/channels columns.
450      - Added scan_time columns - how long it took getid3 to process the
451        file.
452      - Compressed artist, title and warning column using tool_tips.
453      - Removed delete feature - possible security risk.
454      - Repeating file header every 20 rows.
455      - Added audio format/video format to format column.
456      - Listing supported php modules in footer.
457      - New colour scheme.
458     
459    » Rewrote demo.mysql.php completely.
460      - Using multiple tables instead of just one. No string is stored
461        twice. Searching tags should be a lot faster for large databases.
462      - Multiple artists, titles, genres, etc per file supported.
463      - Using public domain HTML  abstraction library by Allan Hansen.
464      - Using public domain MySQL abstraction library by Allan Hansen.
465      - Scanning limited to $audio_path - security.
466      - Included sample data that can be imported and browsed.
467     
468    » Rewrote demo.basic.php
469    » Removed demo.simple.php - basic should be enough
470   
471    » Removed demo.joinmp3.php - this advanced demo should go in the extras
472      module IF/WHEN the mp3 module is running again.
473       
474    ¤ Updated demo.audioinfo.class - minor changes.
475     
476
477    MISC CODING SPECIFIC
478      Partial new coding style - some is easily changed with Replace In Files
479        - New file header - PEAR compatible
480        - Indentation with four spaces instead of tab - PEAR compatible
481        - array() changed to as array () - as suggested by PEAR standard
482        - All(most) function names in MixedCase
483        - Variables in $my_variable lowercase/underscores
484        - (bool) $var changed to (bool)$var
485        - A few "} else {" changed to "else {" to make room for easier
486          readable comments
487       
488      Removed all DivByZero checks. The plan was to catch them, but php
489      errors and warnings are not exceptions... Something needs to be
490      done here.
491
Note: See TracBrowser for help on using the repository browser.