)]}'
{
  "log": [
    {
      "commit": "f653d0ba2b70e6e36bcea1e2547affd902ed188c",
      "tree": "2681d8ee18879f11e04b338293af95e636c9a01e",
      "parents": [
        "e3dbb294940461cad6a04625501b93d3daf6fb0f"
      ],
      "author": {
        "name": "Jiwen \u0027Steve\u0027 Cai",
        "email": "jwcai@google.com",
        "time": "Tue Jan 15 10:52:20 2019 -0800"
      },
      "committer": {
        "name": "Jiwen \u0027Steve\u0027 Cai",
        "email": "jwcai@google.com",
        "time": "Tue Jan 15 11:04:30 2019 -0800"
      },
      "message": "Fix lshal for BufferHub Service\n\nBug: 122867618\nTest: adb shell lshal debug android.frameworks.bufferhub@1.0::IBufferHub\nChange-Id: I2cde444b724ec7707e1579c560a362a6d5c6e918\n"
    },
    {
      "commit": "6b4b1e5b1f7ad32dcadc49a2455370003b20897a",
      "tree": "377acdeab5d3875fcd765b5e31e546272421cf99",
      "parents": [
        "e8f659786f12a6dc54e1d8739b7e9681314617b3"
      ],
      "author": {
        "name": "Fan Xu",
        "email": "fanxu@google.com",
        "time": "Tue Dec 18 14:03:44 2018 -0800"
      },
      "committer": {
        "name": "Tianyu Jiang",
        "email": "tianyuj@google.com",
        "time": "Fri Jan 11 18:27:24 2019 +0000"
      },
      "message": "Change bufferhub\u0027s bufferId to int\n\nAfter discussion we decided that our new system should still use int as\ntype of buffer id. Now the Id generator will generate int ids \u003e\u003d 0\ninstead of uint32_t ids \u003e 0.\n\nRemove redundant log in destructor of BufferNode, now only log when\nfreeId failed.\n\nUpdate BufferHubIdGenerator_test.cpp to fit in current API. Add code to\ncleanup generated ids in TestGenerateUniqueIncrementalID.\n\nTest: BufferHubServer_test\nChange-Id: I2018bfd009a3c311a99b9114762d0f4fbf1e3fe2\nFix: 118844348\n"
    },
    {
      "commit": "efce32efd5d9fdbf83796329ac66089f5ba0ce38",
      "tree": "cfe3c8a962deecbfe4be28414d5dfe8eb0485d80",
      "parents": [
        "427fb957faecacb86495c286feee6ab173895f70"
      ],
      "author": {
        "name": "Fan Xu",
        "email": "fanxu@google.com",
        "time": "Wed Dec 12 14:34:16 2018 -0800"
      },
      "committer": {
        "name": "Tianyu Jiang",
        "email": "tianyuj@google.com",
        "time": "Thu Jan 10 23:10:44 2019 +0000"
      },
      "message": "Implement bufferInfo handle packing logic\n\nThe service now will use buildBufferInfo() function to build the handle\nand return real data to client.\n\nTest: VtsHalBufferHubV1_0TargetTest\nBug: 116681016\nChange-Id: I45baa91cc4f91f817c82b1c59243f48440a5558a\n"
    },
    {
      "commit": "55b26a6101460780acaa756ef43fbc73d1b82898",
      "tree": "051a863c43bb060af4cbe8247cbc7c160ca63d4a",
      "parents": [
        "92b66e1871c43778988db9ca31bea26df68a6462"
      ],
      "author": {
        "name": "Fan Xu",
        "email": "fanxu@google.com",
        "time": "Wed Dec 19 11:03:14 2018 -0800"
      },
      "committer": {
        "name": "Fan Xu",
        "email": "fanxu@google.com",
        "time": "Wed Jan 09 14:20:12 2019 -0800"
      },
      "message": "Refactor bufferhub token to be more secure\n\nNow BufferHubService will use HMAC hashing from openssl library to\nenhance the security of the token.\n\nThe token handle will use its first int to store token id, then the HMAC\nhash of the token id, so that BufferHubService could store token in\nmTokenMap using token id as the key to improve looking up performance.\n\nTest: VtsHalBufferHubV1_0TargetTest\nChange-Id: Ica9639bc1504a477c6a1b1f703399bb07b3a2d2c\nFix: 118180214\n"
    },
    {
      "commit": "fe097c76f3989e7f852597d748bb1d88e5da91c6",
      "tree": "98997c428bbf0394afa02d4e880b66f727f89b4a",
      "parents": [
        "27083ae1903c6aa8ab5cc971e068160d5ec78001"
      ],
      "author": {
        "name": "Fan Xu",
        "email": "fanxu@google.com",
        "time": "Fri Dec 07 15:46:51 2018 -0800"
      },
      "committer": {
        "name": "Fan Xu",
        "email": "fanxu@google.com",
        "time": "Wed Jan 09 11:04:38 2019 -0800"
      },
      "message": "Add lshal debug function to bufferhub\n\nUsing similar logic from services/vr/bufferhubd/buffer_hub.cpp.\n\nTest: adb shell lshal debug android.frameworks.bufferhub@1.0::IBufferHub\nFix: 116526156\nChange-Id: Ie13660752a3a9325f518e8144f548de361b5c00c\n"
    },
    {
      "commit": "b59847c432ed690d38d3f0edaab957a9620ebebf",
      "tree": "d3c20209eaabfb53dd84f78c5dc909f6c1c7024a",
      "parents": [
        "9acbb39dd91a1274ca98cc626bb356611c1834f0"
      ],
      "author": {
        "name": "Fan Xu",
        "email": "fanxu@google.com",
        "time": "Wed Dec 19 15:49:00 2018 -0800"
      },
      "committer": {
        "name": "Fan Xu",
        "email": "fanxu@google.com",
        "time": "Wed Dec 19 15:49:00 2018 -0800"
      },
      "message": "Fix warnings for BufferHubServer_test in oc branch\n\nClang is complaining about signed and unsigned comparing in oc branch.\nThis CL will fix it.\n\nTest: BufferHubServer_test (passed)\nBug: none\nChange-Id: Iddb9b87c11975f4bfbb524570ff63aedeaa58659\n"
    },
    {
      "commit": "9acbb39dd91a1274ca98cc626bb356611c1834f0",
      "tree": "6d259180be49fcab1a3672e0ac06726538efb33c",
      "parents": [
        "f45dc30908afaabac7765d42799a38ea8d1ece9a",
        "f8f4a45fbefe998270cf62fb866774b028f7082a"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Dec 19 18:29:26 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Dec 19 18:29:26 2018 +0000"
      },
      "message": "Merge \"Implement new definition of IBufferHub\""
    },
    {
      "commit": "f8f4a45fbefe998270cf62fb866774b028f7082a",
      "tree": "ed8deeeadfa7edc1b081ae3362df0a52f1d9bc9c",
      "parents": [
        "d85333ddca0f8046d1c7553ac611f579a2a0c6fa"
      ],
      "author": {
        "name": "Fan Xu",
        "email": "fanxu@google.com",
        "time": "Thu Nov 29 16:26:30 2018 -0800"
      },
      "committer": {
        "name": "Fan Xu",
        "email": "fanxu@google.com",
        "time": "Tue Dec 18 10:12:15 2018 -0800"
      },
      "message": "Implement new definition of IBufferHub\n\nNow allocateBuffer and importBuffer will return BufferTraits description\nto client side.\n\nThe hidl_handle BufferInfo requires some complex logic to pack and\nunpack, which would be part of another CL.\n\nTest: VtsFwkBufferHubV1_0TargetTest (Passed)\nBug: 116681016\nChange-Id: Iff99b08360a5de2f300546ffd8e9b215518a83c8\n"
    },
    {
      "commit": "2ceb320ea35a14ef8f6df460314f85a40a7581de",
      "tree": "8fbc201e92640ad93fc8617a93c6214de54f6d90",
      "parents": [
        "49c55bb850f814cd7032ca815201a597a74cca40"
      ],
      "author": {
        "name": "Tianyu Jiang",
        "email": "tianyuj@google.com",
        "time": "Mon Dec 17 12:58:34 2018 -0800"
      },
      "committer": {
        "name": "Tianyu Jiang",
        "email": "tianyuj@google.com",
        "time": "Mon Dec 17 12:58:34 2018 -0800"
      },
      "message": "Check atomics in shared memory are lock free\n\nwhen they are created in bufferhub server side in BufferNode, and client\nside in BufferHubBuffer.\n\nFix: 117849512\nTest: BufferHub_test BufferHubServer_test\n\nChange-Id: Ifc5b681a6a86fa02cb598b33bf68dfefc07a76f9\n"
    },
    {
      "commit": "a99f9114d15add6bf1d67264e2a60a73e13009fe",
      "tree": "706d3852bee81e83008adc789f0582f2be576384",
      "parents": [
        "7bd483a2ee8e6c2db596d95a690e452e1a7b43f3"
      ],
      "author": {
        "name": "Tianyu Jiang",
        "email": "tianyuj@google.com",
        "time": "Thu Dec 13 18:23:07 2018 -0800"
      },
      "committer": {
        "name": "Tianyu Jiang",
        "email": "tianyuj@google.com",
        "time": "Sat Dec 15 05:04:38 2018 +0000"
      },
      "message": "Change atomics in ashmem from uint64_t to uint32_t\n\nFix: 117849512\n\nTest: Blueline: atest AHardwareBufferTest BufferHub_test\n buffer_hub_queue_producer-test libgui_test\nlibsensor_test vrflinger_test buffer_hub-test buffer_hub_queue-test\ndvr_buffer_queue-test dvr_api-test dvr_display-test\nTest: in libui_test InputSurfacesTest are segfault on top of master already.\n\nTest: Vega: AHardwareBufferTest BufferHubBuffer_test\nBufferHubMetadata_test buffer_hub_queue_producer-test buffer_hub-test\ndvr_buffer_queue-test buffer_hub_queue-test dvr_api-test\nlibdvrtracking-test\n\nChange-Id: I55f91c21f7ac07615b5451b5413521d7938cf591\n"
    },
    {
      "commit": "ddd2282d46faccfea992f30e2c77d0f521666328",
      "tree": "038d37f828a1bd6da3d543bbc80841d173e62332",
      "parents": [
        "3150c3adca85e7d5659fab4f6d7cd8a27b7323c6"
      ],
      "author": {
        "name": "Tianyu Jiang",
        "email": "tianyuj@google.com",
        "time": "Fri Dec 14 17:08:36 2018 -0800"
      },
      "committer": {
        "name": "Tianyu Jiang",
        "email": "tianyuj@google.com",
        "time": "Fri Dec 14 17:08:36 2018 -0800"
      },
      "message": "Combine server tests into one test target BufferHubServer_test\n\nBug: 112940221\nTest: BufferHubServer_test\nChange-Id: Ie775690c7e1b4be7d39282ef067adc21e52b1955\n"
    },
    {
      "commit": "d34a80a63b47dd6c046afb2be47fa55e6ca7a284",
      "tree": "95b09b6fcb64b9a56ed1679d95487d9145b31a9f",
      "parents": [
        "cfbe07453ebd7cde74a7ed75568ee2c81d726049"
      ],
      "author": {
        "name": "Fan Xu",
        "email": "fanxu@google.com",
        "time": "Tue Dec 04 11:32:39 2018 -0800"
      },
      "committer": {
        "name": "Fan Xu",
        "email": "fanxu@google.com",
        "time": "Wed Dec 12 14:59:56 2018 -0800"
      },
      "message": "Move BufferHubDefs namespace to ui/BufferHubDefs.h\n\nAnd move libbufferhubservice off libbufferhub_headers and libpdx_headers\ndependency.\n\nTest: build passed, including all the tests under libui and\nlibbufferhubservice\nBug: 118893702\n\nChange-Id: I8163a7524c6078f9fbb264cf5253d8cbe05dd1c4\n"
    },
    {
      "commit": "cfbe07453ebd7cde74a7ed75568ee2c81d726049",
      "tree": "ca279be9a83a1a78a93eaeed646fa38b49ee3071",
      "parents": [
        "faba0dc129e2d73bb8fc313bfa337baddb2582d6"
      ],
      "author": {
        "name": "Fan Xu",
        "email": "fanxu@google.com",
        "time": "Wed Nov 21 15:03:32 2018 -0800"
      },
      "committer": {
        "name": "Fan Xu",
        "email": "fanxu@google.com",
        "time": "Wed Dec 12 14:35:50 2018 -0800"
      },
      "message": "Move MetadataHeader to libui\n\nTo remove BufferHubMetadata off pdx dependency.\n\nNote that the __attribute__(packed) is removed as part of this CL, as\nit\u0027s not really needed and is triggering clang warnings.\n\nTest: build passed. Not test needed as no behavior changes.\nBug: 118893702\nChange-Id: Ifae94a143a2bedef68a653c57f089b95d166e6d7\n"
    },
    {
      "commit": "42aa2a60777d4b415bf4da04f26d67a07a747464",
      "tree": "fa9dbeacc1e722c9af413130fadae504736a9584",
      "parents": [
        "7b49e011b102c17d465885aa0f3569bc182eb69b",
        "cd74d78173b9ccd60c14906a22ddbf723647b4f8"
      ],
      "author": {
        "name": "Fan Xu",
        "email": "fanxu@google.com",
        "time": "Wed Dec 05 00:38:53 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Dec 05 00:38:53 2018 +0000"
      },
      "message": "Merge changes from topic \"bufferhub_gc\"\n\n* changes:\n  Change mClientList to std::set mClientSet\n  Implement IBufferClient::close on BufferClient\n"
    },
    {
      "commit": "1c16df541e8b1a67a042fbb20b6e2c76446e9748",
      "tree": "ce3e9724f9b43679a73d922b60cc2129412d07b3",
      "parents": [
        "023162b7e6872c42552de35380d348ab3e785fac"
      ],
      "author": {
        "name": "Fan Xu",
        "email": "fanxu@google.com",
        "time": "Mon Nov 19 16:27:27 2018 -0800"
      },
      "committer": {
        "name": "Fan Xu",
        "email": "fanxu@google.com",
        "time": "Tue Dec 04 10:25:26 2018 -0800"
      },
      "message": "Fix freeId() failed in ~BufferNode\n\nAnd rename UniqueIdGenerator to BufferHubIdGenerator.\n\nCreated a static getter and Use scoped static initialization for\nUniqueIdGenerator.\n\nTest: run BufferHubBuffer_test, then \"adb logcat | grep bufferhub -i\" to\nverify that there are no error messages.\nFix: 118844348\nChange-Id: Ia75ae4dac13cc709f39161c803401bcbb90c70e2\n"
    },
    {
      "commit": "cd74d78173b9ccd60c14906a22ddbf723647b4f8",
      "tree": "c5bdfd43fade9e2f313065a6d8871c584b1454fa",
      "parents": [
        "a7422fe2e0afc5bce205db37460061e0ad7e3fb4"
      ],
      "author": {
        "name": "Fan Xu",
        "email": "fanxu@google.com",
        "time": "Mon Nov 26 13:51:25 2018 -0800"
      },
      "committer": {
        "name": "Fan Xu",
        "email": "fanxu@google.com",
        "time": "Mon Dec 03 11:27:22 2018 -0800"
      },
      "message": "Change mClientList to std::set mClientSet\n\nChange-Id: I34af8a96916032630c05ea3b4e9987a6e09d6f51\nFix: 119819092\nTest: BufferHubBuffer_test (passed)\n"
    },
    {
      "commit": "a7422fe2e0afc5bce205db37460061e0ad7e3fb4",
      "tree": "11ab7a36906cfa31e6ceaebacc674d3e0987ca26",
      "parents": [
        "467e08fb6a370fe26064da06ea57dbb693d599d4"
      ],
      "author": {
        "name": "Fan Xu",
        "email": "fanxu@google.com",
        "time": "Mon Nov 19 15:21:32 2018 -0800"
      },
      "committer": {
        "name": "Fan Xu",
        "email": "fanxu@google.com",
        "time": "Mon Dec 03 11:14:15 2018 -0800"
      },
      "message": "Implement IBufferClient::close on BufferClient\n\nThe close() function will mark a BufferClient as closed (set mClosed \u003d\ntrue), remove it from service\u0027s mClientList, and remove all of its token\nin service\u0027s mTokenMap.\n\nAdd test cases to make sure it works in all situations.\n\nTest: BufferHubBuffer_test (passed)\nBug: 119623209\nChange-Id: Ic1d17ced97b67ef5432c9d341469d8e6105e2717\n"
    },
    {
      "commit": "467e08fb6a370fe26064da06ea57dbb693d599d4",
      "tree": "b35048616a4212feb6fa100c5de180abf8d5cffe",
      "parents": [
        "face176394e0a28bd7b7b8bed13b4696e79668a2"
      ],
      "author": {
        "name": "Fan Xu",
        "email": "fanxu@google.com",
        "time": "Fri Nov 09 15:58:51 2018 -0800"
      },
      "committer": {
        "name": "Fan Xu",
        "email": "fanxu@google.com",
        "time": "Mon Dec 03 11:12:28 2018 -0800"
      },
      "message": "Implement importBuffer for BufferHubService\n\nAllow user importBuffer by a previously generated handle from\nIBufferClient::duplicate.\n\nPassing a nullptr or invalid token to the service will get a nullptr\nIBufferClient and BufferHubStatus::INVALID_TOKEN.\n\nTest: BufferHubBuffer_test (passed)\nChange-Id: I0aa969a9706e42039ac851acb991b3aceb924c27\nFix: 118614157\n"
    },
    {
      "commit": "5363caaf84127c4661ab7489f94662fd0f038778",
      "tree": "c9ef7dc235416dd5b5938b15cb031d6bbd091993",
      "parents": [
        "c2eb4be4717aa499e19987a11444ac3364cedc42",
        "d6cd6ba6d387d1d6e1c8cd8077ff6ae596fb7065"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Nov 28 23:47:14 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Nov 28 23:47:14 2018 +0000"
      },
      "message": "Merge \"Add garbage collecion function to BufferHubService\""
    },
    {
      "commit": "d6cd6ba6d387d1d6e1c8cd8077ff6ae596fb7065",
      "tree": "d41ba606e35152af765df57072c10c995c930a7c",
      "parents": [
        "910c0aa1384ee3122a4d3929ca3b94943a3dc539"
      ],
      "author": {
        "name": "Fan Xu",
        "email": "fanxu@google.com",
        "time": "Thu Nov 15 16:46:55 2018 -0800"
      },
      "committer": {
        "name": "Fan Xu",
        "email": "fanxu@google.com",
        "time": "Wed Nov 28 11:17:57 2018 -0800"
      },
      "message": "Add garbage collecion function to BufferHubService\n\nNow BufferHubService will cleanup unused BufferClient automatically.\n\nIf the mClientList storing weak pointer, when user side\u0027s strong pointer\ndies, the refcount will become 0 and the allocated memory in the service\nwill get freed.\n\nTest: BufferHubBuffer_test (passed)\nBug: 119623209\nChange-Id: I1390f878bf44afd7c1a5cccaeb34a9d13dab3db0\n"
    },
    {
      "commit": "de43a5b3c9f4de8d78d46912501d62f427383481",
      "tree": "47dd595fdbe7c2260bbe12ca9399e1f2b973c9ed",
      "parents": [
        "910c0aa1384ee3122a4d3929ca3b94943a3dc539"
      ],
      "author": {
        "name": "Tianyu Jiang",
        "email": "tianyuj@google.com",
        "time": "Tue Nov 20 11:22:52 2018 -0800"
      },
      "committer": {
        "name": "Tianyu Jiang",
        "email": "tianyuj@google.com",
        "time": "Tue Nov 27 16:02:38 2018 -0800"
      },
      "message": "Add log tag for bufferhub service\n\nFix: 119820885\nTest: patch ag/5557446, run BufferHubBuffer_test,\nthen verify that there are log messages with\nbufferhubservice tag and logs with bufferhub tag.\n\nChange-Id: I76fa244ee2ca8b26850ca455caa988baba5ab5d5\n"
    },
    {
      "commit": "ffde786ffce1afcd7ee574e7b45026d651ac1779",
      "tree": "c6ee2a9f13c21b0125653b897402b8f7ec72606b",
      "parents": [
        "18d90eaf05d8b3a21a68d84ebf23ea2326067aad"
      ],
      "author": {
        "name": "Fan Xu",
        "email": "fanxu@google.com",
        "time": "Thu Nov 08 16:29:13 2018 -0800"
      },
      "committer": {
        "name": "Fan Xu",
        "email": "fanxu@google.com",
        "time": "Wed Nov 14 10:42:21 2018 -0800"
      },
      "message": "Add a service-unique ID to BufferNode\n\nAll the BufferNode allocated by bufferhub hwservice now will have a\nunique ID generated and managed by the UniqueIdGenerator.\n\nThe idGenerator is placed in global static namespace because 1)\ntherefore it is process-unique 2) BufferNode could still access it\nwithout a reference to the service instance.\n\nAdded UniqueIdGenerator_test.\n\nTest: UniqueIdGenerator_test, BufferNode_test, buffer_hub-test,\nBufferHubBuffer_test passed.\nFix: 118844348\nChange-Id: I9c9adebab3af7b9de71dbe8728d3f24ed231338d\n"
    },
    {
      "commit": "18d90eaf05d8b3a21a68d84ebf23ea2326067aad",
      "tree": "38758cab65d3d634dd2c7fba1c2eb15c81a36fc3",
      "parents": [
        "1029443fa64b7f66c06188431c81745d7a14bacb"
      ],
      "author": {
        "name": "Fan Xu",
        "email": "fanxu@google.com",
        "time": "Tue Nov 06 15:46:44 2018 -0800"
      },
      "committer": {
        "name": "Fan Xu",
        "email": "fanxu@google.com",
        "time": "Wed Nov 14 10:30:23 2018 -0800"
      },
      "message": "Implement duplicate buffer\n\nAllow BufferClient to generate a opaque token in hidl_handle (i.e.\nnative_handle_t) format that could be used for IBufferHub::import.\n\nThe service will keep a mapping from token to client. Token comparison\nis handled in BufferHubService.cpp, as it\u0027s opaque to the users.\n\nTest: BufferHubBuffer_test (passed)\nBug: 118614157\nChange-Id: Ie2b0b650dba90fe2ed2f8091dd88acb9768f261f\n"
    },
    {
      "commit": "a5ba7b540f011f36d500fab4563feeba0e2c266a",
      "tree": "199fd0c3385bd849f7d5fdb6b5f4f29b0f4ea6b8",
      "parents": [
        "8893de4d79ce3f4246bf1e80db062f0758639b19",
        "93c9490762bf8908bb6e15b343c8d65f893af4e5"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Nov 14 04:18:31 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Nov 14 04:18:31 2018 +0000"
      },
      "message": "Merge \"Implement allocateBuffer for BufferHubService\""
    },
    {
      "commit": "93c9490762bf8908bb6e15b343c8d65f893af4e5",
      "tree": "ceac23bad8275a8eb65e3dcc92013c89b7212eb5",
      "parents": [
        "e0b91f35241aee8d0b839c214a83a3439d3603b7"
      ],
      "author": {
        "name": "Fan Xu",
        "email": "fanxu@google.com",
        "time": "Thu Nov 01 12:22:05 2018 -0700"
      },
      "committer": {
        "name": "Fan Xu",
        "email": "fanxu@google.com",
        "time": "Tue Nov 13 15:19:18 2018 -0800"
      },
      "message": "Implement allocateBuffer for BufferHubService\n\nReturn ALLOCATION_FAILED when failed to create BufferNode, NO_ERROR on\nsuccess.\n\nAllocation and memory management logics are in BufferNode, and enforced\nvia the shared_ptr and clientList. Memcpy is used to convert between\nAHardwareBuffer_Desc and HardwareBufferDescription (i.e. hidl_vec).\n\nTest: BufferHubBuffer_test (passed)\nChange-Id: I5e17aa7330c5f94656e62dc4bea8ab6c705ab7a4\nFix: 118614333\n"
    },
    {
      "commit": "19a3e2be83f4d50f85b819b8048078968e8acecc",
      "tree": "335545c57c87d8489d2e894db55a84a1daf30b9b",
      "parents": [
        "03cb6b0be71d9debe4f45aa8a62d7934b5b3ce52"
      ],
      "author": {
        "name": "Fan Xu",
        "email": "fanxu@google.com",
        "time": "Mon Nov 12 13:45:33 2018 -0800"
      },
      "committer": {
        "name": "Fan Xu",
        "email": "fanxu@google.com",
        "time": "Mon Nov 12 13:45:33 2018 -0800"
      },
      "message": "Use __FUNCTION__ in BufferNode.cpp for log\n\nTest: build passed\nBug: none\nChange-Id: I7e841a39739ad235c590f7ac174e9bd7f4e7c6e0\n"
    },
    {
      "commit": "ca70b7ba83ff4c0a9a91b52296ef089ab062e762",
      "tree": "8fe0e636885db1665b82d004777e71862f009500",
      "parents": [
        "e64d79e3a99e29be930a25167cc4a462371a1178"
      ],
      "author": {
        "name": "Fan Xu",
        "email": "fanxu@google.com",
        "time": "Wed Oct 31 13:20:12 2018 -0700"
      },
      "committer": {
        "name": "Fan Xu",
        "email": "fanxu@google.com",
        "time": "Thu Nov 08 13:34:41 2018 -0800"
      },
      "message": "Implement IBufferClient hwbinder interface\n\nSome boiler plate code for future use.\n\nTest: \"atest BufferHubBuffer_test\" passed.\nBug: b/116681016\n\nChange-Id: I12854ac6f553777451584e86a81f2e6064a12696\n"
    },
    {
      "commit": "574a6852953ca2b38ed346348a3e88f66fcf90fe",
      "tree": "af6b07a92164d4479efcb06b89ca03bf23947b42",
      "parents": [
        "6894160b3159973f62d0a73b476d33526258a7a5"
      ],
      "author": {
        "name": "Fan Xu",
        "email": "fanxu@google.com",
        "time": "Fri Nov 02 13:22:42 2018 -0700"
      },
      "committer": {
        "name": "Fan Xu",
        "email": "fanxu@google.com",
        "time": "Mon Nov 05 15:40:35 2018 -0800"
      },
      "message": "Move BufferNode to libbufferhubservice\n\nBufferNode is a server-side class and should be located in the service\nfolder. Also, making the old bufferhubd service depending on\nlibbufferhubservice could solve the dependency problem.\n\nTest: \"atest buffer_node-test\", \"atest buffer_hub-test\" passed.\nBug: 118893702\nChange-Id: I5fad37d3c0475d6cd4f4e0ed17f911b6777a6868\n"
    },
    {
      "commit": "d9f2abe6e29d84e32c2b1e91748d2b699d32f98b",
      "tree": "f8d6c331994ea725537c7e0e47a47d39d0447ffe",
      "parents": [
        "27631c9c42e8cfbfd7b42d60818b7954dcfbbc1e"
      ],
      "author": {
        "name": "Jiwen \u0027Steve\u0027 Cai",
        "email": "jwcai@google.com",
        "time": "Sat Oct 20 17:03:13 2018 -0700"
      },
      "committer": {
        "name": "Jiwen \u0027Steve\u0027 Cai",
        "email": "jwcai@google.com",
        "time": "Tue Oct 30 15:10:46 2018 -0700"
      },
      "message": "Basic implementation for bufferhub HIDL service\n\nBug: 118124442\nTest: device can boot with android.frameworks.bufferhub@1.0-service\n      running\nTest: BufferHubBuffer_test\nChange-Id: I6d1013d9be8268e3776f8fdbdd2eb79e3d73a74e\n"
    }
  ]
}
