)]}'
{
  "log": [
    {
      "commit": "65abff18873fab87305049418c9b7c24fc0a2ef4",
      "tree": "eb3efca31c93830534ea8ac57ffdccf23e43eceb",
      "parents": [
        "abf6ff26df459d991cdbc2dca3b78046c97469db",
        "3938dc6363949ef126bb6188d26b5bef6db8be4d"
      ],
      "author": {
        "name": "Ray Essick",
        "email": "essick@google.com",
        "time": "Sat Dec 03 15:41:59 2016 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sat Dec 03 15:41:59 2016 +0000"
      },
      "message": "Merge \"initial mediasanalytics framework\""
    },
    {
      "commit": "3938dc6363949ef126bb6188d26b5bef6db8be4d",
      "tree": "fe9553c997bd8a827cea887461895b7551085626",
      "parents": [
        "c2d29c48ea9314f1db836a906c95ee9bd6ef11c8"
      ],
      "author": {
        "name": "Ray Essick",
        "email": "essick@google.com",
        "time": "Tue Nov 01 08:56:56 2016 -0700"
      },
      "committer": {
        "name": "Ray Essick",
        "email": "essick@google.com",
        "time": "Fri Dec 02 16:25:42 2016 -0800"
      },
      "message": "initial mediasanalytics framework\n\nThis encompasses the basic framework files for mediaanalytics.  This\nincludes the library code to run in clients, the interface definitions\nto get to the service, and the mediaanalytics service.\n\nThis version of the patchset also incorporates a wholesale change from\n\"Media Statistics\" to \"Media Analytics\" -- which involved both textual\nchanges and file renaming\n\nThis does not include the changes to other entities that will be sending\ndata. We\u0027ll do those under separate per-entity commits.\n\nBug: 30267133\nTest: run through cts\u0027 media stress tests\nChange-Id: Iee7e722d10fd57c5d6b14e2947117ed0d3af4f2a\n"
    },
    {
      "commit": "2c192ad2ef8474bf752a638e7adb49ef2011f548",
      "tree": "2ea4f4d8cd58e42cfe54a0f1603b9749200b8459",
      "parents": [
        "3b6889c296786b9d7d062abaa2e736c9246e0622",
        "e322cc51459b3fac11e7a080c3eb8ee1bfb36fc8"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Dec 02 04:14:02 2016 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Dec 02 04:14:02 2016 +0000"
      },
      "message": "Merge \"stagefright/foundation: add AUnion and AData templates\""
    },
    {
      "commit": "f558e0218d2677a813c9c600886f673894eec927",
      "tree": "a2e02a7e9999fe3eb08071d09acd30d9e50f87a8",
      "parents": [
        "d71f16268227c15a0ac2043e15900db5df2c417d"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Mon Nov 14 17:45:17 2016 -0800"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Thu Dec 01 09:36:07 2016 -0800"
      },
      "message": "libaudiohal: Implement simple HIDL client\n\nThis client requires both HIDL client and server to be of the same\nABI version (e.g. 32-bit).\n\nEffectHalHidl::process and EffectHalHidl::processReverse are stubs.\n\nSome extra warnings are logged due to unimplemented functions\nin the legacy HAL.\n\nBug: 30222631\nChange-Id: Id074131dec6d6c4f1031695abcf3ea066e92a5af\nTest: Play Music (play / EQ), YouTube, Loopback RTLT, Ok Google on N5X\n"
    },
    {
      "commit": "d71f16268227c15a0ac2043e15900db5df2c417d",
      "tree": "ddcbcd595155f9e8517848e7c2dca053ef557902",
      "parents": [
        "1f28e57bba33aca40775ae0e62cd28dbc22e834f",
        "79054b1f53b448511f1edb6e0dcab1d7b6f39964"
      ],
      "author": {
        "name": "Wonsik Kim",
        "email": "wonsik@google.com",
        "time": "Tue Nov 29 02:38:07 2016 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Nov 29 02:38:08 2016 +0000"
      },
      "message": "Merge \"MediaCodec refactoring part 2-a: introduce callback\""
    },
    {
      "commit": "e322cc51459b3fac11e7a080c3eb8ee1bfb36fc8",
      "tree": "ff129ab397e2d8ea0bbaa6f62f6b754eee43035a",
      "parents": [
        "1f28e57bba33aca40775ae0e62cd28dbc22e834f"
      ],
      "author": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Wed Nov 16 07:49:26 2016 -0800"
      },
      "committer": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Mon Nov 28 15:10:47 2016 -0800"
      },
      "message": "stagefright/foundation: add AUnion and AData templates\n\nBug: 32885576\nChange-Id: I33e09f3b91ea8e680779c0e0f77d1de9660c02d9\n"
    },
    {
      "commit": "1f28e57bba33aca40775ae0e62cd28dbc22e834f",
      "tree": "7bdd5ef900a88d89699a1b9e51fae43b470df048",
      "parents": [
        "382bbc8fd1617e96881693c5f747def476c5786f",
        "92d57f926eb39d72e8fd8f3b3c9e40d25f77ad47"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Mon Nov 28 22:28:48 2016 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Nov 28 22:28:49 2016 +0000"
      },
      "message": "Merge \"Move \u0027sniff\u0027 functionality from DataSource to MediaExtractor\""
    },
    {
      "commit": "92d57f926eb39d72e8fd8f3b3c9e40d25f77ad47",
      "tree": "42986a629018563b7bb286b4a05082cd83d0216d",
      "parents": [
        "bd54eef2d289f786a7ae02139ce3bb9db2b03b24"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Tue Nov 22 10:36:03 2016 -0800"
      },
      "committer": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Mon Nov 28 19:04:03 2016 +0000"
      },
      "message": "Move \u0027sniff\u0027 functionality from DataSource to MediaExtractor\n\nand don\u0027t register the sniffers in every process that plays media,\nbut only in the extractor process.\n\nBug: 33166870\n\nChange-Id: Id269d1eab8be1549542adad3037729a63b5ebaef\n"
    },
    {
      "commit": "b54cab90d4bf84745a57232080d72a50c3b731da",
      "tree": "0b7cebfd0d3dfb111e427af7dfcd3fb195d68f28",
      "parents": [
        "e025595095b70df689b2e783d91fbd37c813e119",
        "d399e7e6065aa310e025ab633f633d5b4831a358"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Nov 23 23:26:16 2016 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Nov 23 23:26:17 2016 +0000"
      },
      "message": "Merge \"BufferingSettings: define internal BufferingSettings API.\""
    },
    {
      "commit": "d399e7e6065aa310e025ab633f633d5b4831a358",
      "tree": "161b8ee63095e28937e041299ae66a650197f265",
      "parents": [
        "48d8020342a4de6b0b925328ddbdfe34f22253a3"
      ],
      "author": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Wed Oct 26 15:49:11 2016 -0700"
      },
      "committer": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Wed Nov 23 10:50:24 2016 -0800"
      },
      "message": "BufferingSettings: define internal BufferingSettings API.\n\nTest: compiles\nBug: 32524218\nChange-Id: I9a95b2fdfa497179305e031aac69e5a987614dbb\n"
    },
    {
      "commit": "fc88363032d90492845ad5b917496589ca225f63",
      "tree": "862f236ce05d7f83003f2be6c57cc6f764240cb5",
      "parents": [
        "48d8020342a4de6b0b925328ddbdfe34f22253a3",
        "29b7dcf6d3cdb97103467dc8106151c6260c239a"
      ],
      "author": {
        "name": "Jeff Tinker",
        "email": "jtinker@google.com",
        "time": "Mon Nov 21 17:53:13 2016 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Nov 21 17:53:14 2016 +0000"
      },
      "message": "Merge \"Removing widevine classic\""
    },
    {
      "commit": "79054b1f53b448511f1edb6e0dcab1d7b6f39964",
      "tree": "ec7b24befa1733bf6fec43ffc07d4103551daae1",
      "parents": [
        "9ea205b1302f85bbf9364c1f41210c1837863f00"
      ],
      "author": {
        "name": "Wonsik Kim",
        "email": "wonsik@google.com",
        "time": "Mon Nov 14 23:49:45 2016 +0900"
      },
      "committer": {
        "name": "Wonsik Kim",
        "email": "wonsik@google.com",
        "time": "Mon Nov 21 23:59:08 2016 +0900"
      },
      "message": "MediaCodec refactoring part 2-a: introduce callback\n\nCodecBase instances do not post reply messages back to MediaCodec\nexplicitly --- Callback does the job instead.\n\nBug: 32133435\nTest: adb shell am instrument -e size small -w \u0027android.media.cts/android.support.test.runner.AndroidJUnitRunner\u0027\nTest: Play an encrypted content in Play Movies\nChange-Id: I210993a3bbc306f970b8e9395a91e8697cfa832e\n"
    },
    {
      "commit": "44a580a5262ba19c275aac3537b9306679819f94",
      "tree": "6fe755a55a245ddb2a31f2c60b0777d55b4fb0e4",
      "parents": [
        "6299e7b1626713ff75377537245f8ba3aa6dec35",
        "c5de09127e9e0d5df7aa587be317e1487d793245"
      ],
      "author": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Fri Nov 18 23:42:20 2016 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Nov 18 23:42:20 2016 +0000"
      },
      "message": "Merge \"mediaplayer: support same seek mode as MediaMetadataRetriever.\""
    },
    {
      "commit": "c5de09127e9e0d5df7aa587be317e1487d793245",
      "tree": "f27828fe26714b003613ef894579539228dfd134",
      "parents": [
        "b59c2fb19f03bba8a558be71848bafa6a0ad3cbc"
      ],
      "author": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Fri Nov 18 10:22:14 2016 -0800"
      },
      "committer": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Fri Nov 18 15:41:24 2016 -0800"
      },
      "message": "mediaplayer: support same seek mode as MediaMetadataRetriever.\n\nTest: manually force 4 seek modes in mediaplayer.\nBug: 32557491\nChange-Id: Iea4f6dbfc224fc6da39624300c6d872b79142f07\n"
    },
    {
      "commit": "0736a5eeb6a5f4139352ea033c0628cfa85b6b42",
      "tree": "f269d02378587ddcfaeca47f2d831aa0b526e68b",
      "parents": [
        "81d472ef3635bcf5cf05e4567f715c52f2cf3b22",
        "349b8b4c47817a565ded94ff351caf48782f1252"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Nov 18 03:16:54 2016 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Nov 18 03:16:55 2016 +0000"
      },
      "message": "Merge \"stagefright: fix potential codec leaks in async stop/reset\""
    },
    {
      "commit": "349b8b4c47817a565ded94ff351caf48782f1252",
      "tree": "2e907eb35aca41fc603faa2c304eaba93180466b",
      "parents": [
        "4d2bf460f16044c89d55a4444716cb2ee673975a"
      ],
      "author": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Thu Nov 17 17:05:26 2016 -0800"
      },
      "committer": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Fri Nov 18 02:09:17 2016 +0000"
      },
      "message": "stagefright: fix potential codec leaks in async stop/reset\n\nCurrently if stop is followed by a reset from another thread,\nwe unblock the stop first (to avoid ANR) without waiting for\nkWhatShutdownCompleted, and proceed with the reset request.\nBut this could cause release to return too early when the\nkWhatShutdownCompleted for the stop is received. When this\nhappens, the reset() will unregister ACodec\u0027s handlers before\nthe real shutdown with deallocation is processed, causing\na codec node instance to be leaked.\n\nTo solve this problem, separate kWhatShutdownCompleted into\ntwo messages kWhatStopCompleted and kWhatReleaseCompleted.\nRelease should only return upon kWhatReleaseCompleted.\n\nAlso initializing the fence fd in the metadata buffer (even\nthough it\u0027s not used) to avoid warning in freeBuffer.\n\nbug: 32750454\nbug: 32971559\n\nChange-Id: If218c853955729a2a2f2e8356908115a79c442e3\n"
    },
    {
      "commit": "fba972f9d7f87c47ac0820b7f99420acc7e5dc36",
      "tree": "21ae67a62d5ae44b4cfdd6489572f044e9cb0ce2",
      "parents": [
        "856ccbf720ab623debbe549da29067a687a82979"
      ],
      "author": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Mon Nov 14 17:11:22 2016 -0800"
      },
      "committer": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Tue Nov 15 18:32:05 2016 -0800"
      },
      "message": "stagefright/foundation: add TypeTraits.h and Flagged.h\n\nTypeTraits.h includes some additional type utility templates not\ncovered by \u003ctype_traits\u003e.\n\nFlagged.h is a template that allows adding flags to an arbitrary\ntype, and combine additional flags into that.\n\nBug: 32885576\nChange-Id: I13faa6d265cc06df76609b255704d0cf22e2d904\n"
    },
    {
      "commit": "29b7dcf6d3cdb97103467dc8106151c6260c239a",
      "tree": "c9b06ff2e5708d4197a916489eeb652fa12d8cee",
      "parents": [
        "856ccbf720ab623debbe549da29067a687a82979"
      ],
      "author": {
        "name": "Jeff Tinker",
        "email": "jtinker@google.com",
        "time": "Mon Oct 24 10:28:30 2016 -0700"
      },
      "committer": {
        "name": "Jeff Tinker",
        "email": "jtinker@google.com",
        "time": "Wed Nov 16 02:11:38 2016 +0000"
      },
      "message": "Removing widevine classic\n\nbug:30505334\nChange-Id: I40ac8020b5442857936037a15847b0271359e624\n"
    },
    {
      "commit": "aad28fc2465edadca45b2953c92186cb26f5ef51",
      "tree": "6933b415e5ae2741426f833087c9fbf0f0ec8dd6",
      "parents": [
        "3628f79cc3bad4c333992149d0e101cb2be07548"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Mon Nov 14 14:56:09 2016 -0800"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Mon Nov 14 16:06:25 2016 -0800"
      },
      "message": "AudioParameter: add functions for working with parameter keys\n\nAdded functions that are helpful for building parameter query\nstrings to be used with HAL\u0027s \u0027get_parameter\u0027 methods.\n\nTest: make\nChange-Id: I66a4e94d65660b04ded4abb59a89d8288056a920\n"
    },
    {
      "commit": "4c1d94395a64f4c3acd8f9e0d378a778e438221d",
      "tree": "b46559134550f3139a56c70d55abfdfd3440aef0",
      "parents": [
        "f7aba583d095ad250bfd067ef809bec26704e1af",
        "d02c08671d666e12a94bcadd943787a9ab2ceea8"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Nov 14 22:20:54 2016 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Nov 14 22:20:54 2016 +0000"
      },
      "message": "Merge \"IOMX: add API for setPortMode\""
    },
    {
      "commit": "d02c08671d666e12a94bcadd943787a9ab2ceea8",
      "tree": "ede05629c929d1daacbf2d555e6d8153ff75b38a",
      "parents": [
        "300379ab01ec4c5f9f538284dbb1e49ad012de29"
      ],
      "author": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Thu Oct 13 14:32:32 2016 -0700"
      },
      "committer": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Thu Nov 10 18:42:02 2016 -0800"
      },
      "message": "IOMX: add API for setPortMode\n\n- Add setPortMode to centralize port mode configuration\n\n- Remove storeMetaDataInBuffers and enableNativeBuffers. These are\n  no longer exposed to the client. Metadata mode and native/secure\n  buffer mode will be enabled by OMX as needed by the port mode.\n\n- Move handling of legacy adpative experiment (legacy metadata mode)\n  to OMX side. Legacy mode will now appear the same as non-metadata\n  mode to client.\n\nbug: 31399200\n\nChange-Id: Iaf33bd7c30fab4acbc19e9fb8c19e322f9b4a0a0\n"
    },
    {
      "commit": "59d49567c207c104c1f242f55e2ce5b9e5b2b3f6",
      "tree": "7af3b1161790b91c517c8c5d4779905073c92e8d",
      "parents": [
        "9cab746b116b8aed38ca6b97bfea35103535e522",
        "ad60a0f6cd9012507f8086fe741236d12d280ef3"
      ],
      "author": {
        "name": "Wonsik Kim",
        "email": "wonsik@google.com",
        "time": "Fri Nov 11 00:05:11 2016 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Nov 11 00:05:12 2016 +0000"
      },
      "message": "Merge \"stagefright: reuse buffers instead of cloning\""
    },
    {
      "commit": "ad60a0f6cd9012507f8086fe741236d12d280ef3",
      "tree": "a4d8e4f1e94a881bcdcf53bdd0fa756bf8fcdc55",
      "parents": [
        "93f52337443196a95d183cb8fd8984aa86c41235"
      ],
      "author": {
        "name": "Wonsik Kim",
        "email": "wonsik@google.com",
        "time": "Thu Nov 10 16:18:06 2016 +0900"
      },
      "committer": {
        "name": "Wonsik Kim",
        "email": "wonsik@google.com",
        "time": "Fri Nov 11 08:46:59 2016 +0900"
      },
      "message": "stagefright: reuse buffers instead of cloning\n\nIn buffer array mode, the buffer reference is kept in clients of\nMediaCodec, so allocating new buffer for new input/output does not\nwork in that case.\n\nBug: 32577275\nBug: 32579231\nTest: use screenrecord and investigate the output file.\nTest: cts-tradefed run cts-dev -m CtsMediaTestCases -t android.media.cts.EncodeDecodeTest\nChange-Id: I26d89f6b5735094062b8a2027bcab4754576d574\n"
    },
    {
      "commit": "77109420fe285b4e9618bd5f0cd12e0fcef6eced",
      "tree": "f738962f880d4a2a14bc46e598f4f049e8ed2962",
      "parents": [
        "eb6300d4bbe1cb0e24e26b15e3b5af8afe874c5f",
        "1f12a8ad958344c50733b948628ffa06db9c5bc6"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Thu Nov 10 19:15:45 2016 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Nov 10 19:15:46 2016 +0000"
      },
      "message": "Merge \"Audio: Use uid_t for uids\""
    },
    {
      "commit": "49778b36d39a86caeff6069cb8ccefc177135ab0",
      "tree": "66a6bab77802c263c64cb979ac9804e38479e146",
      "parents": [
        "8d029bffae6ab6592ea0f2aaa8938d04bf4c8a97",
        "e1b943f21dff25044b349d4d628d9adb0c2e0b74"
      ],
      "author": {
        "name": "Hangyu Kuang",
        "email": "hkuang@google.com",
        "time": "Wed Nov 09 18:43:12 2016 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Nov 09 18:43:13 2016 +0000"
      },
      "message": "Merge changes from topic \u0027metadata-support\u0027\n\n* changes:\n  media: Limit the maximum size of per-frame metadata.\n  media: Add metadata track support to MPEG4Writer.\n"
    },
    {
      "commit": "1f12a8ad958344c50733b948628ffa06db9c5bc6",
      "tree": "d9ce12941c1461657bf32779f6d18605defd5cf1",
      "parents": [
        "062bfceaefab29f0f71db7d5a248b3f5f0572b6a"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Mon Nov 07 16:10:30 2016 -0800"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Tue Nov 08 16:43:39 2016 -0800"
      },
      "message": "Audio: Use uid_t for uids\n\nTest: Power manager shows correct uids for audio\nBug: 32713790\nChange-Id: If5337e17283268f74dc0f00cc66ece9153d680ef\n"
    },
    {
      "commit": "a36591ba9ce6258c3b2f9477761add084ac4ec47",
      "tree": "296b7cd5753b59b9c950f88b68d61ecd4b5c9d20",
      "parents": [
        "74d3601bea717111f77376cf1678d2bc65dd51a1",
        "144868295f75a650a0b487c60f6983a0790fe39a"
      ],
      "author": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Tue Nov 08 19:29:27 2016 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Nov 08 19:29:28 2016 +0000"
      },
      "message": "Merge \"NuPlayer: hook up seekTo for precise seeking.\""
    },
    {
      "commit": "913d06c099bd689375483a839e11057ccf284d1c",
      "tree": "25d7f40231f47897013b0984348f40bf05b72ea7",
      "parents": [
        "267e07cd8432679bcdd72b0bdf38846446c1c4ed"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Tue Nov 01 12:49:22 2016 -0700"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Mon Nov 07 09:29:37 2016 -0800"
      },
      "message": "Move TypeConverter into a shared library\n\nThis will be needed for the default implementation of the audio HAL\nin TREBLE for parsing supported formats etc. provided by HAL in\na form of string literals.\n\nAs a bonus, remove some hand-written type conversions in AudioFlinger\nused in dumps.\n\nExample changes in the dump output:\n\n   HAL format: 0x1 (pcm16) \u003d\u003d\u003e HAL format: 0x1 (AUDIO_FORMAT_PCM_16_BIT)\n   Processing format: 0x5 (pcmfloat) \u003d\u003d\u003e Processing format: 0x5 (AUDIO_FORMAT_PCM_FLOAT)\n   Output device: 0x2 (SPEAKER) \u003d\u003d\u003e Output device: 0x2 (AUDIO_DEVICE_OUT_SPEAKER)\n   Input device: 0 (NONE) \u003d\u003d\u003e Input device: 0 (AUDIO_DEVICE_NONE)\n   AudioStreamOut: 0x... flags 0x6 (PRIMARY|FAST) \u003d\u003d\u003e\n       AudioStreamOut: 0x... flags 0x6 (AUDIO_OUTPUT_FLAG_PRIMARY|AUDIO_OUTPUT_FLAG_FAST)\n\nTest: make \u0026 run\nChange-Id: I9cde640e6827b7aa6d62e9caade9e738227e299f\n"
    },
    {
      "commit": "144868295f75a650a0b487c60f6983a0790fe39a",
      "tree": "9e5f06c4ffd170b6f7e9f552edbfa55b28a244a2",
      "parents": [
        "d592974f4e1d8afc753ada8c10d2b252d8f852af"
      ],
      "author": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Wed Nov 02 17:51:30 2016 -0700"
      },
      "committer": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Thu Nov 03 09:59:45 2016 -0700"
      },
      "message": "NuPlayer: hook up seekTo for precise seeking.\n\nTest: compiles\nBug: 32557491\nChange-Id: Idda3c87658f43101b9fd0fe22d2399710fb80211\n"
    },
    {
      "commit": "d592974f4e1d8afc753ada8c10d2b252d8f852af",
      "tree": "81a42e8dc27923441106272b0d48305e7fe02571",
      "parents": [
        "a109007c56de4e683adfb00ca0632e25f7702b97",
        "67b6dccfd7b59efa772a3c2c553e7382c8f9f24c"
      ],
      "author": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Wed Nov 02 21:03:19 2016 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Nov 02 21:03:19 2016 +0000"
      },
      "message": "Merge \"mediaplayer: add precise argument to seek function\""
    },
    {
      "commit": "25adc33c1ba77b95162ebce8a4c2a7a07baeb98f",
      "tree": "5adfbe445c60de4446ff13ab347841b7cf82ac68",
      "parents": [
        "d6f63bed0cf4a9cf162f9e16c1600117a4bcbc08"
      ],
      "author": {
        "name": "Hangyu Kuang",
        "email": "hkuang@google.com",
        "time": "Thu Oct 20 15:46:04 2016 -0700"
      },
      "committer": {
        "name": "Hangyu Kuang",
        "email": "hkuang@google.com",
        "time": "Tue Nov 01 14:01:44 2016 -0700"
      },
      "message": "media: Add metadata track support to MPEG4Writer.\n\n1. Remove the restriction that MPEG4Writer could only write at most one video\ntrack and one audio track.\n2. Allow muxing mutiple metadata tracks into the file. Did not put a limit on\neach sample\u0027s metadata size now.\n3. metadata mime format must start from prefix \"application/\".\n4. metadata\u0027s format/layout is defined by the application.\n5. Generated MP4 file use TextMetaDataSampleEntry defined in section 12.3.3.2\nof the ISOBMFF to signal the metadata\u0027s mime format.\n\nTest: Manual test.\n\nBug: 28536560\nChange-Id: I97829e235e598e35fcad31f948eea5943f8c4fd5\n"
    },
    {
      "commit": "67b6dccfd7b59efa772a3c2c553e7382c8f9f24c",
      "tree": "d9d03e901bf841099593e0d2b3edb32aa23ac12b",
      "parents": [
        "2aa19a96710eaaaf6679453f0278d393fd768de5"
      ],
      "author": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Mon Oct 31 17:01:37 2016 -0700"
      },
      "committer": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Mon Oct 31 17:01:37 2016 -0700"
      },
      "message": "mediaplayer: add precise argument to seek function\n\nTest: compiles\nBug: 32557491\nChange-Id: Id8c3a938edd5a0b34a9b33e86a4dbff32cf10c98\n"
    },
    {
      "commit": "fd27cc04a3eafab479d635ef058756c56bfbad5f",
      "tree": "2bdf68fc8e67d890e64d88cc7cb0ed0e592d491b",
      "parents": [
        "d4855ba417bcc0f9c50ea813dca51c8e33e84175",
        "4f998cdef97b9c027f145b2da5c48278e19c3d33"
      ],
      "author": {
        "name": "Hangyu Kuang",
        "email": "hkuang@google.com",
        "time": "Mon Oct 31 17:51:14 2016 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Oct 31 17:51:14 2016 +0000"
      },
      "message": "Merge \"media: Use audio timestamp for recording.\""
    },
    {
      "commit": "d72ffc4416959d2c94838888c781468b2351716d",
      "tree": "fd86f3df09a73281964ca910f87f4ce67fa7f032",
      "parents": [
        "d4370268adbbb95eca7a518a55abe42678df93ef",
        "f2ae3e19080938db8cbf29a963fd744a3964fcc2"
      ],
      "author": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Fri Oct 28 19:23:01 2016 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Oct 28 19:23:01 2016 +0000"
      },
      "message": "Merge \"BatteryNotifier: attribute battery usage of video to correct uid.\""
    },
    {
      "commit": "4f998cdef97b9c027f145b2da5c48278e19c3d33",
      "tree": "6501d66538a2772c84ffd34ce95a26f251b03ebd",
      "parents": [
        "9de2d727b63c5ff4ce7a6f041138faba015c9de7"
      ],
      "author": {
        "name": "Hangyu Kuang",
        "email": "hkuang@google.com",
        "time": "Thu Oct 27 12:46:36 2016 -0700"
      },
      "committer": {
        "name": "Hangyu Kuang",
        "email": "hkuang@google.com",
        "time": "Fri Oct 28 12:22:33 2016 -0700"
      },
      "message": "media: Use audio timestamp for recording.\n\nTest: Manual test.\n\nBug: 32243250\nChange-Id: Iac9009acf1c86388e835975f83f91d40cbffb22f\n"
    },
    {
      "commit": "f2ae3e19080938db8cbf29a963fd744a3964fcc2",
      "tree": "f5f1ef5ff03ae54e10af8e2726ce1db80b49f87d",
      "parents": [
        "2aa19a96710eaaaf6679453f0278d393fd768de5"
      ],
      "author": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Thu Oct 27 17:10:59 2016 -0700"
      },
      "committer": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Fri Oct 28 10:09:28 2016 -0700"
      },
      "message": "BatteryNotifier: attribute battery usage of video to correct uid.\n\nTest: manual check batterystats\nBug: 32361950\nChange-Id: Id052220e87f6667ca908d5bf6be6164dc8c14c53\n"
    },
    {
      "commit": "d4370268adbbb95eca7a518a55abe42678df93ef",
      "tree": "64407880fc17380f022345415100248b0adaf91b",
      "parents": [
        "9de2d727b63c5ff4ce7a6f041138faba015c9de7",
        "3fd200feb657c157125e45e30c2a7262e3c0244d"
      ],
      "author": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Thu Oct 27 21:55:12 2016 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Oct 27 21:55:13 2016 +0000"
      },
      "message": "Merge \"IOMX: consolidate buffer passing on IOMX\""
    },
    {
      "commit": "3fd200feb657c157125e45e30c2a7262e3c0244d",
      "tree": "be20fc0543dbc04357f4b189dc74af1580b07049",
      "parents": [
        "6f6555a169316f1b9e2acda2b8e7042e285de310"
      ],
      "author": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Fri Oct 07 17:25:58 2016 -0700"
      },
      "committer": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Thu Oct 27 13:02:36 2016 -0700"
      },
      "message": "IOMX: consolidate buffer passing on IOMX\n\n- Use OMXBuffer to parcel different buffer types.\n\n- Only leave one useBuffer, emptyBuffer and fillBuffer.\n\n- Remove the update metadata calls.\n\nbug: 31399200\nChange-Id: I307e59415c3c5be61772210431bd8225ce6b75a3\n"
    },
    {
      "commit": "5737a69a910de65b67d2703bcb18d6d8058ebe48",
      "tree": "cbd2abe43b0f22ae3a9bd01e4ab5e259cf150a76",
      "parents": [
        "7405dc62bbec9eed2384325db40ed95277217fa3",
        "bd83e4b3e77b31e089832bcfbebde086392216c9"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Oct 27 01:45:04 2016 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Oct 27 01:45:05 2016 +0000"
      },
      "message": "Merge \"media: Adjust the first video/audio sample time in slow motion.\""
    },
    {
      "commit": "6f6555a169316f1b9e2acda2b8e7042e285de310",
      "tree": "0a7d90a6bcc0f7be17abf63600e6df4f54550c2f",
      "parents": [
        "9270397b832d7acd670ed704008290f7f96f81a8",
        "fd44d8e2f2d37184f7add67125657f3fbfb5a085"
      ],
      "author": {
        "name": "Wonsik Kim",
        "email": "wonsik@google.com",
        "time": "Thu Oct 27 00:29:29 2016 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Oct 27 00:29:30 2016 +0000"
      },
      "message": "Merge \"MediaCodec refactoring part 1-c: buffer ownership\""
    },
    {
      "commit": "bd83e4b3e77b31e089832bcfbebde086392216c9",
      "tree": "320ff4a44999040819e26a031f7ada9e61d9c795",
      "parents": [
        "7b01847d0e7211989e8b452976258356afcd45d4"
      ],
      "author": {
        "name": "Hangyu Kuang",
        "email": "hkuang@google.com",
        "time": "Wed Oct 26 13:56:11 2016 -0700"
      },
      "committer": {
        "name": "Hangyu Kuang",
        "email": "hkuang@google.com",
        "time": "Wed Oct 26 16:16:51 2016 -0700"
      },
      "message": "media: Adjust the first video/audio sample time in slow motion.\n\nTest: Manual test.\n\nBug: 32243250\nChange-Id: I9469d6f9929ca67f2f12e658382bc76e7236b256\n"
    },
    {
      "commit": "fd44d8e2f2d37184f7add67125657f3fbfb5a085",
      "tree": "d5f5db87a94f6f4d13ba6fe8c1328617271270c1",
      "parents": [
        "1e4d737fcd3129f3b3cf29499f344b42219c6bc7"
      ],
      "author": {
        "name": "Wonsik Kim",
        "email": "wonsik@google.com",
        "time": "Thu Oct 20 23:20:12 2016 +0900"
      },
      "committer": {
        "name": "Wonsik Kim",
        "email": "wonsik@google.com",
        "time": "Wed Oct 26 14:59:06 2016 +0900"
      },
      "message": "MediaCodec refactoring part 1-c: buffer ownership\n\n- Buffers are (roughly) owned by themselves.\n- As a corollary, remove output format change related events\nand replace by inspecting formats associated with each buffers.\n\nBug: 32133435\nTest: gts-tradefed run gts -m GtsExoPlayerTestCases\nTest: (manual) Run Play Movies app to play a secure content.\nChange-Id: I6b57da61c2d71acd0d5be4281de823ba1c95b72f\n"
    },
    {
      "commit": "bf2e61f54c7dcc37c97b4908c9ed6871cf3d2b49",
      "tree": "c7630795f1623d784fb17e1e129fdd93bdabea6e",
      "parents": [
        "1e4d737fcd3129f3b3cf29499f344b42219c6bc7",
        "559d439c6fe8679e3c52f1cf265d46d7d2e65b68"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Oct 24 16:52:08 2016 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Oct 24 16:52:08 2016 +0000"
      },
      "message": "Merge \"Use audio_patch_handle_t in startAudioSource() and stopAudioSource()\""
    },
    {
      "commit": "3604cb1a5548694393c7b7a87191eb517bebaa47",
      "tree": "f53caa6e99adfd9262b6683438b61b6b3a07cf7a",
      "parents": [
        "68f912b81df3d3bb32328ad3767a09978cad24f9"
      ],
      "author": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Mon Oct 10 12:08:11 2016 -0700"
      },
      "committer": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Wed Oct 19 11:55:45 2016 -0700"
      },
      "message": "IOMX: move max pts gap handling to OMX\n\nbug: 31399200\n\nChange-Id: I52177d6826caeedf670ecf3e6d0ff85d0e3bf1df\n"
    },
    {
      "commit": "559d439c6fe8679e3c52f1cf265d46d7d2e65b68",
      "tree": "9e23625c0b55e45e79842d6605e027dba01f0fe0",
      "parents": [
        "bd0f59e493dbd67d1871b243ddad9cce3b50d7ce"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Mar 29 13:42:57 2016 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed Oct 19 18:19:29 2016 +0000"
      },
      "message": "Use audio_patch_handle_t in startAudioSource() and stopAudioSource()\n\nBug: 27903060\nChange-Id: Iafc2095f484b74978c6f080c54f548e293bf945e\n"
    },
    {
      "commit": "9ee0540d3a61bff03d561ca431a371c3d9335d2b",
      "tree": "1bf7817725f35ec9c0755e819cb5f58fdf0bf487",
      "parents": [
        "e7e8d636b486cf49487db1d8da5e8e7cb15d9549"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Thu Oct 13 15:58:17 2016 -0700"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Wed Oct 19 09:46:33 2016 -0700"
      },
      "message": "Remove last references to hardware/audio.h\n\nDeviceHalInterface transitioned to \"capabilities\" model\n(similar to the one already used by streams, e.g. \u0027supportsDrain\u0027).\nNo direct checking of the HAL version is needed.\n\nAudioPolicy uses its own version read from the configuration,\nand these values never checked against the actual HAL version,\nthus it does not need versions and macroses from hardware/*.\n\nTest: make \u0026 run on N6P\nChange-Id: Ic4a56bfa19a9a61edac2b9f9a163fd8f63a0ff87\n"
    },
    {
      "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"
    }
  ],
  "next": "2cd94964c87ca46427819664a618d722a30aee7d"
}
