atomicparsley / Changes.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
v0.1   10/05/2005

Parsing of atoms

intial Tree printout

extraction of all "covr.data" atoms out
to files

v0.2   11/10/2005

AtomicInfo.NextAtomNumber introduced to facilitate dynamic atom tree
reorganization

CreateSparseAtom added

v0.5   11/22/2005

Writes artist properly of variable lengths properly into an iTMS m4p file
properly (other files don't fare well due to the stsd atom non-standard
nature)

a number of code-uglifying workarounds were employed to get get that
far;

v0.6   11/25/2005

Added genre string/numerical support, support for genre's dual-atom ©gen/gnre
nature, genre string->integer

bug fixes to APar_LocateAtomInsertionPoint when
an atom is missing

APar_CreateSparseAtom for ordinary non-data atoms are now
type -1 (which means they aren't of any interest to us besides length & name);
implemnted the Integer data class

char4short

verified iTunes standard genres
only go up to "Hard Rock"

added jpg/png artwork embedding into "covr" atoms;
slight bugfix for APar_FindAtom (created spurious trailing "covr" atoms).

v0.6    GPL'ed at sourceforge.net

v0.65   11/25/2005

bugfixes to newly introduced bugs in APar_FindAtom

metaEnema to remove all
metadata (safe even for m4p drm files)

year implemented properly (tagtime
moved onto non-standard 'tdtg' atom ala id3v2.4 - because I like that tag);
added setting compilation "cpil" tag (an annoying 5byte tag)

added advisory
setting (maybe it'll give me a kick one cold winter day-do a "Get Info" in
iTunes & in the main "Summary" tab view will be a new little icon next to
artwork)

v0.7    11/26/2005

added a writeBack flag to for a less beta-like future

integrated NSImage
resizing of artwork

environmental preferences for artwork modifications

build
system mods for Mac-specific compiling



v0.7.1  11/27/2005 

modified parsing & writing to support Apple Lossless (alac) mp4 files. The
lovely "alac.alac" non-standard atoms (parents & carry data) caused unplayable
files to be written. Only QT ISMA files get screwed now (no idea about Nero)

v0.7.2  11/29/2005 

creates iTunes-required meta.hdlr

all the tags now get spit back when reading
them (--textdata)

slight fix to how atoms are parsed

all known m4a files now
tag properly: iTunes (m4a, m4b, chapterized, alac), Quicktime (ISMA & mpeg4 -
change filename ext to .m4a to see art

all QT products require the meta.hdlr
addition), faac, Helix Producer & Nero

slight change to how PrintDataAtoms
called FindParentAtom

added tag time on "©ed1" (edit date-might only really
belong directly under udta)

added "©url" to hold url

fixes to
APar_RemoveAtom

added cli ability to remove all artwork

v0.7.3  12/02/2005 

handles stsd (and child) atoms better

modifies all stco offsets when needed
(not just the first)

new oddball iTMS video "drmi" atom handling

new "stik"
atom support (sets iTunes GetInfo->options:Movie,TV Show, Music Video)

writes
iTMS video drm TV shows well now

diffs in a hex editor are moov atom length,
and then into stco, so all is well

v0.7.4  12/03/2005

"desc", "tvnn", "tvsh", "tven" & "tves" setting

v0.7.5b 12/09/2005

forced 'mdat' into being childless (chapterized mpeg4 files have atoms
scattered througout mdat, but they aren't children)

fixed issues with ffmpeg
created mpeg4 files (that have mdat as 2nd atom

moov & chilren as last atoms);
moved ffmpeg mdat atoms around to end

better atom adding at the end

subbed
getopt_long_only to getopt_long for pre-10.4 users

added progressbar

v0.7.5c 12/10/2005

funnguy0's linux patches (thanks so much for that)

v0.7.5d 12/11/2005

endian issues for x86 mostly resolved

setting genre's segfaults

stik doesn't
get set in a multi-option command, but does as a single atom setting

Debian
port added to binaries (compiled under debian-31r0a-i386 with g++4.02-2,
libc6_2.3.5-8 & libstdc++6_4.0.2-2) - under VirtualPC - with the nano editor!

v0.7.5e 12/16/2005

ammends how atoms are added at the end of the hierarchy (notably this affects
ffmpeg video files)

writes "keyw", "catg", "pcst", "aART" atoms

read-only
"purl" & "egid" added

v0.7.6  12/31/2005

ceased flawed null-termination (which was implemented more in my mind) of text
'data' atoms

UTF-8 output on Mac OS X & Linux - comment in DUSE_ICONV_CONVERSION in the
build file to test it other platforms (maybe my win98Se isn't utf8 aware?)

cygwin build accommodations

fix to the secondary "of" number for track/disk on non-PPC

implemented user-defined completely sanctioned 'uuid' atoms to hold....
anything (text only for now)

"--tagtime", "--url" & "--information" now get set onto uuid atoms

allow creation of uuid atoms directly from the cli

cygwin-win98SE port added to binary releases

added '--freefree' to remove any&all 'free' atoms

v0.8    01/14/2006

switched over to uint8_t for former ADC_CPIL_TMPO & former ADC_Integer

added podcast stik setting & purl/egid

bugfixes to APar_RemoveAtom

bugfixes & optimizations to APar_FindAtom

changes to text output & set values for stik atom

increase in buffer size

limit non-uuid strings to 255bytes

fixed retreats in progress bar

added purd atom

support mdat.length=0 atom (length=1/64-bit isn't supported

I'll somehow cope with a < 4GB file)

switch from long to uint32_t
  
better x86 bitshifting

added swtich to prevent moving mdat atoms (possible PSP requires mdat before
moov)

universal binary for Mac OS X release

no text limit on lyrics tag

v0.8.4  02/25/2006

fixed an imaging bug from preferences

fixed metaEnema screwing up the meta atom (APar_RemoveAtom bugfix to remove a
direct_find atom)

added --output, --overWrite

added --metaDump to dump ONLY metadata tags to a file

versioning for cvs builds

limited support for 64-bit mdat atoms (limited to a little less than a 32-bit
atom > 4GB)

bugfixes to APar_RemoveAtom for removing uuid atoms or non-existing atoms & to
delete all artwork, then add in 1 command ("--artwork REMOVE_ALL --artwork
/path --artwork /path")

support 64-bit co64 atom

support MacOSX-style type/creator codes for tempfiles that end in ".mp4" (no
need to change extn to ".m4v"/".m4a" anymore)

moved purl/egid onto AtomicDataClass_UInteger (0x00 instead of 0x15) to mirror
Apple's change on these tags

start incorporating Brian's Win32 fixes (if you malloc, memset is sure to
follow fopen)

give the 'name' atom for '---' iTunes-internal tags for metadata printouts

allow --freefree remove 'free's up to a certain level (preserves iTunes
padding)

squash some memory leaks

change how CreateSparseAtom was matching atoms to accommodate EliminateAtom-ed
atoms (facilitates the previous artwork amendments)

exit on unsupported 'ftyp' file brands

anonymous 3rd party native win32 contributions

reworked APar_DetermineAtomLengths to accommodate proper tag setting with
--mdatLock

parsing atoms under 'stsd' is no longer internally used - only for tree
printing

reworked Mac OS X TYPE determination based on new stsd_codec structure member

revisit co64 offset calculations

start extracting track-level details (dates, language, encoder, channels)

changed stco/co64 calculations to support non-muxed files

anonymous "Everyday is NOT like Sunday" contribution

changed unknown 0x15 flagged metadata atoms to hex printouts

move mdat only when moov precedes mdat

new flexible esds parsing

v0.8.8  05/21/2006

prevent libmp4v2 artwork from a hexdump

changed how short strings were set

win32 change for uuid atoms to avoid sprintf

skip parsing 'free' atoms

work around foobar2000 0.9 non-compliant tagging scheme & added cli switch to
give 'tags' the GoLytely - aka '--foobar2000Enema'

ability to read/set completely separate 3gp tags subset (3GPP TS 26.444 version
6.4.0 Release 6 compliant & more like QuickTime-style tags)

added libxml's utf8 & utf16 conversion functions

new windows (windows2000 & later) unicode (utf16) console output (literal utf8
bytes in win98 & earlier

memset standard means of initializing

simplified setting of arbitrary info uniformly onto parsedAtoms.AtomicData

win32 switch to CP_UTF8 codepage on redirected console output for better
unicode output support

eliminate need for libiconv - use xml's utf8<->latin1 functions to supplant
libiconv

properly display atoms like '©nam' under Windows for trees & atom printouts

support setting unicode on Windows CP_UTF8

added 3GP keyword

fixed bug removing last 3GP asset to reset the length of 'udta'

added 'manualAtomRemove' for manually removing iTunes-style atoms

improved tracking of filesize/percentage when large free atoms impinge on % of
new filesize

added 3GP location 'loci' (El Loco) atom - all known 3GP assets can now be
set/viewed (except support for multiple same atoms of different languages)

->forced<- elimination of Nero tagging scheme (their foobar2000 inspired 'tags'
atom) on 3GP files

prevent iTunes-style tags on 3GP files or 3GP assets on MPEG-4 files

fix offsets in fragmented files ("moof.traf.tfhd") up MAX_ATOMS to 1024

Windows support for full utf16 (unicode) for cli args & filenames

v0.9.0	09/15/2006

new file scanning method based on an array of known atoms/KnownAtoms struct
added to list the gamut of known atoms & their basic properties

better atom versioning & flags support

allow negatives in 3gp asset coordinates (switch to high-bit ascii for
getopt_long for assets)

fixed minor bug that crept in on non-Win systems in removing files

switch from moving mdat(s) to moving moov to reorder atoms

mellow_flow's genre fix

SLarew's utf16 fix for printing 3gp assets on Win32

reorder moov's child atoms so that udta is last (as per ISO spec
recommendations) in moov

enable use of 'free' atom padding for rapid updating, pad with a (user-defined)
default amount of padding with a complete file rewrite

switch remaining AtomicInfo variables over to pointers

add support for multiple same atoms with differing languages (like 3gp assets);
more flexible 'stik' setting/retrieving & added Audiobook

genre bugfix (again!!)

added ability to list std genres & stik strings

switch output for rtng's "Lyrics" to "Content"

list file brands

bugfix for removing some cli metadata

prevent optimizing on PSP mpeg-4 files (but allow dynamic updating, and don't
add padding to psp files)

new APar_FindAtom routine eliminating some loops

updated routine to find 'moov.udta.meta.hdlr' or iTunes-style tagging

simplified APar_RemoveAtom

3gp assets differing in language are grouped now instead of being fifo

simplified printing of non-string iTunes-style tags

work around 3rd party bug affecting 'cprt' corruption

switch to fseeko to support files between 2.5GB & 4GB (and ancillary routines
off of filesize like progress bar)

fix co64 reduction offsets

prevent optimizing when just getting a tree or tags (screwed up track level
details)

bashfulbladder's booklet stik, only allow dynamic updating with --overWrite &
new "AP -t +" routine to show padding & supplemental info

changing win32 filename to '-utf8.exe' forces raw utf8 input/output

win32 longhelp is converted to utf16 (for atom names)

new shorthelp added as default help page

bugfix removing non-existing atoms

an actual change (removal/addition/change) of an atom is now required for any
type of write action

fix channel listing for 'esds' without sec5 info

added ability to force image dimensions on MacOSX

revamped track level details

255 byte limit for strings changed to 255 utf8 *character* limit

--stik Audiobook now changes file extension to '.m4b' (for Mac OS X, finder
Type code is changed to 'M4B ' too)

fix --3gp-year "" in APar_RemoveAtom

bugfix setting string lengths in 3gp keyword

added ability to add ISO 'cprt' copyright at movie or track level

implemented v5 sha1 namepsace/name uuids

fixed crash on finding any atom with full uuids (like psp files)

more extensive type/profiles/levels in track level details

add support for embedding files on uuid atoms

switch to reading artwork directly into memory (as opposed to copying from
a->b) when setting artwork

modified ExtractPixPrefs for leaks - defaults now to deleting temp pic files

skip sprintf for uuid binary strings ('qlts' is why) & switch to (less
flexible) memcpy

accommodate iTunes 7.0 adding aprox. 2k of NULL bytes outside of any atom
structure

add 'pgap' atom

defaults to duplicating the gapless padding at the end of file now (but can be
optionally skipped)

fixed clipping when setting unicode characters

v0.9.X  ??/??/2007

now checks/lists 3 letter language codes

allow setting 3gp assets at track level

fix double fclose & relative paths with --overWrite

coalesce iso copyright notices into the new APar_UserData_atom_Init

initial support for setting iTunes reverseDNS atoms

fix validation test for 'trak' child atoms for atypical order

add mjpeg2000 (mjp2) major brand support (for copyright notices & uuid atoms)

restyled listings of all text metadata tags (-t 1)

fix multiple BOM prints on printouts

limit offset adjustments to local (non-external) data

added support for adjusting item location offsets

switch to a makefile/configure/config.h build system

start of ID3v2 2.4 implementation to go into ID32 atoms

limit chunk offset updates to local data

extend atom creation to file level (FL meta gets created after 'moov')

much of ID3v2 2.4 is completed: multiple text fields, counters, APIC/GEOB
setting/extracting, group symbols & zlib compression

add 3gp7 brands

allow ID32 based on compatible ftyp branding

refactoring & splitting of metadata listings

allow multiple entries in reverseDNS atoms (excepting iTunes domain)

initial (unfinished) revisit of file reorganizing/padding

update mvhd/tkhd modification timestamps

# vim:ts=2:sw=2:et:
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.