)]}'
{
  "log": [
    {
      "commit": "500e510c7bd96a3d2959cdd858db4045b74a0e1a",
      "tree": "1bc7df57dc78a0db2d7c9fb3b0945ff5e681328e",
      "parents": [
        "0d681abd16873a265a10aee1e9ae8fa062309de3"
      ],
      "author": {
        "name": "Mike J. Chen",
        "email": "mjchen@google.com",
        "time": "Mon Aug 15 13:28:26 2011 -0700"
      },
      "committer": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Fri Oct 28 10:14:48 2011 -0400"
      },
      "message": "Media framework changes for Tungsten.\n\nSquashed merge from master-tungsten of the following changes:\n\ncommit 73d09e18c4557e583a1684d44d598a1a02fd0cf2\nAuthor: John Grossman \u003cjohngro@google.com\u003e\nDate:   Mon Jun 20 13:57:44 2011 -0700\n\n    Remove TungstenMisc and rename LinearTransform\n\n    Change-Id: Ie8aa3e24e09fdbf6ef8996c26deb9c5640e20d1b\n\ncommit 3114aabe76ad733b59929d87e49c68229f5ae2e8\nAuthor: John Grossman \u003cjohngro@google.com\u003e\nDate:   Fri Jun 3 10:47:16 2011 -0700\n\n    Name changes and spelling fixes.\n\n    + Replace the term TungstenTime with the Eugene-approved term CommonTime.\n    + Fix a spelling error in a comment I noticed.\n\n    Change-Id: I8c10d618206826d16055f78c7724e24443bb03fd\n\ncommit cbf2903ab6893b6e662514e2f6d670e268a419df\nAuthor: John Grossman \u003cjohngro@google.com\u003e\nDate:   Fri Apr 15 09:27:54 2011 -0700\n\n    Migrate Tungsten code from the HC-Tungsten to the Master-Tungsten branch.\n\n    Change-Id: I95372d913a0761d90168edb4016f5ece0ea74502\n\ncommit bc7c46aa629f9883e959ef23de8da297f9eb508b\nAuthor: Jason Simmons \u003cjsimmons@google.com\u003e\nDate:   Mon Jun 20 13:59:17 2011 -0700\n\n    Create a separate class for timed AudioTracks\n\ncommit 43be3231034ff8537fdd84422a7954780038671f\nAuthor: John Grossman \u003cjohngro@google.com\u003e\nDate:   Mon Jun 27 18:59:12 2011 -0700\n\n    Move libaah_rtp over from the vendor directory.\n\n    Also move factor PipeEvent out into utils.\n\n    Change-Id: Id3877c66efe22d771cf3ef4877107e431b828e37\n\ncommit 17526eb3148c9c3d4365b6d5b47e8dc13bca71b6\nAuthor: John Grossman \u003cjohngro@google.com\u003e\nDate:   Mon Jun 27 17:06:49 2011 -0700\n\n    Name changes for the TRTP Players s/tungsten/aah/g\n\n    Change-Id: I55e9ad13003f6aa6a36955b54426a7efbe31ac51\n\ncommit 423fc1bfc0fda799c421a650c83c4b9293b1a08c\nAuthor: Jason Simmons \u003cjsimmons@google.com\u003e\nDate:   Mon Jun 20 17:56:09 2011 -0700\n\n    More timed AudioFlinger changes requested by code review:\n    * change trimTimedBufferQueue to trimTimedBufferQueue_l\n    * create one timed audio buffer heap per client process instead of one per track\n    * grow the silence buffer on demand\n    * some error handling fixes in timed getNextBuffer\n    * calculate the next output PTS in all mixer and track hooks\n\n    Change-Id: Ifc51a08b55029b7c48902ab2f22933ad7bafe1ad\n\ncommit a148e2674b1d3cb73289b82b85c333f0a66824a9\nAuthor: John Grossman \u003cjohngro@google.com\u003e\nDate:   Mon Jun 20 17:02:24 2011 -0700\n\n    Move the A@H time service into frameworks/base\n\n    Change-Id: I5c570cde70e8931e205516cb33517585804ce841\n\ncommit dfa438fa49bdaeeb2ec5fd0d17b30d881608b6b1\nAuthor: John Grossman \u003cjohngro@google.com\u003e\nDate:   Mon Jun 20 11:55:36 2011 -0700\n\n    Fix the build after Mike\u0027s code moving.\n\n    Change-Id: Ia883643ded252168bcc5a70584ab6ce97bb05266\n\ncommit 04489474ec8e73efe1bf52918831f41659033162\nAuthor: John Grossman \u003cjohngro@google.com\u003e\nDate:   Fri Jun 17 14:19:50 2011 -0700\n\n    Refactor the local/common clock services.\n\n    This change is one of a set of 5 changes made to different repositories.  Look\n    for this comment in all of them.\n\n    Refactor the local/common clock services in tungsten to match android best\n    practice.  Notable changes include\n\n    + The kernel no longer knows anything about common time.  Common time has been\n      moved completely up into user land.  This has an impact on the accuracy of the\n      timesync debugging code, and the netfilter assisted approach to network based\n      timesync is going to have to be modified.\n    + The timesync driver used by A@H is now just local time driver.\n    + The kernel no longer needs access to the linear transform math code, and it\n      has been removed.\n    + A new HAL has been introduced to expose the concept of local time to the\n      system.\n    + A non-slewable stub implementation of the local time HAL based on\n      CLOCK_MONOTONIC has been added.\n    + The TungstenTime library has been eliminated.  Its functionality has been\n      distributed among the common time binder service, the local time hal and the\n      linear transform utility code.\n    + All clients of the old TungstenTime library have been changed to be clients of\n      the binder service, the hal and the utility code.\n    + The reset_tt utilities have been removed, they no longer have a purpose in the\n      system.\n    + more progress has been made in eliminating the word \"tungsten\" from the code.\n\n    Things left to do include\n    + Finish getting rid of tungsten from the time service.\n    + Move the time service into the framework; AudioFlinger\u0027s new timed mode\n      depends on it and the service cannot continue to live in vendor tungsten.\n\n    Change-Id: I999b6cfb4a9d267818a86d747c35eecfc6693101\n\ncommit d48194545eed1116a84d81e2fb53315d2b0701a7\nAuthor: Jason Simmons \u003cjsimmons@google.com\u003e\nDate:   Thu Jun 16 14:22:46 2011 -0700\n\n    Change the interface of the AudioMixer and AudioBufferProvider to accept a presentation timestamp\n\n    Change-Id: Ice2df5628d45a7f77100e7008103b35b3d3160a4\n\ncommit 02561419db82b01ffb28df38000716c612988427\nAuthor: John Grossman \u003cjohngro@google.com\u003e\nDate:   Tue May 10 14:00:21 2011 -0700\n\n    Put in a hack for controling master volume in the policy manager.\n    Fix initial master volume reporting.\n\n    Change-Id: Ia6caf2bbc6083c5f99fab852baa40fff10fc5fc7\n\ncommit 549cdc3ba115dc654cdade261fb055c72c6cdb79\nAuthor: John Grossman \u003cjohngro@google.com\u003e\nDate:   Wed May 4 11:46:17 2011 -0700\n\n    Make certain the logic for computing the output stream mixing point is hardened\n    against underflow and overflow when input and output sample rates don\u0027t match.\n\n    Change-Id: I5ebea07c9938107b435bec7413418622767e4e16\n\ncommit 8043d8ed63f51e76d452d22be7d453d4a7794530\nAuthor: Jason Simmons \u003cjsimmons@google.com\u003e\nDate:   Wed Apr 27 18:06:27 2011 -0700\n\n    Add the patch for timed audio support to the mono resampler\n\n    Change-Id: I526f34ae9d1e8e3b0ed2fb05af3d024d5c5fe711\n\ncommit 2be89486ef23f0b0b0cc2dc25a4c0ee691043f00\nAuthor: John Grossman \u003cjohngro@google.com\u003e\nDate:   Wed Apr 27 10:38:57 2011 -0700\n\n    Extend the AudioHWInterface to allow it to specify the initial master volume used by AudioFlinger.\n\n    Change-Id: I8823330801c927494cf7ca31a6b8f9264fbfbb26\n\ncommit ff89a4d5e37e6a05a2b03f79ab4e97833dd66393\nAuthor: John Grossman \u003cjohngro@google.com\u003e\nDate:   Wed Apr 27 09:07:14 2011 -0700\n\n    Fix an issue with inconsistent volume reporting.\n\n    Changed masterVolume() to return the same value as the last call\n    to setMasterVolume when the HW layer is implementing master\n    volume control.  The masterVolume/setMasterVolume API seems to be\n    an idea which was abandonded a long time ago; as of today the\n    system only ever sets it to 1.0 at startup and then never changes\n    it.  Until we can figure out how the concept of external\n    amplifier gain control fits into the Android audio framework,\n    Tungsten is exposing this API via a hack-tastic invoke back door\n    in the TungstenRXPlayer and needs the getter/setter results to be\n    consistent.\n\n    Change-Id: I2ac730fa8fc9ee28c88f1a8e6f2e493eb5b65544\n\ncommit 086511b2d19cceb976747ac23e12b73fc7c28bea\nAuthor: Jason Simmons \u003cjsimmons@google.com\u003e\nDate:   Mon Apr 25 16:07:19 2011 -0700\n\n    Add handling of timed audio tracks in the generic resampling mixer\n\n    Change-Id: Ic3be1d21b1117f1b233808be543c28a0dcec4792\n\nChange-Id: I6ec5d2bca9b8ebc0acd395a7dd92e1a48fcdfa9b\nSigned-off-by: Mike J. Chen \u003cmjchen@google.com\u003e\nSigned-off-by: John Grossman \u003cjohngro@google.com\u003e\nSigned-off-by: Jason Simmons \u003cjsimmons@google.com\u003e\n"
    },
    {
      "commit": "0d255b2d9061ba31f13ada3fc0f7e51916407176",
      "tree": "4df26e48710542386bddab7a0d1cbfa5d6835ac0",
      "parents": [
        "65580f9adf6c4d98449ad0716488f9fe3869aa5a"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Tue May 24 15:53:33 2011 -0700"
      },
      "committer": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Wed Jun 01 10:55:29 2011 -0700"
      },
      "message": "Use channel mask instead of channel count for track creation\n\nRecord and playback objects (resp AudioRecord and AudioTrack)\nare created using a channel mask, but this information is lost\nin the mixer because only the channel count is known to\nAudioFlinger. A channel count can always be derived from a\nchannel mask.\n\nThe change consists in:\n- disambiguiting variable names for channel masks and counts\n- passing the mask information from the client to AudioFlinger\n and the mixer.\n- when using the DIRECT ouput, only verifying the format of\n the track is compatible with the output\u0027s for PCM.\n\nChange-Id: I50d87bfb7d7afcabdf5f12d4ab75ef3a54132c0e\n"
    },
    {
      "commit": "243f5f91755c01614a8cafe90b0806396e22d553",
      "tree": "d6f4e9f1593f468967f75a82f21d8058a93c5ed1",
      "parents": [
        "8ddeebb93cb41e7a8e9fe763afb6c6016b21fa61"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Feb 28 16:52:51 2011 -0800"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Feb 28 16:52:51 2011 -0800"
      },
      "message": "Fix issue 3479042.\n\nThe problem is that when an AudioRecord using the resampler is restarted,\nthe resampler state is not reset (as there is no reset function in the resampler).\nThe consequence is that the first time the record thread loop runs, it calls the resampler\nwhich consumes the remaining data in the input buffer and when this buffer is released\nthe input index is incremented over the limit.\n\nThe fix consists in implementing a reset function in the resampler.\n\nA similar problem was also present for playback but unoticed because the track buffer is always\ndrained by the mixer when a track stops. The only problem for playback was that the initial\nphase fraction was wrong when restarting a track after stop (it was correct after a pause).\n\nChange-Id: Ifc2585d685f4402d29f4afc63f6efd1d69265de3\n"
    },
    {
      "commit": "2151d7b8c2dd77c9887691db30396937be778141",
      "tree": "d2e10de09bc049edf1d0568a392855dfd765c3d0",
      "parents": [
        "13e05b3f569965d97ec7d7f65e4cd46c6a22c23d"
      ],
      "author": {
        "name": "Yuuhi Yamaguchi",
        "email": "yuuhi.x.yamaguchi@sonyericsson.com",
        "time": "Fri Feb 04 15:24:34 2011 +0100"
      },
      "committer": {
        "name": "Johan Redestig",
        "email": "johan.redestig@sonyericsson.com",
        "time": "Fri Feb 04 15:24:34 2011 +0100"
      },
      "message": "Initialize resampling buffer per track.\n\nWhen resampling too short sound, AudioMixer uses previous\ntracks buffer. So we re-initialize the temporary buffer per\nloop to avoid it.\n\nChange-Id: I55a59a3b14faa8445e09c450478fe79cef704760\n"
    },
    {
      "commit": "65ab47156e1c7dfcd8cc4266253a5ff30219e7f0",
      "tree": "da088916c7cadadcddf47467f20cc8b0b6ff7f41",
      "parents": [
        "98fe12aba55e8b8bb14b23c4c3cdba9a99a9753c"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Wed Jul 14 17:59:35 2010 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Wed Jul 14 17:59:35 2010 -0700"
      },
      "message": "move native services under services/\n\nmoved surfaceflinger, audioflinger, cameraservice\n\nall native services should now reside in this location.\n\nChange-Id: Iee42b83dd2a94c3bf5107ab0895fe2dfcd5337a8\n"
    }
  ]
}
