)]}'
{
  "log": [
    {
      "commit": "d0d6ccd726a2dd70c4df080e32d1e89d9e3f8640",
      "tree": "b10cae93a96f3e5840701253c58582c23e64b381",
      "parents": [
        "748bae0bc62f77f136528feeba7b4b5208b2509e"
      ],
      "author": {
        "name": "Jiwen \u0027Steve\u0027 Cai",
        "email": "jwcai@google.com",
        "time": "Mon Apr 13 18:57:54 2020 -0700"
      },
      "committer": {
        "name": "Jiwen \u0027Steve\u0027 Cai",
        "email": "jwcai@google.com",
        "time": "Tue Apr 14 11:45:29 2020 -0700"
      },
      "message": "Remove binder-based BufferHub from libui\n\nWe are removing Binder-based BufferHub from Android. Please refer to\nb/147002762 for details. In short, those services and libraries were\noriginally created as a major refactor for a future product line. As\npart of a strategy shift, these components are no longer needed.\n\nBug: 147002762\nTest: Build and flash blueline\nMerged-In: If5e64880911f2271a297b1628079261a4251f9e3\nChange-Id: I9f7ac210b23b774d44c8fa85401f0aaf690c66e5\n"
    },
    {
      "commit": "1c730240e58ea241ffebc252b5cde395d694a25a",
      "tree": "f0277f574f90b358789fdf277261837ae3c72eac",
      "parents": [
        "49a99b9ff288a105de660cd43ce73e0ce2e7d2f2"
      ],
      "author": {
        "name": "Jiwen \u0027Steve\u0027 Cai",
        "email": "jwcai@google.com",
        "time": "Mon Dec 31 18:40:02 2018 -0800"
      },
      "committer": {
        "name": "Jiwen \u0027Steve\u0027 Cai",
        "email": "jwcai@google.com",
        "time": "Wed Jan 02 11:45:52 2019 -0800"
      },
      "message": "Rename Buffer{Producer, Consumer} to {Producer, Consumer}Buffer\n\nBug: 116855254\nTest: Build\nChange-Id: Ief03795d2093f817f135d33eb252e1e040e150f7\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": "77565571fc884e74cdf7a7b9ed0cbf37a70b6747",
      "tree": "6a94c3a45eb6ea0ebd50b2689186ba425d22e0ee",
      "parents": [
        "81dea27e84bac1715db94995ca27ba517cbdc71d"
      ],
      "author": {
        "name": "Jiwen \u0027Steve\u0027 Cai",
        "email": "jwcai@google.com",
        "time": "Mon Oct 15 11:31:29 2018 -0700"
      },
      "committer": {
        "name": "Jiwen \u0027Steve\u0027 Cai",
        "email": "jwcai@google.com",
        "time": "Thu Nov 01 11:57:31 2018 -0700"
      },
      "message": "Remove DetachedBufferHandle from libui\n\nDetachedBufferHandle was a temporary measure introduced in Android P\nto bridge BufferHub and GraphicBuffer. In Android Q however,\nGraphicBuffer will be directly backed by BufferHub, thus\nDetachedBufferHandle becomes redundant.\n\nAlso note that removing DetachedBufferHandle from libui should bare no\nimpact on vendors for two reasons:\n1. BufferHub in P is only enabled for Daydream ready\ndevices (i.e. Pixel lines and VR AIO devices). No other vendors should\nhave BufferHub enabled.\n2. DetachedBufferHandle.h was hidden from vndk and thus vendors\nshouldn\u0027t get access to it anyway.\n\nBug: 117522732\nTest: Build system\nChange-Id: I3828eaa9499051e5ad5e4e270b5c26bae5f2c707\n"
    },
    {
      "commit": "b61df91163d6e8a8639dfe81201d72d96b16acd4",
      "tree": "f89942522236bbb86c4627c42d698fd9e7d0d6ef",
      "parents": [
        "c284ebf192d86d0c942d39596efc05880c9caf23"
      ],
      "author": {
        "name": "Tianyu",
        "email": "tianyuj@google.com",
        "time": "Tue Oct 16 14:55:39 2018 -0700"
      },
      "committer": {
        "name": "Tianyu",
        "email": "tianyuj@google.com",
        "time": "Wed Oct 17 10:14:45 2018 -0700"
      },
      "message": "Remove the functionality of promoting a BufferHubBuffer to ProducerBuffer.\n\nTest: buffer_hub-test buffer_hub_queue-test dvr_api-test\ndvr_buffer_queue-test on marlin-eng\nBug: 77153033\n\nChange-Id: I155fa5c5740243d84207f37e6a2fe37d6331628f\n"
    },
    {
      "commit": "ff675b716822808a93e1f445754cddc4458f1249",
      "tree": "6d5ea3fa25c329a2b1300a62f6d7b847a9401804",
      "parents": [
        "8f51ec64984c1f03cdb6edef95b1e4098939da45"
      ],
      "author": {
        "name": "Jiwen \u0027Steve\u0027 Cai",
        "email": "jwcai@google.com",
        "time": "Tue Oct 09 18:08:29 2018 -0700"
      },
      "committer": {
        "name": "Jiwen \u0027Steve\u0027 Cai",
        "email": "jwcai@google.com",
        "time": "Fri Oct 12 10:32:46 2018 -0700"
      },
      "message": "Format BufferHub{Buffer,Metadata}.{h,cpp} to match libui style\n\n1/ Run clang-format\n2/ Rename variables to use camel case\n3/ 100 column per line\n4/ Rename DetachedBuffer to BufferHubBuffer\n\nBug: 68273829\nBug: 112010261\nBug: 112940221\nTest: BufferHubMetadata_test, buffer_hub-test\nChange-Id: Iaf0dbbe797daf8b61864dc2e3ea1693703ef9d7f\n"
    },
    {
      "commit": "8f51ec64984c1f03cdb6edef95b1e4098939da45",
      "tree": "2710c19a372def21d9a5f07dfbc3dde023b193b1",
      "parents": [
        "89e2fdc24660d9a69b5c8bbdc98fb112a0807077"
      ],
      "author": {
        "name": "Jiwen \u0027Steve\u0027 Cai",
        "email": "jwcai@google.com",
        "time": "Tue Aug 07 21:50:51 2018 -0700"
      },
      "committer": {
        "name": "Jiwen \u0027Steve\u0027 Cai",
        "email": "jwcai@google.com",
        "time": "Fri Oct 12 10:32:46 2018 -0700"
      },
      "message": "Move detached buffer to libui\n\nMove it into libui early so that new modifications towards it can be\ncoded in the libui style\n\nThis CL only moves the file and updates Android.bp with proper\ndependencies. Will re-format the coding style in a follow up CL. The\nreason behind this is to keep this CL small enough so that the \"git\nmv\" operation will be considered as an renaming rather than a complete\nrewrite.\n\nNote that DetachedBuffer is not exposed to VNDK, so that we won\u0027t\nneed to worry about ABI compatibility. Also, it temporarily introduces\nsome clang warning exceptions, we should be able to remove them very\nsoon once pdx to binder refactor is done for detached buffer.\n\nBug: 112010261\nTest: atest BufferHubMetadata_test\nChange-Id: I63659b9a9b7cb56f30fc2ae8cc5b87977d79b59c\n"
    },
    {
      "commit": "57ae3eea6d0d3a337bd2e41c33d82edf6e73a189",
      "tree": "1cc39a7993782a48ca32e287cb20f99fb8164e8b",
      "parents": [
        "4287535fd25cdddd0ae0814c1426aea2b9371e3e"
      ],
      "author": {
        "name": "Jiwen \u0027Steve\u0027 Cai",
        "email": "jwcai@google.com",
        "time": "Thu May 03 17:51:52 2018 -0700"
      },
      "committer": {
        "name": "Jiwen \u0027Steve\u0027 Cai",
        "email": "jwcai@google.com",
        "time": "Thu May 17 18:35:59 2018 -0700"
      },
      "message": "Implement BufferHubProducer::attachBuffer\n\n1/ Introduce new kOpProducerQueueInsertBuffer operation to insert a\n   standalone ProducerChannel into a ProducerQueueChannel.\n2/ Introduce some PDX security check against channel_id spoofing.\n\nBug: 69981968\nBug: 79224574\nTest: buffer_hub_queue-test, libgui_test\nChange-Id: I3c13e2897476c34e6e939756b079fe3440937236\n"
    },
    {
      "commit": "4287535fd25cdddd0ae0814c1426aea2b9371e3e",
      "tree": "5c74dc02217cfd32790c67f95d7381cd20ed4768",
      "parents": [
        "6795e89f9f5fb772aec557871767197cd6bc8cd1"
      ],
      "author": {
        "name": "Jiwen \u0027Steve\u0027 Cai",
        "email": "jwcai@google.com",
        "time": "Mon Apr 30 17:55:11 2018 -0700"
      },
      "committer": {
        "name": "Jiwen \u0027Steve\u0027 Cai",
        "email": "jwcai@google.com",
        "time": "Thu May 17 18:35:52 2018 -0700"
      },
      "message": "Implement BufferHubProducer::detachBuffer\n\nBug: 38137191\nBug: 70046255\nTest: libgui_test\nChange-Id: I7b00ea469bcaa99863761be146f17125881fd919\n"
    },
    {
      "commit": "e7cf62ab152d273849b7d80fe4dd709d00e5f9da",
      "tree": "68ffb2a0fdb6d2df275430e2fa6e1ef0f83786ae",
      "parents": [
        "79ab72151d9622a2b92c55767a6e652de14c4c87"
      ],
      "author": {
        "name": "Jiwen \u0027Steve\u0027 Cai",
        "email": "jwcai@google.com",
        "time": "Mon Apr 30 22:56:08 2018 -0700"
      },
      "committer": {
        "name": "Jiwen \u0027Steve\u0027 Cai",
        "email": "jwcai@google.com",
        "time": "Tue May 01 00:16:54 2018 -0700"
      },
      "message": "Fix BufferHubProducer log spam\n\nBug: 70046255\nBug: 78919825\nTest: libgui-test\nChange-Id: I5e20846f7a384d016df477f578fd203a89d45d05\n"
    },
    {
      "commit": "639d479b8a432771f7fa5ae4b93f677d2c8eb125",
      "tree": "11192296823152589afdc8190411f23ff6755ebe",
      "parents": [
        "d00e7e8de75d7d0bb7ce38f90c2fae8de2db0700"
      ],
      "author": {
        "name": "Jiwen \u0027Steve\u0027 Cai",
        "email": "jwcai@google.com",
        "time": "Thu Apr 05 16:49:05 2018 -0700"
      },
      "committer": {
        "name": "Jiwen \u0027Steve\u0027 Cai",
        "email": "jwcai@google.com",
        "time": "Thu Apr 05 17:25:15 2018 -0700"
      },
      "message": "BufferHubProducer: don\u0027t check user_metadata_size\n\nNow we are using canonical metadata for all BufferHubQueue, it\u0027s\nactually wrong to enforce user_metadata_size.\n\nBug: 75962234\nBug: 77655695\nTest: buffer_hub_queue-test, buffer_hub_queue_producer-test,\n      SurfaceParcelable_test, dvr_buffer_queue-test, libgui_test\nChange-Id: I6736ed277f7ac08d1f4a7288ce4a101bc89ca35b\n"
    },
    {
      "commit": "dc82be74c578c982d1ca8dcbbdbf2fe24f00f94d",
      "tree": "779d95b576a40ad10ba5715435bcd262f11b1be1",
      "parents": [
        "c90a77f1e5b42d8fcf336d2b9bd2259280814df2"
      ],
      "author": {
        "name": "Jiwen \u0027Steve\u0027 Cai",
        "email": "jwcai@google.com",
        "time": "Thu Feb 08 21:28:22 2018 -0800"
      },
      "committer": {
        "name": "Jiwen \u0027Steve\u0027 Cai",
        "email": "jwcai@google.com",
        "time": "Tue Feb 13 13:18:55 2018 -0800"
      },
      "message": "Move clang warnings override out of libgui\n\nThese clang warnings overrides were introduced to mute warnings brought\nin from bufferhub and its dependencies. A better way to handle this is\nto mute those warnings in BufferHub headers and keep libgui free from\nthose overrides.\n\nBug: 72172820\nTest: Build system\nChange-Id: I7d8aa233ceeef353a7db2c43431ae64360c668b1\n"
    },
    {
      "commit": "c90a77f1e5b42d8fcf336d2b9bd2259280814df2",
      "tree": "e919c1e50e1c0e2b87cac01690db508873a50004",
      "parents": [
        "5a8f0d49f9ab6105a975741ff31c681f2db63d35"
      ],
      "author": {
        "name": "Jiwen \u0027Steve\u0027 Cai",
        "email": "jwcai@google.com",
        "time": "Sun Jan 14 15:42:29 2018 -0800"
      },
      "committer": {
        "name": "Jiwen \u0027Steve\u0027 Cai",
        "email": "jwcai@google.com",
        "time": "Tue Feb 13 13:18:17 2018 -0800"
      },
      "message": "Add BufferHub backend for android::view::Surface\n\nThis CL allows BufferHubProducer to be used as alternative backend of\nparcelable Surface.\n\nWhen sent over binder, BufferHubProducer serializes itself differently\nfrom Binder-based IGBP objects. Instead of writing to a Parcel object as\nstrong binder object, BufferHubProducer asks libbufferhubqueue to\ngenerate a BufferHubQueueParcelable object (which packs all the FDs\nrepresenting the BufferHub channel).\n\nWhen received from a binder interface, BufferHubProducer object can be\nreconstructed from the BufferHubQueueParcelable object. The newly\nconstructed object has all the FDs (i.e. UDS channels) directly\nconnected to bufferhubd. Thus, on going buffer transport operations can\nhappen directly between the receiving process and bufferhubd. This\nelimates one extra binder hop.\n\nBug: 37517761\nBug: 70046255\nTest: libgui_test, buffer_transport_benchmark,\n      buffer_hub_queue_producer-test, dvr_api-test,\n      SurfaceParcelable_test\nChange-Id: I78bd879f36d3196f3d74c76c79d27467740792f7\n"
    },
    {
      "commit": "9a6ddf78e1920a0f467bd38de1835746c6f4c3ca",
      "tree": "23d65ae1f48df3de25d524b1a4b5c21ab085e7d2",
      "parents": [
        "0f950843530825907f8311b199b01c32899c2c92"
      ],
      "author": {
        "name": "Jiwen \u0027Steve\u0027 Cai",
        "email": "jwcai@google.com",
        "time": "Thu Jan 18 14:37:24 2018 -0800"
      },
      "committer": {
        "name": "Jiwen \u0027Steve\u0027 Cai",
        "email": "jwcai@google.com",
        "time": "Thu Jan 18 17:37:00 2018 -0800"
      },
      "message": "Update BufferHubProducer style to match libgui\n\nBug: 72051005\nBug: 70046255\nTest: libgui-test, buffer_hub_queue_producer-test, dvr_api-test\nChange-Id: I0e0d853a2ba633926e490ff22922c1dd90860257\n"
    },
    {
      "commit": "0f950843530825907f8311b199b01c32899c2c92",
      "tree": "55efe00c9de3a1a723868628646ccfaa93c4d14f",
      "parents": [
        "2b6e2ef2695d44abb6a37e3c35872894c82e5cd1"
      ],
      "author": {
        "name": "Jiwen \u0027Steve\u0027 Cai",
        "email": "jwcai@google.com",
        "time": "Tue Jan 16 17:05:54 2018 -0800"
      },
      "committer": {
        "name": "Jiwen \u0027Steve\u0027 Cai",
        "email": "jwcai@google.com",
        "time": "Thu Jan 18 17:36:28 2018 -0800"
      },
      "message": "Move BufferHub-based IGBP into libgui\n\nCurrently the BufferHub based IGBP implementation lives inside\nframeworks/libs/vr and libbufferhubqueue is depending on libgui. This CL\nreverses the dependency and paves the way of future integration of\nBufferHub into libgui.\n\nMirrors changes to make this work:\n1/ Fix shared lib dependency of libpdx\n2/ Allow implicit template instantiation in libgui\n3/ Mute clang warnings caused by libpdx\n\nBug: 72051005\nBug: 70046255\nTest: libgui-test, buffer_hub_queue_producer-test, dvr_api-test\nChange-Id: I7541498f78aaeb4b15fc6cb6439a2e2d706b9e99\n"
    },
    {
      "commit": "5afb74036103e20bf2ca50aaf621bbb085a50ad5",
      "tree": "d76268f7b3eef16d9e6c7bb88378f7ffe3baff3a",
      "parents": [
        "4c900d496b8a6b3a1a6cbc34e4dd161f3ea56d59"
      ],
      "author": {
        "name": "Jiwen \u0027Steve\u0027 Cai",
        "email": "jwcai@google.com",
        "time": "Thu Nov 09 18:50:32 2017 -0800"
      },
      "committer": {
        "name": "Jiwen \u0027Steve\u0027 Cai",
        "email": "jwcai@google.com",
        "time": "Tue Nov 14 15:05:43 2017 -0800"
      },
      "message": "Update BufferHubQueueProducer\n\nThis is the second step to make BufferHub parcelable. There will be one\nlast CL actually use the parcelable BufferHubQueueProducer in\nandroid::Surface and android::view::Surface to wrap thigns up.\n\n1/ Remove BufferHubQueueProducer::Create(), as there is no real use case\nfor that at all.\n2/ Add support for taking out underlying dvr::ProducerQueueParcelable\nwith proper safety check.\n3/ Update tests to cover the end-to-end case of sending BufferHub-backed\nIGBP over binder.\n\nBug: 37517761\nBug: 63909629\nTest: buffer_hub_queue_producer-test\nChange-Id: I06ca04b6a8ac1fb15d61ce7884990c3aca1c29ed\n"
    },
    {
      "commit": "52ea25cf06cef250ec73052611b48556b3fce4d5",
      "tree": "6595f49407fbe45702f943d913a1d34bd1910fb8",
      "parents": [
        "35b5114be8da71c69fc8a1ff8fb457c912c0992f"
      ],
      "author": {
        "name": "Corey Tabaka",
        "email": "eieio@google.com",
        "time": "Wed Sep 13 18:02:48 2017 -0700"
      },
      "committer": {
        "name": "Jiwen \u0027Steve\u0027 Cai",
        "email": "jwcai@google.com",
        "time": "Tue Oct 10 20:39:56 2017 -0700"
      },
      "message": "Add shared memory based buffer metadata\n\nThis CLs reduces BufferHub CPU consumption by adding asynchronous\nstate transition so that out-of-process VR composition can run on 2016\npixel devices smoothly. In addition, this CL addresses a couple corner\ncases in the existing bufferhub logic, which fixes various blackscreen\nissues.\n\n1/ Tracks buffer transition states (gained, posted, acquired, released)\n   from the client side via atomic shared memory and adds\n   PostAsync/AcquireAsync/ReleaseAsync/GainAsync with metadata  and\n   fence support.\n2/ Adds dequeue order guarantee for buffers enqueued with\n   dvrWriteBufferQueuePostBuffer.\n3/ Synchronous BuffeHub operations are still supported.\n4/ Bump up the bufferhubd\u0027s soft limit of open file descriptor.\n5/ Handle orphaned consumer in acquired state. This is a corner case\n   that consumer process goes aways (most likely due to a crash) leaving\n   buffer stuck in acquired state with inconsistent buffer state.\n6/ Fixes a race condition for released buffer to be Gain\u0027ed and\n   Acquire\u0027d when a new consumer is created in released state.\n7/ Improve silent consumer queue efficiency: Silent queues no longer\n   import buffers or receive signals about new buffers and they are\n   limited to only spawning other consumers and notifications about\n   producers hanging up.\n8/ Modify PDX/UDS channel event signaling to work around epoll\n   behavior. PDX UDS uses a combination of an eventfd and an epoll set\n   to simulate the original PDX transport channel events. An odd\n   behavior discovered in the kernel implementation of epoll was found\n   that causes the epoll fd to \"unsignal\" itself whenever epoll_wait()\n   is called on it, regardless of whether it should still be\n   pending. This breaks the edge triggerd behavior in nested epoll sets\n   that channel events depend on. Since this is unlikely to ever be\n   fixed in the kernel we work around the behavior by using the epoll\n   set only as a logical OR of two eventfds and never calling\n   epoll_wait() on it. When polling is required we use regluar poll()\n   with the eventfds and data fd to avoid the bad behavior in\n   epoll_wait().\n9/ Keep reading data after PDX hangup signal. UDS will signal hangup\n   when the other end of the socket closes. However, data could still be\n   in the kerenl buffer and should be consumed. Fix an issue where the\n   service misses an impulse sent right before the socket is closed.\n\nBug: 65455724\nBug: 65458354\nBug: 65458312\nBug: 64027135\nBug: 67424527\nTest: libpdx_uds_tests\n      bufferhub_tests\n      buffer_hub_queue-test\n      buffer_hub_queue_producer-test\n      dvr_api-test\n\nChange-Id: Id07db1f206ccf4e06f7ee3c671193334408971ca\n"
    },
    {
      "commit": "717c1069992bb1d5df3aa178a8e91d5775515400",
      "tree": "8a0c5d0d9547c486e91646124d0fe5edc40c00ae",
      "parents": [
        "77dd2aaf7228b97e8d3bdc84e8ec3c9d19b29e1b",
        "005f45d7bb059c0ef8d69f1cac81bca4f70852af"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Aug 14 21:01:31 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Aug 14 21:01:31 2017 +0000"
      },
      "message": "Merge \"BufferHubQueueProducer reset buffers on disconnect\" into oc-mr1-dev"
    },
    {
      "commit": "e2786ea5aec3a12d948feb85ffbb535fc89c0fe6",
      "tree": "e5e0e87d4093b1888e5f5767493cc4f08c97990e",
      "parents": [
        "27a7c02f0ca4afa27cd1516b342ab485df03c15b"
      ],
      "author": {
        "name": "Chia-I Wu",
        "email": "olv@google.com",
        "time": "Mon Aug 07 10:36:08 2017 -0700"
      },
      "committer": {
        "name": "Chia-I Wu",
        "email": "olv@google.com",
        "time": "Tue Aug 08 15:25:51 2017 -0700"
      },
      "message": "libgui: support 64-bit BQ consumer usage\n\nAdd NATIVE_WINDOW_GET_CONSUMER_USAGE64.  Support 64-bit consumer\nusage flags in BufferItemConsumer and GLConsumer.\n\nIn H2BGraphicBufferProducer::getConsumerUsage, however, we will\nissue a warning and return 32-bit consumer usage.  We will need a\nHIDL interface version bump to fix it.\n\nBug: 35215313\nTest: manual\nChange-Id: I1f8884a7db71bbdb269d05b94443ddec2ff46f8a\n"
    },
    {
      "commit": "005f45d7bb059c0ef8d69f1cac81bca4f70852af",
      "tree": "3f51a233a453ea63494c8f5e8d782ed611ae2210",
      "parents": [
        "6aa5b4e7fdaa86a76e00e2508d7122e59cbd2aa2"
      ],
      "author": {
        "name": "Jiwen \u0027Steve\u0027 Cai",
        "email": "jwcai@google.com",
        "time": "Fri Aug 04 17:34:37 2017 -0700"
      },
      "committer": {
        "name": "Jiwen \u0027Steve\u0027 Cai",
        "email": "jwcai@google.com",
        "time": "Mon Aug 07 15:34:44 2017 -0700"
      },
      "message": "BufferHubQueueProducer reset buffers on disconnect\n\nWhen Surface.cpp disconnects a IGraphicBufferProducer, it clears up all\nthe buffer cache it holds. Thus our implementation should do the same.\n\nNew tests:\n1/ BufferHubQueueProducerTest.ConnectDisconnectReconnect: tests\n   IGraphicBufferProducer to behave proper after disconnect and\n   re-connect.\n2/ BufferHubQueueTest.TestFreeAllBuffers: tests BufferHubQueue handles\n   FreeAllBuffers() properly under different producer/consumer state.\n\nBug: 64402829\nTest: Pause and resume GVR video player demo and observer no more fails\naround IGraphicBufferProducer::requestBuffer and Surface::dequeueBuffer.\nChange-Id: Ia61e3f991248135cecf22039045f6960226bda42\n"
    },
    {
      "commit": "a2eb34cfbe089deb9a519e9702e17d9dfe26f9e8",
      "tree": "292e7d3fb3a109268e8e5304b789023b10ecbbbf",
      "parents": [
        "8cbab7c3c93c1bc9364a81726f02eeacc4a9356b"
      ],
      "author": {
        "name": "Ian Elliott",
        "email": "ianelliott@google.com",
        "time": "Tue Jul 18 11:05:49 2017 -0600"
      },
      "committer": {
        "name": "Ian Elliott",
        "email": "ianelliott@google.com",
        "time": "Mon Jul 31 15:34:11 2017 +0000"
      },
      "message": "Have the Surface class track the buffer age.\n\nHave the Surface class track the buffer age, so that Surface::query()\ncan return the buffer age without having to use a binder call to\nBufferQueueProducer::query().  The idea is for\nBufferQueueProducer::dequeueBuffer() to return the value, which the\nSurface class will cache for later use by Surface::query().\n\nBug: b/27903668\nTest: Use systrace to no ensure query binder call after dequeueBuffer.\nChange-Id: I106a7bd27461d381f0bd84df70d804de56a128ab\n(cherry picked from commit d11b044864be525a1646f93106ab496195bb8239)\n"
    },
    {
      "commit": "34a5275c636d16b3e044bda20d6ddfba1e201ae3",
      "tree": "78c52a25406bc354e85b39cfb8c9734b78de63c4",
      "parents": [
        "534288a2cca27fdb466fac4eb175cc2868354eeb"
      ],
      "author": {
        "name": "George Burgess IV",
        "email": "gbiv@google.com",
        "time": "Mon Jun 26 17:03:20 2017 -0700"
      },
      "committer": {
        "name": "George Burgess IV",
        "email": "gbiv@google.com",
        "time": "Mon Jun 26 17:03:20 2017 -0700"
      },
      "message": "Fix an incorrect format specifier in printf\n\nThis was causing clang to complain:\n\nbuffer_hub_queue_producer.cpp:137:28: warning: format specifies type\n\u0027unsigned long long\u0027 but the argument has type \u0027uint64_t\u0027 (aka \u0027unsigned\nlong\u0027)\n\nBug: None\nTest: mma. Warning is gone\nChange-Id: I578c5a910727a578557777ca531ea17a3c90cee8\n"
    },
    {
      "commit": "8fa4e107ab6cbc24c0e54d44db3341f006fe939a",
      "tree": "02a64d1eb32007494cd638d988b1ae1f3445a409",
      "parents": [
        "4ddce844567e0b7ccb8a50706df8cddaba09ce86"
      ],
      "author": {
        "name": "Jiwen \u0027Steve\u0027 Cai",
        "email": "jwcai@google.com",
        "time": "Wed May 24 23:16:54 2017 -0700"
      },
      "committer": {
        "name": "Jiwen \u0027Steve\u0027 Cai",
        "email": "jwcai@google.com",
        "time": "Tue Jun 06 11:43:36 2017 -0700"
      },
      "message": "buffer_hub_queue_client: Batch allocate buffers\n\nBug: 36147743\nTest: buffer_hub_queue-test, buffer_hub_queue_producer-test, dvr_api-test\nChange-Id: I40a9babfa8d28d4496e27a7ccecb7ae1b9bc7bd5\n"
    },
    {
      "commit": "cb496acbe593326e8d5d563847067d02b2df40ec",
      "tree": "be669654542a7fe19d85d17d89e092b1880ccb3e",
      "parents": [
        "177759a90584489b1b77cdaf3818ebdb79b1b9bf"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Mon May 22 14:21:00 2017 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Fri May 26 15:16:36 2017 -0700"
      },
      "message": "use 64-bits usage bits almost everywhere\n\nRevert \"Revert \"use 64-bits usage bits almost everywhere\"\"\nThis reverts commit 1671de0068de40f57288628d4b757a1c84962a62.\n\nTest: manual, build\nBug: 33350696\nBug: 38466700\nChange-Id: Ia2f51b97137dba754b1938dfb1e235f4babc8a88"
    },
    {
      "commit": "bb701dbac7c9c9eb2a7d0ec48c5e020f1272de13",
      "tree": "0cf5204548e577f20275359dd6308b24c8c561d0",
      "parents": [
        "656f406fcb0c45fd3c729a513bdd3f353cc6ec1f"
      ],
      "author": {
        "name": "Jiwen \u0027Steve\u0027 Cai",
        "email": "jwcai@google.com",
        "time": "Tue May 23 11:15:33 2017 -0700"
      },
      "committer": {
        "name": "Jiwen \u0027Steve\u0027 Cai",
        "email": "jwcai@google.com",
        "time": "Wed May 24 13:03:38 2017 -0700"
      },
      "message": "BufferHubQueue rename DetachBuffer to RemoveBuffer\n\nTest: buffer_hub_queue_producer-test, buffer_hub_queue-test, dvr_api-test\nBug: 37164481\nChange-Id: I05ba0f9f96cf60b64cb8b76482301440d40aa82a\n"
    },
    {
      "commit": "9b8c084f7c2ed18330ef38e5f42bc8e5cf505fe3",
      "tree": "d72db88e995e841a066f3996c387e76aa3b6277d",
      "parents": [
        "9c2422bdd39b37eeac8bbcd9a1310cc82e1e6bde",
        "1671de0068de40f57288628d4b757a1c84962a62"
      ],
      "author": {
        "name": "Guang Zhu",
        "email": "guangzhu@google.com",
        "time": "Mon May 22 04:05:18 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon May 22 04:05:21 2017 +0000"
      },
      "message": "Merge \"Revert \"use 64-bits usage bits almost everywhere\"\""
    },
    {
      "commit": "1671de0068de40f57288628d4b757a1c84962a62",
      "tree": "a85bb3071a1156a735de48621b9d1f3e91402629",
      "parents": [
        "175d98757d7d9003d4f64756cf4c2b366ba77e97"
      ],
      "author": {
        "name": "Guang Zhu",
        "email": "guangzhu@google.com",
        "time": "Sun May 21 22:21:13 2017 +0000"
      },
      "committer": {
        "name": "Guang Zhu",
        "email": "guangzhu@google.com",
        "time": "Sun May 21 22:21:13 2017 +0000"
      },
      "message": "Revert \"use 64-bits usage bits almost everywhere\"\n\nBug: 38466700\n\nThis reverts commit 175d98757d7d9003d4f64756cf4c2b366ba77e97.\n\nChange-Id: I5f08a4ca91511775cd52250d10a0220b258b8368\n"
    },
    {
      "commit": "9c2422bdd39b37eeac8bbcd9a1310cc82e1e6bde",
      "tree": "203b0a3e9508b1c38f11d52cc51286abf66d88a8",
      "parents": [
        "e0c8f8e4b7f501ed892e75261fec018819683610",
        "6bffc67cec8bd8ad086d5a6265dedb737073bdea"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Sat May 20 04:20:18 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sat May 20 04:20:20 2017 +0000"
      },
      "message": "Merge \"Add more attribute when creating ProducerQueue\""
    },
    {
      "commit": "6bffc67cec8bd8ad086d5a6265dedb737073bdea",
      "tree": "48f37b6a6d03ba9b9f416f69c2d1640d03047d68",
      "parents": [
        "e4108256f6a0dad6a80b8149e16f411e9830441e"
      ],
      "author": {
        "name": "Jiwen \u0027Steve\u0027 Cai",
        "email": "jwcai@google.com",
        "time": "Thu May 18 23:05:05 2017 -0700"
      },
      "committer": {
        "name": "Jiwen \u0027Steve\u0027 Cai",
        "email": "jwcai@google.com",
        "time": "Fri May 19 19:11:18 2017 -0700"
      },
      "message": "Add more attribute when creating ProducerQueue\n\nAdd `is_async`, `default_width`, `default_height` and\n`default_format`. Note that these attributes are currently treated as\nimmutable after queue gets created.\n\nBug: 38324405\nBug: 38430974\nBug: 36724099\nTest: buffer_hub_queue_producer-test, buffer_hub_queue-test, dvr_api-test\nChange-Id: Id242a15388a1f1457ad89d11336f5643685e8361\n"
    },
    {
      "commit": "aed1910c586dc2aea036f912218b3ef409ab0cfb",
      "tree": "409f77e458e6ad9f741c80ce293960ace680d4c5",
      "parents": [
        "aeae88f981047a2a8486fc6a0b617ad1a934f037",
        "175d98757d7d9003d4f64756cf4c2b366ba77e97"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri May 19 23:31:49 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri May 19 23:31:51 2017 +0000"
      },
      "message": "Merge \"use 64-bits usage bits almost everywhere\""
    },
    {
      "commit": "175d98757d7d9003d4f64756cf4c2b366ba77e97",
      "tree": "525b9df51a5ce2d0eb7d2bd1a2ed6730b283369b",
      "parents": [
        "5c865e5d25501f4edd2af960efbd28c3822b22db"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Mon May 15 18:00:34 2017 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Fri May 19 14:39:55 2017 -0700"
      },
      "message": "use 64-bits usage bits almost everywhere\n\nTest: manual, build\nBug: 33350696\nChange-Id: Ida33c2a902155044651158467bb99d664e958c41"
    },
    {
      "commit": "cbd32bfd3a8dbac30228acbaee1daaf2466d643f",
      "tree": "65f6513dfc31863206fd077666a57d9236335cfe",
      "parents": [
        "1f76a0daf4cc017a4ca1852a3b38b7add47be700"
      ],
      "author": {
        "name": "Jiwen \u0027Steve\u0027 Cai",
        "email": "jwcai@google.com",
        "time": "Thu May 18 17:03:20 2017 -0700"
      },
      "committer": {
        "name": "Jiwen \u0027Steve\u0027 Cai",
        "email": "jwcai@google.com",
        "time": "Fri May 19 10:41:55 2017 -0700"
      },
      "message": "Simplify ProducerQueue::Create\n\nThis is a preparation CL that simplifies ProducerQueue\u0027s constructor,\nCreate(), and bufferhub_rpc::CreateProducerQueue prior to introducing\nmore queue attributes (is_async, width, height, max_capacity, etc) on\ncreation.\n\n1/ Consolidate and/or remove unnecessary ProducerQueue::Create\u0027s\noverloading (we had way too many overloads of the create function and I\nfigured it\u0027s awfully painful to introduce new attributes).\n2/ Use UsagePolicy in ProducerQueue::Create. Also added default values\nfor UsagePolicy, so that empty uniform initialization gives us a default\npolicy. This helps us removing all ProducerQueue::Create overloading on\nwhether default usage policy is needed.\n3/ Move |meta_size_bytes| into ProducerQueueConfig.\n\nBug: 38430974\nTest: buffer_hub_queue_producer-test, buffer_hub_queue-test, dvr_api-test\nChange-Id: Ieba9f4d1bce2162bd1e6063989985afc8d014dc7\n"
    },
    {
      "commit": "b7ca5dee2045d9426e68f863b244012a2b223ea8",
      "tree": "8bb4903f03f2aa954c9bf5fcf427f358849c9022",
      "parents": [
        "5d67165bee53c5003d8661c9561574408e3ac185"
      ],
      "author": {
        "name": "Corey Tabaka",
        "email": "eieio@google.com",
        "time": "Mon May 08 18:55:02 2017 -0700"
      },
      "committer": {
        "name": "Corey Tabaka",
        "email": "eieio@google.com",
        "time": "Mon May 15 14:37:26 2017 -0700"
      },
      "message": "Clean up BufferHubQueue API and internal bookkeeping.\n\n- Simplify buffer hangup accounting.\n- Add extra checks to gracefully handle the epoll set and slots array\n  being out of sync.\n- Add tests for detaching buffers.\n- Switch to using Status\u003cT\u003e for all return/error values.\n- Fix minor bug in BufferHubQueueProducer from earlier Status\u003cT\u003e\n  return value change.\n\nBug: 36401174\nTest: buffer_hub_queue-test passes.\nChange-Id: If7f86a45cc048dc77daa2ede56585d3f882dd24f\n"
    },
    {
      "commit": "d6cb17f84067ac0374ac28ef65f2e862c8cbb167",
      "tree": "0169372c7a3a1319d583163d4914e5fafffb285d",
      "parents": [
        "fcae2e36ee3aa7ae09b5ee4173324a19725c83be"
      ],
      "author": {
        "name": "Jiwen \u0027Steve\u0027 Cai",
        "email": "jwcai@google.com",
        "time": "Mon May 08 16:15:35 2017 -0700"
      },
      "committer": {
        "name": "Jiwen \u0027Steve\u0027 Cai",
        "email": "jwcai@google.com",
        "time": "Thu May 11 15:24:04 2017 -0700"
      },
      "message": "BufferHubQueue Cleanup\n\n1/ Add support for NATIVE_WINDOW_CONSUMER_IS_PROTECTED\n2/ Remove BufferHubQueueConsumer as we don\u0027t need it after all\n3/ Merge BufferHubQueueCore into BufferHubQueueProducer\n4/ Remove redundant |onAsBinder|\n\nBug: 38137120\nTest: buffer_hub_queue-test and buffer_hub_queue_producer-test\nChange-Id: I32bc040f4ce9c6dc9e4382a589fea241870eeb2d\n"
    },
    {
      "commit": "6a3c05bcfab588fd99dd8d619a53d15374e99507",
      "tree": "30e5edaa74ea3dff07579a5a9cd39f1755069eb3",
      "parents": [
        "37c27efdf8232272648e56513f3caceeb5c66407"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Thu Apr 27 20:06:55 2017 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Tue May 09 16:42:31 2017 -0700"
      },
      "message": "fix circular dependency libnativewindow \u003c-\u003e libui\n\nBug: 37647680\nBug: 37648355\nTest: compile, manual\nChange-Id: I9631beea52e23ebb519411f943c6f5062aedd2e5"
    },
    {
      "commit": "9a2b294255a83c04ecee17a056e4b9a8cc3076cb",
      "tree": "aa46c0c43f2b9fb144c9e159d53e88009a318134",
      "parents": [
        "5c91f12131525c0a7202f0558c634770136e350f",
        "108e84f7e6a9117b66dba000dcf16c6d8c862e16"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue May 09 10:00:37 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue May 09 10:00:38 2017 +0000"
      },
      "message": "Merge \"dvrapi: Pass layer_count down\" into oc-dev"
    },
    {
      "commit": "5c91f12131525c0a7202f0558c634770136e350f",
      "tree": "3be8d4b4bd82b355811a52f2fe96cb3336e78d2f",
      "parents": [
        "c6c0c9c730cd11e9f55737a5b30d3f162cc76bd2",
        "4d3590f3fd0fd65f4e8758d3228de9f55cf135d0"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue May 09 08:03:02 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue May 09 08:03:03 2017 +0000"
      },
      "message": "Merge \"Remove slices from buffers\" into oc-dev"
    },
    {
      "commit": "108e84f7e6a9117b66dba000dcf16c6d8c862e16",
      "tree": "ca4a2b5918c2517a0f9d61004f03e19de53d7496",
      "parents": [
        "4d3590f3fd0fd65f4e8758d3228de9f55cf135d0"
      ],
      "author": {
        "name": "Hendrik Wagenaar",
        "email": "hendrikw@google.com",
        "time": "Sun May 07 22:19:17 2017 -0700"
      },
      "committer": {
        "name": "Hendrik Wagenaar",
        "email": "hendrikw@google.com",
        "time": "Mon May 08 23:12:00 2017 -0700"
      },
      "message": "dvrapi: Pass layer_count down\n\n* We were missing layer count, which would prevent multiview\n  from working\n\nBug: 37245304\nTest: MultiLayerBufferQueue\nChange-Id: I88b41f1aa7665df01e89a7386cbc23b15c9a79b0\n"
    },
    {
      "commit": "4d3590f3fd0fd65f4e8758d3228de9f55cf135d0",
      "tree": "b88fefb620457f47d1b70356efd13fd9d7988fc4",
      "parents": [
        "584bc3cebf3f23d378fc7ed06e71c5d1722373dd"
      ],
      "author": {
        "name": "Hendrik Wagenaar",
        "email": "hendrikw@google.com",
        "time": "Sat May 06 22:36:04 2017 -0700"
      },
      "committer": {
        "name": "Hendrik Wagenaar",
        "email": "hendrikw@google.com",
        "time": "Mon May 08 23:06:55 2017 -0700"
      },
      "message": "Remove slices from buffers\n\n* code no longer required, as it will be handled in vrcore\n\nBug: 38076195\nTest: Manually ran testing\nChange-Id: Id28918a3bf73b99cbb57aad4c21251b7a9623074\n"
    },
    {
      "commit": "b85082115a3c7b900ff7f0200f2fd6fa49f8d191",
      "tree": "6003469efbcc4f1ac7f23cc725aa93eec650702e",
      "parents": [
        "663720b29f412756b8599897df9f8e32eb930be2"
      ],
      "author": {
        "name": "Jiwen \u0027Steve\u0027 Cai",
        "email": "jwcai@google.com",
        "time": "Mon May 08 16:02:36 2017 -0700"
      },
      "committer": {
        "name": "Jiwen Cai",
        "email": "jiwen@google.com",
        "time": "Mon May 08 23:27:31 2017 +0000"
      },
      "message": "Fix BufferHubQueueProducer::dequeueBuffer\n\nSeems this might just be a rebase glitch.\n\nBug: 38137230\nTest: buffer_hub_queue_producer-test\nChange-Id: I94ce059475fad4cf31cec52a9661eb6fc9cd2e00\n"
    },
    {
      "commit": "9d8bd09569322f452fddf91e581904f1e8f6849c",
      "tree": "6a9f8573f9d82eaf84538e386332a5119d5244b8",
      "parents": [
        "8a4e6a90e6b7edf73fa0d79dd5b439f8e52eb9f0"
      ],
      "author": {
        "name": "Corey Tabaka",
        "email": "eieio@google.com",
        "time": "Tue Apr 25 16:47:44 2017 -0700"
      },
      "committer": {
        "name": "Corey Tabaka",
        "email": "eieio@google.com",
        "time": "Thu May 04 15:36:34 2017 -0700"
      },
      "message": "Return pdx::Status\u003cT\u003e from BufferHubQueue::Dequeue.\n\nSwitch to using Status\u003cT\u003e to return buffers or meaningful errors\nfrom BufferHubQueue::Dequeue. This enables determining whether an\nerror is normal (e.g. timeout) or abnormal (e.g. disconnect).\n\nBug: 36401174\nTest: buffer_hub_queue-test passes.\nChange-Id: Ifef5f737a5e737b70d19bdbffd7544a993438e1c\n"
    },
    {
      "commit": "cb4751c52a5625a22b6a11b4de537ff026d9bfe3",
      "tree": "64129fb9e2ec5e315e90503900c5cfbd40c4fb32",
      "parents": [
        "693aa74db10007829973329451af3e2c6e586720"
      ],
      "author": {
        "name": "Jiwen \u0027Steve\u0027 Cai",
        "email": "jwcai@google.com",
        "time": "Fri Apr 14 17:56:55 2017 -0700"
      },
      "committer": {
        "name": "Jiwen \u0027Steve\u0027 Cai",
        "email": "jwcai@google.com",
        "time": "Tue Apr 25 17:21:47 2017 -0700"
      },
      "message": "Fix minor corner cases in BufferHubQueueProducer\n\n1/ Set reasonable return value BufferHubQueueProducer::query.\n2/ Don\u0027t error out for setSharedBufferMode(false),\nsetAutoRefresh(false), as they are just setting default values again.\n3/ Supports addition buffer metadata: transformt, crop,\ndata_format (a.k.a. color_format).\n4/ This also changes BufferHubQueueProducer to be based of\nBnInterface\u003cIGraphicBufferProducer\u003e so that itself can be passed via Binder.\n\nBug: 37342387\nBug: 36907193\nTest: exoplayer_demo\nChange-Id: Ie00bb79f6a249e09905ae52f85a85a67744cc90d\n"
    },
    {
      "commit": "fc333972e92e176ea73b34c5c6c25fc5875140be",
      "tree": "dfe4de1ddd93f1979ac2ad64bb92fc44fd61aef0",
      "parents": [
        "5330710aebfed15005ae39ba5896b615e138bf38",
        "3e198b2b331c09e8d078b5cd4cb770bcf049c0d1"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Apr 19 18:47:44 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Apr 19 18:47:45 2017 +0000"
      },
      "message": "Merge \"Return error when trying to disconnect twice\" into oc-dev"
    },
    {
      "commit": "cd52dd9f1b301854b4e1734e3741d9cef8f784b1",
      "tree": "37b36ac01a8b1fbcc41864e5103b8cba4707574e",
      "parents": [
        "ce3e88d14cc09f582ef85bc66af425f213c8d623"
      ],
      "author": {
        "name": "Corey Tabaka",
        "email": "eieio@google.com",
        "time": "Fri Apr 07 18:03:57 2017 -0700"
      },
      "committer": {
        "name": "Corey Tabaka",
        "email": "eieio@google.com",
        "time": "Fri Apr 07 18:35:10 2017 -0700"
      },
      "message": "Update BufferHub service/client with support for gralloc1 usage.\n\n- Add support for gralloc1 usage flags.\n- Mimic how GraphicBuffer supports gralloc0 usage flags: (usage, usage).\n- Move to using pdx::Status\u003cT\u003e since we\u0027re touching signatures everywhere.\n\nBug: 36401174\nTest: bufferhub_tests; buffer_hub_queue-test\nChange-Id: I0e5184197b21eda9806bbea44f63b546b030692a\n"
    },
    {
      "commit": "3e198b2b331c09e8d078b5cd4cb770bcf049c0d1",
      "tree": "e4325dd3da6df3208aa458e91ed9a195c4f0ecf5",
      "parents": [
        "3e7dad572220e2c4b9bfbd471a6278385e99330d"
      ],
      "author": {
        "name": "Wonsik Kim",
        "email": "wonsik@google.com",
        "time": "Fri Apr 07 15:43:16 2017 -0700"
      },
      "committer": {
        "name": "Wonsik Kim",
        "email": "wonsik@google.com",
        "time": "Fri Apr 07 17:13:11 2017 -0700"
      },
      "message": "Return error when trying to disconnect twice\n\nBug: 34637488\nBug: 36737364\nTest: cts-tradefed run cts-dev --module Graphics\nTest: libgui_test\nChange-Id: I9deb1e8978e3789269ed1cf9753892b68f246e0f\n"
    },
    {
      "commit": "1601bcfa9cdc07cea8f5980349608e1526690db5",
      "tree": "d19a54bc7e4a0d63c16a1fe3316f832c9baa3fe2",
      "parents": [
        "623912183d8314595b37cdedc7c193a21c345bdb"
      ],
      "author": {
        "name": "Jiwen \u0027Steve\u0027 Cai",
        "email": "jwcai@google.com",
        "time": "Fri Mar 24 14:03:06 2017 -0700"
      },
      "committer": {
        "name": "Jiwen \u0027Steve\u0027 Cai",
        "email": "jwcai@google.com",
        "time": "Mon Apr 03 13:37:46 2017 -0700"
      },
      "message": "Harden BufferHubQueueProducerTest\n\nThis is a test that covers our implementation of bufferhubqueue-based\nIGraphicBufferProducer, which eventually enables VrCore/VrFlinger to\naccess buffers produced from other Android compontents. Note that the\ngtest itself is a (slightly) modified version of\nIGraphicBufferProducer_test.cpp.\n\nThis also improves BufferHubQueue in the following way to support more\nfeatures of android::BufferQueue.\n1/ Supports more buffer queue parameters that we query.\n2/ BufferHubQueue (the PDX client) now supports default width, height,\nand format configuration.\n3/ Change default max_dequeue_buffer_count to 1 (which is the same\nbehavior current android::BufferQueue adopts).\n4/ Fill in |QueueBufferOutput| during |enqueueBuffer|.\n\nBug: 34197998\nBug: 36266201\nTest: build and run buffer_hub_queue_producer-test\nChange-Id: I9d3e8bb66dbfb66e67ab7b0e5093e49a3f374e9c\n"
    },
    {
      "commit": "25fd3faa260ad1c92ac57d71af46eb4d73ff277c",
      "tree": "83d742535c964e0b4dc0d1a82869f928f211a818",
      "parents": [
        "b0ae9c126384b45a9a7a15cf0519ee9a06952db8"
      ],
      "author": {
        "name": "Jiwen \u0027Steve\u0027 Cai",
        "email": "jwcai@google.com",
        "time": "Mon Mar 20 15:30:21 2017 -0700"
      },
      "committer": {
        "name": "Jiwen \u0027Steve\u0027 Cai",
        "email": "jwcai@google.com",
        "time": "Mon Mar 20 15:55:45 2017 -0700"
      },
      "message": "libbufferhubqueue: sanitize logs and Android.bp\n\n1/ Use ALOGD_IF(TRACE, \"xxx\") and proper clags to enable/display verbose\ndebugging message.\n2/ Make sure that tests targets are visible to Soong.\n\nBug: 36446316\nTest: Built and ran libbufferhubqueue_test, no more spam.\nChange-Id: I1b7fc5410dc0c07d8edb6d9cf788e6e5f97afd14\n"
    },
    {
      "commit": "ed6543224138fd753eeea909918bb8d1d2efb1e6",
      "tree": "19322fbc4b92bc4e73db99f8ce4b8a435b915d6f",
      "parents": [
        "afbdf1f1d09ce7b58b64b48ebdcfe05a630df20c"
      ],
      "author": {
        "name": "Jiwen \u0027Steve\u0027 Cai",
        "email": "jwcai@google.com",
        "time": "Mon Mar 13 17:04:43 2017 -0700"
      },
      "committer": {
        "name": "Jiwen \u0027Steve\u0027 Cai",
        "email": "jwcai@google.com",
        "time": "Thu Mar 16 19:02:21 2017 -0700"
      },
      "message": "Expose acquire_fence though ConsumerQueue::Dequeue\n\nThe current compositor implementation will be refactored to use\nBufferHubQueue instead of ad-hoc BufferHub operations. We need this to\nexpose release_fence to compositor so that it can wait for buffers\nto become avaiable by checking fence properly.\n\nBug: 36033302\nBug: 36148608\nTest: Built and ran buffer_hub_queue-test\nChange-Id: I75cfcb02e06a4b9e7e89b89690ca2d92ee09a678\n"
    },
    {
      "commit": "dc14e5bf86b6999a290b64deb44418a8f205296c",
      "tree": "8e78c51de89c81af35e86d979899a7c986ce7b5b",
      "parents": [
        "a96d2f1d7e27b307dbc6eed6eef53f36bdb28ce2"
      ],
      "author": {
        "name": "Jiwen \u0027Steve\u0027 Cai",
        "email": "jwcai@google.com",
        "time": "Tue Jan 24 17:05:12 2017 -0800"
      },
      "committer": {
        "name": "Jiwen \u0027Steve\u0027 Cai",
        "email": "jwcai@google.com",
        "time": "Mon Mar 13 17:22:32 2017 -0700"
      },
      "message": "BufferHubQueue: ClearAvailable on consumer import\n\nThis fixes the issue that ConsumerQueue keeps receiving\n|OnBufferAllocated| events when using UDS based libpdx. It also hardens\nerror handling during consumer imports.\n\nBug: 34690159\nTest: Build, flash, buffer_hub_queue-test pases\nChange-Id: I4f739a2869df851ed836f39122b3eba95697f3f6\n"
    },
    {
      "commit": "4fe60582f314e381098f8f3bc2e39c5880e9243a",
      "tree": "6b6246ed4d5f5b8c0ad11cd7cbfa59dfa3f1c9c1",
      "parents": [
        "2dcb69831738d353bc7f400c611ee779aa435083"
      ],
      "author": {
        "name": "Alex Vakulenko",
        "email": "avakulenko@google.com",
        "time": "Thu Feb 02 11:35:59 2017 -0800"
      },
      "committer": {
        "name": "Alex Vakulenko",
        "email": "avakulenko@google.com",
        "time": "Thu Feb 02 13:44:32 2017 -0800"
      },
      "message": "Remove references to libchrome\n\nRemoved dependencies on libchrome which was used mostly for logging\nand switched over to standard Android log macros.\n\nBug: None\nTest: `m -j32` still succeeds\nChange-Id: I0a841c19c15c02f9a031af200e82837f9450d88a\n"
    },
    {
      "commit": "e4eec20f6263f4a42ae462456f60ea6c4518bb0a",
      "tree": "306fdfb6c03485758748b180f98839e32461ce3f",
      "parents": [
        "c34e059b3b044ec5346838e5b3d467c4f4bb6d65"
      ],
      "author": {
        "name": "Alex Vakulenko",
        "email": "avakulenko@google.com",
        "time": "Fri Jan 27 14:41:04 2017 -0800"
      },
      "committer": {
        "name": "Jiwen \u0027Steve\u0027 Cai",
        "email": "jwcai@google.com",
        "time": "Sat Jan 28 15:04:54 2017 -0800"
      },
      "message": "Add DaydreamVR native libraries and services\n\nUpstreaming the main VR system components from master-dreamos-dev\ninto goog/master.\n\nBug: None\nTest: `m -j32` succeeds. Sailfish boots and basic_vr sample app works\nChange-Id: I853015872afc443aecee10411ef2d6b79184d051\n"
    }
  ]
}
