)]}'
{
  "log": [
    {
      "commit": "54298b338cf9f782f2ac681a15e6cbbb99649350",
      "tree": "ea9027bd6a83df8488aa7d16d237c51f3c93a269",
      "parents": [
        "676b21b30edbd74d7b9aae247961a1ffde1b8993"
      ],
      "author": {
        "name": "Yin-Chia Yeh",
        "email": "yinchiayeh@google.com",
        "time": "Tue Mar 24 16:51:41 2015 -0700"
      },
      "committer": {
        "name": "Yin-Chia Yeh",
        "email": "yinchiayeh@google.com",
        "time": "Tue Mar 24 16:51:41 2015 -0700"
      },
      "message": "Camera: fix metadata assertion\n\nBug: 19897963\nChange-Id: I6b383c4750f31691a1c02e927bbeb0c1998a9eff\n"
    },
    {
      "commit": "676b21b30edbd74d7b9aae247961a1ffde1b8993",
      "tree": "b75567ef13d0c3b235e94fcf3e38d576ab505f96",
      "parents": [
        "0e4421286b92a81e952f53210227adbf05d97c25"
      ],
      "author": {
        "name": "Chien-Yu Chen",
        "email": "cychen@google.com",
        "time": "Tue Feb 24 10:28:19 2015 -0800"
      },
      "committer": {
        "name": "Yin-Chia Yeh",
        "email": "yinchiayeh@google.com",
        "time": "Tue Mar 24 11:52:20 2015 -0700"
      },
      "message": "camera: update CameraModule\n\n1. Add more accessor methods to CameraModule to prevent exposing\nraw module pointer\n2. Use KeyedVector to replace array\n\nBug: 19897963\n\nChange-Id: I111cc093f09f5fb3c4b13693d5d0687e1f441058\n"
    },
    {
      "commit": "0e4421286b92a81e952f53210227adbf05d97c25",
      "tree": "e9a496cd2d5ec0bc2612e845732c2bbd5447d9fd",
      "parents": [
        "7c963e92bc11d4b6a22696c51f9abf42987a1f74",
        "5b8fde71e08f57478ef25d040fc5f66294011ac6"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Fri Mar 20 01:52:15 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Mar 20 01:52:16 2015 +0000"
      },
      "message": "Merge \"Enable full floating point path in AudioMixer\""
    },
    {
      "commit": "446ef2025374cee74ee6291b2a11bfa56017ea74",
      "tree": "52e9819b395aca9bed413d756278c54ff877e99d",
      "parents": [
        "1c15c670928bab5eef6b1a06cf49378abb1e70bf",
        "54b4246bb2025a5dcfdf1611c199998448d28424"
      ],
      "author": {
        "name": "Chih-Hung Hsieh",
        "email": "chh@google.com",
        "time": "Thu Mar 19 21:18:16 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Mar 19 21:18:17 2015 +0000"
      },
      "message": "Merge \"Fix link error of PROCESS_STATE_NONEXISTENT.\""
    },
    {
      "commit": "54b4246bb2025a5dcfdf1611c199998448d28424",
      "tree": "5dbf2230fe538c13d314b8bb9f9aed3077f94bdb",
      "parents": [
        "5a23aa949188fafe1d8d35966ff5a73974294dfd"
      ],
      "author": {
        "name": "Chih-Hung Hsieh",
        "email": "chh@google.com",
        "time": "Thu Mar 19 12:04:54 2015 -0700"
      },
      "committer": {
        "name": "Chih-Hung Hsieh",
        "email": "chh@google.com",
        "time": "Thu Mar 19 13:46:13 2015 -0700"
      },
      "message": "Fix link error of PROCESS_STATE_NONEXISTENT.\n\n* A reference to PROCESS_STATE_NONEXISTENT will cause link error with\n  clang or standard C++ compiler because there is no out-of-class definition,\n  although g++ is allowing it.\n  Use +PROCESS_STATE_NONEXISTENT to get the value instead of reference.\n\nChange-Id: I62049584b94e6847b64b572f6ef6c3e9dcc573eb\n"
    },
    {
      "commit": "1c15c670928bab5eef6b1a06cf49378abb1e70bf",
      "tree": "67a24b196e384cb507fd9a155dbff39638cb315e",
      "parents": [
        "ae21e335e392125168601dba4731c85b5c25f33f",
        "53810823a6613f54fc0b3c3bc0de267dc1f4e1e5"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Mar 19 17:58:27 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Mar 19 17:58:27 2015 +0000"
      },
      "message": "Merge \"audio routing management for radio\""
    },
    {
      "commit": "53810823a6613f54fc0b3c3bc0de267dc1f4e1e5",
      "tree": "e65a116aa468a5dd5f1e60fc5ca4a84f949b3714",
      "parents": [
        "b89b86d48cd5a6258e24fefd0eab888062cbdfb0"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Mar 12 09:12:01 2015 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Mar 19 10:53:21 2015 -0700"
      },
      "message": "audio routing management for radio\n\nAdded radio tuner device connection/disconnection\nindication to audio policy manager.\n\nAdded documentation and removed unused Module\nclass member.\n\nChange-Id: I92438c1ff212c4d76f008149554fa89e367fee42\n"
    },
    {
      "commit": "ae21e335e392125168601dba4731c85b5c25f33f",
      "tree": "9fc3c0737d1391aa6aa9417b212275688cd3bd00",
      "parents": [
        "5a23aa949188fafe1d8d35966ff5a73974294dfd",
        "b97babb8c08969b55af3b6456d15f764c8873d3f"
      ],
      "author": {
        "name": "Yin-Chia Yeh",
        "email": "yinchiayeh@google.com",
        "time": "Thu Mar 19 17:27:52 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Mar 19 17:27:53 2015 +0000"
      },
      "message": "Merge \"Camera: plumbing rotation field through\""
    },
    {
      "commit": "5a23aa949188fafe1d8d35966ff5a73974294dfd",
      "tree": "51100d1057123aa3d7b6fd40a54c2b5611a82172",
      "parents": [
        "d58b2ac7244a964caa3f4e386b8280ae2f5d2125",
        "17c9c998afed5ed9df7495eeed5822f3ed53ebec"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Thu Mar 19 14:49:46 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Mar 19 14:49:47 2015 +0000"
      },
      "message": "Merge \"Initial implementation of fast capture dump\""
    },
    {
      "commit": "d58b2ac7244a964caa3f4e386b8280ae2f5d2125",
      "tree": "84ef9b168bd3ab9e33c0532dabf33fe328eba334",
      "parents": [
        "377165c24968b044faccaf366a2377fa32143e2f",
        "cc776718c0be7c31fe5ab4fc1446d377be60369f"
      ],
      "author": {
        "name": "Ruben Brunk",
        "email": "rubenbrunk@google.com",
        "time": "Thu Mar 19 05:55:16 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Mar 19 05:55:16 2015 +0000"
      },
      "message": "Merge \"camera2: Add camera client eviction enforcement.\""
    },
    {
      "commit": "cc776718c0be7c31fe5ab4fc1446d377be60369f",
      "tree": "c5f0633e27f6c36b938f6a57fea544996ac3d5ae",
      "parents": [
        "f9d19514b3e620b6339c98a442da833a702915ed"
      ],
      "author": {
        "name": "Ruben Brunk",
        "email": "rubenbrunk@google.com",
        "time": "Tue Feb 17 20:18:47 2015 -0800"
      },
      "committer": {
        "name": "Ruben Brunk",
        "email": "rubenbrunk@google.com",
        "time": "Wed Mar 18 22:21:21 2015 -0700"
      },
      "message": "camera2: Add camera client eviction enforcement.\n\n- This updates the CameraService to implement client\n  eviction behavior based on process priority.\n\nBug: 19186859\n\nChange-Id: I646939b1cdf1a2237c4e5044164d55a2542cf36e\n"
    },
    {
      "commit": "b97babb8c08969b55af3b6456d15f764c8873d3f",
      "tree": "e972ec2e9ff83219464a753f4298aa37c3220e55",
      "parents": [
        "802a568f77b9a372537e4216b2a7cbb203958a87"
      ],
      "author": {
        "name": "Yin-Chia Yeh",
        "email": "yinchiayeh@google.com",
        "time": "Thu Mar 12 13:42:44 2015 -0700"
      },
      "committer": {
        "name": "Yin-Chia Yeh",
        "email": "yinchiayeh@google.com",
        "time": "Wed Mar 18 14:15:12 2015 -0700"
      },
      "message": "Camera: plumbing rotation field through\n\nChange-Id: I0f4343a0bfa7bf09ba887c78a1da1c08daa35333\n"
    },
    {
      "commit": "a1a847a509c5670276568d9945509677d92507ed",
      "tree": "040a4e6c97488ca5f775ce3395d719ea90d45b14",
      "parents": [
        "4604458dfe57b0e91a464aefafea50ae7b9876c1",
        "240934ba80d6c6165749db7681d243c6857a092f"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Tue Mar 17 22:50:13 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Mar 17 22:50:14 2015 +0000"
      },
      "message": "Merge \"audioflinger: refresh fast track underrun state upon start\""
    },
    {
      "commit": "74bebe401dd966308f29b0c4f42cf6946dc64582",
      "tree": "cc6666875298f58e252864f303c1736eea44f4e3",
      "parents": [
        "8952c68ecea34cd58245577636b51a5124706893",
        "f59497bd3c190e087202043de5450ef06e92b27d"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Mar 16 20:42:14 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Mar 16 20:42:24 2015 +0000"
      },
      "message": "Merge \"Update comments\""
    },
    {
      "commit": "b89b86d48cd5a6258e24fefd0eab888062cbdfb0",
      "tree": "303d41e3b6c9bed19e795d8b660bf3cb26461945",
      "parents": [
        "0125d057ff7581c77f23c5d72a55f169b57abcc2",
        "4e09069a29fc18d0799808cc26f71e9b068e98ad"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Mar 16 18:27:59 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Mar 16 18:27:59 2015 +0000"
      },
      "message": "Merge \"radio service initial implementation\""
    },
    {
      "commit": "240934ba80d6c6165749db7681d243c6857a092f",
      "tree": "ed11373a97a1e0815e6949dc4f7d08d449a6fecc",
      "parents": [
        "1a86a8adbf4ab43a6aed2c3c8aa0830c001adb77"
      ],
      "author": {
        "name": "Haynes Mathew George",
        "email": "hgeorge@codeaurora.org",
        "time": "Wed Mar 11 18:25:50 2015 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Mon Mar 16 10:47:09 2015 -0700"
      },
      "message": "audioflinger: refresh fast track underrun state upon start\n\nFalse underrun is detected when starting recycled fast tracks, which\nleads to continuous fatal assertion failures and even AP reboot.\n\nTrack\u0027s last mObservedUnderruns isn\u0027t updated one at previous stop()\ncall. Hence, when we start the same track again, we should synchronize\nit to the latest state instead of relying on stale one.\n\nauthored-by: Weiyin Jiang\u003cwjiang@codeaurora.org\u003e\nCRs-Fixed: 803389\nBug: 19635137\nSigned-off-by: Andy Hung \u003chunga@google.com\u003e\nChange-Id: Ia003a49c6896dba965798c062c98b8c367ef8369\n"
    },
    {
      "commit": "ac48c28215798e4135396f09d583b22302636735",
      "tree": "c3e09c279117bddfa35f3e2b2a9d103c6330a9c8",
      "parents": [
        "eb0ee0e842d3b8294aa6c0b797eaf7aff3fd2f89",
        "6fa7083f26895ede2331eeb3897f9ae659aae9bf"
      ],
      "author": {
        "name": "Rakesh Iyer",
        "email": "rni@google.com",
        "time": "Mon Mar 16 17:21:22 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Mar 16 17:21:23 2015 +0000"
      },
      "message": "Merge \"Remove mId from DeviceDescriptor.\""
    },
    {
      "commit": "bd321b6ed912c492331216180b8677ee58c1eebd",
      "tree": "7b1e106394b8b55b1d7633b1b45622a3249d3662",
      "parents": [
        "e5909807588053e610952479f47ebae10230197a",
        "549e735c2ca22d16eea32fda418ba80da32a8558"
      ],
      "author": {
        "name": "Dan Stoza",
        "email": "stoza@google.com",
        "time": "Mon Mar 16 15:46:18 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Mar 16 15:46:21 2015 +0000"
      },
      "message": "Merge \"libcameraservice: Stop using IGBC::BufferItem\""
    },
    {
      "commit": "f59497bd3c190e087202043de5450ef06e92b27d",
      "tree": "52ff88a5a4bd358358850e0ca16d0f9527fded4e",
      "parents": [
        "802a568f77b9a372537e4216b2a7cbb203958a87"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Jan 26 16:35:47 2015 -0800"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Mar 13 16:22:16 2015 -0700"
      },
      "message": "Update comments\n\nChange-Id: I37d3c4ce22b74fe8581a886fe5a7f9fef8266dad\n"
    },
    {
      "commit": "6fa7083f26895ede2331eeb3897f9ae659aae9bf",
      "tree": "1e14c9ddd3392e935a631525b032b11dad1b31a2",
      "parents": [
        "88b456640085fa0e92d66e42ddaf24449c8c4fdb"
      ],
      "author": {
        "name": "Rakesh Iyer",
        "email": "rni@google.com",
        "time": "Fri Mar 13 15:40:29 2015 -0700"
      },
      "committer": {
        "name": "Rakesh Iyer",
        "email": "rni@google.com",
        "time": "Fri Mar 13 15:44:32 2015 -0700"
      },
      "message": "Remove mId from DeviceDescriptor.\n\nDeviceDescriptor inherits from AudioPort which has the correct\nhandle mId. The mId in DeviceDescriptor shadows this so calls\nlike DeviceVector::getDeviceFromId() findDeviceById fail because\nthey are looking at the wrong mId. The failure itself manifested\nas createAudioPatch failing.\n\nChange-Id: I8dd012d0678facaac84844b92226cc4b788abece\n"
    },
    {
      "commit": "802a568f77b9a372537e4216b2a7cbb203958a87",
      "tree": "a31c7160aef56063ee1769fe271432580e6bc3d2",
      "parents": [
        "c84eb736fd051c37e1d7e8585d14612713388a58",
        "ec8930f218fa0c1acde631543b40b5a0b28bfe1f"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Mar 13 15:38:23 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Mar 13 15:38:35 2015 +0000"
      },
      "message": "Merge \"Fix warning while building mediaserver\""
    },
    {
      "commit": "549e735c2ca22d16eea32fda418ba80da32a8558",
      "tree": "c4a5b46fa5803d7ac0520c4eaafb8cef54b4989e",
      "parents": [
        "3f27436a9346f043f52265da1e6a74cde2bffd4d"
      ],
      "author": {
        "name": "Dan Stoza",
        "email": "stoza@google.com",
        "time": "Thu Mar 12 15:21:16 2015 -0700"
      },
      "committer": {
        "name": "Dan Stoza",
        "email": "stoza@google.com",
        "time": "Thu Mar 12 15:21:16 2015 -0700"
      },
      "message": "libcameraservice: Stop using IGBC::BufferItem\n\nSwitches all uses of IGraphicBufferConsumer::BufferItem (and\nBufferQueue::BufferItem) to the BufferItem in libgui. Depends on\nframeworks/native I699ed0a6837076867ca756b28d1ffb2238f7a0d9.\n\nChange-Id: I187b3a7d05196b6289596afac8fb9a9d4aebff76\n"
    },
    {
      "commit": "4e09069a29fc18d0799808cc26f71e9b068e98ad",
      "tree": "c546f0130241ac0fea083fca8ec2582e22785aaa",
      "parents": [
        "dedc86dcb6d63e93518c8974c077e50912d15e9c"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Mar 05 15:12:40 2015 -0800"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Mar 10 18:20:33 2015 -0700"
      },
      "message": "radio service initial implementation\n\nFirst implementation of broadcast radio service.\n\nThis native service runs in mediaserver process and\ncontrols broadcast radio hardware modules.\nThere is one ihardware module per broadcast radio class.\nThe service allows serveral clients to control tuners\non hardware modules and manages resource conflicts.\n\nChange-Id: I21469a084c7ccd65042b8ac5f724d060044c45ab\n"
    },
    {
      "commit": "d4db9dcd7d29234893d580c329f23242197fe664",
      "tree": "19c9cdc2e468bb3b2065acd1e87f572b5de29750",
      "parents": [
        "d4164c3a1a209fd470c2f3aac09c1ce2dc319c8b",
        "3d82c0d9ed2b3e956ad699a9ca2c8a70c9d24678"
      ],
      "author": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Mon Mar 09 23:29:08 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Mar 09 23:29:15 2015 +0000"
      },
      "message": "Merge \"Camera: Wire up dataSpace, clean up ICameraDeviceUser\""
    },
    {
      "commit": "ec8930f218fa0c1acde631543b40b5a0b28bfe1f",
      "tree": "0e81f9b456530eb8a745681726e4720e131bef77",
      "parents": [
        "f9d19514b3e620b6339c98a442da833a702915ed"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Mar 09 15:56:22 2015 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Mar 09 15:56:22 2015 -0700"
      },
      "message": "Fix warning while building mediaserver\n\nIn file included from frameworks/av/services/audiopolicy/managerdefault/AudioPolicyManager.h:31:0,\n                 from frameworks/av/services/audiopolicy/service/AudioPolicyService.h:38,\n                 from frameworks/av/media/mediaserver/main_mediaserver.cpp:36:\nframeworks/av/services/audiopolicy/managerdefault/ConfigParsingUtils.h:29:0: warning: \"ARRAY_SIZE\" redefined\n #define ARRAY_SIZE(a) (sizeof(a) / sizeof((a)[0]))\n ^\nIn file included from frameworks/av/media/libmediaplayerservice/MediaPlayerService.h:31:0,\n                 from frameworks/av/media/mediaserver/main_mediaserver.cpp:35:\nframeworks/av/include/media/stagefright/foundation/ABase.h:21:0: note: this is the location of the previous definition\n #define ARRAY_SIZE(a) (sizeof(a) / sizeof(*(a)))\n ^\n\nChange-Id: I4b80f783c592a78aa88b3dad297278353740466e\n"
    },
    {
      "commit": "b4f18f964cba9f124e5a264428290ada6eb4aa00",
      "tree": "758ad996c40893bbb89b04b248f2cb28e35dc448",
      "parents": [
        "172e2c5a41275efbd5a9c343fa8b8c4c653061b4",
        "1dfe2f9c2d03fc8d0ed0cdfe0b9fb894bc0bcc11"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Mar 09 21:34:23 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Mar 09 21:34:24 2015 +0000"
      },
      "message": "Merge \"Allow TRANSFER_OBTAIN to be used for fast tracks\""
    },
    {
      "commit": "1dfe2f9c2d03fc8d0ed0cdfe0b9fb894bc0bcc11",
      "tree": "1863bd0a9a9d1c0a0ab2055e345d9f86b9986151",
      "parents": [
        "b46f394a85d704dd05287cf9bb77cf86e3c02a38"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Mar 09 12:03:14 2015 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Mar 09 14:19:35 2015 -0700"
      },
      "message": "Allow TRANSFER_OBTAIN to be used for fast tracks\n\nChange-Id: I8fa20c26f076567b38210af4a680fe1cb2eacee4\n"
    },
    {
      "commit": "3d82c0d9ed2b3e956ad699a9ca2c8a70c9d24678",
      "tree": "7f36bbbe98842a1b7cd46137afb853ad5d9b8fe1",
      "parents": [
        "df68f07ca7cdeb500fcf101b317c61a0f0865723"
      ],
      "author": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Mon Feb 23 15:19:19 2015 -0800"
      },
      "committer": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Fri Mar 06 10:38:55 2015 -0800"
      },
      "message": "Camera: Wire up dataSpace, clean up ICameraDeviceUser\n\n- Remove unused arguments from ICameraDeviceUser::createStream\n- Add dataSpace as a stream parameter, plumb it through everything\n\nChange-Id: I608cafe694785d1c512276e71b2016f8ac3b0ccb\n"
    },
    {
      "commit": "17c9c998afed5ed9df7495eeed5822f3ed53ebec",
      "tree": "9b146046584a7093410ecb23b1265d770383c376",
      "parents": [
        "44182c206f7c5584ef2cf504da6be98fab665dbf"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Mar 02 15:53:01 2015 -0800"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Mar 06 09:35:19 2015 -0800"
      },
      "message": "Initial implementation of fast capture dump\n\nChange-Id: I898d903e539f760ef7caa80f41ca21c223f67264\n"
    },
    {
      "commit": "44182c206f7c5584ef2cf504da6be98fab665dbf",
      "tree": "6b3c4134c8cdd0d92aff4f917dfa3134c2c43bf4",
      "parents": [
        "0b89bc0d285b8fd4798df1ff0ba9f93851a3bd48"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Thu Mar 05 17:12:23 2015 -0800"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Mar 06 09:31:03 2015 -0800"
      },
      "message": "Dump generic information first for each thread\n\nalso mBufferSize was already being displayed as part of dumpBase\n\nChange-Id: I17f3062fcc076c594b5fd6b8fca286b27067e07c\n"
    },
    {
      "commit": "0b89bc0d285b8fd4798df1ff0ba9f93851a3bd48",
      "tree": "9c7813d20bf4cd16d9cec1ae464877432751703e",
      "parents": [
        "d7dca050c630bddbd73a6623271b34b4290460ee"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Thu Mar 05 16:37:47 2015 -0800"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Mar 06 09:29:51 2015 -0800"
      },
      "message": "Display more fields in thread dumpBase\n\nChange-Id: Ice15e999dda2f6cf9d23685ade4a87f74180322d\n"
    },
    {
      "commit": "d7dca050c630bddbd73a6623271b34b4290460ee",
      "tree": "c95d8f92b3fcaa95a712f862486bc07589ac746f",
      "parents": [
        "bcb1486d052e329ae4790d93055d1c51017286c3"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Thu Mar 05 16:05:54 2015 -0800"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Mar 06 09:23:25 2015 -0800"
      },
      "message": "Rename mName to mThreadName and kNameLength to kThreadNameLength\n\nChange-Id: I0adfcdcab7923a07a840ec0e04528cb8bfc41f10\n"
    },
    {
      "commit": "bcb1486d052e329ae4790d93055d1c51017286c3",
      "tree": "27c26a78aea2bfe71a07b61543b4a488e422a4e0",
      "parents": [
        "2f55e7632dfa0dafde58efd8cb2af6593217fd91"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Thu Mar 05 17:11:21 2015 -0800"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Mar 06 09:23:23 2015 -0800"
      },
      "message": "Whitespace\n\nswitch indent\n\nChange-Id: I652c798dd37a80634d247c4d881fb1cce92c4bd6\n"
    },
    {
      "commit": "2f55e7632dfa0dafde58efd8cb2af6593217fd91",
      "tree": "98919a61809f20da6186d3e54537546604d7ff22",
      "parents": [
        "e7d6671c1ab1fea7ab1c4a9ebd1cd8f899c87628"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Thu Mar 05 16:05:08 2015 -0800"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Mar 06 09:22:51 2015 -0800"
      },
      "message": "Rename tee sink file name and add prefix to macros\n\nChange-Id: If316b9e32963d9baef8f4382fcc73dc6c4ff684d\n"
    },
    {
      "commit": "e7d6671c1ab1fea7ab1c4a9ebd1cd8f899c87628",
      "tree": "0d55fe4b6aa3009acd3f9253b42d19a3214ed029",
      "parents": [
        "0f5b562737d6b5457aa83a4fdce9c6fb32584d9d"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Thu Mar 05 13:46:52 2015 -0800"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Mar 06 09:16:44 2015 -0800"
      },
      "message": "Rename formal parameter to match type name\n\nChange-Id: I0761005b751f5c4a4b28729b1820961ff3077afd\n"
    },
    {
      "commit": "0f5b562737d6b5457aa83a4fdce9c6fb32584d9d",
      "tree": "a3d8ffcaf5015d9d66ef5a3f10c7d13bbb278e94",
      "parents": [
        "6ffc14ab6b43d4239f5adb4e6c642b7875d26432"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed Feb 18 14:33:30 2015 -0800"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Mar 06 09:16:41 2015 -0800"
      },
      "message": "Add devicesToString, inputFlagsToString, and sourceToString\n\nChange-Id: I0c09d76c204ffc5579f62d2ed1faef07922a5962\n"
    },
    {
      "commit": "6ffc14ab6b43d4239f5adb4e6c642b7875d26432",
      "tree": "64acadc3635637aa5681ccc9ec3092912518c314",
      "parents": [
        "fa8b4792228083a4c95e8bd1c28690d44bb48bd6",
        "dfb0e115d827887e2f56a8877fe41b256d24360e"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Mar 06 16:14:37 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Mar 06 16:14:38 2015 +0000"
      },
      "message": "Merge \"Fix typo in string table\""
    },
    {
      "commit": "dfb0e115d827887e2f56a8877fe41b256d24360e",
      "tree": "6a43958eaf694d463f19a68193d37e285d548beb",
      "parents": [
        "e8c9a8f78a9f9213060e5d54a15cde364df3e0d0"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed Feb 18 14:33:39 2015 -0800"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Thu Mar 05 17:33:48 2015 -0800"
      },
      "message": "Fix typo in string table\n\nChange-Id: Iaf3d3c77129c62cf3dcad21fc754f390eb43b28e\n"
    },
    {
      "commit": "df68f07ca7cdeb500fcf101b317c61a0f0865723",
      "tree": "9b5ae71ee622c6d05270c5cd18f0d41e8374a563",
      "parents": [
        "60d5023f92f344d1c4e72d8b1eee54a1d014f36c",
        "6b667dde03a5707285a2ff76ada525075d4c60ef"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Wed Mar 04 18:42:32 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Mar 04 18:42:43 2015 +0000"
      },
      "message": "Merge \"Improve resampler speed for floating point and arm64\""
    },
    {
      "commit": "60d5023f92f344d1c4e72d8b1eee54a1d014f36c",
      "tree": "ed1088df59b9e68ebda21036d7578edf3171db03",
      "parents": [
        "32580ec89077947274bd161b379ab0410838dd8e",
        "acc930d104534dff89d5e336d22d2310069ca7c2"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Mar 04 18:11:20 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Mar 04 18:11:20 2015 +0000"
      },
      "message": "Merge \"audiopolicy: Do not route VoIP call to HDMI\""
    },
    {
      "commit": "acc930d104534dff89d5e336d22d2310069ca7c2",
      "tree": "1bd6f8f33db1549d0fe3663dbe72a7570957af35",
      "parents": [
        "96faa25f4aea2c792523ae920da91f919f5ea392"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Mar 04 10:08:29 2015 -0800"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Mar 04 10:08:41 2015 -0800"
      },
      "message": "audiopolicy: Do not route VoIP call to HDMI\n\ngetDeviceForStrategy is returning AUDIO_DEVICE_OUT_AUX_DIGITAL\neven  when setForceUse is called with FORCE_NONE(earpiece)\nduring VOIP call.\nActual Intention is to route audio for phone strategy to AUX\ndevice even after setForceUse is called with FORCE_NONE when not\nin voice call. It is supposed to exclude VOIP call too.\n\nBug: 19522164.\n\nChange-Id: I88d515c351f066305f9eed240b1fe5f60ef34f85\n"
    },
    {
      "commit": "6d32d81f966b1e5e6e037d55a5003fea4b87e55b",
      "tree": "26824f1a2006c3a24ebd542b975ce8a076f051fa",
      "parents": [
        "0331cf73db5087311089e01f5d31bb4026e54e6a",
        "5115777127bb4d2d50833537e09054dcdffdfc76"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed Mar 04 00:10:30 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Mar 04 00:10:30 2015 +0000"
      },
      "message": "Merge \"Remove PCM16 assumption from FastCapture\""
    },
    {
      "commit": "0331cf73db5087311089e01f5d31bb4026e54e6a",
      "tree": "c20054736d6a1de501a5a43e416cd9a7005114f1",
      "parents": [
        "27697a3d51b3e6c3c6619fdb8249af5885629610",
        "8a0554c63dc40a2a7c066b03041079ec9eb220e5"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed Mar 04 00:05:07 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Mar 04 00:05:08 2015 +0000"
      },
      "message": "Merge \"Pull up comment to superclass\""
    },
    {
      "commit": "27697a3d51b3e6c3c6619fdb8249af5885629610",
      "tree": "6c7ef38f08e10baf7567ce87ce626b09b9b9ef34",
      "parents": [
        "56d517cb7a52ce8ce99afa4fdf822ff521921fe9",
        "4dd03b5b68dcd8eb5f5ffe2cfe93d26b8f08b848"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed Mar 04 00:04:51 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Mar 04 00:04:52 2015 +0000"
      },
      "message": "Merge \"Remove redundant this-\u003e\""
    },
    {
      "commit": "56d517cb7a52ce8ce99afa4fdf822ff521921fe9",
      "tree": "bac1513be432df5f466680a58ec12e1107c96084",
      "parents": [
        "c33752349705068728b9b6e0cf5ac8f8252947ae",
        "e4a7ce250cb94a00aa2f76e5edca1c4479dc5401"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed Mar 04 00:04:26 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Mar 04 00:04:26 2015 +0000"
      },
      "message": "Merge \"Add \"m\" prefix to fields\""
    },
    {
      "commit": "5115777127bb4d2d50833537e09054dcdffdfc76",
      "tree": "70e9d2aeb62926d0d9513fad6f607904a43de74f",
      "parents": [
        "8a0554c63dc40a2a7c066b03041079ec9eb220e5"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Mar 03 11:48:45 2015 -0800"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Mar 03 15:56:01 2015 -0800"
      },
      "message": "Remove PCM16 assumption from FastCapture\n\nBug: 19586911\nChange-Id: I74d4ddc09a9eb9c651f874482639d39a56f8ca1f\n"
    },
    {
      "commit": "8a0554c63dc40a2a7c066b03041079ec9eb220e5",
      "tree": "4e3739739382f654e9c7b4eb1335e0346ae9f967",
      "parents": [
        "4dd03b5b68dcd8eb5f5ffe2cfe93d26b8f08b848"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Mar 03 12:17:06 2015 -0800"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Mar 03 15:56:01 2015 -0800"
      },
      "message": "Pull up comment to superclass\n\nChange-Id: I2e3632ee80744f2f8d932ac1a8597ff805883851\n"
    },
    {
      "commit": "4dd03b5b68dcd8eb5f5ffe2cfe93d26b8f08b848",
      "tree": "203ce41ac6f50f6a4c90cefd3b33f6d351037163",
      "parents": [
        "e4a7ce250cb94a00aa2f76e5edca1c4479dc5401"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Mar 03 11:32:04 2015 -0800"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Mar 03 15:56:00 2015 -0800"
      },
      "message": "Remove redundant this-\u003e\n\nChange-Id: Iaa11bcce94dd331425197aab49065939e226a6a2\n"
    },
    {
      "commit": "e4a7ce250cb94a00aa2f76e5edca1c4479dc5401",
      "tree": "90743cbfc56a46b815fc5118b0695f5130e8d6a5",
      "parents": [
        "d702a568cb62e5aebe048147350bb3c76f9386ba"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Mar 03 11:23:17 2015 -0800"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Mar 03 15:55:56 2015 -0800"
      },
      "message": "Add \"m\" prefix to fields\n\nChange-Id: Ifdb8fa886d1ff53cd7c8aff3c2f8286e6e18dec2\n"
    },
    {
      "commit": "6b667dde03a5707285a2ff76ada525075d4c60ef",
      "tree": "1034167044ecb2bb9551020bd19441da40748904",
      "parents": [
        "bf31b3301676ad86151f632e9ca186fd02445d86"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Fri Feb 06 15:05:37 2015 -0800"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Tue Mar 03 15:23:19 2015 -0800"
      },
      "message": "Improve resampler speed for floating point and arm64\n\nAdd floating point intrinsics for arm32 and arm64 devices.\nAdd integer intrinsics for arm64 devices.\n\nBug: 17366024\nChange-Id: Id4240f549033deb262815c7145d69820e5fd7b92\n"
    },
    {
      "commit": "1ba399206f6a99fec17331186041b55c3733c8d8",
      "tree": "731a4712bbf484987fa8f08b93aab8d4a11e4b33",
      "parents": [
        "38445e493d4cab2abc29515fd3f2ce2e411a6868",
        "d231fd61ca94441183abda9766ce6906a5b4c3cf"
      ],
      "author": {
        "name": "Chien-Yu Chen",
        "email": "cychen@google.com",
        "time": "Tue Mar 03 22:23:05 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Mar 03 22:23:06 2015 +0000"
      },
      "message": "Merge \"camera: implement flashlight for HAL v1 devices\""
    },
    {
      "commit": "38445e493d4cab2abc29515fd3f2ce2e411a6868",
      "tree": "09303b3079864d8a921d45c14d591addb25ee965",
      "parents": [
        "d702a568cb62e5aebe048147350bb3c76f9386ba",
        "88da526d97442c80731e01bfc94c6b47c4b0c3c7"
      ],
      "author": {
        "name": "Chien-Yu Chen",
        "email": "cychen@google.com",
        "time": "Tue Mar 03 22:20:37 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Mar 03 22:20:38 2015 +0000"
      },
      "message": "Merge \"camera: fix flashlight implementation for HAL v2\""
    },
    {
      "commit": "d231fd61ca94441183abda9766ce6906a5b4c3cf",
      "tree": "67dd34bd33fd1fcddb9182b34d5ddc754a259d16",
      "parents": [
        "88da526d97442c80731e01bfc94c6b47c4b0c3c7"
      ],
      "author": {
        "name": "Chien-Yu Chen",
        "email": "cychen@google.com",
        "time": "Wed Feb 25 16:04:22 2015 -0800"
      },
      "committer": {
        "name": "Chien-Yu Chen",
        "email": "cychen@google.com",
        "time": "Tue Mar 03 14:07:57 2015 -0800"
      },
      "message": "camera: implement flashlight for HAL v1 devices\n\nImplement flashlight for HAL v1 devices and remove\nCameraHardwareInterface\u0027s dependency on CameraService to avoid\ncircular dependency.\n\nBug: 2682206\nChange-Id: Id5bbccef085b607a6189763fd7fbe2e3f26868c8\n"
    },
    {
      "commit": "88da526d97442c80731e01bfc94c6b47c4b0c3c7",
      "tree": "d62e3b5051bd55ac6f2bb0e4762a15be28650c5a",
      "parents": [
        "7841f704fee0e5acd45fa6e47a336120c3cad42c"
      ],
      "author": {
        "name": "Chien-Yu Chen",
        "email": "cychen@google.com",
        "time": "Tue Feb 17 13:56:46 2015 -0800"
      },
      "committer": {
        "name": "Chien-Yu Chen",
        "email": "cychen@google.com",
        "time": "Tue Mar 03 14:07:47 2015 -0800"
      },
      "message": "camera: fix flashlight implementation for HAL v2\n\nUpdate torch availability when the camera device availability changes.\n\nFor device HAL v2 and v3 implementation, notify torch unavailable for\nall camera devices with a flash unit when a camera device is opened.\nNotify torch available for all camera devices with flash unit when\nall camera devices are closed.\n\nDon\u0027t invoke torch status callback in camera service. Invoke torch\nstatus callback in HAL or FlashControlBase implementations to avoid\nrace condition.\n\nClean up previous CL.\n\nBug: 2682206\nChange-Id: I24f5478f467b2c680565fe98f112eef33e2547a1\n"
    },
    {
      "commit": "d702a568cb62e5aebe048147350bb3c76f9386ba",
      "tree": "507e18b27556b74262a527a7378515fbdcf9b573",
      "parents": [
        "fbdb2aceab7317aa44bc8f301a93eb49e17b2bce"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Mar 02 15:51:38 2015 -0800"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Mar 03 08:52:56 2015 -0800"
      },
      "message": "Pull out commandToString() from FastMixerDumpState.cpp\n\nto FastThreadState.cpp, FastMixerState.cpp, and FastCaptureState.cpp\n\nChange-Id: I872efb211e8a0335c42906367859d3674340e374\n"
    },
    {
      "commit": "fbdb2aceab7317aa44bc8f301a93eb49e17b2bce",
      "tree": "97defd36379d3d4770dbd02dbacf046084889761",
      "parents": [
        "63238efb0d674758902918e3cdaac322126484b7"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Mar 02 14:47:19 2015 -0800"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Mar 03 08:50:40 2015 -0800"
      },
      "message": "Pull up increaseSamplingN and kSamplingNforLowRamDevice\n\nfrom FastMixerDumpState to FastThreadDumpState, and remove unused parameter\nfrom FastMixerDumpState constructor.\n\nChange-Id: Ib8937b106622a8da28a6ef6043de4528ae82cb05\n"
    },
    {
      "commit": "63238efb0d674758902918e3cdaac322126484b7",
      "tree": "07fdf37a2bc73a886d8ea41f69e722ed914754af",
      "parents": [
        "d7e1d08c2ac21cdd2f3b7f83fec7094f6a98fc08"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Mar 02 15:50:29 2015 -0800"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Mar 03 08:50:40 2015 -0800"
      },
      "message": "Remove redundant semicolon from namespace closing\n\nChange-Id: I163f9d3d216c283ae1160ce4802e5247cf44fba7\n"
    },
    {
      "commit": "13e71707522a212b192063acb0b221abbe618f60",
      "tree": "e96e4f768235dc77478aef7d9a086b8f61f31d4d",
      "parents": [
        "785b34e6b2743e3303dcd56d269259da73c40dfb",
        "d797a9d5daad3051f9ac1d348abc2f434ea3ddcf"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Mar 03 01:01:05 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Mar 03 01:01:05 2015 +0000"
      },
      "message": "Merge \"Fix compile error if FAST_THREAD_STATISTICS not defined\""
    },
    {
      "commit": "785b34e6b2743e3303dcd56d269259da73c40dfb",
      "tree": "d6cc5eb0be4404b51a59f5460a76a3ecb355ba21",
      "parents": [
        "a5c5ad3615613ac0f15012e9e07a34582da7fe77",
        "214b406c813e5baca3e4b5cdc1d986de35f09bbb"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Mar 03 01:00:53 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Mar 03 01:00:54 2015 +0000"
      },
      "message": "Merge \"Rename FAST_MIXER_STATISTICS to FAST_THREAD_STATISTICS\""
    },
    {
      "commit": "d797a9d5daad3051f9ac1d348abc2f434ea3ddcf",
      "tree": "ce8626ab8016e1d162c2adcb14bbf2e3d9731267",
      "parents": [
        "214b406c813e5baca3e4b5cdc1d986de35f09bbb"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Mar 02 14:19:25 2015 -0800"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Mar 02 14:50:26 2015 -0800"
      },
      "message": "Fix compile error if FAST_THREAD_STATISTICS not defined\n\nChange-Id: I3a4ac558e61ad956a7a6e325534e722066e49b2f\n"
    },
    {
      "commit": "214b406c813e5baca3e4b5cdc1d986de35f09bbb",
      "tree": "9e39728f873648da62d84e101b8dfcb25c58f4f7",
      "parents": [
        "bf31b3301676ad86151f632e9ca186fd02445d86"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Mar 02 14:15:47 2015 -0800"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Mar 02 14:17:05 2015 -0800"
      },
      "message": "Rename FAST_MIXER_STATISTICS to FAST_THREAD_STATISTICS\n\nChange-Id: Idb5f5bf0c20bffff8536cf4a46f696e12e99e81b\n"
    },
    {
      "commit": "a5c5ad3615613ac0f15012e9e07a34582da7fe77",
      "tree": "36bd8363a603868b2b3b57e47727d932c299dcdf",
      "parents": [
        "bf5d0666b803921541e6a5d6abae05316e533855"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Mar 02 11:19:12 2015 -0800"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Mar 02 11:23:35 2015 -0800"
      },
      "message": "Re-generate sinc tables with comment and indent by 4\n\nChange-Id: I349273969dfd7e9d7f896f8bd6d552bd6b56ba54\n"
    },
    {
      "commit": "bf31b3301676ad86151f632e9ca186fd02445d86",
      "tree": "4cdb7c795f3fb11cc9c9c730a869e25eb2c29d01",
      "parents": [
        "b2b152afbefb2a3d67c142174da9b7d6ebf8630c",
        "2f5aa01e52b8869515373b5047f00272f245883e"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Mar 02 18:39:19 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Mar 02 18:39:20 2015 +0000"
      },
      "message": "Merge \"Line length 100\""
    },
    {
      "commit": "ad3738ccfadc1b57428c28e91c5428939bbf19b1",
      "tree": "7daee377cbd216cb85ec1b44ea6627fc63d44d37",
      "parents": [
        "566729efce4035ac4fa09c2c106bcf6756451387",
        "675933be11f2c24f9f66011345377d2840938646"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Mar 02 18:37:53 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Mar 02 18:37:53 2015 +0000"
      },
      "message": "Merge \"Extract resampler coefficient tables to separate files\""
    },
    {
      "commit": "2f5aa01e52b8869515373b5047f00272f245883e",
      "tree": "b44c62dca5f9a925ce3b3d860376164597c2780f",
      "parents": [
        "e1984fc72d9f814461992b9f5b1e5f9d45ce7afa"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Feb 17 15:04:28 2015 -0800"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Feb 27 18:29:48 2015 -0800"
      },
      "message": "Line length 100\n\nChange-Id: Ic0ae92c300df221387bdd9669e4b7b995d83d28a\n"
    },
    {
      "commit": "675933be11f2c24f9f66011345377d2840938646",
      "tree": "c102134a72b0c8a9948cb6a6b75b431cb444af74",
      "parents": [
        "9060199701c97b290aa4a4184d147e0311ab8897"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Feb 17 14:23:04 2015 -0800"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Feb 27 18:29:47 2015 -0800"
      },
      "message": "Extract resampler coefficient tables to separate files\n\nChange-Id: I2e186bd3172cecc08c436e6bf7546b913249e6c8\n"
    },
    {
      "commit": "566729efce4035ac4fa09c2c106bcf6756451387",
      "tree": "65a7fe79cd56ffeeb5fa8b9bb4d864de7b2093c3",
      "parents": [
        "66bcde4a112de4057f80bdef1c8955597d5cca50",
        "d7a77156eb13973f7fce5c9db6113bef83bc205b"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Sat Feb 28 02:12:36 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sat Feb 28 02:12:36 2015 +0000"
      },
      "message": "Merge \"Fix comments in resampler assembly\""
    },
    {
      "commit": "66bcde4a112de4057f80bdef1c8955597d5cca50",
      "tree": "4aa8edb37e27830497768883f6daa01ec3c2f192",
      "parents": [
        "d4bd93b22ab9f7dfa32dfc6d48e008db3ea9c634",
        "650ceb93e58435c3cb1fd1860393130121023c0d"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Sat Feb 28 01:05:51 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sat Feb 28 01:05:52 2015 +0000"
      },
      "message": "Merge \"Add channel index mask to AudioMixer\""
    },
    {
      "commit": "d4bd93b22ab9f7dfa32dfc6d48e008db3ea9c634",
      "tree": "6e1effbb661cd90a1c09aed0db9cc44cedaf1544",
      "parents": [
        "9060199701c97b290aa4a4184d147e0311ab8897",
        "0e48d25606c82def035ad10a5b3923767a765cdd"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Sat Feb 28 00:38:24 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sat Feb 28 00:38:25 2015 +0000"
      },
      "message": "Merge \"Change AudioTrack resampling buffers from 3 to 2\""
    },
    {
      "commit": "9060199701c97b290aa4a4184d147e0311ab8897",
      "tree": "ca4bdc0a66470f17929b4c77e43a9d1c6273d7e5",
      "parents": [
        "7841f704fee0e5acd45fa6e47a336120c3cad42c",
        "d2123e631834a887c2d8600c3ac43dda02d47cb9"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Feb 27 22:55:14 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Feb 27 22:55:15 2015 +0000"
      },
      "message": "Merge \"Warmup cycles must be in range and consecutive\""
    },
    {
      "commit": "650ceb93e58435c3cb1fd1860393130121023c0d",
      "tree": "5f33a1ae10e8145bbd914014ec8ce86711811883",
      "parents": [
        "9ee53a49860e91c2b012883eef09d669a7829e06"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Thu Jan 29 13:31:12 2015 -0800"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Fri Feb 27 12:44:13 2015 -0800"
      },
      "message": "Add channel index mask to AudioMixer\n\nChange-Id: Ifbcb61cc24111b7efab5e8d119d44dab26ba1778\n"
    },
    {
      "commit": "7841f704fee0e5acd45fa6e47a336120c3cad42c",
      "tree": "c75096dc548d0bdb9eec94663e08dc59fe287fc5",
      "parents": [
        "364b2600670e178931f0e88dbffb4f1f3dccc4ea",
        "5bedff60b2facaa1ec5b9433647ebf1504f065ca"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Thu Feb 26 23:39:12 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Feb 26 23:39:14 2015 +0000"
      },
      "message": "Merge \"Do not pre-fill OutputTrack buffer for duplicating thread\""
    },
    {
      "commit": "364b2600670e178931f0e88dbffb4f1f3dccc4ea",
      "tree": "a9e0663ae0afba69cc1fa0cd1c55fc0be303ab8f",
      "parents": [
        "212765f2d5ee6e533f3d032d6609125faa95bf48",
        "4019a1e408c12040fc13f7bd0027def630efcc18"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Thu Feb 26 20:05:50 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Feb 26 20:05:52 2015 +0000"
      },
      "message": "Merge \"Remove unused stride-by-8 resampling code\""
    },
    {
      "commit": "d031aaae9e93ef2860070eee2c191b1cf428cf46",
      "tree": "0103eb3faa51eda1a446c936439aaa235c356ef2",
      "parents": [
        "07aed75a681793474487e7e5e100d21c2f31de9c",
        "b6dc0bf1ce7d54995943c3cd6885f35db77728fc"
      ],
      "author": {
        "name": "Yin-Chia Yeh",
        "email": "yinchiayeh@google.com",
        "time": "Fri Feb 20 17:41:53 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Feb 20 17:41:54 2015 +0000"
      },
      "message": "Merge \"CameraService: fix invalid access of camera metadata\""
    },
    {
      "commit": "9a4fa2dfb7ce565fabfb7a7bef4f4adfea191f05",
      "tree": "b91d3bdf39760c82e54ab0be64c74d277f9a57fd",
      "parents": [
        "9d19e392f61de3e8cd365afa12d7836bd3721602",
        "a97dfeb91aae9569ff11a5a40634e2960c03915e"
      ],
      "author": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Fri Feb 20 01:04:44 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Feb 20 01:04:48 2015 +0000"
      },
      "message": "Merge \"Camera: Remove RAW_SENSOR in favor of RAW16\""
    },
    {
      "commit": "0fbad3c813cdd67dcab95f998f1982b2180dc322",
      "tree": "1401cfae977d096245441ce047425e80a1db1633",
      "parents": [
        "a52b8d1f4890f0a695cfbffda106579bcc3a16b5",
        "3e91b5d11866599e8f33e63fb3b6c1d81ce1a1d2"
      ],
      "author": {
        "name": "Ricardo Garcia",
        "email": "rago@google.com",
        "time": "Fri Feb 20 00:36:25 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Feb 20 00:36:26 2015 +0000"
      },
      "message": "Merge \"Fix for getMicMute in AudioFlinger\""
    },
    {
      "commit": "a52b8d1f4890f0a695cfbffda106579bcc3a16b5",
      "tree": "c38befe0d4fcc7cfe93ca650d30b51d36b4ffd52",
      "parents": [
        "6ff474ed7eefe003216a3f98992f1ece047d64a2",
        "ad8510a339ffab330c2c46e5c247dd1cf9e15c22"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Feb 20 00:35:48 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Feb 20 00:35:48 2015 +0000"
      },
      "message": "Merge \"Include what you use\""
    },
    {
      "commit": "6ff474ed7eefe003216a3f98992f1ece047d64a2",
      "tree": "550f8ebb8d7dead2543ca952ff8eaf124630c675",
      "parents": [
        "5e2d279226b78aeedd3d347953cdbb8c0220dc51",
        "04333cdc8d6a3c8e4a11835371e8ad13adf3f7f0"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Feb 20 00:35:36 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Feb 20 00:35:37 2015 +0000"
      },
      "message": "Merge \"Pull out FastCaptureDumpState and FastMixerDumpState\""
    },
    {
      "commit": "a97dfeb91aae9569ff11a5a40634e2960c03915e",
      "tree": "8f325ccd2d62226dd0868863a324e20f2ef7858f",
      "parents": [
        "37b2b389139ed638831e49708c947863eef631ef"
      ],
      "author": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Thu Feb 19 16:26:13 2015 -0800"
      },
      "committer": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Thu Feb 19 16:26:13 2015 -0800"
      },
      "message": "Camera: Remove RAW_SENSOR in favor of RAW16\n\nChange-Id: I69ca24c69f58be958efdef300b127401d2b2e880\n"
    },
    {
      "commit": "3e91b5d11866599e8f33e63fb3b6c1d81ce1a1d2",
      "tree": "44923162a2e46fcd80271fb04975526081a34aac",
      "parents": [
        "ea78b1497eef36b6a3ba783be20615989e87ed08"
      ],
      "author": {
        "name": "Ricardo Garcia",
        "email": "rago@google.com",
        "time": "Thu Feb 19 10:54:52 2015 -0800"
      },
      "committer": {
        "name": "Ricardo Garcia",
        "email": "rago@google.com",
        "time": "Thu Feb 19 15:49:36 2015 -0800"
      },
      "message": "Fix for getMicMute in AudioFlinger\n\nPrevious logic will only check for mic state of Primary Hardware\nDevice. Current logic checks state of all devices with valid\nmicrophone input.\nThis is needed for audio_output feature support.\n\nbug: 19439530\nChange-Id: Ibbb92412ac70cf2915bbe8660c04fbaf0ab74171\n"
    },
    {
      "commit": "a9284a8d9e6cb27e6d428be3f70a854d978dc282",
      "tree": "25f89ab3cac054b130d8c41a14b8898b7b655ba1",
      "parents": [
        "658fc18d8e632441cd5d83a4f74b53620cbac1fe",
        "3068d73c6c7e1f44523b1466b903a9c82408b258"
      ],
      "author": {
        "name": "Chien-Yu Chen",
        "email": "cychen@google.com",
        "time": "Thu Feb 19 20:51:11 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Feb 19 20:51:18 2015 +0000"
      },
      "message": "Merge \"camera: implement flashlight control\""
    },
    {
      "commit": "d2123e631834a887c2d8600c3ac43dda02d47cb9",
      "tree": "1b0fbc7dd7ffb18d7a7084f2cff34f82c61a25b2",
      "parents": [
        "ad8510a339ffab330c2c46e5c247dd1cf9e15c22"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Thu Jan 29 10:02:44 2015 -0800"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Thu Feb 19 09:47:44 2015 -0800"
      },
      "message": "Warmup cycles must be in range and consecutive\n\nChange-Id: Ie8a40ec3547bdd62a1e2e05b11fb107c25841784\n"
    },
    {
      "commit": "ad8510a339ffab330c2c46e5c247dd1cf9e15c22",
      "tree": "f8643e6711ce756876c02cbb2c0ed4ed459c6187",
      "parents": [
        "04333cdc8d6a3c8e4a11835371e8ad13adf3f7f0"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Feb 17 16:24:07 2015 -0800"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Thu Feb 19 09:47:41 2015 -0800"
      },
      "message": "Include what you use\n\nChange-Id: I1967861f383bb5ed6743fb69e3bd439907ed7033\n"
    },
    {
      "commit": "04333cdc8d6a3c8e4a11835371e8ad13adf3f7f0",
      "tree": "ff205682f760786e3d195f297d60207af0e40792",
      "parents": [
        "658fc18d8e632441cd5d83a4f74b53620cbac1fe"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Feb 17 16:23:03 2015 -0800"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Thu Feb 19 09:47:39 2015 -0800"
      },
      "message": "Pull out FastCaptureDumpState and FastMixerDumpState\n\nChange-Id: I8e44dbfe02338622eb69193b234743b50f0dd79f\n"
    },
    {
      "commit": "658fc18d8e632441cd5d83a4f74b53620cbac1fe",
      "tree": "f6e16cad4595a48edabe40d1f1bae95ff8657dec",
      "parents": [
        "c1b3bc0ced3b7526c31223911d334961ae031995",
        "045ee7ea3e42b8657869d81c917feed5fb0c2b4a"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Thu Feb 19 17:38:04 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Feb 19 17:38:05 2015 +0000"
      },
      "message": "Merge \"Pull out FastThreadDumpState\""
    },
    {
      "commit": "c1b3bc0ced3b7526c31223911d334961ae031995",
      "tree": "595a4add001bb265f287dae9f3bd902787f2cc94",
      "parents": [
        "1fb8290c1f99e1db96b681e6eaae0193ea81674e",
        "56ec4ffcbae8aeac6c5245fc7b825d02e2e6cefd"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Thu Feb 19 17:11:33 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Feb 19 17:11:34 2015 +0000"
      },
      "message": "Merge \"Refactor AudioPolicyManager\""
    },
    {
      "commit": "56ec4ffcbae8aeac6c5245fc7b825d02e2e6cefd",
      "tree": "914941adb956f3af389b9a7b955f3534eec4fe7a",
      "parents": [
        "8f7b7fa417566e9a6a29ea9f0e220b3cd6d1a9e3"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Fri Jan 23 16:45:18 2015 -0800"
      },
      "committer": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Wed Feb 18 17:29:20 2015 -0800"
      },
      "message": "Refactor AudioPolicyManager\n\nAudioPolicyManager implementation is now split into the\nfollowing files:\n\nfiles managerdefault/Gains.*\n  class AudioGain\n  class VolumeCurvePoint\n  class StreamDescriptor\n\nfiles managerdefault/Devices.*\n  class DeviceDescriptor\n  class DeviceVector\n\nfiles managerdefault/Ports.*\n  class AudioPort\n  class AudioPortConfig\n  class AudioPatch\n\nfiles managerdefault/IOProfile.*\n  class IOProfile\n\nfiles managerdefault/HwModule.*\n  class HwModule\n\nfiles managerdefault/AudioInputDescriptor.*\n  class AudioInputDescriptor\n\nfiles managerdefault/AudioOutputDescriptor.*\n  class AudioOutputDescriptor\n\nAll files for libaudiopolicyservice are moved under service/\n\nAll files for libaudiopolicymanager are moved under manager/\n\nChange-Id: I43758be1894e37d34db194b51a19ae24461e066e\n"
    },
    {
      "commit": "b6dc0bf1ce7d54995943c3cd6885f35db77728fc",
      "tree": "8b48b08c3e2b766b86d5ac0c3131e0c96d6a3881",
      "parents": [
        "9f1f00cee228eb1c6cf4a7e2b9dc4c92d6754a39"
      ],
      "author": {
        "name": "Yin-Chia Yeh",
        "email": "yinchiayeh@google.com",
        "time": "Wed Feb 18 14:42:16 2015 -0800"
      },
      "committer": {
        "name": "Yin-Chia Yeh",
        "email": "yinchiayeh@google.com",
        "time": "Wed Feb 18 14:42:16 2015 -0800"
      },
      "message": "CameraService: fix invalid access of camera metadata\n\nstatic_camera_characteristics is not defined in API1.\n\nChange-Id: I422953081b0a5581e12fc4b16052b67ca8062186\n"
    },
    {
      "commit": "045ee7ea3e42b8657869d81c917feed5fb0c2b4a",
      "tree": "aee4e457c5ae65d9135f5008fa239e295162fb2d",
      "parents": [
        "ea78b1497eef36b6a3ba783be20615989e87ed08"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Feb 17 16:22:04 2015 -0800"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Feb 17 17:19:17 2015 -0800"
      },
      "message": "Pull out FastThreadDumpState\n\nChange-Id: Ic99890bbba4f856b65535f3df0f928de9e3e9748\n"
    },
    {
      "commit": "228711d4d25ab434c273c92fc01662c0a6b3adbf",
      "tree": "8458d0394718aa2f11363fb4a8aba6f3282e7e47",
      "parents": [
        "c9f122d8f32ba6928ac9087448025fa3bed1553d"
      ],
      "author": {
        "name": "Amith Yamasani",
        "email": "yamasani@google.com",
        "time": "Fri Feb 13 13:25:39 2015 -0800"
      },
      "committer": {
        "name": "Amith Yamasani",
        "email": "yamasani@google.com",
        "time": "Fri Feb 13 17:26:55 2015 -0800"
      },
      "message": "Look up user-specific device policy for disabling camera\n\nCamera can be disabled on a per-user basis by device admins.\nChanged the system property format to be per-user so that\nthe policy can be applied based on calling user.\n\nTODO: Ideally this policy information should be pulled from the\nDevicePolicyManager rather than relying on system properties.\nProperty changes will not be applied immediately either, if\nthere\u0027s no listener.\n\nBug: 19345698\nChange-Id: Ia00034726260bc9ff28ac592f20a27b5c9a77d58\n"
    },
    {
      "commit": "3068d73c6c7e1f44523b1466b903a9c82408b258",
      "tree": "197720671edfdcc2c75a7d05a13c60be2b17fb75",
      "parents": [
        "8f7b7fa417566e9a6a29ea9f0e220b3cd6d1a9e3"
      ],
      "author": {
        "name": "Chien-Yu Chen",
        "email": "cychen@google.com",
        "time": "Mon Feb 09 13:29:57 2015 -0800"
      },
      "committer": {
        "name": "Chien-Yu Chen",
        "email": "cychen@google.com",
        "time": "Thu Feb 12 15:05:30 2015 -0800"
      },
      "message": "camera: implement flashlight control\n\nImplement flashlight API for module v2.4 by calling module APIs and\nby for hal v2 and v3 by using CameraDeviceBase.\n\nBug: 2682206\nChange-Id: Ib8b77f6fd462489d672f27e14fe37801d35b7544\n"
    },
    {
      "commit": "d7a77156eb13973f7fce5c9db6113bef83bc205b",
      "tree": "a900af86d420f9514201a871e7faf481373a4186",
      "parents": [
        "4019a1e408c12040fc13f7bd0027def630efcc18"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Fri Feb 06 14:58:38 2015 -0800"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Mon Feb 09 18:01:14 2015 -0800"
      },
      "message": "Fix comments in resampler assembly\n\nChange-Id: Iedbd14a2c6c73dd9631813bd2414bf11cee78c32\n"
    },
    {
      "commit": "4019a1e408c12040fc13f7bd0027def630efcc18",
      "tree": "2faae9fa56d6674a2fc283e97fc1661325c6deac",
      "parents": [
        "27a3e954a587c2cf070fdd2aae7d93d839888db9"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Fri Feb 06 14:53:01 2015 -0800"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Mon Feb 09 18:00:44 2015 -0800"
      },
      "message": "Remove unused stride-by-8 resampling code\n\nChange-Id: Id8b0343efd4c6fb9668524fb5fe231b05c7cf31f\n"
    },
    {
      "commit": "e8610ba233ecdb3f6d3259412b41738a3861ee7e",
      "tree": "733694eb052a9bd41b53f7dffc77738abf11d057",
      "parents": [
        "9fdb3bd42af0876a9b76bae42d7aba2287b53af4"
      ],
      "author": {
        "name": "Paul McLean",
        "email": "pmclean@google.com",
        "time": "Fri Feb 06 13:53:36 2015 -0800"
      },
      "committer": {
        "name": "Paul McLean",
        "email": "pmclean@google.com",
        "time": "Fri Feb 06 14:44:32 2015 -0800"
      },
      "message": "Passing device name up through getDeviceDescriptor() method (when creating)\n\nChange-Id: Ibd85e37914333478fd038c3d2f52e214016c16b1\n"
    },
    {
      "commit": "0e48d25606c82def035ad10a5b3923767a765cdd",
      "tree": "2811d0042ca0c670bb6fb9cffa83b82de33f8ff8",
      "parents": [
        "c42ab4fcd42875ef74f8e9b8d8150f7bcfd0cd3b"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Mon Jan 26 11:43:15 2015 -0800"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Fri Feb 06 11:51:26 2015 -0800"
      },
      "message": "Change AudioTrack resampling buffers from 3 to 2\n\nMove computation of minimum AudioTrack buffer size to server\nfor normal streaming PCM tracks.\n\nUse server-side computation to exactly determine requirements\nfor the resampler to avoid triple buffering.\n\nThis reduces latency for normal audio tracks that require resampling,\nand makes things consistent with the minimum buffer size.\n\nChange-Id: I2f2ca0e599ee20e16559bc5c5dab61ed100da16c\n"
    },
    {
      "commit": "e743a47f445f02a0612018fa5640301304844fbf",
      "tree": "b8db2098c4e585e2e4d918db4c01a19fb5cf6be4",
      "parents": [
        "b96efd3cd7ff49e85049a1515b8bb3b7514dce0b"
      ],
      "author": {
        "name": "Paul McLean",
        "email": "pmclean@google.com",
        "time": "Wed Jan 28 11:07:31 2015 -0800"
      },
      "committer": {
        "name": "Paul McLean",
        "email": "pmclean@google.com",
        "time": "Thu Feb 05 09:54:20 2015 -0800"
      },
      "message": "Add additional info to AudioPort for enum/selection API.\n\nAdd \"device name\" member to AudioPort.\nMoved unique device ID from DevicePort to AudioPort.\nStraighten out confusion between \"name\" and \"address\"\nCreated string constants for Intent \"extra\" data keys.\nCombine card/address data into \"address\" at sender.Add additional info to AudioPort for enum/selection API.\n\nChange-Id: I1be308e12b09cd0ead9a3e9fbc9c385462299fb5\n"
    },
    {
      "commit": "4db561713aae35445c2551a1c1049e7a858af197",
      "tree": "ef996c154b9f9ff74a5eead340812dedb4100a9b",
      "parents": [
        "c9fcfb923bb891d980238d47f33fdf488f758dc2",
        "7bc903581f879c86f3881a2f7563bd28c1ac29b7"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Feb 04 18:59:14 2015 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Feb 04 18:59:14 2015 +0000"
      },
      "message": "am 7bc90358: am 5d46bd54: am 3ae5f313: audiopolicy: send device connect notification to HALs\n\n* commit \u00277bc903581f879c86f3881a2f7563bd28c1ac29b7\u0027:\n  audiopolicy: send device connect notification to HALs\n"
    },
    {
      "commit": "7bc903581f879c86f3881a2f7563bd28c1ac29b7",
      "tree": "b63e33c63c7fc7c8febf5b6912cf6dc010e66a9c",
      "parents": [
        "07840f7544de883fe5c00cbd18bc6458a20e2691",
        "5d46bd54a279f24d0476b83947ce29e786b5c72c"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Feb 04 17:25:40 2015 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Feb 04 17:25:40 2015 +0000"
      },
      "message": "am 5d46bd54: am 3ae5f313: audiopolicy: send device connect notification to HALs\n\n* commit \u00275d46bd54a279f24d0476b83947ce29e786b5c72c\u0027:\n  audiopolicy: send device connect notification to HALs\n"
    },
    {
      "commit": "3ae5f31393609b7fa92f24132c66e9a8c9244a45",
      "tree": "059dbae05f8fdaaa3cf3dd68b246deb2cebeea76",
      "parents": [
        "efbb61950db36a5eb789be83f077246172507c67"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Feb 03 17:12:08 2015 -0800"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Feb 04 08:56:31 2015 -0800"
      },
      "message": "audiopolicy: send device connect notification to HALs\n\nDevice disconnect notifications are sent from audiopolicy to\nthe HALs. Send connect notifications as well.\n\nBug: 19249796.\nBug: 17785277.\n\nChange-Id: Ia823ed154d6a0c7ceb84b0a94f0c3b78392faaf6\n"
    },
    {
      "commit": "e074a93046ebe5cea0b55c3a479e082a426e1e07",
      "tree": "c1b960cf44d005a19e8609e5be3d3f47c4ad0366",
      "parents": [
        "16469200f5a94277178ea41ed59898a113320b60"
      ],
      "author": {
        "name": "Yin-Chia Yeh",
        "email": "yinchiayeh@google.com",
        "time": "Fri Jan 30 10:29:02 2015 -0800"
      },
      "committer": {
        "name": "Yin-Chia Yeh",
        "email": "yinchiayeh@google.com",
        "time": "Tue Feb 03 15:23:56 2015 -0800"
      },
      "message": "CameraService: intercept Camera module\n\nWrap camera module returned from HAL so get_camera_info returns\nstatic_camera_characteristics processed by framework, which\ngenerates keys added after HAL3.2 is released.\n\nChange-Id: Ief423a1571cf06c7ef80b98b403a33969baf95f6\n"
    }
  ],
  "next": "37e5e6a53390c5086eea672d50c608f3247d33aa"
}
