)]}'
{
  "log": [
    {
      "commit": "16f3201d2fe99a39a8a9bb478528ae9003645dfe",
      "tree": "44cfe4ab9e4004df968b8334e3928c00e78f412a",
      "parents": [
        "44173e2805eba1c5812dd39c02e3964ebdd2104e",
        "11454092e4a94d3c8b4576c981595339abdfac0d"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Sep 17 15:07:10 2013 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Sep 17 15:07:10 2013 -0700"
      },
      "message": "am 11454092: am 18f86140: Merge \"Fix underruns when fast track denied due to SRC\" into klp-dev\n\n* commit \u002711454092e4a94d3c8b4576c981595339abdfac0d\u0027:\n  Fix underruns when fast track denied due to SRC\n"
    },
    {
      "commit": "ce8828a016b082f730152af2204b8ea3610dc1ec",
      "tree": "aad0c32a17516519b22bcea0d4f2fa7c81c61d28",
      "parents": [
        "d176ec1e371a686c58385692a28da677e398c302"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Sep 16 18:07:38 2013 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Sep 17 11:24:02 2013 -0700"
      },
      "message": "Fix underruns when fast track denied due to SRC\n\nOpenSL ES requests a fast track.  If sample rate conversion is needed,\nthe request is denied by server, and a larger client buffer is used\nto handle the higher latency of a normal track.  However the client\nnotification period was calculated based on buffer being divided into\n2 sub-buffers.  That resulted in the notification period being too long.\nThe server pulls chunks that are smaller than half the total buffer.\nSo now the client uses 3 sub-buffers when there is SRC.\n\nAlso removed the \u0027defer wake\u0027 optimization because it was incorrect.\nThis optimization attempted to reduce the number of wakeups of client,\nwhen server releaseBuffer knows that another releaseBuffer will be\nfollowing.  But there is no way for the first releaseBuffer to predict\nhow soon the second releaseBuffer will occur.  In some cases it was\na long time, and the client underran.  So now the client is woken up\nimmediately if the total number of available frames to client is \u003e\u003d\nthe minimum number the client wants to see (the notification period).\n\nAlso fix bug where minimum frame count was not being used in the\ncalculation of notification period.\n\nBug: 10342804\nChange-Id: I3c246f4e7bc3684a344f2cf08268dc082e338e2a\n"
    },
    {
      "commit": "b4e04abed8d82d3bb31861740542e161df91321a",
      "tree": "feff444ef6c898fa503edd90d8bf66af30f23c19",
      "parents": [
        "f18224ea830d6740ca195232d3492412d5bdab67",
        "1024ffd706ca10591e4cc8ebcd92605a00b516d0"
      ],
      "author": {
        "name": "Zhijun He",
        "email": "zhijunhe@google.com",
        "time": "Tue Sep 10 12:05:35 2013 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Sep 10 12:05:35 2013 -0700"
      },
      "message": "am 1024ffd7: am 7f9551f7: MediaMuxer: Hook up setLocation method\n\n* commit \u00271024ffd706ca10591e4cc8ebcd92605a00b516d0\u0027:\n  MediaMuxer: Hook up setLocation method\n"
    },
    {
      "commit": "7f9551f75eedb3e4e1fe8feaaba48d8080635fc4",
      "tree": "2723b3ac82ab83025a52fbc8462f58875df0d94c",
      "parents": [
        "6220f993541b0317e6ace3c410dd35a8d76e30bc"
      ],
      "author": {
        "name": "Zhijun He",
        "email": "zhijunhe@google.com",
        "time": "Mon Sep 09 15:48:58 2013 -0700"
      },
      "committer": {
        "name": "Zhijun He",
        "email": "zhijunhe@google.com",
        "time": "Mon Sep 09 17:24:06 2013 -0700"
      },
      "message": "MediaMuxer: Hook up setLocation method\n\nThis method is needed when mediamuxer is used for camera video recording.\n\nBug: 10594784\nChange-Id: I9bd006a07e5e2ac7019849e3f4f7cf7b8356d669\n"
    },
    {
      "commit": "499ab9e17d8bd8b521b567e47c9a1b9421567e2a",
      "tree": "a50e386dc948e35559d6c27bd0c299747c323634",
      "parents": [
        "f040fec6317c04ab4f91315e4c46f51e47788238",
        "c2cfaf78f93361e2edb4af9930a73904d261d198"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Sep 06 13:33:00 2013 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Sep 06 13:33:00 2013 -0700"
      },
      "message": "am c2cfaf78: am a82975e0: Merge \"Effects Factory changes for effects offload\" into klp-dev\n\n* commit \u0027c2cfaf78f93361e2edb4af9930a73904d261d198\u0027:\n  Effects Factory changes for effects offload\n"
    },
    {
      "commit": "284c17e73bbff51cb5b1adcee98386d47733757a",
      "tree": "d400f398fd4f2e8e383256973185b7dae243f92f",
      "parents": [
        "a19912554f3779fac0c341ac702227bf4b5fe399"
      ],
      "author": {
        "name": "jpadmana",
        "email": "rpadmanaban.jayashree@gmail.com",
        "time": "Tue Jun 04 16:08:29 2013 +0530"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Sep 06 10:33:03 2013 -0700"
      },
      "message": "Effects Factory changes for effects offload\n\naudio_effects.conf - commented changes to illustrate the\naddition of Proxy and sub effects to the conf file\n\nAdded an effectFactoryApi - EffectGetSubEffects for querying the\nsub effect descriptors from the factory. This api is used by the Proxy\nto get the sub effects\n\nAdded functions and data structures in factory code for\nloading the sub effects\n\ngSubEffectList - has the Proxies and their corresponding sub effects\n\n- addSubEffect() - reads a sub effect node and adds to the gSubEffectList\n- findSubEffect() - searches through the gSubEffectList to find a SubEffect\n\nBug: 8174034.\n\nChange-Id: I25b0c62b2ad523a52337128b51469e628209ea3e\nSigned-off-by: jpadmana \u003crpadmanaban.jayashree@gmail.com\u003e\n"
    },
    {
      "commit": "83da1fcb120a2d09642be74cf9091ab321a60c8f",
      "tree": "65347c418aed813190c0e265838933ff2e055c38",
      "parents": [
        "4167457a22f311fea2bd94c0916607eed0541b0b",
        "c74630bcbdc6f9a88a019b7ced6fbe7a58675ea2"
      ],
      "author": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Wed Sep 04 15:14:33 2013 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Sep 04 15:14:33 2013 -0700"
      },
      "message": "am c74630bc: am a1991255: Merge \"wifi-display: do not use HDCP\\\u0027s encryptNative method if its unsupported\" into klp-dev\n\n* commit \u0027c74630bcbdc6f9a88a019b7ced6fbe7a58675ea2\u0027:\n  wifi-display: do not use HDCP\u0027s encryptNative method if its unsupported\n"
    },
    {
      "commit": "a19912554f3779fac0c341ac702227bf4b5fe399",
      "tree": "eae1ed9c538fb796181f512770d0cb0796915e7d",
      "parents": [
        "7a4c2711d7a85ce962b9d18fee41975f9c574c0b",
        "ec3acca4a75fc4adc076b56751124f507b419622"
      ],
      "author": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Wed Sep 04 22:08:00 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Sep 04 22:08:00 2013 +0000"
      },
      "message": "Merge \"wifi-display: do not use HDCP\u0027s encryptNative method if its unsupported\" into klp-dev"
    },
    {
      "commit": "1462a2b84a578b5541683c824e0f77ebf2aa82ae",
      "tree": "a8d522f1f7fe438432bacb0b3f6eacaae2257e20",
      "parents": [
        "f701ddad1a4f58c368e3b642530849dcb57bb22c",
        "a4a82c5f8f3eccfa10ce30a52cbb4b1c5c983282"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Sep 03 16:11:24 2013 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Sep 03 16:11:24 2013 -0700"
      },
      "message": "am a4a82c5f: am 6466c9e6: Add ExtendedAudioBufferProvider::framesReleased and onTimestamp\n\n* commit \u0027a4a82c5f8f3eccfa10ce30a52cbb4b1c5c983282\u0027:\n  Add ExtendedAudioBufferProvider::framesReleased and onTimestamp\n"
    },
    {
      "commit": "f701ddad1a4f58c368e3b642530849dcb57bb22c",
      "tree": "f35277a5d4de1d7d48e74737bfcf5bd1e6d3f71e",
      "parents": [
        "fe582a379aa775b34b6aba387eea046b6c4632f1",
        "a071bf884605f7bb34b45ee9f21476c9757c6d5b"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Sep 03 16:11:23 2013 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Sep 03 16:11:23 2013 -0700"
      },
      "message": "am a071bf88: am 894d6be4: Add NBAIO_Source::onTimestamp()\n\n* commit \u0027a071bf884605f7bb34b45ee9f21476c9757c6d5b\u0027:\n  Add NBAIO_Source::onTimestamp()\n"
    },
    {
      "commit": "fe582a379aa775b34b6aba387eea046b6c4632f1",
      "tree": "d523a98bcba494354d6101ec37f1a3320f04b760",
      "parents": [
        "a7fef85e7d419a4f5d6a3144f9ba70ceff2f122a",
        "1a3a8078462e52b450dbad7443abaca1ca9cbfb8"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Sep 03 16:11:22 2013 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Sep 03 16:11:22 2013 -0700"
      },
      "message": "am 1a3a8078: am a07a1c2c: Instantiate SingleStateQueue\u003cAudioTimestamp\u003e\n\n* commit \u00271a3a8078462e52b450dbad7443abaca1ca9cbfb8\u0027:\n  Instantiate SingleStateQueue\u003cAudioTimestamp\u003e\n"
    },
    {
      "commit": "ec3acca4a75fc4adc076b56751124f507b419622",
      "tree": "d8e15b4acf4de74c3edcdad49f3528ca668fc2a1",
      "parents": [
        "4585e8f0ff47580fdb81ed8652bde32db1770050"
      ],
      "author": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Tue Sep 03 14:35:37 2013 -0700"
      },
      "committer": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Tue Sep 03 16:02:35 2013 -0700"
      },
      "message": "wifi-display: do not use HDCP\u0027s encryptNative method if its unsupported\n\nBug: 10609422\nChange-Id: I005f1d04a4191b1503b5f3e895a98b8d6560c402\n"
    },
    {
      "commit": "a7fef85e7d419a4f5d6a3144f9ba70ceff2f122a",
      "tree": "348d7a274670b5c32a40e34d7dfa93dbc0f84a2f",
      "parents": [
        "859a0f197e0c565d62d233c97ef8088c8eb4d0ac",
        "f81d5fc1d67a5252d0da1a45274460c4dd33b87b"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Sep 03 15:16:03 2013 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Sep 03 15:16:03 2013 -0700"
      },
      "message": "am f81d5fc1: am 943ba3cc: Merge \"Add NBAIO_Sink::getTimestamp()\" into klp-dev\n\n* commit \u0027f81d5fc1d67a5252d0da1a45274460c4dd33b87b\u0027:\n  Add NBAIO_Sink::getTimestamp()\n"
    },
    {
      "commit": "6466c9e6e6278c740aed77f695f679be9f5db478",
      "tree": "cd987ec819ddecba0665cd692285069c083fb19b",
      "parents": [
        "894d6be4f9b4721c77a01919ecf03b27cec90cc9"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Aug 23 10:54:07 2013 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Sep 03 15:12:11 2013 -0700"
      },
      "message": "Add ExtendedAudioBufferProvider::framesReleased and onTimestamp\n\nand implement them in SourceAudioBufferProvider using the associated NBAIO_Source,\nand in Track using the associated AudioTrackServerProxy.\n\nChange-Id: I60dc4adba63fc1dc452ff16caf347e4a7c8242c2\n"
    },
    {
      "commit": "894d6be4f9b4721c77a01919ecf03b27cec90cc9",
      "tree": "c0356613af3c5dc3451197f8781a43c5d9d4d36c",
      "parents": [
        "a07a1c2c91dc7ee6ded319262499f20cd01edcf7"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Aug 26 10:29:28 2013 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Sep 03 15:12:03 2013 -0700"
      },
      "message": "Add NBAIO_Source::onTimestamp()\n\nwith dummy default implementation, and implement in MonoPipeReader.\nonTimestamp is meant to be called by the corresponding sink when it has\na new timestamp available.\n\nChange-Id: I8a90d24d1061e4a592ce5bd8ee1c9fce6bdd8a84\n"
    },
    {
      "commit": "a07a1c2c91dc7ee6ded319262499f20cd01edcf7",
      "tree": "2d7b01150635952af8d8d9e4f1a0d0d48ccfa874",
      "parents": [
        "943ba3cca8df0da24db38e97e43aaacb5b788a21"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Aug 23 10:54:35 2013 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Sep 03 15:11:39 2013 -0700"
      },
      "message": "Instantiate SingleStateQueue\u003cAudioTimestamp\u003e\n\nas typedef AudioTimestampSingleStateQueue and use it in MonoPipe.\n\nChange-Id: Idaebb362bd9d0a81a7ed83792ab9369dc37c0e74\n"
    },
    {
      "commit": "943ba3cca8df0da24db38e97e43aaacb5b788a21",
      "tree": "f0e19f47cec090e2795df2df75b91c88c935ec01",
      "parents": [
        "572864b94e7882c2d23537525c708abcacde43b0",
        "767094dd98b01baf21de2ad09c27b3c98776cf73"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Sep 03 22:08:53 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Sep 03 22:08:53 2013 +0000"
      },
      "message": "Merge \"Add NBAIO_Sink::getTimestamp()\" into klp-dev"
    },
    {
      "commit": "767094dd98b01baf21de2ad09c27b3c98776cf73",
      "tree": "57b1a9c3b3d794bac2e1922b314046f02df18e7e",
      "parents": [
        "e45a767e13fe3396185c9d378a70f7f11eb881d0"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Aug 23 13:51:43 2013 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Sep 03 11:24:02 2013 -0700"
      },
      "message": "Add NBAIO_Sink::getTimestamp()\n\nwith a real implementation in AudioStreamOutSink\nfor dummy implementation initially in MonoPipe.\n\nUse in AudioFlinger::PlaybackThread::threadLoop_write()\nto keep the input to the timestamp latch up-to-date.\n\nChange-Id: I10ef277991b63bb43d55d6f3df75116ef32246cd\n"
    },
    {
      "commit": "5cab67554b1067d7c788ee711ab1cee567e7560d",
      "tree": "b69ed486e69fb06f782722bfc31a92052221a560",
      "parents": [
        "bfb56d6b79e019dd6005f1de6b6ee245229dd279",
        "f946da950d550809b865d7270c93778aac972e33"
      ],
      "author": {
        "name": "Jeff Tinker",
        "email": "jtinker@google.com",
        "time": "Tue Sep 03 10:53:31 2013 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Sep 03 10:53:31 2013 -0700"
      },
      "message": "am f946da95: am 4585e8f0: Revert \"Enhancement for OnInfo callback on DRM Framework\"\n\n* commit \u0027f946da950d550809b865d7270c93778aac972e33\u0027:\n  Revert \"Enhancement for OnInfo callback on DRM Framework\"\n"
    },
    {
      "commit": "4585e8f0ff47580fdb81ed8652bde32db1770050",
      "tree": "6aa5196aef1b75edc79199065ad825c26da64533",
      "parents": [
        "e45a767e13fe3396185c9d378a70f7f11eb881d0"
      ],
      "author": {
        "name": "Jeff Tinker",
        "email": "jtinker@google.com",
        "time": "Fri Aug 30 23:05:00 2013 +0000"
      },
      "committer": {
        "name": "Jeff Tinker",
        "email": "jtinker@google.com",
        "time": "Tue Sep 03 10:15:01 2013 -0700"
      },
      "message": "Revert \"Enhancement for OnInfo callback on DRM Framework\"\n\nThis reverts commit 5ff7836da0220b3097f36c8a5e82111816ebca62.\n\nFixes Fatal signal 6 (SIGABRT)\" when playing or downloading a video\nbug: 10542864\n\nChange-Id: I7f81a41c3acdbeb571a514b3f65e7ba37d403cca\n"
    },
    {
      "commit": "f557872b594d15599bdb65efd91eb5adeb1d0840",
      "tree": "8df16a0c49bac71163035d11562e06bcc12a2490",
      "parents": [
        "30c296c153447f5c2bb5251928bf4d3c4e28e552",
        "908d3c09ca7f2ccb280aa5dc8d876099ff9a9d0f"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Thu Aug 29 17:12:45 2013 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Aug 29 17:12:45 2013 -0700"
      },
      "message": "am 908d3c09: am 51ec03c2: Merge \"Implement Track::getTimestamp()\" into klp-dev\n\n* commit \u0027908d3c09ca7f2ccb280aa5dc8d876099ff9a9d0f\u0027:\n  Implement Track::getTimestamp()\n"
    },
    {
      "commit": "ec9ad1b0947f5d6b465281312dbe92f096a8f881",
      "tree": "71a3b3f48c0c563311db4fedf75efa5241d2d2c9",
      "parents": [
        "6dc365f0d5a92084517f0c3846e4f07fc7206bab",
        "f94b2946a511c5cbb6b9001449ca8278cb332bda"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Thu Aug 29 17:12:44 2013 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Aug 29 17:12:44 2013 -0700"
      },
      "message": "am f94b2946: am 56b59224: Merge \"Add IAudioTrack::getTimestamp()\" into klp-dev\n\n* commit \u0027f94b2946a511c5cbb6b9001449ca8278cb332bda\u0027:\n  Add IAudioTrack::getTimestamp()\n"
    },
    {
      "commit": "6dc365f0d5a92084517f0c3846e4f07fc7206bab",
      "tree": "5ff7dd98941a347ebfb4ee0f91eae2b73b712082",
      "parents": [
        "1fe2385623d880264c79eef6a4c6e4e75d91d19b",
        "73e4f3d44f7022b03943ae34f08363e049e4b46f"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Thu Aug 29 16:54:05 2013 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Aug 29 16:54:05 2013 -0700"
      },
      "message": "am 73e4f3d4: am 865f6f24: Merge \"New AudioTrack C++ API for audio timestamps\" into klp-dev\n\n* commit \u002773e4f3d44f7022b03943ae34f08363e049e4b46f\u0027:\n  New AudioTrack C++ API for audio timestamps\n"
    },
    {
      "commit": "bd096fd9d8e5fc0e62f98807f4818a06f70d0812",
      "tree": "8ff27bce9f34e4bdd0f8e233494a24efef475a7d",
      "parents": [
        "573d80a8f463f648a515fc0975bf83951b272993"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Aug 23 13:53:56 2013 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Thu Aug 29 09:59:31 2013 -0700"
      },
      "message": "Implement Track::getTimestamp()\n\nusing a new timestamp latch in PlaybackThread, and\nAudioTrackServerProxy::framesReleased() which returns mServer.\n\nChange-Id: I1ebfba968c773faaab95648c272fd3ebd74718d6\n"
    },
    {
      "commit": "53cec22821072719ee02c856e9ac2dda2496c570",
      "tree": "1ac72eaf3ba6059680f8c3d7e39ae58a9e03adc8",
      "parents": [
        "ce70374bf105f8a6160bf5dd70affea012b2a464"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Thu Aug 29 09:01:02 2013 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Thu Aug 29 09:19:07 2013 -0700"
      },
      "message": "Add IAudioTrack::getTimestamp()\n\nwith dummy implementation in AudioFlinger::TrackHandle, and\nimplement AudioTrack::getTimestamp() using IAudioTrack.\n\nAlso document invariant that mAudioTrack and control block are always\nnon-0 after successful initialization.\n\nChange-Id: I9861d1454cff7decf795d5d5898ac7999a9f3b7e\n"
    },
    {
      "commit": "ce70374bf105f8a6160bf5dd70affea012b2a464",
      "tree": "60d2673b83bff3622e7e299974104e572656b5a6",
      "parents": [
        "e07f53720bcf543bcfe90c228a49c2a85a3fdb4c"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Jul 19 16:33:58 2013 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed Aug 28 17:24:58 2013 -0700"
      },
      "message": "New AudioTrack C++ API for audio timestamps\n\nThis new API is intended to replace latency(), especially for A/V sync.\nThe application will receive periodic timestamp notifications.  The period\nis unspecified, but will likely be more frequent after a pause or stop,\nset position, underrun, display on/off change, route change, or when audio\nframework notices drift.  It will be up to the higher level application\n(e.g.  Stagefright) to reconstruct a clock that updates more frequently.\n\nThe current latency() method doesn\u0027t indicate when latency changes\ndue to screen on/off state, route changes, etc.\n\nIncludes squahsed change-Id: I2082f8752040be0c234b1a6f1be2e269abf2ce7c\n Dummy implementation of AudioTrack:getTimestamp()\n Rename AudioTrack::Timestamp to AudioTimestamp.\n Renaming and pulling up to a higher level allows more modules to use it.\n\nChange-Id: Ibf7f6a207c3f8d8697f25ede2cd5200697fadb86\n(cherry picked from commit dd69eb893867634fd169c03204a6ad7c74b351e7)\n"
    },
    {
      "commit": "998d8225f6e4cb9f14e16a058ed2b04bf7237f69",
      "tree": "ab31d56a74db84cff8b043cd303f7506efc1e49d",
      "parents": [
        "d5ebd126611371a03bd30d8b5969348a9e8e2ae6",
        "677d2d3d4b212c81e4d3738794044711dca8ec8f"
      ],
      "author": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Tue Aug 27 10:30:47 2013 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Aug 27 10:30:47 2013 -0700"
      },
      "message": "am 677d2d3d: am e07f5372: Merge \"Camera2: Add flush support\" into klp-dev\n\n* commit \u0027677d2d3d4b212c81e4d3738794044711dca8ec8f\u0027:\n  Camera2: Add flush support\n"
    },
    {
      "commit": "e07f53720bcf543bcfe90c228a49c2a85a3fdb4c",
      "tree": "388f8ab6a1b539a7bd8b903479864f1c1a3afeb0",
      "parents": [
        "8271f1a2225a34a0748624786392213a746c56d7",
        "abaa51d3ca31f0eda99e1d271e6dc64c877dbf58"
      ],
      "author": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Tue Aug 27 16:49:13 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Aug 27 16:49:13 2013 +0000"
      },
      "message": "Merge \"Camera2: Add flush support\" into klp-dev"
    },
    {
      "commit": "bb719d27b47d43239ea5bb75e142d412fe45e8a6",
      "tree": "9183f61e0f1dd95a85b9c528bb874698cd429d25",
      "parents": [
        "733ba4dc9161741930464818618855962bdb1297",
        "23ae2999e83897133b743b2eabade403f7233393"
      ],
      "author": {
        "name": "Jeff Tinker",
        "email": "jtinker@google.com",
        "time": "Mon Aug 26 15:17:52 2013 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Aug 26 15:17:52 2013 -0700"
      },
      "message": "am 23ae2999: am 3bd3690f: Merge \"Enhancement for OnInfo callback on DRM Framework\" into klp-dev\n\n* commit \u002723ae2999e83897133b743b2eabade403f7233393\u0027:\n  Enhancement for OnInfo callback on DRM Framework\n"
    },
    {
      "commit": "733ba4dc9161741930464818618855962bdb1297",
      "tree": "452c736e2277c5955b071d1c114114d1bb1e09f2",
      "parents": [
        "6e74cc78e3e16686b895958d2a623abc3f5a775f",
        "f79d6e44ffd427cf9d331a95777cfbbcc99f72f1"
      ],
      "author": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Mon Aug 26 15:17:52 2013 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Aug 26 15:17:52 2013 -0700"
      },
      "message": "am f79d6e44: am 33142e1e: Merge \"wifi-display: pass session info to wifi display settings\" into klp-dev\n\n* commit \u0027f79d6e44ffd427cf9d331a95777cfbbcc99f72f1\u0027:\n  wifi-display: pass session info to wifi display settings\n"
    },
    {
      "commit": "6e74cc78e3e16686b895958d2a623abc3f5a775f",
      "tree": "194c6f09c96301eb15bad116ee52ee2066950d3f",
      "parents": [
        "c398c1a9a8296c20dcc566e9f6f148de9d2b0342",
        "24850793d3ca7e29d2ef553639d2e133c3983f7e"
      ],
      "author": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Mon Aug 26 15:17:51 2013 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Aug 26 15:17:51 2013 -0700"
      },
      "message": "am 24850793: am 2484040e: Merge \"MediaPlayer: add listener for raw track data\" into klp-dev\n\n* commit \u002724850793d3ca7e29d2ef553639d2e133c3983f7e\u0027:\n  MediaPlayer: add listener for raw track data\n"
    },
    {
      "commit": "3bd3690fb0a423f9d0ba635e8db1c148ac9e93fc",
      "tree": "4f0325468fd7977d00223a9efa4c4c566125878a",
      "parents": [
        "33142e1e318c0c766a385d88d2434f62f9e2dfe7",
        "5ff7836da0220b3097f36c8a5e82111816ebca62"
      ],
      "author": {
        "name": "Jeff Tinker",
        "email": "jtinker@google.com",
        "time": "Mon Aug 26 16:09:03 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Aug 26 16:09:03 2013 +0000"
      },
      "message": "Merge \"Enhancement for OnInfo callback on DRM Framework\" into klp-dev"
    },
    {
      "commit": "5ff7836da0220b3097f36c8a5e82111816ebca62",
      "tree": "4612e1308d3dd9961db0fae6d3372203d5937f61",
      "parents": [
        "62c1a46eec047eb5fbc4b90432ec1ce65b76fb75"
      ],
      "author": {
        "name": "Takeshi Aimi",
        "email": "takeshi.aimi@sonymobile.com",
        "time": "Wed Jul 11 17:09:21 2012 +0900"
      },
      "committer": {
        "name": "Jeff Tinker",
        "email": "jtinker@google.com",
        "time": "Fri Aug 23 18:01:07 2013 -0700"
      },
      "message": "Enhancement for OnInfo callback on DRM Framework\n\nIn DRM framework, plugins can transmit DrmInfoEvent to Java layer.\nAlthough DrmInfoEvent has several entries, current implementation\ncan only convey integer and String. This change enables plugins\nuto propagate a hashmap to Java layer. The hashmap can have\none or more Strings and one byte array as value.\n\nChanges are made by Sony Corporation.\n\nbug: 10459159\n\nChange-Id: Ic19265d4ad3db4eda66a3c27e1e08873a8f2a4d7\n(cherry picked from commit 4f782bf0cb69929ebf03de239e2c9bf8e82adf5e)\n"
    },
    {
      "commit": "33142e1e318c0c766a385d88d2434f62f9e2dfe7",
      "tree": "7834e6bcc639ce13eafd275f7ceb6770fec9b865",
      "parents": [
        "2484040e0f413989e4edbe26ba3bf71122382af6",
        "87ecf19404586672008e98babc225e094292ceb5"
      ],
      "author": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Fri Aug 23 23:18:18 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Aug 23 23:18:18 2013 +0000"
      },
      "message": "Merge \"wifi-display: pass session info to wifi display settings\" into klp-dev"
    },
    {
      "commit": "abaa51d3ca31f0eda99e1d271e6dc64c877dbf58",
      "tree": "52f4cc1078708f7c0099fded06dcb01daf6ca6bb",
      "parents": [
        "62c1a46eec047eb5fbc4b90432ec1ce65b76fb75"
      ],
      "author": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Wed Aug 14 11:37:00 2013 -0700"
      },
      "committer": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Fri Aug 23 14:08:27 2013 -0700"
      },
      "message": "Camera2: Add flush support\n\n- On HAL2 devices, fall back to wait until idle\n- On HAL3 devices, call HAL flush method\n\nBug: 9758581\nChange-Id: Ie1c570a15f6590a1ee6c271e3b989c48079b468a\n"
    },
    {
      "commit": "2484040e0f413989e4edbe26ba3bf71122382af6",
      "tree": "0a17a226282f38322b9761650a9536088096c657",
      "parents": [
        "62c1a46eec047eb5fbc4b90432ec1ce65b76fb75",
        "dcb89b3b505522efde173c105a851c412f947178"
      ],
      "author": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Fri Aug 23 19:13:28 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Aug 23 19:13:28 2013 +0000"
      },
      "message": "Merge \"MediaPlayer: add listener for raw track data\" into klp-dev"
    },
    {
      "commit": "c398c1a9a8296c20dcc566e9f6f148de9d2b0342",
      "tree": "186f541a2ffa8d0ae5d33e4ff80a67018353ae0b",
      "parents": [
        "17fa1feca0dd0c166fd16a847c5559a5db2194bb",
        "6c6dc760006b14a63c839a15d5612c7e19d16bc5"
      ],
      "author": {
        "name": "Jeff Tinker",
        "email": "jtinker@google.com",
        "time": "Thu Aug 22 16:17:17 2013 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Aug 22 16:17:17 2013 -0700"
      },
      "message": "am 6c6dc760: am 62c1a46e: Merge \"Add ability to test supported content types to MediaDrm\" into klp-dev\n\n* commit \u00276c6dc760006b14a63c839a15d5612c7e19d16bc5\u0027:\n  Add ability to test supported content types to MediaDrm\n"
    },
    {
      "commit": "62c1a46eec047eb5fbc4b90432ec1ce65b76fb75",
      "tree": "dce59b6f085880d667534b7190df11d1c52b6343",
      "parents": [
        "4b820b0e1fa069714b123fc35784541d0f94d267",
        "9cf69e0fc110f17c28e988ed0f9bf91abfaf710d"
      ],
      "author": {
        "name": "Jeff Tinker",
        "email": "jtinker@google.com",
        "time": "Thu Aug 22 23:08:10 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Aug 22 23:08:10 2013 +0000"
      },
      "message": "Merge \"Add ability to test supported content types to MediaDrm\" into klp-dev"
    },
    {
      "commit": "9cf69e0fc110f17c28e988ed0f9bf91abfaf710d",
      "tree": "c5cb3fb67b26c852f8c7bea7e4eeb87952830842",
      "parents": [
        "75c16dde986e16ac5fd4d34b06b0cc6a90679866"
      ],
      "author": {
        "name": "Jeff Tinker",
        "email": "jtinker@google.com",
        "time": "Wed Aug 21 11:59:23 2013 -0700"
      },
      "committer": {
        "name": "Jeff Tinker",
        "email": "jtinker@google.com",
        "time": "Thu Aug 22 09:27:35 2013 -0700"
      },
      "message": "Add ability to test supported content types to MediaDrm\n\nbug: 10244066\nChange-Id: I317f05b146db962c271893f6208890a5a6c396f1\n"
    },
    {
      "commit": "17fa1feca0dd0c166fd16a847c5559a5db2194bb",
      "tree": "82fde2d63ba5abd8edc29ff7ce5915c03e0b69d1",
      "parents": [
        "bc794f8e5c8f5ea5519f2c333f7eb1bd800dae34",
        "452e5cef4745f5a624376f68a0bb22adf8cb3b0e"
      ],
      "author": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Wed Aug 21 20:16:15 2013 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Aug 21 20:16:15 2013 -0700"
      },
      "message": "am 452e5cef: am 4b820b0e: Camera1: Rename setPreviewTexture to ...Target for clarity\n\n* commit \u0027452e5cef4745f5a624376f68a0bb22adf8cb3b0e\u0027:\n  Camera1: Rename setPreviewTexture to ...Target for clarity\n"
    },
    {
      "commit": "bc794f8e5c8f5ea5519f2c333f7eb1bd800dae34",
      "tree": "59223d0bcf531b4d37ebdd658564a42620759d7e",
      "parents": [
        "d6a2f3f03197998f44374e68ba1d838a7ebb180d",
        "8ad43118cf7207d02c0b7e9251c3e549b741f471"
      ],
      "author": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Wed Aug 21 20:16:14 2013 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Aug 21 20:16:14 2013 -0700"
      },
      "message": "am 8ad43118: am 1ce7c34e: Camera1: Set preview to be asynchronous, and remove dead code\n\n* commit \u00278ad43118cf7207d02c0b7e9251c3e549b741f471\u0027:\n  Camera1: Set preview to be asynchronous, and remove dead code\n"
    },
    {
      "commit": "4b820b0e1fa069714b123fc35784541d0f94d267",
      "tree": "3418113d8ce7eca26303d6dce7d147e07003a0e9",
      "parents": [
        "1ce7c34e67c2cf58dd88c31f36f4bd62e375f7f0"
      ],
      "author": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Wed Aug 21 14:39:05 2013 -0700"
      },
      "committer": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Wed Aug 21 14:56:46 2013 -0700"
      },
      "message": "Camera1: Rename setPreviewTexture to ...Target for clarity\n\nBug: 10312644\nChange-Id: I19976188f0359bfd177209fb40145defdae9c740\n"
    },
    {
      "commit": "1ce7c34e67c2cf58dd88c31f36f4bd62e375f7f0",
      "tree": "4febd2dd2325c391977d64c9d78a8ee955277e80",
      "parents": [
        "99ad37a47628b1ea1f8981bf974de38a49c653a0"
      ],
      "author": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Wed Aug 21 13:57:21 2013 -0700"
      },
      "committer": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Wed Aug 21 14:35:48 2013 -0700"
      },
      "message": "Camera1: Set preview to be asynchronous, and remove dead code\n\n- Use the controlledByApp flag to make sure application-bound\n  preview buffer queue is asynchronous as before\n- Remove setPreviewDisplay in service, since it is no longer in\n  the binder interface\n- Rename setPreviewTexture to setPreviewTarget, to make it clear it\u0027s\n  the only game in town now. Rename only on the binder level and service\n  for now.\n\nBug: 10312644\nChange-Id: Icd33a462022f9729a63dc65c69b755cb7969857e\n"
    },
    {
      "commit": "87ecf19404586672008e98babc225e094292ceb5",
      "tree": "6351a002b70f93befda9a8b27317138d4cff4b87",
      "parents": [
        "99ad37a47628b1ea1f8981bf974de38a49c653a0"
      ],
      "author": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Thu Jun 06 12:42:59 2013 -0700"
      },
      "committer": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Wed Aug 21 11:03:28 2013 -0700"
      },
      "message": "wifi-display: pass session info to wifi display settings\n\nBug: 9371882\n\nChange-Id: I9e4b8c2154b03ce8ff3e14c465a5224bb6e8db9a\n"
    },
    {
      "commit": "d6a2f3f03197998f44374e68ba1d838a7ebb180d",
      "tree": "84d5ebd4e94ba3bf449525685b601b3546d8e3ce",
      "parents": [
        "61bd7a0281ffecb99b27bff63334c559df7357e6",
        "9f178e705836d9ac8de64487929732c302644bee"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Aug 19 18:19:28 2013 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Aug 19 18:19:28 2013 -0700"
      },
      "message": "am 9f178e70: am 99ad37a4: Merge \"AudioSystem: new audioflinger restart detection\" into klp-dev\n\n* commit \u00279f178e705836d9ac8de64487929732c302644bee\u0027:\n  AudioSystem: new audioflinger restart detection\n"
    },
    {
      "commit": "46291616486979986cba3ab83e894728ef53063f",
      "tree": "6e725226e68719d0c3c445dc5530bf0392204095",
      "parents": [
        "cf2a123e7ad39700c6e5318006f9acccf69511fa"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Jul 18 14:38:44 2013 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Aug 19 17:45:42 2013 -0700"
      },
      "message": "AudioSystem: new audioflinger restart detection\n\nAdd a specific method to AudioSystem for AudioService to poll\nfor AudioFlinger service restart instead of relying on current\ncallback mechanism which is flaky.\n\nBug: 9693068.\nChange-Id: Ie88bc9d25033503bc5cd2fa9d8c754d0f8045b8f\n"
    },
    {
      "commit": "dcb89b3b505522efde173c105a851c412f947178",
      "tree": "eb89386fb07021a6527b35ea3d8ecf80584c73b7",
      "parents": [
        "1cb4e1661e4144cb188c2c79b89804fcb902fd19"
      ],
      "author": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Tue Aug 06 09:44:47 2013 -0700"
      },
      "committer": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Mon Aug 19 10:53:52 2013 -0700"
      },
      "message": "MediaPlayer: add listener for raw track data\n\nBug: 10326117\n\nChange-Id: I2c0bdf8adc67b11f8dc633423bee66897548f181\n"
    },
    {
      "commit": "c49d9f8511442ce555fa7365de24f3ef21928670",
      "tree": "99e613171c80ca3414e62962193f48bc4e1d259b",
      "parents": [
        "7165268ffa6c7b6b405b6afad82e2a346500e8ee",
        "a8542f05253e31a64428baf93a31183988a065bb"
      ],
      "author": {
        "name": "Ruben Brunk",
        "email": "rubenbrunk@google.com",
        "time": "Fri Aug 16 17:36:49 2013 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Aug 16 17:36:49 2013 -0700"
      },
      "message": "am a8542f05: am e9f3a314: Merge \"Refactor CameraService to handle errors properly.\" into klp-dev\n\n* commit \u0027a8542f05253e31a64428baf93a31183988a065bb\u0027:\n  Refactor CameraService to handle errors properly.\n"
    },
    {
      "commit": "e9f3a3141c2eaafa3a5a3417d1e5682a909c5b31",
      "tree": "bc27152b22072be2e18ab9c01bf86c852d0b902e",
      "parents": [
        "1cb4e1661e4144cb188c2c79b89804fcb902fd19",
        "0f61d8f14aa368c9cd7076528e8096e10ed100a0"
      ],
      "author": {
        "name": "Ruben Brunk",
        "email": "rubenbrunk@google.com",
        "time": "Sat Aug 17 00:29:13 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sat Aug 17 00:29:13 2013 +0000"
      },
      "message": "Merge \"Refactor CameraService to handle errors properly.\" into klp-dev"
    },
    {
      "commit": "0f61d8f14aa368c9cd7076528e8096e10ed100a0",
      "tree": "ed95cb70d56dd3a732f4e1909c96e7889b23ce94",
      "parents": [
        "75c16dde986e16ac5fd4d34b06b0cc6a90679866"
      ],
      "author": {
        "name": "Ruben Brunk",
        "email": "rubenbrunk@google.com",
        "time": "Thu Aug 08 13:07:18 2013 -0700"
      },
      "committer": {
        "name": "Ruben Brunk",
        "email": "rubenbrunk@google.com",
        "time": "Fri Aug 16 14:42:28 2013 -0700"
      },
      "message": "Refactor CameraService to handle errors properly.\n\nBug: 10361136\n\n-Connect calls now return status_t error flags.\n\nChange-Id: Idca453b111e5df31327f6c99ebe853bb2e332b95\n"
    },
    {
      "commit": "5970a9114e7016da4730b2196622c50e0558f753",
      "tree": "14f3049719761ce4db6a89a6565c458c4409dd3c",
      "parents": [
        "62cf1fda94a21e0efac1778c54a03672c122a23b",
        "54233057d1c8466d3cc86e2f5ecc39e7816c4f7a"
      ],
      "author": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Fri Aug 16 12:38:01 2013 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Aug 16 12:38:01 2013 -0700"
      },
      "message": "am 54233057: am 1cb4e166: Merge \"Add MEDIA_STARTED/PAUSED/STOPPED events to media players\" into klp-dev\n\n* commit \u002754233057d1c8466d3cc86e2f5ecc39e7816c4f7a\u0027:\n  Add MEDIA_STARTED/PAUSED/STOPPED events to media players\n"
    },
    {
      "commit": "1cb4e1661e4144cb188c2c79b89804fcb902fd19",
      "tree": "05514005c18fb0e5c85ff566b26526519cd8fb1a",
      "parents": [
        "75c16dde986e16ac5fd4d34b06b0cc6a90679866",
        "cbaffcffee6418d678806e63097c19fe26d48fe0"
      ],
      "author": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Fri Aug 16 19:32:29 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Aug 16 19:32:29 2013 +0000"
      },
      "message": "Merge \"Add MEDIA_STARTED/PAUSED/STOPPED events to media players\" into klp-dev"
    },
    {
      "commit": "cbaffcffee6418d678806e63097c19fe26d48fe0",
      "tree": "21af7d5eab33df7c6487290014f29a83b525734c",
      "parents": [
        "b8689b31813f55cbc1bf8e9ca0d46a9ee113e38a"
      ],
      "author": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Wed Aug 14 18:30:38 2013 -0700"
      },
      "committer": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Thu Aug 15 16:04:58 2013 -0700"
      },
      "message": "Add MEDIA_STARTED/PAUSED/STOPPED events to media players\n\nThis is needed for the MediaTimeProvider java interface, so it does not\ncontinually poll for current media time.\n\nNote: NuPlayer and AwesomePlayer do not correctly handle stop (pause\ninstead), so for those we will signal PAUSED.\n\nSigned-off-by: Lajos Molnar \u003clajos@google.com\u003e\nChange-Id: I3c61e1bda475f131323f475c18a42e3ec66c9ae1\nBug: 10326117\n"
    },
    {
      "commit": "62cf1fda94a21e0efac1778c54a03672c122a23b",
      "tree": "e72843755fa28c0718b2ed09c82f4ec2a14daa1d",
      "parents": [
        "76156a72aed816b48b88584b76e4b31cf6a5153f",
        "ce57e797526db119f5baaaeab75cd8de4b162c9a"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu Aug 15 09:17:50 2013 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Aug 15 09:17:50 2013 -0700"
      },
      "message": "am ce57e797: am 75c16dde: Merge \"You can now opt-in to having the video decoder push blank buffers to the\" into klp-dev\n\n* commit \u0027ce57e797526db119f5baaaeab75cd8de4b162c9a\u0027:\n  You can now opt-in to having the video decoder push blank buffers to the\n"
    },
    {
      "commit": "75c16dde986e16ac5fd4d34b06b0cc6a90679866",
      "tree": "82d64dc5359021224e07e0e63fb74e4d1f3deb16",
      "parents": [
        "c85a986af84962515c10499faab3dc8f9a0948d4",
        "0167414e261f88a96b5e4bf6cb592e6ca11e5a95"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu Aug 15 16:12:08 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Aug 15 16:12:08 2013 +0000"
      },
      "message": "Merge \"You can now opt-in to having the video decoder push blank buffers to the\" into klp-dev"
    },
    {
      "commit": "0167414e261f88a96b5e4bf6cb592e6ca11e5a95",
      "tree": "1510cccda507a05fa1b410b4a6a8d4828a1740cc",
      "parents": [
        "cd06d357ed4fcde991aa55dc97317d97cb287332"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Wed Aug 14 10:28:14 2013 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Wed Aug 14 10:28:14 2013 -0700"
      },
      "message": "You can now opt-in to having the video decoder push blank buffers to the\n\nsurface on the transition from executing-\u003eidle by specifying the key\n\"push-blank-buffers-on-shutdown\" with a value of 1 in the call to configure.\n\nChange-Id: I1155fccf89f18e717728c985e590651597595515\n"
    },
    {
      "commit": "23315af052cbef1fe427490eea7979908dccf032",
      "tree": "3ad44846c2ba502ceaf6ee0262e853ab71aedc7a",
      "parents": [
        "266a718ccdfcbdf5d6f64b3e047e7a7ebe8814c2",
        "984b3f4df6ac50a7d655391b19afefa8d5ce30ba"
      ],
      "author": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Wed Aug 14 07:51:53 2013 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Aug 14 07:51:53 2013 -0700"
      },
      "message": "am 984b3f4d: am 7f76a81b: Merge \"Check adaptive playback support via CodecCapabilities\" into klp-dev\n\n* commit \u0027984b3f4df6ac50a7d655391b19afefa8d5ce30ba\u0027:\n  Check adaptive playback support via CodecCapabilities\n"
    },
    {
      "commit": "7f76a81b18ade3158ae27015637074ce08e837b2",
      "tree": "b2927c2cc99053ba118553a0242cf41b664fb5be",
      "parents": [
        "cd06d357ed4fcde991aa55dc97317d97cb287332",
        "2ee14000a38683220fb250d9e7300e1d71ccdaa0"
      ],
      "author": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Wed Aug 14 01:27:14 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Aug 14 01:27:16 2013 +0000"
      },
      "message": "Merge \"Check adaptive playback support via CodecCapabilities\" into klp-dev"
    },
    {
      "commit": "2ee14000a38683220fb250d9e7300e1d71ccdaa0",
      "tree": "2f59a1eb7737e5e426bb7be177f853a6f333146d",
      "parents": [
        "b8689b31813f55cbc1bf8e9ca0d46a9ee113e38a"
      ],
      "author": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Tue Aug 06 15:02:22 2013 -0700"
      },
      "committer": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Tue Aug 13 13:42:52 2013 -0700"
      },
      "message": "Check adaptive playback support via CodecCapabilities\n\nAdded flags field to CodecCapabilities, so that applications\ncan query whether codecs support various features.  For now\nadded one video-decoder feature:\n\nkFlagSupportsAdaptivePlayback\n\nMedia playback applications can query it to see if a codec\nsupports seamless resolution changes, such as by supporting\ndynamic output buffers.\n\nSigned-off-by: Lajos Molnar \u003clajos@google.com\u003e\nChange-Id: I09da46e8ab6b8645fa2749e33128e49eda2e865b\nRelated-to-bug: 7093648\n"
    },
    {
      "commit": "fd8d53101e9f0912058bbd49f7b8fdc79e46826d",
      "tree": "76dc7ea0d36781f9449b2d6efeb2465e12f470fc",
      "parents": [
        "c3887fa019af17d8c8737424c4a7aaea81f60c66",
        "65a6b3b6a19e0b4920ba504a3ee40e4abe3a740d"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Aug 13 10:20:01 2013 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Aug 13 10:20:01 2013 -0700"
      },
      "message": "am 65a6b3b6: am cd06d357: Merge \"Optionally repeat the previously submitted frame to the encoder\" into klp-dev\n\n* commit \u002765a6b3b6a19e0b4920ba504a3ee40e4abe3a740d\u0027:\n  Optionally repeat the previously submitted frame to the encoder\n"
    },
    {
      "commit": "cd06d357ed4fcde991aa55dc97317d97cb287332",
      "tree": "b6bc5dab4fa6096bcd314749878760c279033e3f",
      "parents": [
        "1e0b080825a169c6ac655f11a798ff177575608c",
        "a61285dcf1da8a2cf40c499ee3a7b9fc4d74ac58"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Aug 13 17:13:24 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Aug 13 17:13:24 2013 +0000"
      },
      "message": "Merge \"Optionally repeat the previously submitted frame to the encoder\" into klp-dev"
    },
    {
      "commit": "a61285dcf1da8a2cf40c499ee3a7b9fc4d74ac58",
      "tree": "a360123ee73434ee45608b03a02d8fb6ff431c3b",
      "parents": [
        "1b832c3d8f2b1b24f9bc7025afd2b4a8b4e6c6f9"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Wed Jul 31 13:50:42 2013 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Aug 13 10:11:46 2013 -0700"
      },
      "message": "Optionally repeat the previously submitted frame to the encoder\n\nif no new frame has been delivered by surface flinger within the timeout\ninterval.\n\nChange-Id: I282f1b726dfe5646b178d7858d6f5d4f5a264fde\n"
    },
    {
      "commit": "e198c360d5e75a9b2097844c495c10902e7e8500",
      "tree": "be6884fcddb31fb8feda454e38b00053ccac7bf1",
      "parents": [
        "2fc14730e4697a6f456b4631549c9981f6b0b115"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Aug 13 09:13:36 2013 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Aug 13 09:55:52 2013 -0700"
      },
      "message": "Whitespace\n\nChange-Id: Id3ccc183a03421330d0498faaa62a45915cdc3d6\n"
    },
    {
      "commit": "2fc14730e4697a6f456b4631549c9981f6b0b115",
      "tree": "0f48a06513b295104f8c085a971fcbdf3feca1fe",
      "parents": [
        "c0029a8551d65929cbf51a55bd3bae3342a1f2fe"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Aug 05 14:58:14 2013 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Aug 13 09:24:18 2013 -0700"
      },
      "message": "Comments\n\nChange-Id: I56f82904cb3855bad6f33ad1ff4ddf66a61c5720\n"
    },
    {
      "commit": "8845337fff1c8faa4296b3bcafcefb41e07fc3ad",
      "tree": "b7bc54df66ae2b831058bb65519313ad06e87132",
      "parents": [
        "9156ef3e11b68cc4b6d3cea77f1f63673855a6d1",
        "82278b2ceeebbcf345ed81413eeffa82fa82e05b"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Mon Aug 12 19:18:00 2013 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Aug 12 19:18:00 2013 -0700"
      },
      "message": "am 82278b2c: am fe9611bd: Merge \"Fix potential leak of audio input handle.\" into klp-dev\n\n* commit \u002782278b2ceeebbcf345ed81413eeffa82fa82e05b\u0027:\n  Fix potential leak of audio input handle.\n"
    },
    {
      "commit": "ac0bbe16f3eba46b3d8057b66c2aff9101fc6f7d",
      "tree": "14008bb60b6b0ac3eb77b8e39504400d2b446e43",
      "parents": [
        "1b832c3d8f2b1b24f9bc7025afd2b4a8b4e6c6f9"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Fri Aug 09 18:32:30 2013 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Fri Aug 09 19:57:53 2013 -0700"
      },
      "message": "Fix potential leak of audio input handle.\n\nThe audio input handle is ultimately owned by the audio recorder\nobject but it could be dropped on the floor if an error occurred\nbefore that object was fully initialized.\n\nRearranged some of the argument validation and merged getInput_l\nwith openRecord_l to simplify the code and prevent such a leak\nfrom occurring.\n\nBug: 10265163\nChange-Id: I124dce344b1d11c2dd66ca5e2c9aec0c52c230e2\n"
    },
    {
      "commit": "5e078add4022360d18328ec41eee75703e8c424c",
      "tree": "0ce370a37ef3ef6624b0f762b10424e736a7a805",
      "parents": [
        "3cb40d7882b93c242267de0b8db10ef8957b3a24",
        "6d238e5ecb4c4266bc865a067072a30187e55f97"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Aug 09 14:26:10 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Aug 09 14:26:10 2013 +0000"
      },
      "message": "Merge \"Line length 100\""
    },
    {
      "commit": "f31abb4ee82050030b3e5a0793bb2b8e30f40d31",
      "tree": "bc17b9e9d4a4dc1108c032cad4a714471180478c",
      "parents": [
        "2f583c0ac819a7bbd1228d7b8c3857c7e6a98a91",
        "02de89293b74ab1e9a77ce2367c5c499ab038968"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed Aug 07 17:19:36 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Aug 07 17:19:37 2013 +0000"
      },
      "message": "Merge \"Cleanup comments for the new control block implementation\""
    },
    {
      "commit": "2f583c0ac819a7bbd1228d7b8c3857c7e6a98a91",
      "tree": "a142b620d9f27575b983685dbb28f131d8ab43ee",
      "parents": [
        "89a70f71cef61d10437b3901e8efc1f082a857c5",
        "362552a53523c46679e8b3cbb83b39d7ae769ff7"
      ],
      "author": {
        "name": "Jeff Tinker",
        "email": "jtinker@google.com",
        "time": "Wed Aug 07 01:44:37 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Aug 07 01:44:38 2013 +0000"
      },
      "message": "Merge \"Adds a drm resource busy error, removes some deprecated errors\""
    },
    {
      "commit": "89a70f71cef61d10437b3901e8efc1f082a857c5",
      "tree": "a973a3c580ab5de75ffc390a7eb52293028fb9c6",
      "parents": [
        "e1e476669a5ee25f2a3c2fe30170e0f9a89f30a4",
        "d0715867861c216e88a4a7523b6da8a3cb128724"
      ],
      "author": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Tue Aug 06 23:55:31 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Aug 06 23:55:31 2013 +0000"
      },
      "message": "Merge \"IOMX: add updateGraphicBufferInMeta method for metadata mode\""
    },
    {
      "commit": "6d238e5ecb4c4266bc865a067072a30187e55f97",
      "tree": "fde6cf604d0d20860431d60b1ce76c6130118beb",
      "parents": [
        "deeef54487a34034dc0cfaab20b20d557224c07c"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Aug 06 14:31:26 2013 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Aug 06 14:31:26 2013 -0700"
      },
      "message": "Line length 100\n\nChange-Id: I8ad58a961cefd0b0c2b041e04fd78669917453d1\n"
    },
    {
      "commit": "d0715867861c216e88a4a7523b6da8a3cb128724",
      "tree": "9b474094654a2dccb440fd9ca4a87f8afbdb9278",
      "parents": [
        "b08ab81bab9e8cd2e3a7fff02725a387070fd078"
      ],
      "author": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Mon Jul 22 12:57:43 2013 -0700"
      },
      "committer": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Tue Aug 06 13:19:26 2013 -0700"
      },
      "message": "IOMX: add updateGraphicBufferInMeta method for metadata mode\n\nThis is used to set the handle in the metadata buffer that is\nvalid in the mediaserver process, as well as to keep a reference\nfor the graphic buffers in BufferMeta.\n\nChange-Id: I46bb68d8bed894f357eeeb25368360d11b276634\nSigned-off-by: Lajos Molnar \u003clajos@google.com\u003e\n"
    },
    {
      "commit": "deeef54487a34034dc0cfaab20b20d557224c07c",
      "tree": "cc0aa13d8349df8a57e82374cfd2df9095cf2cbe",
      "parents": [
        "230c5bde2779c618b26edc73443280b2d9371c70"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Fri Aug 02 01:50:59 2013 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Tue Aug 06 20:05:40 2013 +0000"
      },
      "message": "separte producer and consumer interfaces\n\nBug: 9265647\nChange-Id: Iefabc11e4bd2e2e8ffd31160476c450affe6629c\n"
    },
    {
      "commit": "230c5bde2779c618b26edc73443280b2d9371c70",
      "tree": "313a1848799a279e3a56859f0d474a459a981d5a",
      "parents": [
        "33f3177c08d238285b296d137e527ec99e34228f",
        "7cd9cf70e36ad4b8eb12e24f9adbbe6fd69edebd"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Aug 06 17:32:40 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Aug 06 17:32:41 2013 +0000"
      },
      "message": "Merge \"AudioRecord notification frames\""
    },
    {
      "commit": "743649fa70392b668377fb507d251b346c7b2769",
      "tree": "3d23d5355c7ea676aaeee2465447dc72f093c346",
      "parents": [
        "5279e3e1187e4da0fed4349d29ea548f52e95f95",
        "73493688f4190f790ee15d9ca54831cd64f4e195"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Aug 06 16:14:01 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Aug 06 16:14:01 2013 +0000"
      },
      "message": "Merge \"AudioRecord::openRecord_l now take flags\""
    },
    {
      "commit": "3aa03e40668dd90390d9f1702f8c576e15b366c3",
      "tree": "01037957009952351730da4b588c3e2bcc42cda9",
      "parents": [
        "77baebfe89c99415a0ee4c2ea87bfd8a0f9e51f1",
        "eeca32671896739e84050da5992d5f151a1629de"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Aug 05 22:59:42 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Aug 05 22:59:43 2013 +0000"
      },
      "message": "Merge \"IAudioFlinger::openRecord track_flags_t flags is in/out\""
    },
    {
      "commit": "77baebfe89c99415a0ee4c2ea87bfd8a0f9e51f1",
      "tree": "8a8f4aa15e520fddf80ed076f54b14ed6085dc50",
      "parents": [
        "9b26847ed122a601ba857e0ef22ee2c818641120",
        "27f7b2a8fe899565487d8a326676a5f7d0a05a37"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Aug 05 21:56:17 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Aug 05 21:56:17 2013 +0000"
      },
      "message": "Merge \"AudioRecord::set and constructor now take flags\""
    },
    {
      "commit": "9b26847ed122a601ba857e0ef22ee2c818641120",
      "tree": "8100bc87e1c56a08005f55ea4f1d3943c6eb1e48",
      "parents": [
        "ce7842c295638ee1432041186700a71d4bf1c176",
        "6ca126d5c83386941c5cb9600099e5510e4430d6"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Aug 05 21:50:15 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Aug 05 21:50:15 2013 +0000"
      },
      "message": "Merge \"Make AudioRecord and AudioTrack comments more similar\""
    },
    {
      "commit": "f86b18b1ce3cf20a39aea1fcaf90ec66f9d6d63e",
      "tree": "ffcd083e96e9edaa7e8a597165584bfd5d3eb43f",
      "parents": [
        "13c34e09fdfe0bcd2053368df4dd26028004d18f",
        "28f1351369682801e1bb40a835bdae3c97b73c1c"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Aug 05 19:47:51 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Aug 05 19:47:51 2013 +0000"
      },
      "message": "Merge \"AudioRecord callback thread waits for priority boost\""
    },
    {
      "commit": "13c34e09fdfe0bcd2053368df4dd26028004d18f",
      "tree": "e884b091f302facb3fc9661fddc90d267e80c881",
      "parents": [
        "6c104a4a245ea72b7bdf8c7c016121189045d4bc",
        "743732236ab84e94168378cdb293964861b1ed00"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Aug 05 14:56:23 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Aug 05 14:56:23 2013 +0000"
      },
      "message": "Merge \"Remove default parameters for AudioTrack\""
    },
    {
      "commit": "362552a53523c46679e8b3cbb83b39d7ae769ff7",
      "tree": "fb7f5658afe720c834d0ed757cf7a11dbd471f6a",
      "parents": [
        "7f249fa9bcb64da324d19f551943fac7686d221c"
      ],
      "author": {
        "name": "Jeff Tinker",
        "email": "jtinker@google.com",
        "time": "Fri Aug 02 23:16:18 2013 -0700"
      },
      "committer": {
        "name": "Jeff Tinker",
        "email": "jtinker@google.com",
        "time": "Fri Aug 02 23:16:18 2013 -0700"
      },
      "message": "Adds a drm resource busy error, removes some deprecated errors\n\nChange-Id: Id719fb6df9c9d955ac24803082d08f2a4a5bc766\nrelated-to-bug: 9695816\n"
    },
    {
      "commit": "7cd9cf70e36ad4b8eb12e24f9adbbe6fd69edebd",
      "tree": "71596e7e98be91b19b5fe16a74a12926a0232177",
      "parents": [
        "3151427b6b0adf99929433715bab6f1e505100c1"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Thu Aug 01 07:22:02 2013 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Aug 02 16:22:42 2013 -0700"
      },
      "message": "AudioRecord notification frames\n\nChange-Id: I76ec536d1504eb9a558178b62bf225aace4b40d1\n"
    },
    {
      "commit": "73493688f4190f790ee15d9ca54831cd64f4e195",
      "tree": "e1655201bfb7d8339e48afd78597c5cd3bcb1b33",
      "parents": [
        "90e58b1fefc8caf70b34301a92bc86179580b6fc"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed Jul 31 16:10:53 2013 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Aug 02 16:22:42 2013 -0700"
      },
      "message": "AudioRecord::openRecord_l now take flags\n\nThe new parameter \u0027flags\u0027 of type audio_input_flags_t will be used for\nrequesting a fast track, but is currently ignored.\n\nChange-Id: If68dfda8b2d4eaaca42927d721b4630c47f71f3b\n"
    },
    {
      "commit": "eeca32671896739e84050da5992d5f151a1629de",
      "tree": "d611c0a426354e80345956c945e9381e6137209b",
      "parents": [
        "27f7b2a8fe899565487d8a326676a5f7d0a05a37"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed Jul 31 16:12:48 2013 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Aug 02 16:22:42 2013 -0700"
      },
      "message": "IAudioFlinger::openRecord track_flags_t flags is in/out\n\nThis will allow AudioFlinger to tell client it is denying a request.\n\nChange-Id: Iff2be3ad6636371bbda9c9899a283c94620c1f06\n"
    },
    {
      "commit": "27f7b2a8fe899565487d8a326676a5f7d0a05a37",
      "tree": "fa0b6b4ee7cfb1e6b0e7cd0f6d6114498bb176bf",
      "parents": [
        "28f1351369682801e1bb40a835bdae3c97b73c1c"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed Jul 31 16:10:22 2013 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Aug 02 16:22:42 2013 -0700"
      },
      "message": "AudioRecord::set and constructor now take flags\n\nThe new optional parameter \u0027flags\u0027 of type audio_input_flags_t will be\nused for requesting a fast track.\n\nChange-Id: Ia7e070cb57c833e608352da354fb30dc26df6918\n"
    },
    {
      "commit": "28f1351369682801e1bb40a835bdae3c97b73c1c",
      "tree": "eb6e8fad009764ef115c894f017be5b110689b65",
      "parents": [
        "f36dbfe3d517e9311be0a4d0fd6658380690e84c"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed Jul 31 12:27:26 2013 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Aug 02 16:22:41 2013 -0700"
      },
      "message": "AudioRecord callback thread waits for priority boost\n\nChange-Id: Iae38fa4ac20a45751566169213a08a15deb0a2f6\n"
    },
    {
      "commit": "02de89293b74ab1e9a77ce2367c5c499ab038968",
      "tree": "9be5c99a98cd411009764c53d3e943e90cb6a3b9",
      "parents": [
        "f36dbfe3d517e9311be0a4d0fd6658380690e84c"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed Jul 31 12:30:12 2013 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Aug 02 16:10:38 2013 -0700"
      },
      "message": "Cleanup comments for the new control block implementation\n\nThere was some obsolete and incomplete text left over\nafter the new control block code was submitted.\nThis cleans up all those comments to be accurate again.\n\nChange-Id: Ic52f5869cb723cde25d709514d6deea6aa6f20aa\n"
    },
    {
      "commit": "f0f33c4acd231fa95deb9eeef2c46b0129e64463",
      "tree": "c20304410af6b34407a72e6ba4859427ccaf67e6",
      "parents": [
        "f36dbfe3d517e9311be0a4d0fd6658380690e84c"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed Jul 31 12:24:36 2013 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Aug 02 16:03:44 2013 -0700"
      },
      "message": "AudioRecord has no default sample rate\n\nChange-Id: I72feefdd6f3a623fd3669b80d4b264518fdc0929\n"
    },
    {
      "commit": "743732236ab84e94168378cdb293964861b1ed00",
      "tree": "b437f01649d5358e8cd65a1873c5cd71c78aa9de",
      "parents": [
        "f36dbfe3d517e9311be0a4d0fd6658380690e84c"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Aug 02 15:51:35 2013 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Aug 02 15:56:04 2013 -0700"
      },
      "message": "Remove default parameters for AudioTrack\n\nThe defaults aren\u0027t needed; all users must know these values.\n\nChange-Id: I0c1c97cb80bfea8e69a7cfa53ec85a91a8d48bb5\n"
    },
    {
      "commit": "6ca126d5c83386941c5cb9600099e5510e4430d6",
      "tree": "6298fbfc9a0d509fa90ab50cb21894d9fa380868",
      "parents": [
        "f36dbfe3d517e9311be0a4d0fd6658380690e84c"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed Jul 31 12:25:00 2013 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Aug 02 15:31:44 2013 -0700"
      },
      "message": "Make AudioRecord and AudioTrack comments more similar\n\nChange-Id: I122a7cf7bfc162090cb27f37c325db7a23985bc7\n"
    },
    {
      "commit": "f36dbfe3d517e9311be0a4d0fd6658380690e84c",
      "tree": "65768073d7fd288eac6c28f1283589d65fe0cbad",
      "parents": [
        "1a3739169becc850999c3c06db402541119a428c",
        "82aaf94a5b18939e4d790bbc752031f3070704a3"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Aug 02 16:14:01 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Aug 02 16:14:01 2013 +0000"
      },
      "message": "Merge \"Report underruns for fast tracks also\""
    },
    {
      "commit": "30873bfd08255e2c4e98ff5732ffff2838772617",
      "tree": "e452e0a82e8716e8a7a0fd01f896cc2adfec4f63",
      "parents": [
        "9610adc395d18e474e6e35c0bc8b9c3220e6e525"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Wed Jul 31 13:04:50 2013 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Wed Jul 31 13:04:50 2013 -0700"
      },
      "message": "Unregister any handlers still registered on now \"dead\" ALoopers\n\nupon the death of an ALooper.\n\nChange-Id: I64c0835b8db04486204f3d0fa7173ee53708a116\nrelated-to-bug: 10106648\n"
    },
    {
      "commit": "82aaf94a5b18939e4d790bbc752031f3070704a3",
      "tree": "4e39e32d0ccde726548afcbd81e253d5e316b295",
      "parents": [
        "b08ab81bab9e8cd2e3a7fff02725a387070fd078"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed Jul 17 16:05:07 2013 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed Jul 31 09:15:00 2013 -0700"
      },
      "message": "Report underruns for fast tracks also\n\nThis fixes a regression that was introduced earlier\nby commit 9f80dd223d83d9bb9077fb6baee056cee4eaf7e5\ncalled \"New control block for AudioTrack and AudioRecord\".\nThat commit broke underrun reporting for fast tracks.\n\nAlso remove Track::mUnderrunCount, which counted the number of underrun\nevents, and was only used by dumpsys media.audio_flinger.\n\nNow dumpsys media.audio_flinger reports the number of underrun frames,\n\nIsolated underrun-related control block accesses via the proxy, so that\nthe server is not directly poking around in the control block.\n\nThe new proxy APIs are AudioTrackServerProxy::getUnderrunFrames() and\nAudioTrackServerProxy::tallyUnderrunFrames().  getUnderrunFrames() returns\na rolling counter for streaming tracks, or zero for static buffer tracks\nwhich never underrun, but do a kind of \u0027pause\u0027 at end of buffer.\ntallyUnderrunFrames() increments the counter by a specified number of frames.\n\nChange-Id: Ib31fd73eb17cbb23888ce3af8ff29f471f5bd5a2\n"
    },
    {
      "commit": "4d74828fc0f6c13d49a36147a4250bcfa8ad0a47",
      "tree": "b7c8867114e2b5ff7997c6a8adb10f3b223acb1e",
      "parents": [
        "7b82efe7a376c882f8f938e1c41b8311a8cdda4a"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Nov 19 11:24:51 2012 -0800"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Jul 30 11:39:50 2013 -0700"
      },
      "message": "Remove default channel mask in AudioRecord constructor and set()\n\nChange-Id: I22ad4ba8777842bf6705e79c6ad796fdb9a4104c\n"
    },
    {
      "commit": "7b82efe7a376c882f8f938e1c41b8311a8cdda4a",
      "tree": "d7ed69f0a495bc1a873a285ba11e72a9867c5565",
      "parents": [
        "d054c32443a493513ab63529b0c8b1aca290278c"
      ],
      "author": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Thu Jul 25 17:12:35 2013 -0700"
      },
      "committer": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Tue Jul 30 10:58:44 2013 -0700"
      },
      "message": "Camera: Rename new API to camera2, rearrange camera service\n\n - Support API rename from photography to camera2\n - Reorganize camera service files\n   - API support files to api1/, api2/, api_pro/\n   - HAL device support files into device{1,2,3}/\n   - Common files into common/\n   - Camera service remains at top-level\n\nChange-Id: Ie474c12536f543832fba0a2dc936ac4fd39fe6a9\n"
    },
    {
      "commit": "d054c32443a493513ab63529b0c8b1aca290278c",
      "tree": "fc68ba259ded1dd4960bee2938a9bcc7c599c9a3",
      "parents": [
        "96f60d8f04432a1ed503b3e24d5736d28c63c9a2"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Jul 12 12:59:20 2013 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Jul 30 09:50:48 2013 -0700"
      },
      "message": "Move control block mName to createTrack() output\n\nThis is part of a series of CLs to clean up the shared memory\ncontrol block, by removing any fields that don\u0027t have to be there.\n\nChange-Id: I6e51003a1293b6800258c31b22cff2eba42162e7\n"
    },
    {
      "commit": "96f60d8f04432a1ed503b3e24d5736d28c63c9a2",
      "tree": "083f6224327e0965a925076b3e1aec5636598203",
      "parents": [
        "97252bb0e40a5a9b41f020163393cf6c5da10b7e"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Jul 12 10:21:18 2013 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Jul 30 09:40:17 2013 -0700"
      },
      "message": "Rename control block flags to mFlags\n\nChange-Id: I7b6d31e24531954ab1ecdf3ed56c19433700bd89\n"
    },
    {
      "commit": "f20e1d8df84c5fbeeace0052d100982ae39bb7a4",
      "tree": "997cd41de1adb829c194f56cf29eb02945666b94",
      "parents": [
        "eced2daaa6c91a3731eef978ce65c6ec319c5e6a"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Jul 12 09:45:18 2013 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Jul 30 09:24:03 2013 -0700"
      },
      "message": "Rename control block server to mServer and add comments\n\nChange-Id: Ieabd91acee92d0e84e66fbd358df5282b856306e\n"
    },
    {
      "commit": "eced2daaa6c91a3731eef978ce65c6ec319c5e6a",
      "tree": "635d4e4f9ed3dccd52f53b1e91db4c4402733c3a",
      "parents": [
        "a30e75897934da2ce7b1b03bcb4b58e139d3e81e"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Jul 16 17:17:28 2013 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Jul 30 08:44:15 2013 -0700"
      },
      "message": "Use correct type for OutputDescriptor::format\n\nChange-Id: Ide608ef452d57da29b708180d90470361c123d1d\n"
    },
    {
      "commit": "7f249fa9bcb64da324d19f551943fac7686d221c",
      "tree": "76cc14be9525f53fbf910c00884ebe4b5c9988c9",
      "parents": [
        "ae4b5f93444802632d71ec34373842e6f5febbaa",
        "fad226abd12435dbcd232f7de396f1a097b2bd5f"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Jul 29 21:13:08 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Jul 29 21:13:14 2013 +0000"
      },
      "message": "Merge \"Use standard name and type for channel mask\""
    }
  ],
  "next": "3dcd00dddec86a1c5133083ad7ba2265d49c048c"
}
