<?xml version="1.0" encoding="UTF-8"?>
<commits type="array">
  <commit>
    <parents type="array">
      <parent>
        <id>a592c9025a4faf9e2eda007915d5cf22ced1ffcb</id>
      </parent>
    </parents>
    <author>
      <name>Brian Langenberger</name>
      <email>bjl@usa.net</email>
    </author>
    <url>http://github.com/tuffy/python-audio-tools/commit/47535c4a773e7fa990f897041989818fa0353251</url>
    <id>47535c4a773e7fa990f897041989818fa0353251</id>
    <committed-date>2009-06-29T18:08:40-07:00</committed-date>
    <authored-date>2009-06-29T18:08:40-07:00</authored-date>
    <message>Chnaged version to 2.12 (final)</message>
    <tree>62d2dea222ab4aab89723ddb0a6e1560ff47cad8</tree>
    <committer>
      <name>Brian Langenberger</name>
      <email>bjl@usa.net</email>
    </committer>
  </commit>
  <commit>
    <parents type="array">
      <parent>
        <id>2f96081e4bb268933bd7341a26e999f2d5f1ddf8</id>
      </parent>
    </parents>
    <author>
      <name>Brian Langenberger</name>
      <email>bjl@usa.net</email>
    </author>
    <url>http://github.com/tuffy/python-audio-tools/commit/a592c9025a4faf9e2eda007915d5cf22ced1ffcb</url>
    <id>a592c9025a4faf9e2eda007915d5cf22ced1ffcb</id>
    <committed-date>2009-06-28T14:28:56-07:00</committed-date>
    <authored-date>2009-06-28T14:28:56-07:00</authored-date>
    <message>Add *_encoding configfile fields to documentation.
Increment version to 2.12rc1.</message>
    <tree>ab9a64a67ebd524961f44644b00de6a355161f30</tree>
    <committer>
      <name>Brian Langenberger</name>
      <email>bjl@usa.net</email>
    </committer>
  </commit>
  <commit>
    <parents type="array">
      <parent>
        <id>db6a1a529933b7f7f992e488292785a130fe9ba5</id>
      </parent>
    </parents>
    <author>
      <name>Brian Langenberger</name>
      <email>bjl@usa.net</email>
    </author>
    <url>http://github.com/tuffy/python-audio-tools/commit/2f96081e4bb268933bd7341a26e999f2d5f1ddf8</url>
    <id>2f96081e4bb268933bd7341a26e999f2d5f1ddf8</id>
    <committed-date>2009-06-28T14:10:31-07:00</committed-date>
    <authored-date>2009-06-28T14:10:31-07:00</authored-date>
    <message>Add additional M4A unit tests to improve coverage.</message>
    <tree>0f8a60ed9ede42ac563be20250630a224e547bff</tree>
    <committer>
      <name>Brian Langenberger</name>
      <email>bjl@usa.net</email>
    </committer>
  </commit>
  <commit>
    <parents type="array">
      <parent>
        <id>35893657fdbbc46e9fdf7312023fb1feaf07a198</id>
      </parent>
    </parents>
    <author>
      <name>Brian Langenberger</name>
      <email>bjl@usa.net</email>
    </author>
    <url>http://github.com/tuffy/python-audio-tools/commit/db6a1a529933b7f7f992e488292785a130fe9ba5</url>
    <id>db6a1a529933b7f7f992e488292785a130fe9ba5</id>
    <committed-date>2009-06-28T11:20:20-07:00</committed-date>
    <authored-date>2009-06-28T11:20:20-07:00</authored-date>
    <message>Numerous minor documentation updates.</message>
    <tree>dd0cae4e50377625e574a790e7ed6e05ee6150aa</tree>
    <committer>
      <name>Brian Langenberger</name>
      <email>bjl@usa.net</email>
    </committer>
  </commit>
  <commit>
    <parents type="array">
      <parent>
        <id>4b9f439773d89518496132a63c88af37a37f68aa</id>
      </parent>
    </parents>
    <author>
      <name>Brian Langenberger</name>
      <email>bjl@usa.net</email>
    </author>
    <url>http://github.com/tuffy/python-audio-tools/commit/35893657fdbbc46e9fdf7312023fb1feaf07a198</url>
    <id>35893657fdbbc46e9fdf7312023fb1feaf07a198</id>
    <committed-date>2009-06-27T18:59:10-07:00</committed-date>
    <authored-date>2009-06-27T18:59:10-07:00</authored-date>
    <message>Another batch of M4A atom documentation.</message>
    <tree>32ade5f20bffc98d4423c7f71b39845db3e1bf17</tree>
    <committer>
      <name>Brian Langenberger</name>
      <email>bjl@usa.net</email>
    </committer>
  </commit>
  <commit>
    <parents type="array">
      <parent>
        <id>59a3d2f866966d11555a59e8640a10b0e3f1b3bb</id>
      </parent>
    </parents>
    <author>
      <name>Brian Langenberger</name>
      <email>bjl@usa.net</email>
    </author>
    <url>http://github.com/tuffy/python-audio-tools/commit/4b9f439773d89518496132a63c88af37a37f68aa</url>
    <id>4b9f439773d89518496132a63c88af37a37f68aa</id>
    <committed-date>2009-06-27T17:08:22-07:00</committed-date>
    <authored-date>2009-06-27T17:08:22-07:00</authored-date>
    <message>Fix improperly-generated covr M4A atoms.
Add more M4A atom documentation.</message>
    <tree>82243028f9c8fa5d1d80c6ae636849114943cd1b</tree>
    <committer>
      <name>Brian Langenberger</name>
      <email>bjl@usa.net</email>
    </committer>
  </commit>
  <commit>
    <parents type="array">
      <parent>
        <id>427d8d012e4f8d23f4eaeaa593ee0835a1347f38</id>
      </parent>
    </parents>
    <author>
      <name>Brian Langenberger</name>
      <email>bjl@usa.net</email>
    </author>
    <url>http://github.com/tuffy/python-audio-tools/commit/59a3d2f866966d11555a59e8640a10b0e3f1b3bb</url>
    <id>59a3d2f866966d11555a59e8640a10b0e3f1b3bb</id>
    <committed-date>2009-06-27T14:05:54-07:00</committed-date>
    <authored-date>2009-06-27T14:05:54-07:00</authored-date>
    <message>Yet more M4A atom documentation updates.</message>
    <tree>5e5e44e12891a36889f9cb3325b18adf14a59504</tree>
    <committer>
      <name>Brian Langenberger</name>
      <email>bjl@usa.net</email>
    </committer>
  </commit>
  <commit>
    <parents type="array">
      <parent>
        <id>6aa4031ac68c72fa1285ade6bfd38f9efe0df34a</id>
      </parent>
    </parents>
    <author>
      <name>Brian Langenberger</name>
      <email>bjl@usa.net</email>
    </author>
    <url>http://github.com/tuffy/python-audio-tools/commit/427d8d012e4f8d23f4eaeaa593ee0835a1347f38</url>
    <id>427d8d012e4f8d23f4eaeaa593ee0835a1347f38</id>
    <committed-date>2009-06-27T10:04:48-07:00</committed-date>
    <authored-date>2009-06-27T10:04:48-07:00</authored-date>
    <message>Additional M4A atom documentation.</message>
    <tree>d915bd0acd259b7b601b6dac0a2fa320369b3dd2</tree>
    <committer>
      <name>Brian Langenberger</name>
      <email>bjl@usa.net</email>
    </committer>
  </commit>
  <commit>
    <parents type="array">
      <parent>
        <id>cdc4f19a018bb26dd23aa7679fc2f3b24a6b3320</id>
      </parent>
    </parents>
    <author>
      <name>Brian Langenberger</name>
      <email>bjl@usa.net</email>
    </author>
    <url>http://github.com/tuffy/python-audio-tools/commit/6aa4031ac68c72fa1285ade6bfd38f9efe0df34a</url>
    <id>6aa4031ac68c72fa1285ade6bfd38f9efe0df34a</id>
    <committed-date>2009-06-26T11:21:57-07:00</committed-date>
    <authored-date>2009-06-26T11:21:57-07:00</authored-date>
    <message>Add hdlr and smhd atoms to documentation.</message>
    <tree>2a647bd76f1f7df38719b3d2bba674c649d10385</tree>
    <committer>
      <name>Brian Langenberger</name>
      <email>bjl@usa.net</email>
    </committer>
  </commit>
  <commit>
    <parents type="array">
      <parent>
        <id>bdd98ddab3dba902f1b96dc2b91822f55c7a4b68</id>
      </parent>
    </parents>
    <author>
      <name>Brian Langenberger</name>
      <email>bjl@usa.net</email>
    </author>
    <url>http://github.com/tuffy/python-audio-tools/commit/cdc4f19a018bb26dd23aa7679fc2f3b24a6b3320</url>
    <id>cdc4f19a018bb26dd23aa7679fc2f3b24a6b3320</id>
    <committed-date>2009-06-26T11:00:10-07:00</committed-date>
    <authored-date>2009-06-26T11:00:10-07:00</authored-date>
    <message>Update mdhd atom documentation.</message>
    <tree>b4797ae4f5422a8a73e74a08302f6e78851a4d6d</tree>
    <committer>
      <name>Brian Langenberger</name>
      <email>bjl@usa.net</email>
    </committer>
  </commit>
  <commit>
    <parents type="array">
      <parent>
        <id>52dbbfeb2ce340060a0ebc77dda19f00fc89cf18</id>
      </parent>
    </parents>
    <author>
      <name>Brian Langenberger</name>
      <email>bjl@usa.net</email>
    </author>
    <url>http://github.com/tuffy/python-audio-tools/commit/bdd98ddab3dba902f1b96dc2b91822f55c7a4b68</url>
    <id>bdd98ddab3dba902f1b96dc2b91822f55c7a4b68</id>
    <committed-date>2009-06-26T10:12:07-07:00</committed-date>
    <authored-date>2009-06-26T10:12:07-07:00</authored-date>
    <message>Add tkhd atom to documentation.</message>
    <tree>39d5f8ee964d6069ff7d7d0628835165e7e4ee5b</tree>
    <committer>
      <name>Brian Langenberger</name>
      <email>bjl@usa.net</email>
    </committer>
  </commit>
  <commit>
    <parents type="array">
      <parent>
        <id>e9b8eee9313155506ab357e25ffedf552188925f</id>
      </parent>
    </parents>
    <author>
      <name>Brian Langenberger</name>
      <email>bjl@usa.net</email>
    </author>
    <url>http://github.com/tuffy/python-audio-tools/commit/52dbbfeb2ce340060a0ebc77dda19f00fc89cf18</url>
    <id>52dbbfeb2ce340060a0ebc77dda19f00fc89cf18</id>
    <committed-date>2009-06-26T09:34:07-07:00</committed-date>
    <authored-date>2009-06-26T09:34:07-07:00</authored-date>
    <message>Add mvhd atom to documentation.</message>
    <tree>b2f909b8673a5f0c9f52c7ff17cefb1116026bc5</tree>
    <committer>
      <name>Brian Langenberger</name>
      <email>bjl@usa.net</email>
    </committer>
  </commit>
  <commit>
    <parents type="array">
      <parent>
        <id>f4deda2aada9c3bec2755a664c026f519b1d1b8b</id>
      </parent>
    </parents>
    <author>
      <name>Brian Langenberger</name>
      <email>bjl@usa.net</email>
    </author>
    <url>http://github.com/tuffy/python-audio-tools/commit/e9b8eee9313155506ab357e25ffedf552188925f</url>
    <id>e9b8eee9313155506ab357e25ffedf552188925f</id>
    <committed-date>2009-06-26T08:22:45-07:00</committed-date>
    <authored-date>2009-06-26T08:22:45-07:00</authored-date>
    <message>Add ftyp atom documentation.</message>
    <tree>99875a6474f400bf9a646368c64a756585204253</tree>
    <committer>
      <name>Brian Langenberger</name>
      <email>bjl@usa.net</email>
    </committer>
  </commit>
  <commit>
    <parents type="array">
      <parent>
        <id>460f325c3d5d018aa71bfbb5d1ecadf152f82359</id>
      </parent>
    </parents>
    <author>
      <name>Brian Langenberger</name>
      <email>bjl@usa.net</email>
    </author>
    <url>http://github.com/tuffy/python-audio-tools/commit/f4deda2aada9c3bec2755a664c026f519b1d1b8b</url>
    <id>f4deda2aada9c3bec2755a664c026f519b1d1b8b</id>
    <committed-date>2009-06-26T07:27:19-07:00</committed-date>
    <authored-date>2009-06-26T07:27:19-07:00</authored-date>
    <message>Preliminary inclusion of full M4A layout to documentation.</message>
    <tree>8dbb7422d45cb172f9666630f1128f22fd96bd3d</tree>
    <committer>
      <name>Brian Langenberger</name>
      <email>bjl@usa.net</email>
    </committer>
  </commit>
  <commit>
    <parents type="array">
      <parent>
        <id>519218aa50e699fc5ac5135a31ca79cf5343323c</id>
      </parent>
    </parents>
    <author>
      <name>Brian Langenberger</name>
      <email>bjl@usa.net</email>
    </author>
    <url>http://github.com/tuffy/python-audio-tools/commit/460f325c3d5d018aa71bfbb5d1ecadf152f82359</url>
    <id>460f325c3d5d018aa71bfbb5d1ecadf152f82359</id>
    <committed-date>2009-06-25T12:12:20-07:00</committed-date>
    <authored-date>2009-06-25T12:12:20-07:00</authored-date>
    <message>Minor cleanups.</message>
    <tree>bc4527d3ba57268750cb4f00a799f18c77610d5d</tree>
    <committer>
      <name>Brian Langenberger</name>
      <email>bjl@usa.net</email>
    </committer>
  </commit>
  <commit>
    <parents type="array">
      <parent>
        <id>4a6b90fdad415400ef80d05a49b9b5ccda47b88c</id>
      </parent>
    </parents>
    <author>
      <name>Brian Langenberger</name>
      <email>bjl@usa.net</email>
    </author>
    <url>http://github.com/tuffy/python-audio-tools/commit/519218aa50e699fc5ac5135a31ca79cf5343323c</url>
    <id>519218aa50e699fc5ac5135a31ca79cf5343323c</id>
    <committed-date>2009-06-24T19:00:32-07:00</committed-date>
    <authored-date>2009-06-24T19:00:32-07:00</authored-date>
    <message>Fix tracklint M4A test.
Minor tweaks for i18n purposes.</message>
    <tree>cf1dc5690d2ddb0918193b2d12cbf9dc02e1bc8f</tree>
    <committer>
      <name>Brian Langenberger</name>
      <email>bjl@usa.net</email>
    </committer>
  </commit>
  <commit>
    <parents type="array">
      <parent>
        <id>5d1ec9b06646190488127f7d02f071d4859b16fc</id>
      </parent>
    </parents>
    <author>
      <name>Brian Langenberger</name>
      <email>brian@laptop.(none)</email>
    </author>
    <url>http://github.com/tuffy/python-audio-tools/commit/4a6b90fdad415400ef80d05a49b9b5ccda47b88c</url>
    <id>4a6b90fdad415400ef80d05a49b9b5ccda47b88c</id>
    <committed-date>2009-06-24T14:49:59-07:00</committed-date>
    <authored-date>2009-06-24T14:49:59-07:00</authored-date>
    <message>Remove unused Qt_Meta_Atom object</message>
    <tree>ee0ade70f576a42047eb498ff90df2936d78c16b</tree>
    <committer>
      <name>Brian Langenberger</name>
      <email>brian@laptop.(none)</email>
    </committer>
  </commit>
  <commit>
    <parents type="array">
      <parent>
        <id>4ef79e00a6c36a0ad4aad592046b3ec98175daa3</id>
      </parent>
    </parents>
    <author>
      <name>Brian Langenberger</name>
      <email>bjl@usa.net</email>
    </author>
    <url>http://github.com/tuffy/python-audio-tools/commit/5d1ec9b06646190488127f7d02f071d4859b16fc</url>
    <id>5d1ec9b06646190488127f7d02f071d4859b16fc</id>
    <committed-date>2009-06-24T11:38:46-07:00</committed-date>
    <authored-date>2009-06-24T11:38:46-07:00</authored-date>
    <message>Finally fix M4AMetaData update bug by porting '----' atoms between files.
Nudge version to 2.12beta2.
This M4A reorganization leaves some dead code that needs cleaning,
but this should be the last major update before the final release
assuming no other bugs show up.</message>
    <tree>105b692e2483b2274c411bd87602c5424e147ae9</tree>
    <committer>
      <name>Brian Langenberger</name>
      <email>bjl@usa.net</email>
    </committer>
  </commit>
  <commit>
    <parents type="array">
      <parent>
        <id>56ab801804c26508761c8ba830edfb71659a0346</id>
      </parent>
    </parents>
    <author>
      <name>Brian Langenberger</name>
      <email>bjl@usa.net</email>
    </author>
    <url>http://github.com/tuffy/python-audio-tools/commit/4ef79e00a6c36a0ad4aad592046b3ec98175daa3</url>
    <id>4ef79e00a6c36a0ad4aad592046b3ec98175daa3</id>
    <committed-date>2009-06-24T10:56:11-07:00</committed-date>
    <authored-date>2009-06-24T10:56:11-07:00</authored-date>
    <message>M4AMetaData now passes all the old and updated unit tests, save one.
The iTunes-encoded M4A still doesn't generate the correct amount of samples
when rewritten.  I'm almost certain this is a matter of it needing '----' atoms
from the original file when setting metadata.  But now that those are being
read/written correctly during round-trips, these should be easy to port
(analagous to how FLAC's STREAMINFO is ported when metadata is rewritten).</message>
    <tree>eac84bb039bcedca77e93c3124106c8ac7ccac0f</tree>
    <committer>
      <name>Brian Langenberger</name>
      <email>bjl@usa.net</email>
    </committer>
  </commit>
  <commit>
    <parents type="array">
      <parent>
        <id>305c90e4fce254278753017bb552557cb83948ef</id>
      </parent>
    </parents>
    <author>
      <name>Brian Langenberger</name>
      <email>bjl@usa.net</email>
    </author>
    <url>http://github.com/tuffy/python-audio-tools/commit/56ab801804c26508761c8ba830edfb71659a0346</url>
    <id>56ab801804c26508761c8ba830edfb71659a0346</id>
    <committed-date>2009-06-24T09:31:29-07:00</committed-date>
    <authored-date>2009-06-24T09:31:29-07:00</authored-date>
    <message>Cleanups to the M4AMetaData atom creators.</message>
    <tree>cbd680b5869a01981e8c16217f03dbbdc3b05454</tree>
    <committer>
      <name>Brian Langenberger</name>
      <email>bjl@usa.net</email>
    </committer>
  </commit>
  <commit>
    <parents type="array">
      <parent>
        <id>9fa7585df450a0d7e695b25a42d02edddbf4a2ff</id>
      </parent>
    </parents>
    <author>
      <name>Brian Langenberger</name>
      <email>bjl@usa.net</email>
    </author>
    <url>http://github.com/tuffy/python-audio-tools/commit/305c90e4fce254278753017bb552557cb83948ef</url>
    <id>305c90e4fce254278753017bb552557cb83948ef</id>
    <committed-date>2009-06-24T09:23:38-07:00</committed-date>
    <authored-date>2009-06-24T09:23:38-07:00</authored-date>
    <message>Additional M4AMetaData fixes, including test updates.</message>
    <tree>9cf196a3a8c84441e5e0edf5d77e08c20d7cff30</tree>
    <committer>
      <name>Brian Langenberger</name>
      <email>bjl@usa.net</email>
    </committer>
  </commit>
  <commit>
    <parents type="array">
      <parent>
        <id>5c7430aaf1806e38f5a68d283a26a80476e6fc3e</id>
      </parent>
    </parents>
    <author>
      <name>Brian Langenberger</name>
      <email>bjl@usa.net</email>
    </author>
    <url>http://github.com/tuffy/python-audio-tools/commit/9fa7585df450a0d7e695b25a42d02edddbf4a2ff</url>
    <id>9fa7585df450a0d7e695b25a42d02edddbf4a2ff</id>
    <committed-date>2009-06-24T09:05:30-07:00</committed-date>
    <authored-date>2009-06-24T09:05:30-07:00</authored-date>
    <message>Additional conversion of M4AMetaData to new internal representation.</message>
    <tree>b56ea14acc3b44580ac005a60695312edaa52dce</tree>
    <committer>
      <name>Brian Langenberger</name>
      <email>bjl@usa.net</email>
    </committer>
  </commit>
  <commit>
    <parents type="array">
      <parent>
        <id>e42d7aa5ceaaa9abb62218552047c7df9fd6a4db</id>
      </parent>
    </parents>
    <author>
      <name>Brian Langenberger</name>
      <email>bjl@usa.net</email>
    </author>
    <url>http://github.com/tuffy/python-audio-tools/commit/5c7430aaf1806e38f5a68d283a26a80476e6fc3e</url>
    <id>5c7430aaf1806e38f5a68d283a26a80476e6fc3e</id>
    <committed-date>2009-06-23T10:03:33-07:00</committed-date>
    <authored-date>2009-06-23T10:03:33-07:00</authored-date>
    <message>Preliminary redesign of M4AMetaData object.
It's essentially the contents of the ILST atom, which is a container for
__ILST_Atom__ objects (which, themselves, are atom containers).
Modifications to M4AMetaData will then be transferred directly
to the sub and sub-sub-atoms.
set_metadata() will then rebuild the META atom.
Thus, M4AMetaData will likely no longer act as a dict and some tests
will need readjusting, but it should be improved overall.</message>
    <tree>e083327fb24269017b323d139b5042a14b185697</tree>
    <committer>
      <name>Brian Langenberger</name>
      <email>bjl@usa.net</email>
    </committer>
  </commit>
  <commit>
    <parents type="array">
      <parent>
        <id>e372f0c0bc33f53bc82d6323a9076e026ecc2160</id>
      </parent>
    </parents>
    <author>
      <name>Brian Langenberger</name>
      <email>bjl@usa.net</email>
    </author>
    <url>http://github.com/tuffy/python-audio-tools/commit/e42d7aa5ceaaa9abb62218552047c7df9fd6a4db</url>
    <id>e42d7aa5ceaaa9abb62218552047c7df9fd6a4db</id>
    <committed-date>2009-06-23T08:45:37-07:00</committed-date>
    <authored-date>2009-06-23T08:45:37-07:00</authored-date>
    <message>Further refinements on the META and ILST atom Constructs.
The M4AMetaData object will also need to be adjusted to more closely
match the underlying implementation.</message>
    <tree>bb64286a1c0dd7026330aee7055f2427ec524f9c</tree>
    <committer>
      <name>Brian Langenberger</name>
      <email>bjl@usa.net</email>
    </committer>
  </commit>
  <commit>
    <parents type="array">
      <parent>
        <id>304690afb38cfc5bbc3dcf3a5bc115c2e2ab7b8c</id>
      </parent>
    </parents>
    <author>
      <name>Brian Langenberger</name>
      <email>bjl@usa.net</email>
    </author>
    <url>http://github.com/tuffy/python-audio-tools/commit/e372f0c0bc33f53bc82d6323a9076e026ecc2160</url>
    <id>e372f0c0bc33f53bc82d6323a9076e026ecc2160</id>
    <committed-date>2009-06-23T06:39:45-07:00</committed-date>
    <authored-date>2009-06-23T06:39:45-07:00</authored-date>
    <message>Add preliminary support for ILST and META atoms as Construct objects.
This should allow for better round-trip semantics which, in turn,
may eliminate the lost first frame during decoding.</message>
    <tree>e35174331b6bcce35a631341beddeb5e26456d97</tree>
    <committer>
      <name>Brian Langenberger</name>
      <email>bjl@usa.net</email>
    </committer>
  </commit>
  <commit>
    <parents type="array">
      <parent>
        <id>8a34368f6f47edbb2f46127082a07133ac7a5de1</id>
      </parent>
    </parents>
    <author>
      <name>Brian Langenberger</name>
      <email>bjl@usa.net</email>
    </author>
    <url>http://github.com/tuffy/python-audio-tools/commit/304690afb38cfc5bbc3dcf3a5bc115c2e2ab7b8c</url>
    <id>304690afb38cfc5bbc3dcf3a5bc115c2e2ab7b8c</id>
    <committed-date>2009-06-22T18:17:51-07:00</committed-date>
    <authored-date>2009-06-22T18:17:51-07:00</authored-date>
    <message>Tweak META atom rewriting to be less destructive.
In addition, ILST's sub-atoms should be saved internally much closer
to their actual representation.
This should allow for proper round-trip modifications.</message>
    <tree>993d487c0efaced81bd205c5d7669062eb9e2b69</tree>
    <committer>
      <name>Brian Langenberger</name>
      <email>bjl@usa.net</email>
    </committer>
  </commit>
  <commit>
    <parents type="array">
      <parent>
        <id>12bac5fcf265768ef01526375ec64b078be430de</id>
      </parent>
    </parents>
    <author>
      <name>Brian Langenberger</name>
      <email>bjl@usa.net</email>
    </author>
    <url>http://github.com/tuffy/python-audio-tools/commit/8a34368f6f47edbb2f46127082a07133ac7a5de1</url>
    <id>8a34368f6f47edbb2f46127082a07133ac7a5de1</id>
    <committed-date>2009-06-21T18:50:37-07:00</committed-date>
    <authored-date>2009-06-21T18:50:37-07:00</authored-date>
    <message>Minor debugging tweaks to help in M4A metadata handling.
iTunes-generated M4As still aren't being tagged properly.
It seems as if the first frame's worth of samples is being lost
even though the STCO atom is being set correctly and the MDAT atom
is unchanged.  It's a tough nut to crack since there's so few other changes.

I used to believe M4A's scheme of handling metadata in the same
chunking method as its main data was a fairly clever scheme that
reuses file parsing code (in contrast to something like FLAC,
in which metadata handling is very different from frame handling).

But in reality, this intermixing data and metadata makes M4As extremely fragile.
Thus, one misstep in metadata handling can render the entire file unplayable.</message>
    <tree>3dc62f2aec60b148866d0caaa05bfcfc5e061d97</tree>
    <committer>
      <name>Brian Langenberger</name>
      <email>bjl@usa.net</email>
    </committer>
  </commit>
  <commit>
    <parents type="array">
      <parent>
        <id>f379a849290020d075a7c537fcfe0eadf53c4c80</id>
      </parent>
    </parents>
    <author>
      <name>Brian Langenberger</name>
      <email>bjl@usa.net</email>
    </author>
    <url>http://github.com/tuffy/python-audio-tools/commit/12bac5fcf265768ef01526375ec64b078be430de</url>
    <id>12bac5fcf265768ef01526375ec64b078be430de</id>
    <committed-date>2009-06-21T08:33:51-07:00</committed-date>
    <authored-date>2009-06-21T08:33:51-07:00</authored-date>
    <message>Preliminary M4A tests in place.
Though adding actual M4A files to the test suite will bloat the source,
this is the only really good way to test them properly.</message>
    <tree>5eb71776c04a72bf6e1e81c2b94a49787c317dd5</tree>
    <committer>
      <name>Brian Langenberger</name>
      <email>bjl@usa.net</email>
    </committer>
  </commit>
  <commit>
    <parents type="array">
      <parent>
        <id>83e19d384c08b6779ee9180ea3d90ad45717f0eb</id>
      </parent>
    </parents>
    <author>
      <name>Brian Langenberger</name>
      <email>bjl@usa.net</email>
    </author>
    <url>http://github.com/tuffy/python-audio-tools/commit/f379a849290020d075a7c537fcfe0eadf53c4c80</url>
    <id>f379a849290020d075a7c537fcfe0eadf53c4c80</id>
    <committed-date>2009-06-20T13:03:23-07:00</committed-date>
    <authored-date>2009-06-20T13:03:23-07:00</authored-date>
    <message>Critical M4A metadata tagging fix.
STCO offset lists start from what's probably the first AAC sync frame.
In Nero-generated files, that's always 0x10 bytes from the top of the
MDAT atom.  In iTunes-generated files, it's only 0x08 bytes from the top.
set_metadata() now looks for the first 0x21 byte, which is probably
a sync signature of some sort.</message>
    <tree>43c7302e5dcd4787246968aa884b49e8c7063b0e</tree>
    <committer>
      <name>Brian Langenberger</name>
      <email>bjl@usa.net</email>
    </committer>
  </commit>
  <commit>
    <parents type="array">
      <parent>
        <id>564a8b75c3d3e03e41c938cff5bb3fdcce83c15f</id>
      </parent>
    </parents>
    <author>
      <name>Brian Langenberger</name>
      <email>bjl@usa.net</email>
    </author>
    <url>http://github.com/tuffy/python-audio-tools/commit/83e19d384c08b6779ee9180ea3d90ad45717f0eb</url>
    <id>83e19d384c08b6779ee9180ea3d90ad45717f0eb</id>
    <committed-date>2009-06-19T11:14:13-07:00</committed-date>
    <authored-date>2009-06-19T11:14:13-07:00</authored-date>
    <message>Documentation updates.</message>
    <tree>73d82cd9f643589d61d68e198b4ab3da5d06bad0</tree>
    <committer>
      <name>Brian Langenberger</name>
      <email>bjl@usa.net</email>
    </committer>
  </commit>
</commits>
