forked from JamesHeinrich/getID3
-
Notifications
You must be signed in to change notification settings - Fork 0
/
changelog.txt
2912 lines (2746 loc) · 149 KB
/
changelog.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
/////////////////////////////////////////////////////////////////
/// getID3() by James Heinrich <[email protected]> //
// available at http://getid3.sourceforge.net //
// or https://www.getid3.org //
// also https://github.com/JamesHeinrich/getID3 //
/////////////////////////////////////////////////////////////////
// //
// changelog.txt - part of getID3() //
// See readme.txt for more details //
// ///
/////////////////////////////////////////////////////////////////
» denotes a major feature addition/change
¤ denotes a change in the returned structure
! denotes a cry for help from developers
* Bugfix: denotes a fixed bug
Version History
===============
1.9.16: [2018-10-17] James Heinrich :: 1.9.16-201810171314
* bugfix (G:168) Ogg FLAC not parsed
* bugfix (G:163) invalid MP3 header error on VBR
* bugfix (G:162) prevent writing multiple ID3v2 versions
* bugfix (G:161) MP3 VBR header duration
* bugfix (G:160) OggOpus duration sometimes incorrect
* bugfix (G:157) quicktime GPS invalid argument
* bugfix (G:148) MPEG-2 aspect ratio
* bugfix (G:147) Quicktime fourcc codec name lookup
* bugfix (G:147) Quicktime audio/video bitrate guessing
* bugfix (G:145) incompatible variable types
* bugfix (G:139) Quicktime islt subatoms >5
* bugfix (G:137) ID3v2 semi-numeric genres
* bugfix (G:136) ID3v2 unsynchronised typo
* bugfix (#2514) FLAC zero-byte block header
* bugfix (#2488) MIME types (FLAC, WAV, gzip)
* bugfix (#2468) Quicktime video rotation
* bugfix (#2207) metaflac + attached pictures
* bugfix (#2151) improved demo UNC filename support
* bugfix (#1966) fread fail when PHP memory_limit -1
* bugfix (#1908) Quicktime rotation detection (using matrix values)
* bugfix (#1908) Quicktime "rcif" and "dscp" atoms
* bugfix (#1900) demo.joinmp3 cut from end
* security: avoid disabled demo reflection
* TIFF: expand list of named tags, expose as 'tag_name' key for all entries
* Quicktime: parse some GoPro-specific data
* helperapps (Windows): updated vorbiscomment.exe, metaflac.exe to v1.3.2
* add more image formats supported by getimagesize()
1.9.15: [2017-10-26] James Heinrich :: 1.9.15-201709291043
» (G:108) add basic APNG support
» (G:107) add basic WebP support
* return RIFF.WAV.CART comments in merged comments section
* add support for QuickTime 'loci' chunk
* bugfix: (#2124) support for Quicktime/MP4 "chpl" (CHaPter List) atom
* bugfix: (G:128) undefinied bsmod in module.ac3
* bugfix: (#2114) possible issue with UTF8 filenames and metaflac
* bugfix: (G:123) remove MySQL engine and collation from create table
* bugfix: (#2066) fix AAC MIME type, remove video key for audio-only files
* bugfix: (G:111) QuickTime stsd number_entries deadlock
* bugfix: (G:110) PHP memory limit with space
* bugfix: (G:109) improved animated GIF support
* bugfix: (#1966) GPS track in QuickTime
1.9.14: [2017-03-27] James Heinrich
» Add experimental support for E-AC3
* bugfix (G:105): RIFF.WAVE.iXML multiple TIMESTAMP_SAMPLE_RATE
* bugfix (G:95): improperly initialized error/warning keys
* bugfix (G:94): ID3v2 write support for TXXX
* bugfix (G:93): all errors or warnings should pass through class method
1.9.13: [2016-12-14] James Heinrich
* bugfix (G:89): ID3v2.4 custom genres with slashes
* bugfix (G:88): large QuickTime files exceed PHP memory limit
* bugfix (G:87): ID3v2 write GRID data not working properly
* bugfix (G:86): Increase autoloading definitions
* bugfix (G:84): ID3v2 available writable frames list
* bugfix (G:82): ID3v2 datetime logic
* bugfix (G:80): attempt to autodetect ID3v1 encoding
* bugfix (G:77): add partial support of DSSv6
* bugfix (G:76): add mysqli version of caching extension
* bugfix (G:75): mysql cache max key length
* bugfix (G:71): custom error handler to catch exif_read_data() errors
* bugfix (G:71): add support for mb_convert_encoding
* bugfix (G:70): ID3v2 POPM / UFID
* bugfix (G:68): workaround broken iTunes ID3v2
* bugfix (G:48): Quicktime set MIME to video/mp4 where applicable
* bugfix (#1930) fread on pipes
* bugfix (#1926) relax ID3v2.IsValidURL check
1.9.12: [2016-03-02] James Heinrich
» Add support for Direct Stream Digital (DSD) /
DSD Storage Facility (DSF) file format
» Add detection (not parsing) of WebP image format
* bugfix (#1910): Quicktime embedded images
1.9.11: [2015-12-24] James Heinrich
* bugfix (G:64): update constructor syntax for PHP 7
* bugfix (G:62): infinite loop in large PNG files
* bugfix (G:61): ID3v2 remove BOM from frame descriptions
* bugfix (G:60): missing "break" in module.audio-video.quicktime.php
* bugfix (G:59): .gitignore comments
* bugfix (G:58): inconsistency in relation to module.tag.id3v2.php
* bugfix (G:57): comparing instead of assign
* bugfix (G:56): unsupported MIME type "audio/x-wave"
* bugfix (G:55): readme.md variable reference
* bugfix (G:54): QuickTime false 1000fps
* bugfix (G:53): Quicktime / ID3v2 multiple genres
* bugfix (G:52): sys_get_temp_dir in GetDataImageSize
* bugfix (#1903): Quicktime meta atom not parsed
* demo.joinmp3.php enhancements
* m4b (audiobook) chapters not parsed correctly
* sqlite3 caching not working
1.9.10: [2015-09-14] James Heinrich
* bugfix (G:49): Declaration of getID3_cached_sqlite3
* bugfix (#1892): extension.cache.mysql
* bugfix (#1891): duplicate default clause [Quicktime]
* bugfix (G:41): incorrect MP3 playtime
* bugfix: iconv problems on musl with //TRANSLIT
* Add arguments to analyze() for original filesize (and filename)
* ID3v2 simplify handling of multiple genres
* Corrected merging of multiple genres for ID3v2
* getid3_lib::GetDataImageSize return false on error
1.9.9: [2014-12-18] James Heinrich
» Added basic support for OggOpus
» Add ID3v2 CHAP + CTOC support
* Add composer autoloader
* bugfix: removed non-printable ASCII in comment
* bugfix: possible memory leak in OggFLAC
* bugfix: sys_get_temp_dir undefined before PHP 5.2.1
* bugfix: improved fix for XXE security issue (CVE-2014-2053)
(thanks nacinØwordpress*org)
* bugfix: G:25 ID3v2 LINK utf8_encode not defined
* bugfix: G:22 ID3v2 TXXX description encoding
* bugfix: #1855 - copy image height/width/etc to comments
* bugfix: #1855 - PHP errors in badly written APE/ID3v2 tags
* bugfix: #1845 - Quicktime parsing with no PHP memory_limit
* bugfix: #1828 - ID3v2 writing unknown frame names
1.9.8: [2014-05-11] James Heinrich
» Add support for AMR (Adaptive Multi-Rate audio codec)
new file: module.audio.amr.php
» Added composer.json, registered on packagist.org
* Added workaround for PHP Bug #39923 (undefined constant IMG_JPG)
* Bugfix: (#1813) avoid running out of memory when parsing large
Quicktime files
* Bugfix: (#1812) potential unwanted high-ASCII characters in errors
* Bugfix: close potential XXE security issue (CVE-2014-2053)
* Bugfix: (G:10) Avoid warnings from realpath() if SAFE MODE is enabled
* Bugfix: (G:12) If [tags] data contains an array of strings then html
encoding did not take place.
* Bugfix: (G:12) IPTC character set not specified
* Bugfix: possible divide by zero error in FLV module
* Bugfix: possible undefined key in ID3v2
* Bugfix: possible undefined key in MPEG video files
* Bugfix: demo.browse to use character set consistently
1.9.7: [2013-07-05] James Heinrich
* Bugfix: [module.audio-video.quicktime.php] track languages set
with 15-bit-encoded ISO639-2 language codes not parsed correctly
* Bugfix: (#1717) QuickTime atom hierarchy broken
* Bugfix: (#1716) truncate MIDI file could cause infinite loop
* Bugfix: all source files converted to UTF-8
1.9.6: [2013-06-03] James Heinrich
» getID3() is now licensed under GPL / LGPL / MozillaPL / gCL
See license.txt for more details.
* Bugfix: (#1550) Quicktime video track sample description parsed
incorrectly
* Bugfix: (#1550) Quicktime matrix U/V/W values calculated incorrectly
* [demo.browse] disable edit-tag and delete-file links by default
* Bugfix: option_max_2gb_check should issue warning not error on >2GB
1.9.5: [2013-02-20] James Heinrich, Dmitry Arkhipov
» DTS-in-WAV now properly supported
¤ DSS files return additional data in new keys, and some existing
keys have been renamed
* Bugfix: open_basedir not parsed correctly under Windows
(thanks yannick*jamontØgmail*com)
* Bugfix: [demo/demo.browse] might not display file or directory name
on PHP >=5.4.0 if filename not UTF-8 friendly
* Bugfix: [demo/demo.zip] could read more uncompressed data than
required; fail to read file if local data descriptor not set;
some wrong include files were listed; improved error message display
* Bugfix: [module.audio-video.riff] INFO comment chunks with null name
chunk not parsed correctly
* Bugfix: [module.archive.gz] gzip files with filename stored may have
filename reduplicated in [gzip][files] output
* Bugfix: [module.archive.zip] data_descriptor not parsed correctly
* Bugfix: [module.archive.zip] some newer compression methods unknown
* Bugfix: [module.archive.zip] not all flags parsed
* Bugfix: [module.archive.zip] local file header not parsed correctly
if file has zero values for compressed_size in Local File Header
* Bugfix: (#1493) better support for >2GB filesize on 32-bit Linux
* Bugfix: (#1474) unneccesary call to GetDataImageSize in JPEG module
* Bugfix: (#1470) GIF files falsely detected as TS format
* Bugfix: (#1431) Matroska did not parse PixelCrop* / DisplayUnit
(thanks jgerberØwikimedia*org)
* Bugfix: (#1430) split ID3v2 text values on null separator
* Bugfix: (#1426) MS Office 2007 file format now recognized as zip.msoffice
* Bugfix: (#1423) optimized CreateDeepArray function
* Bugfix: (#1415) add support for DS2 variant of DSS
1.9.4b1: [2012-10-05] James Heinrich, Dmitry Arkhipov, Karl G. Holz
» New module: extension.cache.sqlite3.php (by Karl G. Holz)
» New demo: demos/getid3.demo.dirscan.php (by Karl G. Holz)
» PHP5 standards improvements (thanks phansysØgmail*com)
» more reliable >4GB file size parsing using COM (if available)
Scripting.FileSystemObject rather than parsing `dir` output
* added support for FLAC inside Matroska (audio bitrate cannot
be determined in this case)
* XMP module now returns all tags, not just whitelisted ones
* (#1297) Added detection of MPEG Transport Stream files.
Stub module.audio-video.ts.php incomplete
* (#1383) removed unneeded ?> tags (thanks daveØholyfield*info)
* Bugfix: XMP returns attributes array not just value strings
* Bugfix: (#1369) ID3v2 IPLS contents not parsed
* Bugfix: (#1357) demo.mysql.php mysql_table_exists() failed
* Bugfix: (#1355) copy Foobar2000 QuickTime tags to [comments]
* Bugfix: (#1351) QuickTime files with zero-sized atom boxes
could cause infinite loop
* Bugfix: (#1343) FLAC attached pictures Ogg not handled
* Bugfix: (#1343) ID3v2 inside WAV "id3 " chunk not handled
* Bugfix: (#1315) BMP detection was broken
* Bugfix: (#1309) ID3v2.2 content_group_description (TT2) did
not copy to same place as ID3v2.3/ID3v2.4 (TIT2)
* Bugfix: (#1308) [playtime_string] could show hh:mm:60
* Bugfix: (#1306) extension.cache.mysql.php keyword TYPE->ENGINE
* Bugfix: (#1295) missing video information if QuickTime file has
disabled tracks
* Bugfix: (#1275) MD5/SHA1 data hashes not working properly
under Windows
1.9.3: [2011-12-13] Dmitry Arkhipov, James Heinrich
* Matroska module improved:
1. Added support for A_MS/ACM audio codec
2. Fixed issues in tags, cues, chapters and clusters parsing
3. Fixed almost all errors with track_data_offset, errors
still may occur with Xiph data lacing
4. Optimized audio/video streams population with usage of the
official default values for missing elements
5. Audio/video keys are now populated with data from the
default stream, not from the first one as before
6. Full WebM support
* Bugfix: demo.browse would not pop up warnings when clicked
if warning contains apostrophe/single-quote character
* Bugfix: (#1269) ID3v1 genre typo "Trash"->"Thrash" Metal
1.9.2: [2011-12-08] James Heinrich, Dmitry Arkhipov
» significant rewrite to module.audio-video.matroska.php
¤ (#1256) ID3 tags in AIFF 'ID3 ' chunks now parsed
¤ (#1039) iXML data in WAV files now returned and parsed into
[riff][WAVE][iXML][0][data] and [riff][WAVE][iXML][0][parsed]
¤ [playtime_string] now returns M:SS if less than 1 hour, and
H:MM:SS if 1 hour or longer
* Bugfix: (#1266) variable tablename: extension.cache.mysql.php
* Bugfix: (#1265) unescaped # in regex in write.id3v2.php
* Bugfix: (#1252) MediaMonkey writes blank ID3v2 RGAD frames
and puts replay-gain values in TXXX frames
* Bugfix: (#1251) FLV playtime could be inaccurate for longer
files where meta frame is present but meta-playtime is zero
* Bugfix: (#1216) show hex values of unknown atom names
* Bugfix: (#1215) undefined variable in PrintHexBytes()
* Bugfix: FLV audio bitrate was returning kbps not bps
* Bugfix: missing ) in write.real.php::RemoveReal()
* Bugfix: replace $this::VERSION with getID3::VERSION in
extension.cache.*.php
1.9.1: [2011-08-10] James Heinrich
¤ ASF Extended Header Object data now (partially) parsed
* Default getID3 encoding now set to UTF-8 not ISO-8859-1
* Bugfix: (#1212) truncated Matroska files may result in
infinite loop and memory exhaustion
* Bugfix: (#1203) parse RIFF JUNK chunks for version strings
* Bugfix: (#1201) multi-byte characters strings incorrectly
displayed by table_var_dump() in demo.browse.php
* Bugfix: (#1199) prevent PHP warning on malformed ID3v2 APIC
* Bugfix: (#1196) typo in module.audio-video.quicktime.php
* Bugfix: (#1195) QuicktimeStoreFrontCodeLookup() broken
* Bugfix: (#1194) mp4 embedded images not handled correctly
* Bugfix: (#1193) [image_mime] key not set fo WM/picture data
* Bugfix: (#1193) ASF Extended Header Object Metadata Library
now parsed for embedded images and handled per usual style
* Bugfix: (#1190) demo.mimeonly.php was broken since v1.9.0
* Bugfix: ID3v2 comment is now called 'comment' not 'comments'
* Bugfix: AVI unknown codec fourcc would be reported as blank
* Bugfix: AVI zero-size JUNK chunk would give warning
1.9.0: [2011-06-20] James Heinrich
» changed all module classes to have proper constructors
with the actual analysis code moved to function Analyze()
* removed unnecessary ob_* calls, replaced with appropriate
checks and judicious use of @ error suppression
¤ GETID3_VERSION constant replaced with $getID3->version()
¤ picture data is now returned only in the original source
location and [comments][picture], it is no longer replicated
in [comments_html], [tags] or [tags_html]
¤ Matroska tags are now returned in [comments] as per normal
¤ Matroska tags are better supported, including pictures
¤ GPS data in MP4 files (e.g. iPhone) is now parsed (#1157)
¤ Matroska audio/video tracks with a default flag, the default
stream flag is now copied to [audio|video][streams] (#1147)
¤ Nikon-specific data (NCDT atom) in Quicktime videos now parsed
¤ QuickTime atoms 'meta' and 'data' now (mostly) parsed
* Bugfix: remove false warning of junk data on WAV+ID3v1
* Bugfix: DolbyDigitalWAV files returned wrong audio bitrate
* Bugfix: large attachment data in Matroska tags were not
returned completely.
* Bugfix: wrong image_mime used for images in demo.browse.php
* Bugfix: broken preg_match in module.audio.dss.php
* Bugfix: Lyrics3 end offset was off by 1
* Bugfix: audio channelmode could be wrong for 2 channels
(e.g. joint stereo reported as stereo)
* Bugfix: MultiByteCharString2HTML() would return empty string
if passed float or int value, now casts to string first
* Bugfix: FLAC.picture was not returning under [data] +
[image_mime] per standardized format
* Bugfix: BigEndian2Int() could incorrectly return negative
signed synchsafe integer instead of casting to float
* Bugfix: (#1177) ID3v2.4 extended headers were broken
* Bugfix: (#1173) some MIDI files not completely parsed
* Bugfix: (#1171) change helperapps error to nonblocking warning
* Bugfix: (#1170) possible infinite loop in FLV module
* Bugfix: (#1169) $this reference in static function (ID3v2)
* Bugfix: (#1156) demo.mysql.php not working
* Bugfix: (#1153) badly-tagged files could produce invalid
argument errors in module.tag.xmp.php
* Bugfix: (#1152) add error-suppression to iconv() calls
* Bugfix: (#1151) AAC-ADTS files could sometimes not find sync
* Bugfix: (#1136) last character of unicode tags (e.g. ASF)
was being truncated
* Bugfix: (#1133) write.id3v2.php IsValidURL() was broken
* Bugfix: (#1126) ID3v2.POPM field was being clobbered
* Bugfix: (#999, #1154) ID3v2 UFID data was missing
1.8.5: [2011-02-18] James Heinrich
» support >2GB files on 64-bit PHP
- note current unofficial 64-bit PHP builds for Windows
do not actually support 64-bit integers so are still
subject to normal 32-bit limits (2GB) for file functions
» PHP v5.0.5 now minimum required version.
Removed obsolte functions from getid3.lib.php:
md5_file, sha1_file, image_type_to_mime_type
» IDivX tags now parsed on AVI files
¤ embedded image data is returned inside [comments][picture]
in a 2-element array (data, image_mime) for all formats
* $this->overwrite_tags=false is now known to be buggy and
has been disabled for this version until a full review
of tag writing can be completed. Certainly affects ID3v2,
the other writable tag formats may or may not be broken
* getID3 constructor no longer checks for (or sets) timezone
* demo.browse.php now shows cover art as inline images
rather than dumped to separate files
* [audio][streams][x][language] now set when known
* Bugfix: RIFF-AVI "JUNK" chunks are now parsed properly,
including zero-sized ones (no more false errors)
* Bugfix: msoffice documents now return correct error message
* Bugfix: demo.browse.php now encodes data according to
current page encoding (default=UTF-8)
* Bugfix: (#1120) sometimes incorrect ID3v2 genre parsing
* Bugfix: (#1116) possibly incorrect warnings (or lack of)
for RIFFs > 2GB.
* Bugfix: (#1115) wrong RIFFtype in RIFF files
* Bugfix: (#1114) wrong MIME type may be set for Matroska
* Bugfix: (#1113) support DSS v3 files
* Bugfix: (#1111) cover art in APE tags now supported
* Bugfix: (#1091) RemoveID3v1() unitialized variables
* Bugfix: (# 504) do not set Quicktime resolution if
'tkhd' atom is disabled
* Bugfix: (# 95) return [quicktime][controller] if known
1.8.4: [2011-02-03] James Heinrich
* change default encoding in ID3v2 writing to UTF16-LE+BOM
(or ISO-8859-1 where possible) for better compatability
with broken versions of Windows Media Player and iTunes
* Bugfix: [FLV] incorrect overall bitrate in some files
* Bugfix: (#1102) missing parentheses in write[.id3v2].php
* Bugfix: (#510) undefined IsValidDottedIP() in write.id3v2.php
1.8.3: [2011-01-18] James Heinrich
» magic_quotes_gpc must now be disabled to use getID3
» replace all error-suppressing @$variable calls with
isset() or empty() as appropriate for some configurations
where @ does not act to suppress warnings of undefined
variables (e.g. support forum thread #798)
* remove SafeStripSlashes() and FixTextFields functions
* [quicktime] use fourcc if codec name zero-length
* [quicktime] support "iods" atom
* Bugfix: (#1099) sometimes incorrect detection of safe_mode
* Bugfix: (#1095) more robust setting of temp dir
* Bugfix: (#1093) add support for ClusterSimpleBlock to
prevent "Undefined index: track_data_offsets" errors
in Matroska files
* Bugfix: [riff] prevent errors when RIFF.WAVE.BEXT chunk
contains null date/time (thanks moysevichØgmail*com)
* Bugfix: [quicktime] prevent divide-by-zero errors if
time_to_sample_table has zero-sample entry
(thanks moysevichØgmail*com)
1.8.2: [2010-12-06] James Heinrich
* include startup warning for PHP < v5
* magic_quotes_runtime must now be disabled to use getID3
¤ MusicBrainz / AmpliFIND data more accessible in returned data
from Quicktime-style files (e.g. MP4/AAC)
* Bugfix: (#1079) wrong encoding might be used for ID3v2
text data, and/or garbage data prepended before text
data; DataLengthIndicator value was being ignored
* Bugfix: (#1055) clearer warnings on non-EXIF contents in
JPEG [APP1]
* Bugfix: (#999) ID3v2 UFID data was missing
1.8.1: [2010-11-25] James Heinrich
* replaced calls to deprecated mysql_escape_string() with
mysql_real_escape_string()
* Bugfix: (#1072) memory limit not handled correctly if
in gigabytes in php.ini (e.g. "2G")
* Bugfix: (#1068) wrong encoding for Quicktime tags
* Bugfix: (#1040) possible infinite loop in genre parsing
* Bugfix: (#1036) helperapps directory not resolving 8.3
path names correctly
* Bugfix: (#1023) dbm cache extension not correctly handling
types other than "db3"
* Bugfix: (#1023) mysql cache extension now base64_encodes
data to make binary-safe. Existing cached data must be
purged from your database cache
* Bugfix: (#1007) ClosestStandardMP3Bitrate() not selecting
most appropriate value
* Bugfix: (#996) inefficient and buggy ID3v1 and ID3v2
genre parsing
* Bugfix: (#974) track number handled incorrectly in
demo.write.php
* Bugfix: (#969) tempnam() calls failing with open_basedir
* Bugfix: (#955) UTF-16LE text files could be falsely
identified as corrupt mp3 files
* Bugfix: (#877) detect if mbstring.func_overload is set in php.ini
* Bugfix: (#858) PHP safe_mode setting in php.ini incorrectly
handled if set to "Off"
* Bugfix: (#838) prevent warnings with assorted unhandled
Quicktime atoms
1.8.0: [2010-11-23] James Heinrich
» Changes required for PHP v5.3+ compatability, including:
- change ereg* functions to preg_* equivalents
- declare functions static as needed
note: users of PHP v4.x may need to stay with getID3 v1.7.x
» Added CUE (cuesheet) support
new file: module.misc.cue.php
(thanks Nigel Barnes ngbarnesØhotmail*com)
» Added XMP (Adobe Extensible Metadata Platform) support
currently used with module.graphic.jpg.php
new file: module.tag.xmp.php
(thanks Nigel Barnes ngbarnesØhotmail*com)
¤ [jpg][exif][GPS][computed] now exists when possible with
calculated values (decimal latitude, longitude, altitude, time)
¤ Prevent clobbering WMA artist with albumartist value; added WMA
partofset tag; added WMA tag picture data to WMA comments
(thanks ngbarnesØhotmail*com)
¤ RIFF.WAVE.SNDM (SoundMiner) metadata now parsed
(thanks emerrittØwbgu*bgsu*edu)
¤ FLAC embedded pictures now return [data_length] key
(thanks darrenburnhillØhotmail*com)
* added support for a number of new comment atom types added in
iTunes v4.0-v7.0 (thanks ngbarnesØhotmail*com)
* demo.browse.php now shows video resolution and framerate (if no
artist or title info present)
* additional FLV details parsed, may be faster as well
(thanks ngbarnesØhotmail*com)
* Bugfix: DSS files longer than 60 seconds had wrong playtime
* Bugfix: possible empty array encountered in APE tags
(thanks csnaitsirchØweb*de)
* Bugfix: prevent fatal error when calling BigEndian2Int() on
zero-length string (thanks taylor*fausakØgmail*com)
* Bugfix: prevent errors when parsing invalid Vorbis comments
(thanks dr*dieselØgmail*com)
* Bugfix: files could not be analyzed from Windows shares
(e.g. \\SERVER\Directory\Filename.mp3)
* Bugfix: RAR file opening should use 'filenamepath'
(thanks adrien*gibratØgmail*com)
* Bugfix: [asf][codec_list_object][codec_entries][x][description]
not containing expected comma-seperated values no longer aborts
(thanks larry_globusØyahoo*com)
* Bugfix: [id3v2] UFID was not returning data
(thanks joostØdecock*org)
1.7.9: [2009-03-08] James Heinrich
» Added DSS (Digital Speech Standard) support
new file: module.audio.dss.php
(thanks luke*wilkinsØdtsam*com)
» Added MPC (Musepack) SV8 support
(thanks WaldoMonster)
¤ some MPC [header] keys renamed to be the same between SV7/SV8
¤ start aligning demos CSS styling with v2.x styles
new file: demos/getid3.css
¤ JPEG now returns parsed IPTC tags in [iptc]
¤ getid3_lib::GetDataImageSize now requires $imageinfo parameter
¤ better support for Matroska files with AC3/DTS/MP3/OGG audio
(support still lacking for AAC)
¤ standardize ID3v2 TCMP key to 'part_of_a_set' between reading
and writing (thanks aaron_stormØyahoo*com)
¤ added ID3v2 keys 'TCMP','TCP' to for writing iTunes-style tags
(thanks aaron_stormØyahoo*com)
¤ back-ported PICTURE tag handling in FLAC tags
(thanks WaldoMonster)
¤ added alternate method to get [video][frame_rate] from QuickTime
* added partial support for "TCMP"/"TCP" ID3v2 frames (iTunes
non-standard part-of-a-compilation tag)
(thanks aaron_stormØyahoo*com)
* slightly improved scanning through FLV files speed
(thanks franki)
* faster Matroska scanning by stopping at cluster chunks once
needed header chunks are found (much faster for large files)
* added workaround for broken tagging programs that miss terminating
null byte for numeric ID3v2.4 genres
(thanks yam655Øgmail*com)
* Bugfix: MultiByteCharString2HTML() did not escape common HTML
special characters like & and ?
* Bugfix: cleaned up some malformed HTML errors in demo.browse.php
* Bugfix: under Windows files >2GB might not be processed due to
"dir" command not finding file with double directory slashes
* Bugfix: "MODule (assorted sub-formats)" was falsely matching
some random files (e.g. JPEGs) (thanks qwertywin)
* Bugfix: suppress PHP_notice on failed SWF-compressed
decompression failure (thanks mkron)
1.7.8b3: [2008-07-13] James Heinrich
» Experimental partial support for files > 2GB (gets filesize
from shell call to "dir" or "ls", parse files with PHP only
up to 2GB limit). See readme.txt for details on what formats
work properly and other limitations
» Initial support for Matroska. Has only been tested with a
limited number of sample files, please report any bugs
» Experimental support for PHP-RAR reading. Known buggy, disabled
by default, enable with care
¤ getid3_lib::CastAsInt() now returns ints up to 2^31 (not 2^30)
¤ Quicktime: [video] now returns [frame_rate] and [fourcc] for MP4
video files
* MP3: headerless VBR files now only have up to 10 blocks of 5000
frames each scanned by default and bitrate extrapolated from that
distribution for speed (thanks glau*stuffØridiculousprods*com)
* Quicktime: support "co64" atom
* SWF: lower memory use when compressed SWF files processed
(thanks doughammondØblueyonder*co*uk)
* Bugfix: FLV height and width was calculated incorrectly
(thanks moysevichØgmail*com)
* Bugfix: FLV GETID3_FLV_TAG_META parsed incorrectly
(thanks moysevichØgmail*com)
* Bugfix: Quicktime: 'tkhd' matrix_v and matrix_d were switched
(thanks rjjmoroØhotmail*com)
* Bugfix: Quicktime: frame_rate was often incorrect for MP4 video
* Bugfix: getid3_lib::CastAsInt returned -2147483648 when passed
2147483648 (0x80000000)
1.7.8b2: [2007-10-15] James Heinrich, Allan Hansen
* Video bitrate now calculated even if not explicitly stated in
file metadata, but if overall and audio bitrates are known
* Bugfix: 'comments_html' missing last letter in id3v2 tags.
* Bugfix: module objects (e.g. getid3_riff) that are instantiated
in other modules are explicitly disposed once no longer needed.
* Bugfix: some AVI files were not returning audio information
because "strh" chunk was not being read in
* Bugfix: asf [audio][<streamnumber>][dataformat] should be set
to "wma" but wasn't
* Bugfix: [mpeg][audio][bitrate_mode] should always be one of
("cbr", "vbr", "abr") but wasn't for some values in
LAMEvbrMethodLookup()
* Bugfix: MP3 audio in AVI files could show "cbr" instead of
correct audio bitrate_mode, and audio bitrate could be slightly
incorrect if multiple files were scanned in a loop (scanning
single files produced correct values).
* Bugfix: remove [audio/video][bitrate] key if falsely set to zero
* Bugfix: PlaytimeString returned non-matching value for negative
playtimes (which shouldn't happen either, but now they're at
least shown correctly, if they happen due to other bugs)
* Bugfix: Several ASF header values are invalid if the broadcast
flag is set, getID3() now calculates these values in other
ways if the broadcast flag is set (thanks fletchØpobox*com)
* Bugfix: lyrics3-flags-lyrics field was always false, and there
never was a lyrics3-flags-timestamp field present even though
the lyrics3-raw-IND field consisted of "10" (lyrics present,
timestamp not present). (thanks i*f*schulzØweb*de)
* Bugfix: TAR.GZ files produce PHP errors when
option_gzip_parse_contents == true in module.archive.gzip.php
(thanks alan*harderØsun*com)
1.7.8b1: [2007-01-08] Allan Hansen
» Major update to readme.txt
» PHP 4.2.0 required
» Tagwriter requires metaflac 1.1.1+ in order to write FLAC tags.
» Removed broken and non-fixable tagwriting module for real format.
! Developers please help fix the above module:
https://www.getid3.org/phpBB3/viewtopic.php?t=677
» Avoided security issues with demo.browse.php, demo.write.php and
demo.mysql.php. These demos are now disabled by default and has
to be enabled in the source.
* Bugfix: id3v2 genre broken since 1.7.7.
» Added DTS module (module.audio.dts.php)
¤ ASF/WMV files now return largest video stream dimensions in
[video][resolution_x] and [video][resolution_y]
* Bugfix: Minor issues with midi module (avoid PHP_NOTICE).
* Bugfix: Minor issues with lyrics3 (avoid PHP_NOTICE).
* Bugfix: PHP_NOTICE issues in MultiByteCharString2HTML()
* Bugfix: PHP_NOTICE issue in BigEndian2Float()
* Bugfix: fread() zero bytes issue in real module.
* Bugfix: ASF module returned mime type video/x-ms-wma instead of
video/x-ms-wmv for certain FourCCs.
* Bugfix: PHP_NOTICE issues with broken ID3v2 tag/garbage.
* Bugfix: PNG module broken in regards to gIFg and gIFx chunks.
» Removed detection of short filenames 8dot3 under windows, as
it only worked for English versions of windows and has other
problems.
* Bugfix: Some CBR MP3 files detected as VBR with plenty of warnings.
* Bugfix: PHP_NOTICE issues in MP3 module.
* Bugfix: Quicktime returned incorrect frame rate.
* Bugfix: DivByZero on zero length FLV files.
* Bugfix: PHP_NOTICE one some FLV files.
* Bugfix: ID3v2 UTF-8/16 encoded frames terminated by \x00
* Bugfix: ID3v2 LINK frames iconv error.
* Bugfix: ID3v2 padding length calculated incorrectly.
* Bugfix: ID3v2.3 extended headers non-conformance
» SVG file detection.
» Added SVG user module (user_modules/module.graphic.svg.php).
Thanks to Roan Horning.
» PAR2 file detection (no parsing)
* Bugfix: Wave files being detected as MP3.
* Bugfix: ASF padding offset bug.
* Bugfix: Shorten module not working for wav files with fmt
chunks <> 16 bytes.
¤ RIFF: Zero sized chunk invokes warning instead of error.
¤ FLAC: Removed some ['raw'] keys.
¤ MPC: Mime type returned: audio/x-musepack
1.7.7: [2006-06-25] Allan Hansen
* Bugfix: AAC static bitrate cache wrong result when parsing
several files.
* Bugfix: Do not return NULL video bitrate for ASF v3.
* Bugfix: getid3_lib::GetImageSize() broken => JPG module broken.
* Bugfix: Encoder options should now be returned with correct
"--alt-preset n" / "--alt-preset cbr n" when scanning more files.
* Bugfix: Shorten module not escapeshellarg() filenames (UNIX only).
* Bugfix: Filenames not escapeshellarg() for md5_data and
sha1_data (UNIX only).
* Bugfix: UNIX: head and tail called with -cNNN instead of "-c NNN".
» Added detection support for PDF and MS Office documents
(*.doc, *.xls, *.pps, etc) (thanks zeromassmediaØgmail*com)
¤ Bugfix: ID3v2 "TDRC" frame now used as "year" in comments if TYER
unavailable (TYER is deprecated in ID3v2.4)
(thanks matthiasØpanczyk*org)
¤ Removed GETID3_OS_DIRSLASH, replaced with DIRECTORY_SEPARATOR
* Bugfix: added LAME preset guessing for presets 410,420,440,490
(thanks adminØlogbud*com)
* Bugfix: Added escapeshellarg() call in getid3_lib::hash_data
(thanks towbØgmx*net)
» TAR module no longer reads entire file into memory
» FLV module no longer reads entire file into memory
* Bugfix: added LAME preset guessing for presets 410,420,440,490
(thanks adminØlogbud*com)
* Bugfix: Added escapeshellarg() call in getid3_lib::hash_data
(thanks towbØgmx*net)
* Bugfix: Error message when padding in FLAC files were used up.
* Bugfix: Shorten module not working under windows.
¤ Bugfix: gmmktime() instead of mktime().
¤ Using gmmktime() instead of mktime() in ISO, ZIP, PNG and RIFF
modules to avoid E_STRICT notices with PHP5.1+.
* Bugfix: ['comments_html'] and ['comments'] contains different
value when having multiple tags (one of them ID3v1) and the
long field names.
1.7.6: [2006-03-12] James Heinrich
* Rewrote getid3_lib::GetDataImageSize() to use GetImageSize()
instead of using code by filØrezox*com
* Bugfix: incorrect dimensions from disabled Quicktime tracks
(thanks m-1Øgmx*net)
* Bugfix: ['codec'] key warning in module.audio-video.asf.php
(thanks niel*archerØblueyonder*co*uk)
* Bugfix: undefined array in write.php
(thanks drewishØkatherinehouse*com)
* Bugfix: DeleteAPEtag() incorrectly failing when no tag present
(thanks drewishØkatherinehouse*com)
* Bugfix: ID3v2 writing frames with URL fields failing when URL
is not in ISO-8859-1 (thanks drewishØkatherinehouse*com)
* Bugfix: PHP notices on bad ID3v2 frames
(thanks cw264701Øohiou*edu)
* Bugfix: audio & video bitrates sometimes wrong in ASF files
(thanks kris_kauperØexcite*com)
1.7.5: [2005-12-29] James Heinrich
» Added FLV (FLash Video) support -- new file:
module.audio-video.flv.php
(thanks Seth Kaufman <[email protected]> for code)
» Real tags can now be written (previous Real tag writing
code was not supposed to be in public releases, as it
was not complete)
» GETID3_HELPERAPPSDIR now autodetected under Windows
¤ ASF lyrics now returned under [comments][lyrics]
* Bugfix: removed "--lowpass xxxxx" info from guessed
LAME presets when source frequency <= 32kHz
* Bugfix: ID3v2 extended header errors
* Bugfix: missing ob_end_clean() in write.id3v2.php
(thanks rasherØgmail*com)
1.7.4: [2005-05-04] James Heinrich
¤ Added ['quicktime']['hinting'] key (boolean)
(thanks jonØwebignition*net)
* Bugfix: major UTF-8 to UTF-16/ISO-8859-1 conversion
bug (empty string returned) when using iconv_fallback
(thanks chrisØfmgp*com)
* Bugfix: Missing 'lossless' key in RIFF-WAV
(thanks bobbfwedØcomcast*net)
1.7.3: [2005-04-22] James Heinrich
» Added TAR support -- new file: module.archive.tar.php
(thanks Mike Mozolin <teddybearØmail*ru> for code!)
» Added GZIP support -- new file: module.archive.gzip.php
(thanks Mike Mozolin <teddybearØmail*ru> for code!)
* Bugfix: demo.browse.php now displays embedded images
internally instead of passing local filename as IMG
SRC (should allow demo.browse.php to correctly show
embedded images over a network)
(thanks patpowermanØhotmail*com)
* Bugfix: minor UTF-8 display issues in demo.browse.php
* Bugfix: demo.browse.php now works even if the evil
setting magic_quotes_gpc is turned on
(thanks patpowermanØhotmail*com)
* Bugfix: incorrect MIDI playtime for some files
(thanks joelØoneporpoise*com)
* Bugfix: 'url_source' typo in module.tag.id3v2.php
(thanks richardlynchØusers*sourceforge*net)
* Bugfix: Quicktime 'mvhd' matrix values were wrong
(thanks webØbobbymac*net)
¤ ID3v2 now returns xx/yy for ['track'] (if
available), with xx in ['tracknum'] and yy in
['totaltracks']. Previously ['tracknum'] was not
available and ['track'] had only xx.
Bugfixes and improvements to /demo/demo.mysql.php:
- remix/version parsed from tags and stored in
database, can be used when renaming files
- track number can be used for renaming files
1.7.2: [2004-10-18] Allan Hansen
» Added support for WavPack v4.0+
(thanks ahØartemis*dk)
» Removed code for parsing EXE files
(thanks ahØartemis*dk)
Removed file: module.misc.exe.php
* Bugfix: Large ID3v2 tags inside ASF not parsed
properly under PHP5.
* Bugfix: Certain Wavpack3 files failed under PHP5 due
to new undocumented tmpfile() limit (same problem as
above).
* Bugfix: New iTunes crashes PHP - temp fix - no tags
on those files.
* Bugfix: ['nsv']['NSVs']['framerate_index'] might be
wrong (thanks ahØartemis*dk)
* Bugfix: transparent color was wrong from truecolor
PNG (thanks ahØartemis*dk)
* Bugfix: Changed MPC SV7 header size from 30 to 28,
this will change hash values for MPC files
(thanks ahØartemis*dk)
* Bugfix: Changed MPC SV4-6 header size from 28 to 8,
this will change hash values for MPC files
(thanks ahØartemis*dk)
¤ Trim/unset wavpack encoder_options to match 2.0.0b2
output.
¤ Commented-out unknown/unused values in NSV and ISO
modules (thanks ahØartemis*dk)
1.7.1b1: [July-26-2004] James Heinrich
» Added support for Apple Lossless Audio Codec
» Added support for RealAudio Lossless
» Added support for TTA v3
» Added support for TIFF
New file: /getid3/module.graphic.tiff.php
» Modified iconv_fallback to work with UTF-8, UTF-16, UTF-16LE,
UTF-16BE and ISO-8859-1 even if iconv() and/or XML support is
not available. This means that iconv() is no longer required
for most users of getID3()
(thanks Jeremia, khleeØbitpass*com)
» Added support for Monkey's Audio v3.98+ (thanks ahØartemis*dk)
» Included new demo showing most-basic getID3() usage
New file: /demos/demo.basic.php
* Bugfix: LAME3.94+ presets cached incorrectly if multiple files
are scanned in one batch and first file is LAME3.93 or earlier
(thanks enoyandØyahoo*com)
* Bugfix: Added warning if compressed ID3v2 frame decompression
fails. (thanks Mike Billings)
* Bugfix: Assorted small fixes to ensure compatability with PHP5
* Bugfix: ID3v1 genre "Blues" could not be written
(thanks Jeremia)
* Bugfix: ['bitrate_mode'] typo in module.audio-video.real.php
(thanks asukakenjiØusers*sourceforge*net)
* Bugfix: ['zip']['files'] is now populated with filenames even
if End Of Central Directory couldn't be parsed
* Bugfix: ['audio']['lossless'] was incorrect for FLAC
(thanks WaldoMonster)
* Bugfix: MD5 File was incorrect in directory browse mode for
/demo/getid3.browse.php
* Bugfix: PHP v5 compatability changes (float array keys, fread()
calls with zero data length)
(thanks getid3Øjsc*pp*ru)
* Bugfix: was dying if on compressed ID3v2 frames if
gzuncompress() function was unavailable
* Bugfix: ['vqf']['COMM'] was always empty
* Bugfix: MIDI playtime was missing for single-track MIDI files
* Bugfix: removed � characters from ['comments_html']
(thanks p*quaedackersØplanet*nl)
* Bugfix: improved MIDI playtime accuracy
(thanks joelØoneporpoise*com)
* Bugfix: BMP subtypes 4 and 5 were not being identified
* Bugfix: frame_rate in AVI was incorrectly truncated to integer
* Bugfix: FLAC cuesheet track index was incorrect
(thanks tetsuo*yokozukaØoperamail*com)
¤ ['quicktime']['display_scale'] now contains the playback scale
multiplier for QuickTime movies - a movie set to playback at
double-size will have "2" here. Other values are "1" and "0.5"
¤ Added LAME preset guessing for --preset medium with v3.90.3
(thanks phwipØfish*co*uk)
¤ Added $encoding_id3v1 to allow for ID3v1 encodings other than
the standard ISO-8859-1
¤ Default AVI video bitrate_mode is now 'vbr'
(thanks eltoderØpisem*net)
Force getID3() to abort if Shorten files have ID3 or APE tags
(thanks ahØartemis*dk)
Editable textbox for parent directory in demo.browse.php
(thanks eltoderØpisem*net)
1.7.0-hotfix [2004-03-17] Allan Hansen
(hotfix version released by Allan Hansen)
* Bugfix: PHP 4.1.x compatiblity - fgets($fp) => fgets($fp, 1024)
* Bugfix: Added default charset to TextEncodingNameLookup() in
module.tag.id3v2.php
Ø Removed option_no_iconv
iconv() support is only a requirement for WMA/WMW/ASF, and for
destination encodings other than ISO-8859-1 and UTF-8, iconv is
not needed otherwise. New 'iconv_req' in GetFileFormatArray()
only set for WMA/WMV/ASF. analyze() now refuses to analyse
WMA/ASF file if iconv is not present.
iconv_fallback() only dies on internal errors not missing iconv()
1.7.0: [January-19-2004] James Heinrich
» Added support for RIFF/CDXA files (MPEG video in RIFF container
format (thanks chrisØdigitekdesign*com)
» Added support for TTA v2 (thanks ahØartemis*dk)
¤ ID3v2 unsynchronisation scheme disabled by default because most
tag-reading programs cannot read unsynchronised tags. Can be
overridden by setting id3v2_use_unsynchronisation to true.
(thanks mikeØdelusion*org)
¤ extention.*.php renamed to extension.*.php
(thanks tp62Øcornell*edu)
¤ /demo/demo.check.php renamed to /demo/demo.browse.php
¤ Added id3v2_paddedlength configuration parameter to WriteTags()
and renamed tag_language to id3v2_tag_language
¤ MPEG audio layers are now represented as 1, 2 or 3 instead of
'I', 'II', or 'III'
¤ Added [audio][wformattag] and [video][fourcc] for WAV and AVI
¤ Added [audio][streams] which contains one entry for each audio
stream present in the file (usually only one). The data is a
copy of what is usually found in [audio]. If there are multiple
audio streams then [audio] will contain a sum of the bitrates
of all audio streams, and the data format of the first stream
(if streams are of different data types)
¤ Added BruteForce mode to mp3 scanning. Disabled by default as
it is extremely slow and only files that are broken enough to
not really play will gain any benefit from this.
¤ Suppress '--resample xxxxx' appended to encoder options for mp3
with low-quality presets for default sampling frequencies
¤ Enhanced LAME preset guessing for pre-3.93 with a better lookup
table, --resample/--lowpass guessing (thanks phwipØfish*co*uk)
¤ RIFF files with non-MP3 contents no longer have
[audio][encoder_options] set
¤ Added [audio][encoder_options] to audio formats where possible
(including LiteWave, LPAC, OptimFROG, TTA)
¤ Moved [quantization] and [max_prediction_order] from
[lpac][flags] to just [lpac]
¤ WavPack flags are now parsed into [wavpack][flags]
* Bugfix: APEtags with ReplayGain information stored with comma-
seperated decimal values (ie "0,95" instead of "0.95") were
giving wrong peak and gain values
* Bugfix: Filesize > 2GB not always detected correctly
* Bugfix: Some ID3v2 frames had data key unset incorrectly
(thanks chrisØdigitekdesign*com)
* Bugfix: Warnings on empty-strings-only comments
* Bugfix: ID3v2 tag writing may have had incorrect padding length
if padded length less than current ID3v2 tag length and
merge_existing_data is false (thanks mikeØdelusion*org)
* Bugfix: hash_data() for SHA1 was broken under Windows
* Bugfix: BigEndian2Float()/LittleEndian2Float() were broken
* Bugfix: LAME header calculated track peaks were incorrect for
LAME3.94a15 and earlier
* Bugfix: AVIs with VBR MP3 audio data reported incorrect bitrate
and bitrate_mode
* Bugfix: AVIs sometimes had incorrect or missing video and total
bitrates
* Bugifx: AVIs sometimes had incorrect ['avdataend'] and
therefore also incorrect data hashes (md5_data, sha1_data)
* Bugfix: ID3v1 genreid no longer returned for Unknown genre
* Bugfix: ID3v1 SCMPX genres were broken
Modified LAME header parsing to correctly process peak track
value for LAME3.94a16+ (thanks Gabriel)
md5_file() and sha1_file() now work under Windows in PHP < 4.2.0
and 4.3.0 respectively with helper apps
Default md5_data() tempfile location is now system temp directory
instead of same directory as file (thanks towbØtiscali*de)
Improved list of RIFF ['INFO'] comment key translations
More helpful error message when GETID3_HELPERAPPSDIR has spaces
/demo/demo.browse.php now autogets both MD5 and SHA1 hashes for
files < 50MB
Replaced PHP_OS comparisons with GETID3_OS_ISWINDOWS define
(thanks necroticØusers*sourceforge*net)
1.7.0b5: [December-29-2003] James Heinrich
» Windows only: Various binary files are now required for some
file formats, especially for tag writing, as well as md5sum
(and other) calculations. These binaries are now stored in the
directory defined as GETID3_HELPERAPPSDIR in getid3.php
(default is /helperapps/ parallel to /getid3/).
Note: This directory must not have any spaces in the pathname.
All neccesary files are available as a seperate download.
See /helperapps/readme.txt for more information
New file: /helperapps/readme.txt
» Unified tag-writing interface for all tag formats
New file: /getid3/write.php
/getid3/write.apetag.php
/getid3/write.id3v1.php
/getid3/write.id3v2.php
/getid3/write.lyrics3.php
/getid3/write.metaflac.php
/getid3/write.vorbiscomment.php
» Added support for Shorten - requires shorten binary (head.exe
is also required under Windows).
New file: /getid3/module.audio.shorten.php
» Added support for RKAU
New file: /getid3/module.audio.rkau.php
» Added (minimal) support for SZIP
New file: /getid3/module.archive.szip.php
» Added MySQL caching extention (thanks ahØartemis*dk)
New file: /getid3/extention.cache.mysql.php
» Added DBM caching extention (thanks ahØartemis*dk)
New file: /getid3/extention.cache.dbm.php
» Added sha1_data hash option (thanks ahØartemis*dk)
» Added option to allow getID3() to skip ID3v2 without parsing it
for faster scanning when ID3v2 data is not required. If you
want to enable this feature delete /getid3/module.tag.id3v2.php
(thanks ahØartemis*dk)
¤ 8-bit WAV data now calculates MD5 checksums as normal, not
converting to signed data as before, so stored md5_data_source
in FLAC files will no longer match md5_data for the equivalent
decoded 8-bit WAV. A warning will be generated for 8-bit FLAC
files
¤ Added option_no_iconv option to allow getID3() to work
partially without iconv() support enabled in PHP
(thanks ahØartemis*dk)
¤ All '*_ascii' keys removed for ASF/WMA/WMV files
¤ All 'ascii*' keys removed for ID3v2 tags
¤ Ogg filetypes now return MIME of "application/ogg" instead of
the previous "application/x-ogg"
(thanks blakewattersØusers*sourceforge*net)
¤ Force contents of ['id3v2']['comments'] to UTF-8 format from
whatever encoding each frame may have (text encoding can vary
from frame to frame in ID3v2)
¤ MP3Gain information from APE tags suppressed from ['tags'] and
parsed into ['replay_gain']
¤ ReplayGain information (all formats) changed from "Radio" and
"Audiophile" to "Track" and "Album" respectively
¤ ['volume'] and ['max_noclip_gain'] are now available in both
['replay_gain']['track'] and ['replay_gain']['album'] for all
formats that calculate ReplayGain.
¤ ['video']['total_frames'] is available for AVIs
¤ All parsed ID3v2 frame data is now in ['id3v2'][XXXX][#]
(previously some frame types would have numeric array keys if
multiple instances of that frame type were allowed and other
frame types would not)
¤ ASF/WMA "WM/Picture" images are now parsed in the same manner
as ID3v2 with the image (ex JPEG) data returned in [data]
rather than [value]
* Bugfix: Optional tag processing options were being ignored (ie
ID3v1 still processed even if option_tag_id3v1 == false)
(thanks ahØartemis*dk)
* Bugfix: fixed MultiByteCharString2HTML() for UTF-8
* Bugfix: Quicktime files not always reporting video frame_rate
* Bugfix: False ID3v1 synch patterns in APE or Lyrics3 tags are