)]}'
{
  "log": [
    {
      "commit": "65fb65678345f03f38771523b7020f6777eff5c4",
      "tree": "73b42913d08115480cbbbe1b6897917f4c1ae6a2",
      "parents": [
        "9a79c8f84a6de3b942c6b0a347aece7ecb7daed5",
        "388360c786cdcbec650b79db65c734b8952dfec0"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Tue Oct 18 16:01:15 2016 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Oct 18 16:01:15 2016 +0000"
      },
      "message": "Merge \"Brush up audio parameters usage\""
    },
    {
      "commit": "388360c786cdcbec650b79db65c734b8952dfec0",
      "tree": "a3ba18b19471046dddb8218a1461269b101bd1e0",
      "parents": [
        "61a4fac2e3ec271241e3a4f405d7357b7f6ca4c2"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Mon Oct 17 17:09:41 2016 -0700"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Mon Oct 17 17:09:41 2016 -0700"
      },
      "message": "Brush up audio parameters usage\n\nIt is preferred to use the constants from AudioParameter\n(which can now serve as an abstraction layer similar to libaudiohal).\n\nGrepped for usages of defines and just string values\nand replaced with references to AudioParameter.\n\nSince the parameter definitions are being moved to system/audio.h,\nupdate includes in AudioParemeter and stagefright Utils.\n\nChange-Id: I2addb983707d866b16f39d45d0e14b802595e292\nTest: make\n"
    },
    {
      "commit": "5bc1a9aa19fbf9c952cc9ccb212ff1aa8c2386c3",
      "tree": "5620480859eab56030c64b49bcb56cf5316c9e40",
      "parents": [
        "aadc29b910a22c1d2b422d5a96faef07dfc97292",
        "9fe94012187a29eeeca2c74e75f121192560fba0"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Mon Oct 17 22:22:49 2016 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Oct 17 22:22:50 2016 +0000"
      },
      "message": "Merge \"Split audio effects headers\""
    },
    {
      "commit": "0a2e01a3881ade646870373e1d544bea9cc3e721",
      "tree": "627d8fdcb0e54e90a667d1e05c97dfdacb0e78eb",
      "parents": [
        "c6ef32c53dca92ea3ec647a54dc9bdf8f97d3aff",
        "65ffdfc7e92f9900d72bf6dc0b7f4e1231d4da03"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Sat Oct 15 01:32:40 2016 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sat Oct 15 01:32:40 2016 +0000"
      },
      "message": "Merge \"AudioTrack: Add hasStarted method\""
    },
    {
      "commit": "9fe94012187a29eeeca2c74e75f121192560fba0",
      "tree": "6019137198afcc098e664c337b86b765d63a63bc",
      "parents": [
        "61a4fac2e3ec271241e3a4f405d7357b7f6ca4c2"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Fri Oct 14 14:57:40 2016 -0700"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Fri Oct 14 15:29:33 2016 -0700"
      },
      "message": "Split audio effects headers\n\nThere can be different use cases with the code that imports\nheaders from audio_effects (each subsequent case is a more\nspecialized version of the previous one):\n\n  1. The code only needs access to general structures\n     like effect_descriptor_t:\n     \u003d\u003d\u003e include system/audio_effect.h\n     Example: AudioSystem in libmedia\n\n  2. The code that needs access to effect UUID and parameter\n     enums:\n     \u003d\u003d\u003e include system/audio_effects/effect_foo.h\n     Examples: media framework effects interfaces, libwilhelm\n\n  3. The code that needs to call into HAL:\n     \u003d\u003d\u003e include hardware/audio_effect.h\n     Examples: libaudiohal (implementation part) and libeffects\n\n  4. The code that implements a particular effect:\n     \u003d\u003d\u003e include audio_effects/effect_foo.h\n     Examples: cts/.../CTSTestEffect.cpp\n               stuff in hardware/, vendor/\n\nNote that AudioPolicy still deals with the effects HAL directly,\nthis needs to be fixed.\n\nChange-Id: I963335ede6a196f9225caf21e1a01d03635e363c\nTest: make\n"
    },
    {
      "commit": "65ffdfc7e92f9900d72bf6dc0b7f4e1231d4da03",
      "tree": "6c562cf16c42d8718a1a70ea25ae6a243b620e85",
      "parents": [
        "4be3b831904640ca853845b3ea31f985774047de"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Mon Oct 10 15:52:11 2016 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Fri Oct 14 15:10:33 2016 -0700"
      },
      "message": "AudioTrack: Add hasStarted method\n\nBest guess determination whether the AudioTrack\nhas started playing.\n\nTest: Photos app with pause and play.\nBug: 30502030\nChange-Id: I03c0ae78037ec05f3025ed009ef67bd376b176ba\n"
    },
    {
      "commit": "61a4fac2e3ec271241e3a4f405d7357b7f6ca4c2",
      "tree": "0ce2e32297df380eb5a5d971e8daac0634a96731",
      "parents": [
        "61787b26691da285d8ab79795237006ceb018c4d"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Thu Oct 13 14:44:18 2016 -0700"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Fri Oct 14 09:29:54 2016 -0700"
      },
      "message": "Remove dependencies on hardware/audio_policy.h\n\nMost of the time it\u0027s not needed, may be needed when\nUSE_LEGACY_AUDIO_POLICY is enabled.\n\nTest: make\n\nChange-Id: Id25eafc05352f07614965913d367d484f2673fbd\n"
    },
    {
      "commit": "61787b26691da285d8ab79795237006ceb018c4d",
      "tree": "87264328ac7a0446517ab1a19783809c19860522",
      "parents": [
        "568cf0c332ce9fd23edc639d2280ecabc736794a",
        "00260b5e6996b0a4b12f71c5b84e44adea040534"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Fri Oct 14 16:04:04 2016 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Oct 14 16:04:05 2016 +0000"
      },
      "message": "Merge \"Remove dependencies on hardware/audio_effects.h and EffectsFactoryApi.h\""
    },
    {
      "commit": "7b01847d0e7211989e8b452976258356afcd45d4",
      "tree": "30874678c562f6b2a08e3984d97cdf70fd6663d2",
      "parents": [
        "d6f63bed0cf4a9cf162f9e16c1600117a4bcbc08",
        "4811923e80a8abefa278307ebf8cc9b0294ba67f"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Oct 14 09:03:12 2016 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Oct 14 09:03:12 2016 +0000"
      },
      "message": "Merge \"MediaCodec refactoring part 1-b: secure buffers\""
    },
    {
      "commit": "4811923e80a8abefa278307ebf8cc9b0294ba67f",
      "tree": "fc52f847e74b5c7d2f146b292267358d0ace601c",
      "parents": [
        "47677e3edda7b15bc0b48c6863a01ae052785e0c"
      ],
      "author": {
        "name": "Wonsik Kim",
        "email": "wonsik@google.com",
        "time": "Thu Oct 13 21:41:55 2016 +0900"
      },
      "committer": {
        "name": "Wonsik Kim",
        "email": "wonsik@google.com",
        "time": "Fri Oct 14 16:11:57 2016 +0900"
      },
      "message": "MediaCodec refactoring part 1-b: secure buffers\n\n- Define SecureBuffer to encapsulate secure buffers containing\ndecrypted data.\n- ACodec and MediaCodec use SecureBuffer to communicate between\nthemselves.\n\nBug: 32133435\nTest: Play an encrypted content in Play Movies\nChange-Id: Ic70f7f78aad15bd91ab8ccd31c340bc7964ab1b3\n"
    },
    {
      "commit": "00260b5e6996b0a4b12f71c5b84e44adea040534",
      "tree": "7e93a2e3cc5f918d8f7a7409d9c98712eed0d2fe",
      "parents": [
        "47677e3edda7b15bc0b48c6863a01ae052785e0c"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Thu Oct 13 12:54:24 2016 -0700"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Thu Oct 13 14:02:38 2016 -0700"
      },
      "message": "Remove dependencies on hardware/audio_effects.h and EffectsFactoryApi.h\n\nAlso remove some outstanding dependencies on hardware/audio.h.\n\nMost of the time, only constants and structs from audio_effects.h\nare used, and no actual calls into HAL are made. Move these\ndefinitions into system/audio_effect.h, and generate constants\nfrom TREBLE HAL definition.\n\nFor parameters, always use values from AudioParameter class.\n\nThere are still some outstanding includes of hardware/audio.h\nin code that directly deals with audio modules. Need to extend\nlibaudiohal interfaces to support required functionality.\n\nTest: make\n\nChange-Id: I0bcdf8ae199485d4d65f3eeb7e7a3b9b5cdb6ab6\n"
    },
    {
      "commit": "f9125c36b47a3bb510b8317e64d70f01fd65b28f",
      "tree": "b271d0ce7db891f645373ab7aa304ab47455e059",
      "parents": [
        "47677e3edda7b15bc0b48c6863a01ae052785e0c",
        "f20a4e9f84bbb8748f28ca326caeba7a9947a369"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Thu Oct 13 19:35:03 2016 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Oct 13 19:35:04 2016 +0000"
      },
      "message": "Merge \"AudioTrack: Fix timestamp restore\""
    },
    {
      "commit": "f20a4e9f84bbb8748f28ca326caeba7a9947a369",
      "tree": "835aabaa4dadc25764381edd7048567bdc1dc2ab",
      "parents": [
        "8922c251072bf338cd22b237a25ef55ba41cf9b8"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Mon Aug 15 19:10:34 2016 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Thu Oct 13 11:00:12 2016 -0700"
      },
      "message": "AudioTrack: Fix timestamp restore\n\nTest: Photos with BT on and off.\nBug: 29946998\nChange-Id: I729590451126e180ee85e1ab3dee2a0b24f0572d\n"
    },
    {
      "commit": "116974f01ad54d88a24f8e7af5334aff18fa199e",
      "tree": "0c8199fa6196518ae08dc09c63df3e18d5f9a5a1",
      "parents": [
        "19cd0ab24e7ba421eeaff8ceace3d255f34e8917",
        "addf2cbb120346ae42e78fa739245a353db5edad"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Oct 13 00:02:58 2016 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Oct 13 00:02:58 2016 +0000"
      },
      "message": "Merge \"IOMX: consolidate createInputSurface APIs\""
    },
    {
      "commit": "addf2cbb120346ae42e78fa739245a353db5edad",
      "tree": "a4791c8dfb79f25eae2a6d8df01cf9fad60f7ebb",
      "parents": [
        "21b46588d022d0c22d7c7c08e919d7a9c5cd76e3"
      ],
      "author": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Wed Sep 28 17:53:01 2016 -0700"
      },
      "committer": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Tue Oct 11 18:19:43 2016 -0700"
      },
      "message": "IOMX: consolidate createInputSurface APIs\n\n- Create GraphicBufferSource in IOMX regardless of persistency.\n\n- Remove createInputSurface on IOMXNode, only keep setInputSurface\n  which accepts either a persistent or non-persistent surface.\n\n- Instead of holding a IGraphicBufferConsumer, hold\n  IGraphicBufferSource across session as the persistent surface.\n\n- Fix up GraphicBufferSource to allow usage across sessions.\n  GraphicBufferSource itself becomes agnostic to persistency.\n\n- Remove max encoder input buffers profiling code.\n\nbug: 31399200\nChange-Id: I15ed52cc64509fd87736372a580abf7b51bf4de7\n"
    },
    {
      "commit": "cbc8f617c1aebef5d041fa40dcd38a5466690b99",
      "tree": "525470607c3e6436c5a73caac90830104fcde9ac",
      "parents": [
        "0c739c59dd1a3d52beb82a353c13b6c853d93f5f"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Tue Oct 11 18:05:13 2016 -0700"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Tue Oct 11 18:05:13 2016 -0700"
      },
      "message": "Eliminate dependencies on hardware/audio.h (trivial cases)\n\nframeworks/av must not depend on hardware/ (except for the code\nfrom libaudiohal that actually calls into HAL).\n\nThis CL deals with simple cases where depending on system/audio.h\nis enough.\n\nChange-Id: Ia2cb66cc8c92316ce5ab884a008d5e531263c2e4\nTest: make\n"
    },
    {
      "commit": "21b46588d022d0c22d7c7c08e919d7a9c5cd76e3",
      "tree": "ab3bd9858f281cae27ad837724d83fb303938197",
      "parents": [
        "8922c251072bf338cd22b237a25ef55ba41cf9b8"
      ],
      "author": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Tue Oct 04 12:44:53 2016 -0700"
      },
      "committer": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Fri Oct 07 16:24:05 2016 -0700"
      },
      "message": "IOMX: remove allocateBufferWithBackup\n\nOnly keep useBuffer. Pass in quirks requirement for now, once\nwe have access to MediaCodecList XML info in OMX, we can remove\nthe quirks from IOMX.\n\nAlso remove a few unused variables on BufferMeta.\n\nbug: 31399200\nChange-Id: I93bef964ce034d4aeb1f5d13a75f130108e4e648\n"
    },
    {
      "commit": "72e8bfdde091d78796c297ff708febf2a2cbbf6c",
      "tree": "cff613db45f3a0bfcba57a1befffdd010d7ed26c",
      "parents": [
        "09316fdbebc8e2e899f663aa1e4b1bcb0531354d",
        "1d2e9cfbe3f2db16ecafd2adafb4c60d7235a2ce"
      ],
      "author": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Thu Oct 06 21:25:06 2016 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Oct 06 21:25:06 2016 +0000"
      },
      "message": "Merge \"IOMX: remove nodeBinder from allocateNode\""
    },
    {
      "commit": "1d2e9cfbe3f2db16ecafd2adafb4c60d7235a2ce",
      "tree": "9b1bb4de458850e661cd40ba1f4edc6fb3f42bf5",
      "parents": [
        "c380f611f779dd7dc29ccf80609893d67e78167a"
      ],
      "author": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Wed Oct 05 21:08:36 2016 -0700"
      },
      "committer": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Thu Oct 06 21:19:37 2016 +0000"
      },
      "message": "IOMX: remove nodeBinder from allocateNode\n\nThis is no longer needed, the IOMXNode is already a binder,\nwe can just link to that.\n\nbug: 31399200\n\nChange-Id: Ic5dd5330dab448ae126aaec694f71f22857b3169\n"
    },
    {
      "commit": "bdaffdd96d0a1537d083591f93aa6d1c9cbf89ac",
      "tree": "3d33ef0775c8d341066e40cbfa2c4aeaad913559",
      "parents": [
        "95890237a25cb40f138d300cefd82764c76ca556",
        "4ec5187576dbe802585b60f8e38720c9da4b269b"
      ],
      "author": {
        "name": "Hall Liu",
        "email": "hallliu@google.com",
        "time": "Wed Oct 05 20:15:30 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed Oct 05 20:15:30 2016 +0000"
      },
      "message": "Rename UK tones to GB tones am: a97494e3ae am: 09374e278c\nam: 4ec5187576\n\nChange-Id: Ibc515d554dadf59f39db9a1fdd11ca96e67c7930\n"
    },
    {
      "commit": "4ec5187576dbe802585b60f8e38720c9da4b269b",
      "tree": "4e4e19412e77310f70d4faa5dfe8fa6caab14743",
      "parents": [
        "37a767263e347df05680ae0b8be1619c04a8d6af",
        "09374e278c81eead5b8ce6c110fe02afe57f0ccc"
      ],
      "author": {
        "name": "Hall Liu",
        "email": "hallliu@google.com",
        "time": "Wed Oct 05 20:11:47 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed Oct 05 20:11:47 2016 +0000"
      },
      "message": "Rename UK tones to GB tones am: a97494e3ae\nam: 09374e278c\n\nChange-Id: Ibec2de3319b6b51b26adf2c09f0e62a97619a119\n"
    },
    {
      "commit": "95890237a25cb40f138d300cefd82764c76ca556",
      "tree": "b9abf1cda9160d124507f004acfb22adfcf9822d",
      "parents": [
        "e90894f52e30c7d6aeb83ef8576d0c489a1c8f2f",
        "7dcc5f394b17238f2ae1a9c59f34664d3ad085e7"
      ],
      "author": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Wed Oct 05 19:34:14 2016 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Oct 05 19:34:14 2016 +0000"
      },
      "message": "Merge \"IOMX: remove getState() and livesLocally()\""
    },
    {
      "commit": "7dcc5f394b17238f2ae1a9c59f34664d3ad085e7",
      "tree": "3c754f73a2c9022503fc557cc35b27a4e9f5296a",
      "parents": [
        "d59b97223424a3974d2ac31cff998d02eecf2eed"
      ],
      "author": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Tue Oct 04 18:27:34 2016 -0700"
      },
      "committer": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Wed Oct 05 10:27:55 2016 -0700"
      },
      "message": "IOMX: remove getState() and livesLocally()\n\nThese are no longer used.\n\nbug: 31399200\n\nChange-Id: Ic61e8c7fa016ccd038e2b2427ccb08b78af34245\n"
    },
    {
      "commit": "b578ed0b08c005641763f8f57413d6e859b52c86",
      "tree": "10baa2a3135e1d03c4fb2b7c72832bbd42e41905",
      "parents": [
        "8d7b98a66fe639338b3ae878cd5bfdd67da189fe",
        "c7a047a59e4165341fc4496e57892b7408485f84"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Tue Oct 04 21:24:08 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Oct 04 21:24:08 2016 +0000"
      },
      "message": "Merge \"Fix struct vs. class mismatch in forward definitions\" am: 76e37adc30 am: f4d7441eab\nam: c7a047a59e\n\nChange-Id: Id3ddac509c25c48a718fe9915f917e0cd0324135\n"
    },
    {
      "commit": "a97494e3aedc0be9362c13fad1fd83ac814b76d0",
      "tree": "8d80b2fd751aaaf84c59d9d588b7e1cca157de0e",
      "parents": [
        "10da5ab24c1db8cafbb45d1397621731ca00176d"
      ],
      "author": {
        "name": "Hall Liu",
        "email": "hallliu@google.com",
        "time": "Tue Oct 04 14:23:28 2016 -0700"
      },
      "committer": {
        "name": "Hall Liu",
        "email": "hallliu@google.com",
        "time": "Tue Oct 04 14:23:28 2016 -0700"
      },
      "message": "Rename UK tones to GB tones\n\nPrevious CL which introduced UK tones was incorrect since \"uk\" is not a\nvalid ISO country code. This change checks for the \"gb\" country code\ninstead.\n\nChange-Id: I1f99a7ec5dd24a112b2b1b486fe613f965fba7ff\nFix: 31003209\n"
    },
    {
      "commit": "17c9fb736bcc45dfe4db526d12f6396ac0939f20",
      "tree": "b0af303c0d846271eac66078c0930298c1d8bf16",
      "parents": [
        "a8435856fc919f540987cb1001b31e308ad48a5a",
        "d59b97223424a3974d2ac31cff998d02eecf2eed"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Sat Oct 01 02:25:45 2016 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sat Oct 01 02:25:46 2016 +0000"
      },
      "message": "Merge \"IOMX: separate node interface from IOMX\""
    },
    {
      "commit": "a8435856fc919f540987cb1001b31e308ad48a5a",
      "tree": "2f4f24c58e54266f468014b628a1d72692763aa9",
      "parents": [
        "84d29b3d493c27ea9506683516b5c2f431ef4cef",
        "15897e459c5086058e73b3e91690320a7bb46d4a"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Sat Oct 01 01:11:47 2016 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sat Oct 01 01:11:47 2016 +0000"
      },
      "message": "Merge \"Fix non-blocking playback threads creation\""
    },
    {
      "commit": "c7a047a59e4165341fc4496e57892b7408485f84",
      "tree": "3423b9dafe53436532aa72e552056d1854340648",
      "parents": [
        "4c4bf14f5f8ec4bb4b475468b7c76f1f75098a9f",
        "f4d7441eab234b5b14f5e9ab085454f7eacfd4c8"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Sat Oct 01 00:37:12 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Sat Oct 01 00:37:12 2016 +0000"
      },
      "message": "Merge \"Fix struct vs. class mismatch in forward definitions\" am: 76e37adc30\nam: f4d7441eab\n\nChange-Id: Ic484da88aba1e0e494e444515467570c22117a0e\n"
    },
    {
      "commit": "15897e459c5086058e73b3e91690320a7bb46d4a",
      "tree": "84e9b8f15186f485d59aa15d0f59b628d2202a4e",
      "parents": [
        "ad111520f0167c4a0bf6a37fc025e2523c313258"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Fri Sep 30 16:16:41 2016 -0700"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Fri Sep 30 16:16:41 2016 -0700"
      },
      "message": "Fix non-blocking playback threads creation\n\nBecause PlaybackThread calls StreamOutHal::setCallback inside\nthe constructor, onFirstRef gets called while the vtable pointer\nis set to PlaybackThread\u0027s vtable, not to its subclass vtable.\nonFirstRef launches a thread which starts calling methods\nthat are abstract in PlaybackThread.\n\nFixed by changing the type of StreamOutHal::setCallback argument\nfrom \"sp\" to \"wp\", as creating a weak pointer does not increase\nstrong refs count and thus doesn\u0027t call onFirstRef.\n\nBug: 31856492\nChange-Id: I0d51bc73ca88b4b235260ed773870ecb7dac55d0\nTest: added logging to verify the order of calls\n"
    },
    {
      "commit": "00c553db3e9c486b016fa030be00f5b53c6b0b8e",
      "tree": "053a08e81d3f3d86a0935f7e0ff95ab0fb7284e4",
      "parents": [
        "f219deac1cc46efe4526069c89e8566f4bb6b17f",
        "be8f14c64b3af442dc1341ea9bf1ca68e56dd824"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Fri Sep 30 22:05:37 2016 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Sep 30 22:05:38 2016 +0000"
      },
      "message": "Merge \"Fix struct vs. class mismatch in forward definitions\""
    },
    {
      "commit": "d59b97223424a3974d2ac31cff998d02eecf2eed",
      "tree": "9f2ebc7b906ba007263e4d138698bc78ae6d427d",
      "parents": [
        "ad111520f0167c4a0bf6a37fc025e2523c313258"
      ],
      "author": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Tue Sep 20 16:31:18 2016 -0700"
      },
      "committer": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Fri Sep 30 13:49:25 2016 -0700"
      },
      "message": "IOMX: separate node interface from IOMX\n\n- Separate node interface from IOMX. Client allocates the\n  node through IOMX, and once it has the node interface,\n  it can interact with the node directly. There is no need\n  to go through IOMX and refer to the node by id.\n\n- Simplify OMX, remove id-to-instance mapping on server\n  side, and move the callback dispatch into node instance\n  (as dispatcher is per-node).\n\n- Keep track of node generation on client side to ensure\n  that message handling ignores messages directed at an\n  expired node.\n\n- Remove MuxOMX, always use IOMX from media.codec.\n\n- Minor whitespace reformatting.\n\nbug: 31399200\n\nChange-Id: I8aef6ec1fa5aba861da7d121960ed2974a963d81\n"
    },
    {
      "commit": "7e34bf5af26f8752d4786d3098740cdf51e2438f",
      "tree": "683b624805503653ebae9f105abde2a8ea86a8fe",
      "parents": [
        "616445eaa07885173767544d3c5a61ad652d1171"
      ],
      "author": {
        "name": "Wonsik Kim",
        "email": "wonsik@google.com",
        "time": "Tue Aug 23 00:09:18 2016 +0900"
      },
      "committer": {
        "name": "Wonsik Kim",
        "email": "wonsik@google.com",
        "time": "Fri Sep 30 20:05:18 2016 +0900"
      },
      "message": "MediaCodec refactoring part 1-a: buffers become separate class\n\nMediaCodecBuffer is meant to replace ABuffer and MediaBuffer in\ncommunication between framework components. As the first step, replace\nuse of ABuffer in MediaCodec with MediaCodecBuffer, and adjust related\nclasses accordingly.\n\nMediaCodec.getBuffer() and related APIs now returns MediaCodecBuffers;\nthus change MediaCodec clients to use MediaCodecBuffer accordingly.\n\nTest: manually tested for key use cases (Camera, YouTube and Play Movies)\nChange-Id: Iba7ce131645e75ce5ddbf497fb793ab38b7f245b\n"
    },
    {
      "commit": "be8f14c64b3af442dc1341ea9bf1ca68e56dd824",
      "tree": "d2336cff37cf36e563f0f7824c45612604a5fb87",
      "parents": [
        "3bcbcab7ef58677b0ae7b0093d7dda6bb196dbb6"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Wed Sep 28 12:34:05 2016 -0700"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Thu Sep 29 17:03:12 2016 -0700"
      },
      "message": "Fix struct vs. class mismatch in forward definitions\n\nThe warnings were being hidden by the use of -isystem to include\nframeworks/native/include.\n\nBug: 31752268\nTest: m -j\nChange-Id: I0eea5b59e7bd696d9aff44c8680361c99474e634\n"
    },
    {
      "commit": "0c02eed93cd238542061fd31e48c7bb66a9902be",
      "tree": "d8d4deb126a8fbcf6869252ba2833e020d207af6",
      "parents": [
        "84404f068fdeec910664ec935ccd94df1e8f3ca6"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Wed Sep 28 12:34:05 2016 -0700"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Wed Sep 28 12:34:05 2016 -0700"
      },
      "message": "Fix struct vs. class mismatch in forward definitions\n\nThe warnings were being hidden by the use of -isystem to include\nframeworks/native/include.\n\nBug: 31752268\nTest: m -j\nChange-Id: I0eea5b59e7bd696d9aff44c8680361c99474e634\n"
    },
    {
      "commit": "87c2e38c64810eb501dd92ad5fa8e5d81f6d3117",
      "tree": "ea5a76404cfcd377fb5ded85f3b53d8d42564652",
      "parents": [
        "816142344c3cb58c82bf78ec5a44bd9d02930ac4",
        "a0c91339814f37ea78365afb436c9f3d1f0a0090"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Wed Sep 28 16:01:35 2016 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Sep 28 16:01:36 2016 +0000"
      },
      "message": "Merge \"Update NBAIO to use the new audio HAL abstraction layer\""
    },
    {
      "commit": "aeab585655852e18799f78f1a8da597f1e30bb3f",
      "tree": "14027e0a1807ad3811c1dafa363ff421aac52052",
      "parents": [
        "c5fae20b06e01e87e7c5e54a415dd76d1a35879b",
        "a578c4f37861fd26ff6a8b4836c1e7acbad60c75"
      ],
      "author": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Tue Sep 27 21:15:17 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Sep 27 21:15:17 2016 +0000"
      },
      "message": "Merge \"Migrate libmediandk to ndk_library.\" am: 84404f068f am: c84b665cb4 am: 2384bfcce8\nam: a578c4f378\n\nChange-Id: I474b7695c808456d3e43acf853f35494510019f8\n"
    },
    {
      "commit": "a578c4f37861fd26ff6a8b4836c1e7acbad60c75",
      "tree": "b2645c915b777224e187fc63523da387a17d15f7",
      "parents": [
        "6328aa9c0a20d5ff712a5c32b00f99f4d3d18d36",
        "2384bfcce80c4791f31ace3484b2ceea74644a99"
      ],
      "author": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Tue Sep 27 21:05:04 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Sep 27 21:05:04 2016 +0000"
      },
      "message": "Merge \"Migrate libmediandk to ndk_library.\" am: 84404f068f am: c84b665cb4\nam: 2384bfcce8\n\nChange-Id: I4c7013c6a5079708f03a3b1cc7edfd801945ccef\n"
    },
    {
      "commit": "2384bfcce80c4791f31ace3484b2ceea74644a99",
      "tree": "8b921af6c1b0f5d8c1f5c53179d2fcd5c2c6b870",
      "parents": [
        "6d7deae9b9a5a969eda2a68c2139220b62833b5a",
        "c84b665cb474750e8b031a4bf6d34d0a3f3ed405"
      ],
      "author": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Tue Sep 27 21:01:45 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Sep 27 21:01:45 2016 +0000"
      },
      "message": "Merge \"Migrate libmediandk to ndk_library.\" am: 84404f068f\nam: c84b665cb4\n\nChange-Id: If98cf0434218afca6436a41ec25cfec670e27072\n"
    },
    {
      "commit": "a0c91339814f37ea78365afb436c9f3d1f0a0090",
      "tree": "b0075232d68758a314754a9293c65ea15091ca95",
      "parents": [
        "5090f7d3211b5517a7602c910c04462f7eee0727"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Mon Sep 19 10:01:12 2016 -0700"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Mon Sep 26 14:53:38 2016 -0700"
      },
      "message": "Update NBAIO to use the new audio HAL abstraction layer\n\nMoved the HAL access abstraction layer to a separate library so it\ncan be used both by audioflinger and libnbaio.\n\nBug: 30222631\nTest: manual with Loopback app, Hangouts, YouTube\n\nChange-Id: Id622c2f1aa8f55a775d34f369a596c2c4d29d5be\n"
    },
    {
      "commit": "6d332d2cdf6e62c2c20ebff220868fe9e3ed7f44",
      "tree": "8b84f4e96b27d2d0f222942a6b99e63b7da69a91",
      "parents": [
        "c0acc19f411a8ca75da2081ee335a024790d36b6"
      ],
      "author": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Wed Sep 07 12:06:50 2016 -0700"
      },
      "committer": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Fri Sep 23 17:30:56 2016 -0700"
      },
      "message": "stagefright: abstract GraphicBufferSource to interfaces\n\nCreate two interfaces from GraphicBufferSource:\n\na) IGraphicBufferSource for client (ACodec) to configure the graphic\nbuffer source. IOMX no longer routes these messages and OMX internal\noptions are removed.\n\nb) IOMXBufferSource for IOMX to send OMX specific callbacks.\n\nAdded an |origTimestamp| argument to emptyGraphicBuffer, and restore\nthe original PTS inside OMX to avoid going back to GraphicBufferSource\nto patch the output PTS. In the longer term, we should consider moving\nthe max PTS gap entirely into OMX (probably as an extension index).\n\nDefine newly introduced interfaces using AIDL to facilitate code\ndevelopment.\n\nbug: 31399200\n\nChange-Id: Ibaf6ca1a0737ba6ba9f83bedc3b06ef358db36cb\n"
    },
    {
      "commit": "2975a24dc42c8953125b39a5194da3aec244cbef",
      "tree": "6c41478b26de6f9fd0bcf4740fe61473adbcd6b3",
      "parents": [
        "7449b5e025eeb79b04d67c4595c0497b942fe785"
      ],
      "author": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Fri Sep 23 16:17:45 2016 -0700"
      },
      "committer": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Fri Sep 23 16:20:20 2016 -0700"
      },
      "message": "Migrate libmediandk to ndk_library.\n\nTest: make native\nBug: http://b/30465923\nChange-Id: Id62eac2d5cc518465445d87ce204fa918f0ddb68\n"
    },
    {
      "commit": "d840ca71bd9eb41c777c6022ecda81b575874f31",
      "tree": "86689b46066e80063cfd64bfceddf21692b83395",
      "parents": [
        "b01adb756ec01a4c4b95d468c916e7c4cc8d8dc2",
        "162c17fad1ffa1db1588f82773933e8984661089"
      ],
      "author": {
        "name": "Dan Liang",
        "email": "dan.liang@intel.com",
        "time": "Thu Sep 22 22:42:48 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Thu Sep 22 22:42:48 2016 +0000"
      },
      "message": "Merge \"IMediaSource: Pack alignment of ReadOption struct\" am: 7449b5e025 am: 0ff8666bee am: 99f553fab5\nam: 162c17fad1\n\nChange-Id: If23ca07c28b3f6f4b3881d7a0dc29c0870160047\n"
    },
    {
      "commit": "b74c2ff1edcf61fcf5bb97705c1f1fa0862f461d",
      "tree": "99223e819199824d9eea85b5257ec355d1791753",
      "parents": [
        "67f5b2d3e9d90cdfefa024bab07591dc3cb1f783",
        "f28256f3113212db62aa8527b9ceae4caa414be3"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Thu Sep 22 22:36:05 2016 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Sep 22 22:36:09 2016 +0000"
      },
      "message": "Merge \"Make MidiDeviceInfo accessible to native code\""
    },
    {
      "commit": "162c17fad1ffa1db1588f82773933e8984661089",
      "tree": "2207cb8397bca76b441876f800e9cf82e5daedf8",
      "parents": [
        "fd35f244a2b04fb2d6be35448f2a9da31c3c1f2e",
        "99f553fab5fa815c11b4fdf5b6d1c33309b0f029"
      ],
      "author": {
        "name": "Dan Liang",
        "email": "dan.liang@intel.com",
        "time": "Thu Sep 22 22:24:55 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Thu Sep 22 22:24:55 2016 +0000"
      },
      "message": "Merge \"IMediaSource: Pack alignment of ReadOption struct\" am: 7449b5e025 am: 0ff8666bee\nam: 99f553fab5\n\nChange-Id: Ia3aa9ec9a9cb3ddb25de0ab8ad079eaeb7b8134f\n"
    },
    {
      "commit": "99f553fab5fa815c11b4fdf5b6d1c33309b0f029",
      "tree": "a444cf266d9a47b147e0c03bcc695c5bebc4bed3",
      "parents": [
        "7d41d9cec83f84cd3504404720a63d5f616b80cb",
        "0ff8666beeecd9d3688c052af25ce83ce23265c3"
      ],
      "author": {
        "name": "Dan Liang",
        "email": "dan.liang@intel.com",
        "time": "Thu Sep 22 19:29:15 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Thu Sep 22 19:29:15 2016 +0000"
      },
      "message": "Merge \"IMediaSource: Pack alignment of ReadOption struct\" am: 7449b5e025\nam: 0ff8666bee\n\nChange-Id: Iaafa2bed6399cc00b233b78d5d05d69d39ad2b0f\n"
    },
    {
      "commit": "7449b5e025eeb79b04d67c4595c0497b942fe785",
      "tree": "be18fd6bf62ebd4237451aa5accf1aef839ea900",
      "parents": [
        "b22e8ebf305f9ab3e868c44a9f10558ef8bcacc7",
        "565de71d94463f3d78a5df24e916ca0ec96a6bcd"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Sep 22 18:16:37 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Sep 22 18:16:37 2016 +0000"
      },
      "message": "Merge \"IMediaSource: Pack alignment of ReadOption struct\""
    },
    {
      "commit": "565de71d94463f3d78a5df24e916ca0ec96a6bcd",
      "tree": "a9b653ccf7d6c569423f2ab92a0faa83fc316ac1",
      "parents": [
        "1b4c5978d1664a5fbbf6e98ad8c83cfec8b9e34e"
      ],
      "author": {
        "name": "Dan Liang",
        "email": "dan.liang@intel.com",
        "time": "Wed Sep 14 16:31:47 2016 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Tue Sep 20 15:51:11 2016 -0700"
      },
      "message": "IMediaSource: Pack alignment of ReadOption struct\n\nint64_t aligns differently in x86 vs x64, which presents\nproblems when communicating across Binder.\nUse packed struct to avoid problems.\n\nBug: 30472583\nChange-Id: Iacdad792e19c19899cde5289238b5aa8981a9a7a\n"
    },
    {
      "commit": "9e75537cbc2f7c040d0c2f1dfcae39898f729ea8",
      "tree": "f98a1d536daface77513dc0fbb7b4094de604036",
      "parents": [
        "9debf8f6d26f7aa12c68ddfb6cdb1323d4b5adbf",
        "abc97dee27bdf8c909cfc8a3d1d27adad5e6fa39"
      ],
      "author": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Tue Sep 20 21:39:34 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Sep 20 21:39:34 2016 +0000"
      },
      "message": "Merge \"Migrate libcamera2ndk to ndk_library.\" am: b22e8ebf30 am: 15234be025 am: 27aed3e31c\nam: abc97dee27\n\nChange-Id: I4387ecc199a9f7834bdf33de7c65c58c50914dea\n"
    },
    {
      "commit": "f28256f3113212db62aa8527b9ceae4caa414be3",
      "tree": "5eb5ef1667394c3aa691f534aaabc8b9307326e5",
      "parents": [
        "9debf8f6d26f7aa12c68ddfb6cdb1323d4b5adbf"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Thu Sep 01 17:09:26 2016 -0700"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Tue Sep 20 14:20:16 2016 -0700"
      },
      "message": "Make MidiDeviceInfo accessible to native code\n\nAdd a native class that supports serialization via Parcel.\n\nBug: 25945784\nTest: using a PoC app\nChange-Id: I10ff8dec38e5584a8e5a4c96b1f6978f708c305e\n"
    },
    {
      "commit": "abc97dee27bdf8c909cfc8a3d1d27adad5e6fa39",
      "tree": "2d13189b614c65d29f5205e64f0ac723045a580e",
      "parents": [
        "39c734f5c3af82d9dc0af56b0cdb68f11d83923a",
        "27aed3e31ce9974ae3e21ec8f3bbea687f939a28"
      ],
      "author": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Tue Sep 20 21:14:17 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Sep 20 21:14:17 2016 +0000"
      },
      "message": "Merge \"Migrate libcamera2ndk to ndk_library.\" am: b22e8ebf30 am: 15234be025\nam: 27aed3e31c\n\nChange-Id: I850c979db3eed9b109f2733ce8cc2a85b032b23f\n"
    },
    {
      "commit": "27aed3e31ce9974ae3e21ec8f3bbea687f939a28",
      "tree": "c02d184ca08b8404cbb7cbf7c9873ba5801edf7a",
      "parents": [
        "982d09081eef1a0364f189dacc665608bcb5cde6",
        "15234be0250aadfa2c4da683bdcd93465524eccf"
      ],
      "author": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Tue Sep 20 21:06:02 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Sep 20 21:06:02 2016 +0000"
      },
      "message": "Merge \"Migrate libcamera2ndk to ndk_library.\" am: b22e8ebf30\nam: 15234be025\n\nChange-Id: I2786071d091f98e96e71f546fc90742d474c02ba\n"
    },
    {
      "commit": "b22e8ebf305f9ab3e868c44a9f10558ef8bcacc7",
      "tree": "a3fc882229c52e6f3c6e796c5a0508a3964b9f92",
      "parents": [
        "1b4c5978d1664a5fbbf6e98ad8c83cfec8b9e34e",
        "d7973ba37cea1a9638ded23041c69774ae8cebbc"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Sep 20 20:30:09 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Sep 20 20:30:09 2016 +0000"
      },
      "message": "Merge \"Migrate libcamera2ndk to ndk_library.\""
    },
    {
      "commit": "d5d60f642d1d2620b120ca46b1d409007f494321",
      "tree": "b475d21e4c16ab82b2f384041034479af9f87c61",
      "parents": [
        "705b64ab843bd0a305587b557c57bda5b062ebcc"
      ],
      "author": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Mon Sep 19 08:16:17 2016 -0700"
      },
      "committer": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Mon Sep 19 08:56:45 2016 -0700"
      },
      "message": "fix build\n\nRevert incorrectly merged f8a4cb410115045278f534e54b41ac78d6bf6c07.\nMerge 7c3c2fa3e233c656fc8c2fc2a6634b3ecf8a23e8 instead.\n\nKeep fixes to these that were merged in since then.\n"
    },
    {
      "commit": "0f9516b8e4b7d22815d31ae461268aaf9ac752fd",
      "tree": "1e55f5346c697a64a0b2f0bd2c918153712353d8",
      "parents": [
        "a087da2af85d9ab4e4b1c7094c1953cff0d7f50a",
        "2cd94964c87ca46427819664a618d722a30aee7d"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Fri Sep 16 23:57:13 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Fri Sep 16 23:57:13 2016 +0000"
      },
      "message": "Merge \"Remove incorrect forward declaration\" am: 50d06c8849 am: 156c5f3fe0 am: 705b64ab84\nam: 2cd94964c8\n\nChange-Id: I122b7b63843f3acc878858731df30a1ada02fdb7\n"
    },
    {
      "commit": "2cd94964c87ca46427819664a618d722a30aee7d",
      "tree": "00c3e39dcffcf271dda4e0438a117003f428873f",
      "parents": [
        "8b58ce5427cb258255bf90476a026c6cdd2ad966",
        "705b64ab843bd0a305587b557c57bda5b062ebcc"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Fri Sep 16 23:39:27 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Fri Sep 16 23:39:27 2016 +0000"
      },
      "message": "Merge \"Remove incorrect forward declaration\" am: 50d06c8849 am: 156c5f3fe0\nam: 705b64ab84\n\nChange-Id: I93eebb25cb3e5e7336d336dc4e8a690b34173a73\n"
    },
    {
      "commit": "705b64ab843bd0a305587b557c57bda5b062ebcc",
      "tree": "42b874db8632e233efb8f1072a5f63b66c89b45c",
      "parents": [
        "16fbb20e739eba747c1d478a4bbcae47c7d7a421",
        "156c5f3fe0d4d89efe80896c590561eb243fb5b0"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Fri Sep 16 23:25:14 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Fri Sep 16 23:25:14 2016 +0000"
      },
      "message": "Merge \"Remove incorrect forward declaration\" am: 50d06c8849\nam: 156c5f3fe0\n\nChange-Id: Ib66a96d28efe52b776a4a69989d379f91609a58a\n"
    },
    {
      "commit": "ae4aba1969098ea645326e9844652793057bcb6b",
      "tree": "21a3a7f87d00a9b78c1e85f0ea63c9cc0b80a3bd",
      "parents": [
        "adc9ba65205bf971f78e4af23ad96e012333a230"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Fri Sep 16 13:02:22 2016 -0700"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Fri Sep 16 14:05:38 2016 -0700"
      },
      "message": "Remove incorrect forward declaration\n\nANativeWindow is a struct, not a class, and the incorrect forward\ndeclaration causes a warning when -isystem is removed from\nsystem/core/include.\n\nTest: m -j native\nBug: 31492149\nChange-Id: I3516aa98defe1944a9776c07f52f4ee580366988\n"
    },
    {
      "commit": "69d7857f1d4f55fec6f8f5c7750193d9e031757d",
      "tree": "4c622d829cee4499c58214f5740e9afd7c7d6cf5",
      "parents": [
        "99c6cd19325ae35218b10220461d0203b603b98d",
        "071a1d2752101140d921d8c20b3c76cebd990228"
      ],
      "author": {
        "name": "ganxiaolin",
        "email": "ganxiaolin@xiaomi.com",
        "time": "Fri Sep 16 01:53:00 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Fri Sep 16 01:53:00 2016 +0000"
      },
      "message": "Remove force argument to ensure mCaptureThread exit within Visualizer destructor am: 2e5b5704b0 am: 524354319a\nam: 071a1d2752\n\nChange-Id: I0be5c03861d06ae036898f1eac34c057ebaf2b54\n"
    },
    {
      "commit": "071a1d2752101140d921d8c20b3c76cebd990228",
      "tree": "fd1651124bd4e8013f8fe4677a309063563a92dc",
      "parents": [
        "a91abe176f4cf8b8a29f4629c657613b43c28314",
        "524354319acd9ffb7f6853bb44fb7b255d46d899"
      ],
      "author": {
        "name": "ganxiaolin",
        "email": "ganxiaolin@xiaomi.com",
        "time": "Fri Sep 16 01:46:23 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Fri Sep 16 01:46:23 2016 +0000"
      },
      "message": "Remove force argument to ensure mCaptureThread exit within Visualizer destructor am: 2e5b5704b0\nam: 524354319a\n\nChange-Id: Ie415398b2a6b603c8ada1e89fafe865cddfe2ac9\n"
    },
    {
      "commit": "d7973ba37cea1a9638ded23041c69774ae8cebbc",
      "tree": "4daf011ff510334f5da445be00aabe988690f242",
      "parents": [
        "8a288e1fbd3b41ee555e2b6331b03e5f777f5711"
      ],
      "author": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Wed Sep 14 12:35:50 2016 -0700"
      },
      "committer": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Thu Sep 15 16:57:16 2016 -0700"
      },
      "message": "Migrate libcamera2ndk to ndk_library.\n\nTest: make checkbuild tests\nBug: http://b/30465923\nChange-Id: Iab800fd20beeef64250abc7d1c966d12fa8bfbb5\n"
    },
    {
      "commit": "1658f22ef0f4e4ae5640d2474fc138dab4a84844",
      "tree": "c71da10750279c780cdfba5471bcc0ac80bfa640",
      "parents": [
        "db135b50ff223f1f1c042957766ab4c8222fe92d"
      ],
      "author": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Tue Aug 02 07:07:05 2016 -0700"
      },
      "committer": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Thu Sep 15 13:44:27 2016 -0700"
      },
      "message": "IOMX: work against metadata buffer spoofing\n\n- Prohibit direct set/getParam/Settings for extensions meant for\n  OMXNodeInstance alone. This disallows enabling metadata mode\n  without the knowledge of OMXNodeInstance.\n- Do not share metadata mode buffers cross process.\n- Disallow setting up metadata mode/tunneling/input surface\n  after first sendCommand.\n- Disallow store-meta for input cross process.\n- Disallow emptyBuffer for surface input (via IOMX).\n- Fix checking for input surface.\n\nBug: 29422020\nChange-Id: I801c77b80e703903f62e42d76fd2e76a34e4bc8e\n"
    },
    {
      "commit": "2e5b5704b0028d8cf9467789dd0c01709644a523",
      "tree": "ec152f299946d58300cd1922fc3a624082cb98da",
      "parents": [
        "41f2c47c0019b2a979ebe79241c5eb6ce14c0a3f"
      ],
      "author": {
        "name": "ganxiaolin",
        "email": "ganxiaolin@xiaomi.com",
        "time": "Fri Jan 29 19:57:57 2016 +0800"
      },
      "committer": {
        "name": "rago",
        "email": "rago@google.com",
        "time": "Thu Sep 15 12:03:27 2016 -0700"
      },
      "message": "Remove force argument to ensure mCaptureThread exit within Visualizer destructor\n\nUpdated logic for exit request when effect is disabled.\nThis CL includes some original changes suggested by:\nganxiaolin \u003cganxiaolin@xiaomi.com\u003e\n\nBug: 30684284\n\nChange-Id: I77768e8204e712f3fd9d0a9bf768de3cb578d6ce\n"
    },
    {
      "commit": "1f12a380bef8aa162dec458cc7849e886815aeaa",
      "tree": "2743ba02d3f3da04eced074dd69a9d22bf823166",
      "parents": [
        "3366b888d878e25b5ab335d6e658a31fe38ab7a9",
        "1b291841a58ce6b2b291232dfdd56134b2185c48"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Wed Sep 14 21:41:16 2016 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Sep 14 21:41:17 2016 +0000"
      },
      "message": "Merge \"Fix RecordThread running too often if fast capture is active\""
    },
    {
      "commit": "e37736428f5393ea5f32729ad16f59c2c297c04f",
      "tree": "6f3b93838d4c863cb714d966b4b9e62b86394dce",
      "parents": [
        "c9ce1839c15b16bdd4a4e07918fc0d3526eccd6e",
        "1935f3102352256a6388224a49013c3b05b8f8d8"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Wed Sep 14 18:03:28 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed Sep 14 18:03:28 2016 +0000"
      },
      "message": "AudioFlinger: flush direct tracks that are paused am: 4bb650bb3c am: b4fb66000f\nam: 1935f31023\n\nChange-Id: I7e6e7e73f2dd77c91995570c8719ab9c8e5561e9\n"
    },
    {
      "commit": "1935f3102352256a6388224a49013c3b05b8f8d8",
      "tree": "76ddbee5e40970f4d50e9b9c95ec47bb794a58c0",
      "parents": [
        "c50fb8f32b23f90c620fc5237564c227cc0c7cb3",
        "b4fb66000ff1148db0cc47697eda87dcbb0805c1"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Wed Sep 14 17:49:50 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed Sep 14 17:49:50 2016 +0000"
      },
      "message": "AudioFlinger: flush direct tracks that are paused am: 4bb650bb3c\nam: b4fb66000f\n\nChange-Id: I7b6a1b64871d40f50aea5a127219be210b9acb60\n"
    },
    {
      "commit": "b4fb66000ff1148db0cc47697eda87dcbb0805c1",
      "tree": "ebee63726eaf20dbe801f70274470a9f508f3cb4",
      "parents": [
        "41341070fcf63b96f3b0ac8ebff7cef335c54d61",
        "4bb650bb3c4f15789232f3f3cf778c5441122360"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Wed Sep 14 17:41:27 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed Sep 14 17:41:27 2016 +0000"
      },
      "message": "AudioFlinger: flush direct tracks that are paused\nam: 4bb650bb3c\n\nChange-Id: I86d50d180819dfb7abed479905fb5921b69188b5\n"
    },
    {
      "commit": "a930117eb3c4e184395f87b5b6d7639dc11576d9",
      "tree": "ebee63726eaf20dbe801f70274470a9f508f3cb4",
      "parents": [
        "7c6bd7b17835cfa615d1f74aa7fe7c45c7190e4d",
        "4bb650bb3c4f15789232f3f3cf778c5441122360"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Wed Sep 14 17:26:23 2016 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Sep 14 17:26:23 2016 +0000"
      },
      "message": "Merge \"AudioFlinger: flush direct tracks that are paused\" into nyc-mr1-dev"
    },
    {
      "commit": "243e3b833e41b92351c945047e5788803daaa9f3",
      "tree": "6e7e7996cc701710a25a37951e5a0d99f8483464",
      "parents": [
        "47e46f5759fc0235071ac3a48e7ea2961ad63fb1",
        "d2f74ed5684b9c3369aa4d468eea8b1cb31b532c"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Sep 13 23:39:34 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Sep 13 23:39:34 2016 +0000"
      },
      "message": "SoundTrigger: get service by value. am: 3b01b3019b am: bd33d5672f am: 9b5b4abd82 am: 4a34d9fcd2 am: 35a9478b27 am: f043ba1056 am: 658c93e6fe am: 2db66851e0 am: 0461342fa2\nam: d2f74ed568\n\nChange-Id: Ibcc3353f159d05a93faaef7cab41cac222bbc5c9\n"
    },
    {
      "commit": "c7d5b4f0a7b7c81313c9d4d78d97d69a6c78412d",
      "tree": "3553dcb5139cc4a2aa42e2f641b87f663e183a98",
      "parents": [
        "1b3f417c713e893b70602f969030ef9f9b35c08c",
        "39adb4824b199fcec2ad72b0a6eecd32207208e3"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Sep 13 23:39:14 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Sep 13 23:39:14 2016 +0000"
      },
      "message": "SoundTrigger: get service by value. am: 3b01b3019b am: bd33d5672f am: 9b5b4abd82 am: 4a34d9fcd2 am: 35a9478b27 am: f043ba1056 am: 658c93e6fe am: 2db66851e0 am: 0461342fa2\nam: 39adb4824b\n\nChange-Id: I002f29c01b8f38595308e573efb9ea39f228f597\n"
    },
    {
      "commit": "d2f74ed5684b9c3369aa4d468eea8b1cb31b532c",
      "tree": "10bdba55513ab8561a439ac4cb0f885456984a2d",
      "parents": [
        "376fa63d7475eadfe570a82e860450b5e6c8b423",
        "0461342fa2a973f6ef63d43365dc3a0e54d7407c"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Sep 13 23:36:14 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Sep 13 23:36:14 2016 +0000"
      },
      "message": "SoundTrigger: get service by value. am: 3b01b3019b am: bd33d5672f am: 9b5b4abd82 am: 4a34d9fcd2 am: 35a9478b27 am: f043ba1056 am: 658c93e6fe am: 2db66851e0\nam: 0461342fa2\n\nChange-Id: I1cc0c879f398f30eca3a774a94cc4f1b233b0a29\n"
    },
    {
      "commit": "39adb4824b199fcec2ad72b0a6eecd32207208e3",
      "tree": "712cb936b752b2fb48c83678b087b67091aa97b3",
      "parents": [
        "f1da87477a68c1748f709a6460be184e940aa39e",
        "0461342fa2a973f6ef63d43365dc3a0e54d7407c"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Sep 13 23:36:14 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Sep 13 23:36:14 2016 +0000"
      },
      "message": "SoundTrigger: get service by value. am: 3b01b3019b am: bd33d5672f am: 9b5b4abd82 am: 4a34d9fcd2 am: 35a9478b27 am: f043ba1056 am: 658c93e6fe am: 2db66851e0\nam: 0461342fa2\n\nChange-Id: I757e68235dad159424543187a7c71d67d1ca9ef0\n"
    },
    {
      "commit": "0461342fa2a973f6ef63d43365dc3a0e54d7407c",
      "tree": "fbed3039da0a6147b6b3149bad606a70a8f1cc4e",
      "parents": [
        "65b52ac39fdf4ef317d168b8f2ee9daa6ad47d5d",
        "2db66851e03a5617efa0cea5b22f2ca944ae5b92"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Sep 13 23:33:12 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Sep 13 23:33:12 2016 +0000"
      },
      "message": "SoundTrigger: get service by value. am: 3b01b3019b am: bd33d5672f am: 9b5b4abd82 am: 4a34d9fcd2 am: 35a9478b27 am: f043ba1056 am: 658c93e6fe\nam: 2db66851e0\n\nChange-Id: I837c1b000f798cdac5c9958918b02800b89f6533\n"
    },
    {
      "commit": "dc422de76c4c7ea4e206dfadd0d09142688db805",
      "tree": "1e08c99dd0fea49577c906068a646999d9a25f83",
      "parents": [
        "92cd1cd127082f85cefad6fffe6671a991a52fe9",
        "376fa63d7475eadfe570a82e860450b5e6c8b423"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Sep 13 23:27:43 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Sep 13 23:27:43 2016 +0000"
      },
      "message": "Radio: get service by value. am: 28a0e9ec74 am: 7488cb1283 am: 2d090ca6ab am: 294a831ac8 am: 65b52ac39f\nam: 376fa63d74\n\nChange-Id: I54cd270617b9ec42278f9ac96efe6f8a13534391\n"
    },
    {
      "commit": "1b3f417c713e893b70602f969030ef9f9b35c08c",
      "tree": "31e2b7de27dcd6fca03cafbbc2541dcfd0ad4332",
      "parents": [
        "d21bcd272d43285baa32ffd48c909b4a29c614a4",
        "f1da87477a68c1748f709a6460be184e940aa39e"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Sep 13 23:27:40 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Sep 13 23:27:40 2016 +0000"
      },
      "message": "Radio: get service by value. am: 28a0e9ec74 am: 7488cb1283 am: 2d090ca6ab am: 294a831ac8 am: 65b52ac39f\nam: f1da87477a\n\nChange-Id: I8f5925918e0f521a655773a247ad0346954197bc\n"
    },
    {
      "commit": "f043ba10561cb1e8ca0689b1124b82e2606af056",
      "tree": "402168d4e88581a5f2dd390bec3758cfd7f75154",
      "parents": [
        "7488cb128366f8dc61de954aca6b18e5610a2ad1",
        "35a9478b27a4cd09ae1206fa6917a74bf2b9eff7"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Sep 13 23:25:53 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Sep 13 23:25:53 2016 +0000"
      },
      "message": "SoundTrigger: get service by value. am: 3b01b3019b am: bd33d5672f am: 9b5b4abd82 am: 4a34d9fcd2\nam: 35a9478b27\n\nChange-Id: I25eef85b5ec1b4f6c4bb4afde0d5960a247030d9\n"
    },
    {
      "commit": "376fa63d7475eadfe570a82e860450b5e6c8b423",
      "tree": "df32a08a754ca6cd7166fe9a7d67a71a3502e50b",
      "parents": [
        "4a3c58ae4842a8fc06fe4f4ff9b24b88fe89d613",
        "65b52ac39fdf4ef317d168b8f2ee9daa6ad47d5d"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Sep 13 23:25:13 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Sep 13 23:25:13 2016 +0000"
      },
      "message": "Radio: get service by value. am: 28a0e9ec74 am: 7488cb1283 am: 2d090ca6ab am: 294a831ac8\nam: 65b52ac39f\n\nChange-Id: I9a4bfcc87d1b9049f55a6fb7e5adab2a9d583a13\n"
    },
    {
      "commit": "f1da87477a68c1748f709a6460be184e940aa39e",
      "tree": "50eaf5b272a16df30f205e9044049dbda1176feb",
      "parents": [
        "64ad5feeb490933c80ff8db897005b06bc320bef",
        "65b52ac39fdf4ef317d168b8f2ee9daa6ad47d5d"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Sep 13 23:25:11 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Sep 13 23:25:11 2016 +0000"
      },
      "message": "Radio: get service by value. am: 28a0e9ec74 am: 7488cb1283 am: 2d090ca6ab am: 294a831ac8\nam: 65b52ac39f\n\nChange-Id: I46549e1781d87ff1209bdc232b434b8859df73b6\n"
    },
    {
      "commit": "65b52ac39fdf4ef317d168b8f2ee9daa6ad47d5d",
      "tree": "9973a74862c32ff975c9ae9be75d1a52b7c7d94e",
      "parents": [
        "20d7cfb6d9c7ef58ac0c007c0b61d39b46036781",
        "294a831ac83deb81e6c78542692b220909b80a3a"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Sep 13 23:22:22 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Sep 13 23:22:22 2016 +0000"
      },
      "message": "Radio: get service by value. am: 28a0e9ec74 am: 7488cb1283 am: 2d090ca6ab\nam: 294a831ac8\n\nChange-Id: I92f4a8447adce68190ce9f471c54002bebd8251c\n"
    },
    {
      "commit": "35a9478b27a4cd09ae1206fa6917a74bf2b9eff7",
      "tree": "536fb6003da2811d242f23bef8af555bc9b54858",
      "parents": [
        "28a0e9ec74e5192aacffb279c80619ef284062b0",
        "4a34d9fcd2c6c2bd857d210b6a8156635af4faa3"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Sep 13 23:22:18 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Sep 13 23:22:18 2016 +0000"
      },
      "message": "SoundTrigger: get service by value. am: 3b01b3019b am: bd33d5672f am: 9b5b4abd82\nam: 4a34d9fcd2\n\nChange-Id: I51848846811a770346189dcaed080f2cf350883a\n"
    },
    {
      "commit": "4a34d9fcd2c6c2bd857d210b6a8156635af4faa3",
      "tree": "27356fff8b769289d22db0917b4431dc78c5e34b",
      "parents": [
        "f95caa3506c1bb851854b8c5a416790e3b2bb53e",
        "9b5b4abd824e4eee0d8fcbab51198e46a7b37982"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Sep 13 23:19:09 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Sep 13 23:19:09 2016 +0000"
      },
      "message": "SoundTrigger: get service by value. am: 3b01b3019b am: bd33d5672f\nam: 9b5b4abd82\n\nChange-Id: I2574013b83d43208f07812dd4b3e431805e2a6e3\n"
    },
    {
      "commit": "7488cb128366f8dc61de954aca6b18e5610a2ad1",
      "tree": "044bc397de9a9deb75baae06d862e05a019c3c68",
      "parents": [
        "43d4b759f5c1a3257b5413b796f58daa4578d45a",
        "28a0e9ec74e5192aacffb279c80619ef284062b0"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Sep 13 23:13:40 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Sep 13 23:13:40 2016 +0000"
      },
      "message": "Radio: get service by value.\nam: 28a0e9ec74\n\nChange-Id: If9c934531b2c88edccf179911d8fa2aa4c05f82e\n"
    },
    {
      "commit": "bd33d5672f689b71be7d96683eb9235501ab0469",
      "tree": "74080a0b26a046f23bf36f624d783b351e9f118f",
      "parents": [
        "4636e7256a887074938467c7f71e2d79a61b2d90",
        "3b01b3019b1c62132792a1a94e2dc1f7cfc84f2e"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Sep 13 23:13:40 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Sep 13 23:13:40 2016 +0000"
      },
      "message": "SoundTrigger: get service by value.\nam: 3b01b3019b\n\nChange-Id: Ibb98c945e51fef6d21e91b1e9f670eb4f83c5663\n"
    },
    {
      "commit": "4bb650bb3c4f15789232f3f3cf778c5441122360",
      "tree": "38aeb0e3fe7cd024923114813d41b0dbf4ed88aa",
      "parents": [
        "3fb45bb6396f245ae7b47dcfe02fb600eec0b84c"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Fri Sep 09 12:11:17 2016 -0700"
      },
      "committer": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Mon Sep 12 17:11:30 2016 -0700"
      },
      "message": "AudioFlinger: flush direct tracks that are paused\n\nNormally the flush is processed on ObtainBuffer.\nBut that is not called when the track is paused.\nSo it was not possible to flush and re-prime a\ntrack that was paused.\n\nNow we flush synchronously for inactive tracks,\nand flush from prepareTracks_l for active tracks.\n\nBug: 19193985\nBug: 27791443\nChange-Id: I39a7e4921e45041c3a51cf91fd3995b5edee6dd4\nSigned-off-by: Phil Burk \u003cphilburk@google.com\u003e\n"
    },
    {
      "commit": "1b291841a58ce6b2b291232dfdd56134b2185c48",
      "tree": "d2eebced63ee2d64c58f604c68fd328c88816d2d",
      "parents": [
        "6b11f552f99ce7bd40ea164f65ac1590a3f4198b"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Jul 18 14:55:21 2016 -0700"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Mon Sep 12 15:52:22 2016 -0700"
      },
      "message": "Fix RecordThread running too often if fast capture is active\n\nBug: 30159297\nChange-Id: Ieca804450168391c162fc4862398586fcc5d7e4e\n"
    },
    {
      "commit": "6b11f552f99ce7bd40ea164f65ac1590a3f4198b",
      "tree": "18537ae42b84716bc8a003f596eb4dc8950cbd9b",
      "parents": [
        "ad477fed3d696cd5e27da4d281fcff3d2a83e862",
        "2f919a49511af0b8736f6edb43d7ce579470b259"
      ],
      "author": {
        "name": "Chih-hung Hsieh",
        "email": "chh@google.com",
        "time": "Mon Sep 12 19:24:54 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Mon Sep 12 19:24:54 2016 +0000"
      },
      "message": "Merge \"Fix google-explicit-constructor warnings in camera.\" am: f9ee5183c8 am: beff1fb18b am: 019e54142c\nam: 2f919a4951\n\nChange-Id: I6b20f2f0e8c2153b11b8b1e54d92db290fb7bfab\n"
    },
    {
      "commit": "2f919a49511af0b8736f6edb43d7ce579470b259",
      "tree": "517c1d7f344b1070b659073c137ce97980696710",
      "parents": [
        "2e97f1eea42fc4acdec6094c552552447a29c24f",
        "019e54142c85031e5320ba9103e3558835dda04c"
      ],
      "author": {
        "name": "Chih-hung Hsieh",
        "email": "chh@google.com",
        "time": "Mon Sep 12 19:16:50 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Mon Sep 12 19:16:50 2016 +0000"
      },
      "message": "Merge \"Fix google-explicit-constructor warnings in camera.\" am: f9ee5183c8 am: beff1fb18b\nam: 019e54142c\n\nChange-Id: I1278af9e5244995c7fdbc4ee7a54314571b3df3f\n"
    },
    {
      "commit": "019e54142c85031e5320ba9103e3558835dda04c",
      "tree": "038968d99c3ef5eea8f5ad7bfb9d7d3d434a37a9",
      "parents": [
        "5848eb65f6ced6bb9ada57223bdbc416602d6f6c",
        "beff1fb18b4fdb642e466d8864cfa8dca7f4cb24"
      ],
      "author": {
        "name": "Chih-hung Hsieh",
        "email": "chh@google.com",
        "time": "Mon Sep 12 19:13:21 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Mon Sep 12 19:13:21 2016 +0000"
      },
      "message": "Merge \"Fix google-explicit-constructor warnings in camera.\" am: f9ee5183c8\nam: beff1fb18b\n\nChange-Id: I0f337390c99af8b300b28f8dfe60635290fc20b0\n"
    },
    {
      "commit": "09fcc862f226df509cde12923d92cf6db53c4108",
      "tree": "3c5321feb469cc303fe40eace8fe475fc6f8f7f8",
      "parents": [
        "4481d021c5195c8dbf726c5ff09da1a62d9149e0",
        "6cf9a1238986880536de705255f7c2c91c1ba719"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Sep 09 21:17:44 2016 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Sep 09 21:17:45 2016 +0000"
      },
      "message": "Merge \"stagefright: remove OMXNodeInstance usage from GraphicBufferSource\""
    },
    {
      "commit": "6cf9a1238986880536de705255f7c2c91c1ba719",
      "tree": "a0d772dae500088e40830423f5497f1f2f677353",
      "parents": [
        "65eaab565329c47c2acccc2ffe3f23fb3f3f8676"
      ],
      "author": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Thu Sep 08 23:25:52 2016 -0700"
      },
      "committer": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Fri Sep 09 12:48:25 2016 -0700"
      },
      "message": "stagefright: remove OMXNodeInstance usage from GraphicBufferSource\n\nThis is a preliminary to separate GraphicBufferSource from IOMX.\n\n- Use IOMX instead of internal OMXNodeInstance.\n\n- Keep track of codec buffers by buffer_id, do not write to the\n  OMX buffer headers directly\n\n- Upon data space change, notify IOMX to handle it\n\nbug: 31399200\n\nChange-Id: I86534d7602294f70da582457b5af2eb9b6a58eda\n"
    },
    {
      "commit": "5f7114f27c3ee61d5ccd866c99f3775136b1ab75",
      "tree": "36399c721312669130f55642665d35349f232335",
      "parents": [
        "d0c45782ee2d7f7384cb742924f5ccbeb0f2c923",
        "ff97bcaf881576703e6a9af014f87529b3af774e"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Fri Sep 09 19:05:11 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Fri Sep 09 19:05:11 2016 +0000"
      },
      "message": "Improve MediaBuffer robustness for remote clients am: 9bd3c9b0e8 am: e2538f2f9b\nam: ff97bcaf88\n\nChange-Id: I97a2b06342b90949b489f72b9165fe618479fd82\n"
    },
    {
      "commit": "ff97bcaf881576703e6a9af014f87529b3af774e",
      "tree": "1983b840fcaaddf12bee569a5ffc8596706c84ed",
      "parents": [
        "e137599d76a60339c7418074de04c55104f23ae2",
        "e2538f2f9b5d81ce53dc13bbf87b2f36f6c45eb5"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Fri Sep 09 18:58:05 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Fri Sep 09 18:58:05 2016 +0000"
      },
      "message": "Improve MediaBuffer robustness for remote clients am: 9bd3c9b0e8\nam: e2538f2f9b\n\nChange-Id: I8d378f6c64bfe9a97941cddafe6c3163abc7a050\n"
    },
    {
      "commit": "28a0e9ec74e5192aacffb279c80619ef284062b0",
      "tree": "e3b12f02e07f09992385206578f3b9367c6141a2",
      "parents": [
        "483c0d40535b9787160ec1fa79dbf3cbc273b93f"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Sep 07 16:58:39 2016 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Sep 09 11:46:43 2016 -0700"
      },
      "message": "Radio: get service by value.\n\nGet strong pointer to service interface by value and not reference to\nprevent race conditions where the service pointer can be cleared\nby another thread while in use.\n\nBug: 30907212\nChange-Id: Iae838b3b672562c1d0cd63968399a6bfdda7f5ab\n"
    },
    {
      "commit": "e2538f2f9b5d81ce53dc13bbf87b2f36f6c45eb5",
      "tree": "121e1ebc3dd71e40c1df0fdf85314c19f7a9b0f1",
      "parents": [
        "75bd2b9014d2926b869350395d7cfb5f329da905",
        "9bd3c9b0e894c9f6c48a2cfa7c5f21d384b1c596"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Fri Sep 09 17:58:50 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Fri Sep 09 17:58:50 2016 +0000"
      },
      "message": "Improve MediaBuffer robustness for remote clients\nam: 9bd3c9b0e8\n\nChange-Id: I3abb06e498b8951e5e934d0127e12b9adb65707c\n"
    },
    {
      "commit": "9bbafdb5b4266d51d868844c624a33035a2abea1",
      "tree": "121e1ebc3dd71e40c1df0fdf85314c19f7a9b0f1",
      "parents": [
        "01b589c3e1976672dc9106d17c6e0095915082be",
        "9bd3c9b0e894c9f6c48a2cfa7c5f21d384b1c596"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Fri Sep 09 17:53:46 2016 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Sep 09 17:53:46 2016 +0000"
      },
      "message": "Merge \"Improve MediaBuffer robustness for remote clients\" into nyc-mr1-dev"
    },
    {
      "commit": "61bb7a0d99bcacac5ae4ea2171add8d4dd9ea459",
      "tree": "4331e45a52581bd856bea1abd2f6189a2785a5a7",
      "parents": [
        "beb7008c2e6c8ee71b5e5aaf101990ea52a67da1",
        "da3cba194bff674f5a3f4b0249a651b00ab00c37"
      ],
      "author": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Fri Sep 09 17:00:44 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Fri Sep 09 17:00:44 2016 +0000"
      },
      "message": "DO NOT MERGE: IOMX: work against metadata buffer spoofing am: 9a4768f7bf\nam: da3cba194b\n\nChange-Id: I018340e57d237e4d36d68e2cd118336242447b9c\n"
    },
    {
      "commit": "8751b3c3ac6a6cc606a0fce1e8ed0a01a1168c08",
      "tree": "1abd48dce8c96f2bb3126a41ff0c53509aa12524",
      "parents": [
        "647f55d75de0a6b09b2171682e78de34160f09f2",
        "f8a4cb410115045278f534e54b41ac78d6bf6c07"
      ],
      "author": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Fri Sep 09 16:56:46 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Fri Sep 09 16:56:46 2016 +0000"
      },
      "message": "IOMX: work against metadata buffer spoofing\nam: f8a4cb4101\n\nChange-Id: I3aeec794c96fe3b0000546700e010b5ddc6e4f0f\n"
    },
    {
      "commit": "030fbd4835412d07edcfb80230d930c3819dd2ee",
      "tree": "4783d31fd627ae6625b21f92840d4cb9c6e4d30f",
      "parents": [
        "9a6861cbd3bb0e1b8fe4c105795256ee032f9664",
        "f8a4cb410115045278f534e54b41ac78d6bf6c07"
      ],
      "author": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Fri Sep 09 16:52:15 2016 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Sep 09 16:52:15 2016 +0000"
      },
      "message": "Merge \"IOMX: work against metadata buffer spoofing\" into mnc-dev"
    },
    {
      "commit": "3b01b3019b1c62132792a1a94e2dc1f7cfc84f2e",
      "tree": "788c73afa82ff5d0beaf8b5628870a342b28bb19",
      "parents": [
        "de97dbd662bc959bfe4a894c8678f1383294e148"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Sep 07 16:58:39 2016 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Sep 09 09:15:30 2016 -0700"
      },
      "message": "SoundTrigger: get service by value.\n\nGet strong pointer to service interface by value and not reference to\nprevent race conditions where the service pointer can be cleared\nby another thread while in use.\n\nBug: 30907212\nChange-Id: I6f02ec3fd1e6392b842b334e1cc4f9aa23916009\n"
    },
    {
      "commit": "9bd3c9b0e894c9f6c48a2cfa7c5f21d384b1c596",
      "tree": "a09214342f1a34d1b2d1188dc1fe55fd172994aa",
      "parents": [
        "57d8e70186106995ec0ae0891f014a3209f71551"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Wed Sep 07 14:42:55 2016 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Thu Sep 08 20:09:54 2016 -0700"
      },
      "message": "Improve MediaBuffer robustness for remote clients\n\nAllow remote process to die or behave incorrectly.\n\nBug: 31060086\nChange-Id: I01bc8984287fed61a46083ec090b7773e49158a9\n"
    },
    {
      "commit": "3769871b5998f4bbe6d8fe7c124ee97daa6e7fab",
      "tree": "12c96899b39577e32fffe8b08e39e115bd228e2b",
      "parents": [
        "b6c83b60418d531e8010f515b4bd18ffd8f1b791"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Sep 07 16:58:39 2016 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Sep 08 14:52:16 2016 +0000"
      },
      "message": "Radio, SoundTrigger: get service by value.\n\nGet strong pointer to service interface by value and not reference to\nprevent race conditions where the service pointer can be cleared\nby another thread while in use.\n\nBug: 30907212\nChange-Id: I6f02ec3fd1e6392b842b334e1cc4f9aa23916009\n"
    }
  ],
  "next": "fcf7cf78bc0abc61b86ccb08fb3391f560143ad2"
}
