)]}'
{
  "log": [
    {
      "commit": "355d99044ff82d943792f52b83d9aa2b1c42fc8e",
      "tree": "baafd4e952b217517e5297c0ed89feb97280b006",
      "parents": [
        "9470b9e3ebe6b5786cd37742f684c2772a1708d2"
      ],
      "author": {
        "name": "Jiwen \u0027Steve\u0027 Cai",
        "email": "jwcai@google.com",
        "time": "Thu Feb 09 13:36:13 2017 -0800"
      },
      "committer": {
        "name": "Jiwen \u0027Steve\u0027 Cai",
        "email": "jwcai@google.com",
        "time": "Mon Mar 20 16:05:37 2017 -0700"
      },
      "message": "Extending AImage/AImageReader headers\n\nThis introduces new API that allows AHardwareBuffer access via\nAImage/AImageReader.\n\nBug: 35114769\nTest: Build (should have no functional change from headers change), and\nexisting CTS tests run using cts-tradefed on a Pixel.\n\nChange-Id: I7b6505ca3b9489d86eb564d1ae5707fd3fa25668\n"
    },
    {
      "commit": "107488f4d20f3c4595a78ae33ba2f38bca0a50b9",
      "tree": "72ad5bca9911b3d92ecbe0377871b7cbd4a4daf1",
      "parents": [
        "899f77210153f84de08084417d993e1f042fa871",
        "04563aafa0debc95d50951ca944abf37ef2777ce"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Mar 15 20:55:40 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Mar 15 20:55:46 2017 +0000"
      },
      "message": "Merge \"Move hybrid interface from libbinder to libhidl/transport.\""
    },
    {
      "commit": "04563aafa0debc95d50951ca944abf37ef2777ce",
      "tree": "27f23c70a302d8d8740b62c569a7d5ee48418aad",
      "parents": [
        "0e4b8e9cb1b422195c49be49b48d039aa0814acf"
      ],
      "author": {
        "name": "Pawin Vongmasa",
        "email": "pawin@google.com",
        "time": "Thu Mar 09 07:02:01 2017 -0800"
      },
      "committer": {
        "name": "Pawin Vongmasa",
        "email": "pawin@google.com",
        "time": "Tue Mar 14 17:13:37 2017 -0700"
      },
      "message": "Move hybrid interface from libbinder to libhidl/transport.\n\nAlso, merge android.hardware.media.omx@1.0-impl into libstagefright_omx.\n\nTest: With CtsMediaTestCases.apk installed,\nadb shell am instrument -e size small -w\n\u0027android.media.cts/android.support.test.runner.AndroidJUnitRunner\u0027\nTest: Manual use of Camera, Photos, Play Movies and YouTube apps.\nTest: Manual use of screen mirroring.\n\nBug: 33854657\nChange-Id: Ie927bcafd86dc7e9509bb8b76bb3b51f9a423cc7\n"
    },
    {
      "commit": "2f1a4737c997d9589447a51974e3aaecafee2937",
      "tree": "606e0c4b811c8cf30b8ce83ea3a361a8ff402337",
      "parents": [
        "ddb459198eeaea80b04b2b345d719cc64c8c1b05"
      ],
      "author": {
        "name": "Jiwen \u0027Steve\u0027 Cai",
        "email": "jwcai@google.com",
        "time": "Sat Feb 04 17:31:55 2017 -0800"
      },
      "committer": {
        "name": "Jiwen \u0027Steve\u0027 Cai",
        "email": "jwcai@google.com",
        "time": "Mon Mar 13 11:38:21 2017 -0700"
      },
      "message": "Refactor AImage/AImageReader\n\n1/ Use BufferItemConsumer instead of CpuConsumer for AImageReader.\n2/ Delay lock image in AImage until the first time getPlaneXXX functions\nget called.\n3/ Add libmedia_jni as dependency so that we can reuse existing code\nfrom android_media_Utils.h\n\nBug: 35114769\nTest: Ran the following CTS test case from CtsCameraTestCases:\n      NativeCameraDeviceTest, NativeCameraManagerTest,\n      NativeImageReaderTest, NativeStillCaptureTest\n\nChange-Id: Ia8dc451ea873e8290592deacc7f8d40360382f86\n"
    },
    {
      "commit": "0e4b8e9cb1b422195c49be49b48d039aa0814acf",
      "tree": "6892ad7ab0b0c8decd1d5e72e74a7bef1e7fb5b5",
      "parents": [
        "c7700a8abb2102c41bc4778a54143818c45e220f",
        "694ebf6734cc7af6b8cf9c032fa3e5a00a54dc84"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Sat Mar 11 10:43:53 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sat Mar 11 10:43:54 2017 +0000"
      },
      "message": "Merge changes from topic \u0027fix omxnode fd leak\u0027\n\n* changes:\n  Fix Omx emptyBuffer fd leak in GraphicBufferSource\n  Revert \"Revert \"Refactor GraphicBufferSource wrappers for OMX HAL\"\"\n"
    },
    {
      "commit": "d095e65c8c125c555046c60539a0f7abf0ccf271",
      "tree": "ea1e88f82d5921fe1515f434d7dfb91d641a175f",
      "parents": [
        "a6331ba30928fac713f9d6ce94e1d5f0d008b501"
      ],
      "author": {
        "name": "Robert Shih",
        "email": "robertshih@google.com",
        "time": "Sat Mar 11 01:20:43 2017 +0000"
      },
      "committer": {
        "name": "Robert Shih",
        "email": "robertshih@google.com",
        "time": "Sat Mar 11 01:20:43 2017 +0000"
      },
      "message": "Revert \"Revert \"Refactor GraphicBufferSource wrappers for OMX HAL\"\"\n\nThis reverts commit a6331ba30928fac713f9d6ce94e1d5f0d008b501.\n\nBug: 36110748\nChange-Id: I56260ae0cc13c17b0edb31c39d22f3fbd6708d34\n"
    },
    {
      "commit": "3ecd658d0e403726cc8e03a4b4a4fdc81a0ec5d3",
      "tree": "74a81b5825ce41194ed9141dafb6515fe249a837",
      "parents": [
        "e298642503ab2e01add43351a7385c9288afa52a",
        "a6331ba30928fac713f9d6ce94e1d5f0d008b501"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Mar 10 23:32:19 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Mar 10 23:32:20 2017 +0000"
      },
      "message": "Merge \"Revert \"Refactor GraphicBufferSource wrappers for OMX HAL\"\""
    },
    {
      "commit": "a6331ba30928fac713f9d6ce94e1d5f0d008b501",
      "tree": "259600cbdcbed440acd90f678896ad62314fabb3",
      "parents": [
        "3d32c95e94f2672d23b58196beafddacba07c5e8"
      ],
      "author": {
        "name": "Rachad Alao",
        "email": "rachad@google.com",
        "time": "Fri Mar 10 20:54:33 2017 +0000"
      },
      "committer": {
        "name": "Rachad Alao",
        "email": "rachad@google.com",
        "time": "Fri Mar 10 21:49:55 2017 +0000"
      },
      "message": "Revert \"Refactor GraphicBufferSource wrappers for OMX HAL\"\n\nThis reverts commit 3d32c95e94f2672d23b58196beafddacba07c5e8.\n\nBug: 36110748\n\nChange-Id: I6d0cd5924b3e1e00cdcf844c638bb0acf4fae2ac\n"
    },
    {
      "commit": "89e5a2b102b484fe19dbda2a0b118edfefc70241",
      "tree": "7d569d72d3a2e16c77a10e08de04746fab6ad52e",
      "parents": [
        "ca47e6d574cd3d02821b87657a80d84b328d4f26",
        "dcdfaecc1fa630a799e1fdb508a9b92da55abc36"
      ],
      "author": {
        "name": "Nicolas Roulet",
        "email": "nicoroulet@google.com",
        "time": "Thu Mar 09 22:55:06 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Mar 09 22:55:06 2017 +0000"
      },
      "message": "Merge \"NBLog periodic merging thread\""
    },
    {
      "commit": "dcdfaecc1fa630a799e1fdb508a9b92da55abc36",
      "tree": "407138ab3b7cef085ca4f283ea24378910ce775e",
      "parents": [
        "cca34c05ca2d5e7ac6c2fbee3ac2db88f059143d"
      ],
      "author": {
        "name": "Nicolas Roulet",
        "email": "nicoroulet@google.com",
        "time": "Tue Feb 14 10:18:39 2017 -0800"
      },
      "committer": {
        "name": "Nicolas Roulet",
        "email": "nicoroulet@google.com",
        "time": "Thu Mar 09 12:30:24 2017 -0800"
      },
      "message": "NBLog periodic merging thread\n\nBug: 35468674\nTest: no change in functionality, everything works as before\nChange-Id: Id2cea243bc15767ca6803c9505bf23a18411500e\n"
    },
    {
      "commit": "22fd9de35b387f1ed808f4fe6e0b87eac3e82690",
      "tree": "693af83a6fce5b6bcab600a3b9c3c279c9a7d16f",
      "parents": [
        "f687b91129586fd1212bcb041d3f9aeb84635eb5",
        "18b570146c971fe729c391bfbb869391084e623d"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Mar 08 16:42:33 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Mar 08 16:42:34 2017 +0000"
      },
      "message": "Merge \"audioflinger: add standby() method to MmapStreamInterface\""
    },
    {
      "commit": "18b570146c971fe729c391bfbb869391084e623d",
      "tree": "44427ed969851fc0e8638b508e265d6d039556b9",
      "parents": [
        "421c434e615a417d9f5443af9e52a30e3b29c256"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Feb 13 16:23:52 2017 -0800"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Mar 08 00:33:34 2017 +0000"
      },
      "message": "audioflinger: add standby() method to MmapStreamInterface\n\nBug: 33398120\nTest: open/start/stop/close MMAP no IRQ stream for capture and playback\n\nChange-Id: I48ec202a71565f759c441c2a835d8c8190e76334\n"
    },
    {
      "commit": "6d616e69c42fc7e692ca3770c6a1f3d573deb6ce",
      "tree": "f22a2bd65244fb50c4f2bcd8b1050fadbe32d3d0",
      "parents": [
        "0012417ddc1320c6df79258266da1e869036b211",
        "3d32c95e94f2672d23b58196beafddacba07c5e8"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Mar 06 22:54:16 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Mar 06 22:54:17 2017 +0000"
      },
      "message": "Merge \"Refactor GraphicBufferSource wrappers for OMX HAL\""
    },
    {
      "commit": "de2a544846419f61080b8f7db427261807390747",
      "tree": "ffd5715452cb582e4568f4e3fd6e79667e56e5b1",
      "parents": [
        "4ec4e6b1073b0dc1b608aeeaf4e3129ea1a725c8"
      ],
      "author": {
        "name": "Jiwen \u0027Steve\u0027 Cai",
        "email": "jwcai@google.com",
        "time": "Wed Feb 08 14:41:41 2017 -0800"
      },
      "committer": {
        "name": "Jiwen \u0027Steve\u0027 Cai",
        "email": "jwcai@google.com",
        "time": "Fri Mar 03 14:51:41 2017 -0800"
      },
      "message": "Add more AIMAGE_FORMAT for RGB formats\n\nAs we are adding AHardwareBuffer access through AImage and AImageReader,\nwe now need buffer formats used by GL/Vulkan.\n\nBug: 35114769\nTest: Built system and ran native camera cts\nChange-Id: I4157c933b411ab597799c933d18fc78ad3323eb5\n"
    },
    {
      "commit": "3d32c95e94f2672d23b58196beafddacba07c5e8",
      "tree": "ea1e88f82d5921fe1515f434d7dfb91d641a175f",
      "parents": [
        "622761ea1155d31aa9e2bdb13fe096800a11f091"
      ],
      "author": {
        "name": "Robert Shih",
        "email": "robertshih@google.com",
        "time": "Thu Feb 23 12:09:30 2017 -0800"
      },
      "committer": {
        "name": "Robert Shih",
        "email": "robertshih@google.com",
        "time": "Fri Mar 03 21:55:14 2017 +0000"
      },
      "message": "Refactor GraphicBufferSource wrappers for OMX HAL\n\nBug: 35449087\nTest: Manual\nChange-Id: I0cf70526d820999902707af466ebb4e8a2c932ab\n"
    },
    {
      "commit": "ac7d4125516299b8a3e6f2b25822a692bdd96311",
      "tree": "ec382c07861eb03439ee4e1e97918b767a2e56f3",
      "parents": [
        "881fc5c65fc7d8c56af0dea181d751fcec3a2b1c"
      ],
      "author": {
        "name": "Pawin Vongmasa",
        "email": "pawin@google.com",
        "time": "Wed Mar 01 05:48:42 2017 -0800"
      },
      "committer": {
        "name": "Pawin Vongmasa",
        "email": "pawin@google.com",
        "time": "Wed Mar 01 22:34:46 2017 -0800"
      },
      "message": "Use tokens for IOmxNode.\n\nTest: Mirroring, Camera, Photos, YouTube and Play Movies apps.\nBug: 35442034\nChange-Id: I0e43ec57d0f37c71d41652fd9883b72650433e20\n"
    },
    {
      "commit": "4ef88d7106c01f81109ee163cb6789073d80c6ae",
      "tree": "b851ebaf0b55c4d8174dd4a744352a3d4513beee",
      "parents": [
        "10cbff139360f3f642e0e3b3ccf2d463dbed22cf"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Tue Feb 21 19:47:53 2017 -0800"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Fri Feb 24 21:05:58 2017 -0800"
      },
      "message": "VolumeShaper: Add AudioTrack restore\n\nMediaPlayer VolumeShaper can now be set before start().\n\nTest: CTS and Ducking\nBug: 31015569\nChange-Id: Idf63c167e164161b200e2467fbeb9409b3097dbe\n"
    },
    {
      "commit": "10cbff139360f3f642e0e3b3ccf2d463dbed22cf",
      "tree": "85bef4f57dd8ff375059a1682c64941da884d0d5",
      "parents": [
        "1e50d1daa696e159d1ed0606de373c1cccef2c84"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Tue Feb 21 17:30:14 2017 -0800"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Fri Feb 24 18:56:55 2017 -0800"
      },
      "message": "VolumeShaper: Enable for offload and direct tracks\n\nTest: Play Music in offload mode\nBug: 31015569\nChange-Id: I00bb59e3e6809d4682f42057b1cc083f4fa9b9d1\n"
    },
    {
      "commit": "e2b43843fd12783188edd2c54188ea8d26864788",
      "tree": "baab518964134359128ed35e5ebfc36cf977cde4",
      "parents": [
        "b4d5ec0d8f3755ccb8d5ce51798c3004330e1120"
      ],
      "author": {
        "name": "Vijay Venkatraman",
        "email": "vijaykv@google.com",
        "time": "Thu Feb 02 13:35:37 2017 -0800"
      },
      "committer": {
        "name": "Vijay Venkatraman",
        "email": "vijaykv@google.com",
        "time": "Fri Feb 24 11:47:45 2017 -0800"
      },
      "message": "Moved headers from include/ to appropriate libs\n\ninclude/camera -\u003e camera/include/camera\ninclude/media/audiohal -\u003e media/libaudiohal/include\ninclude/media/AudioResampler*.h -\u003e media/libaudioprocessing/include\ninclude/media/Audio*.h,IAudio*.h,IEffect*.h,ToneGenerator.h -\u003e media/libaudioclient/include\ninclude/media/EffectsFactoryApi.h -\u003e media/libeffects/include\ninclude/media/stagefright -\u003e media/libstagefright/include\ninclude/media/nbaio -\u003e media/libnbaio/include\ninclude/media/\u003crest of files\u003e -\u003e media/libmedia/include\ninclude/cpustats -\u003e media/libcpustats/include/cpustats\n\nAdded symlinks from old location to new ones\n\nBug: 33241851\n\nTest: VNDK linked modules will need to add explicit lib dep.\nAll other modules should compile the same\n\nChange-Id: I0ecf754a2132640ae781a3cc31428fb8c0bd1669\n"
    },
    {
      "commit": "9dbe9a57bf0ae2494ec312d6c1b06feec20e9ec9",
      "tree": "cd5c27963da0e52e42efe6bb0a5e8d97b6af6f41",
      "parents": [
        "a146a0c499e53a4f064777ab2b45407c14429fa0"
      ],
      "author": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Tue Jan 03 11:35:15 2017 -0800"
      },
      "committer": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Sat Feb 18 00:57:33 2017 +0000"
      },
      "message": "MediaCas: add MediaCasService\n\nThis CL adds API only without implementation.\n\nbug: 22804304\nChange-Id: Ibb5a29cc616ec0af81957b2bfe1419c482591753\n"
    },
    {
      "commit": "cd01db5572f07e30c8b0b08e8b50b89c69ae14c1",
      "tree": "97b959d2f94653960859cdd5222e58446b7f9a7c",
      "parents": [
        "ea42da480ddd116cb70f2c8a7642df7c12b996af",
        "3cb5316c442d182ada75a1394e1505a017400526"
      ],
      "author": {
        "name": "Jeff Tinker",
        "email": "jtinker@google.com",
        "time": "Fri Feb 17 23:30:15 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Feb 17 23:30:16 2017 +0000"
      },
      "message": "Merge \"Support multiple codecs per crypto instance\""
    },
    {
      "commit": "ea42da480ddd116cb70f2c8a7642df7c12b996af",
      "tree": "a1acf6c39eb4ff9c9cea984bca17ade294937405",
      "parents": [
        "c0a3f679109769d8fb43b66fccbe47f8c505d12e",
        "ac4e4189db77dc0af7671b162d11be5ccec69339"
      ],
      "author": {
        "name": "Ray Essick",
        "email": "essick@google.com",
        "time": "Fri Feb 17 22:39:35 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Feb 17 22:39:36 2017 +0000"
      },
      "message": "Merge \"Media metrics for android.media.MediaRecorder\""
    },
    {
      "commit": "c0a3f679109769d8fb43b66fccbe47f8c505d12e",
      "tree": "295739e8105bab75348d97544fca85d6e1d95008",
      "parents": [
        "0e701fd27a2daad2eadf83f904c68a418f93cf92",
        "13a926879249276771b0097538459c7550e2f5ce"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Feb 17 22:26:19 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Feb 17 22:26:19 2017 +0000"
      },
      "message": "Merge \"Use hidl.allocator for IAllocator.\""
    },
    {
      "commit": "0e701fd27a2daad2eadf83f904c68a418f93cf92",
      "tree": "1366c91c9df6dddc28c098e8d57e8009f673cd4c",
      "parents": [
        "c01ea695f5e55137834b5217c30ff71dccfcc989",
        "bc1713d3b85d7ce656e032da6e4b6b342f14db03"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Feb 17 22:21:01 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Feb 17 22:21:03 2017 +0000"
      },
      "message": "Merge \"fallout of splitting rect.h out of libandroid.\""
    },
    {
      "commit": "c01ea695f5e55137834b5217c30ff71dccfcc989",
      "tree": "998b024e0cbec3a4f3262956584d342379cfe944",
      "parents": [
        "ccaeb5f08d037cc0ec7a9ab69bf03364b3fad452",
        "cd5dd016657b351d9c74dcdff87547a781108ccb"
      ],
      "author": {
        "name": "Nicolas Roulet",
        "email": "nicoroulet@google.com",
        "time": "Fri Feb 17 22:08:37 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Feb 17 22:08:37 2017 +0000"
      },
      "message": "Merge \"Implement entry iterators\""
    },
    {
      "commit": "3cb5316c442d182ada75a1394e1505a017400526",
      "tree": "cba6c593af42f45211dd149d66975c06b2185fa0",
      "parents": [
        "09b92c347ddcaf751571363e54a769eb4b95edd3"
      ],
      "author": {
        "name": "Jeff Tinker",
        "email": "jtinker@google.com",
        "time": "Thu Feb 16 12:06:32 2017 -0800"
      },
      "committer": {
        "name": "Jeff Tinker",
        "email": "jtinker@google.com",
        "time": "Fri Feb 17 13:04:02 2017 -0800"
      },
      "message": "Support multiple codecs per crypto instance\n\nThe initial drm hidl hal implementation assumed one\ncodec per crypto instance, but in fact there can be\nmultiple codecs per crypto instance. This change\nextends the drm hal to allow multiple memory heaps\nper crypto plugin. It fixes the issue of mapping\nmemory frequently during playback.\n\nbug:35275191\n\nTest: manual verification with Play Movies on angler\nin passthrough mode and on marlin in binderized mode.\n\nChange-Id: Icada005f515483d7bc214b08caf6eea46ca354a7\n"
    },
    {
      "commit": "bc1713d3b85d7ce656e032da6e4b6b342f14db03",
      "tree": "df2747b33b188cf3b5af2505d1076984120ddc8d",
      "parents": [
        "87251eee475a53599b980334df777326fa8e1527"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Mon Feb 13 18:37:50 2017 -0800"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Fri Feb 17 12:25:14 2017 -0800"
      },
      "message": "fallout of splitting rect.h out of libandroid.\n\nA lot of media makefiles didn’t specify libui or\nlibgui but included headers from these libraries\ndirectly. \n\nIt works because these headers are on the global\ninclude path. With this change, though, rect.h\nis not anymore (albeit exported from libui).\n\nTest: built and booted device\nBug: 35164655\nChange-Id: I72e8f0b7bd25c6a67eedc17afe52c4c484a147fe"
    },
    {
      "commit": "13a926879249276771b0097538459c7550e2f5ce",
      "tree": "dcf98d4122999450a70164d3ae6d3d2522c114d8",
      "parents": [
        "09b92c347ddcaf751571363e54a769eb4b95edd3"
      ],
      "author": {
        "name": "Steven Moreland",
        "email": "smoreland@google.com",
        "time": "Fri Feb 17 12:22:38 2017 -0800"
      },
      "committer": {
        "name": "Steven Moreland",
        "email": "smoreland@google.com",
        "time": "Fri Feb 17 12:22:38 2017 -0800"
      },
      "message": "Use hidl.allocator for IAllocator.\n\nandroid.hidl.memory is being split into android.hidl.memory and\nandroid.hidl.allocator since the former is a passthrough hal and the\nlatter is a binderized service.\n\nBug: 35327976\nTest: hidl_test, lshal, youtube/camera works\nChange-Id: I7a2e72dcd3721d2689eb7ef95f5b140ecc1c446f\n"
    },
    {
      "commit": "87251eee475a53599b980334df777326fa8e1527",
      "tree": "046358b376d606a499d855d306c53a6cce53314f",
      "parents": [
        "d5973043bed640cf634a26d65dedcde5d5ab3037",
        "40a4498b967d000c93e8561db5fdd0488cc1d824"
      ],
      "author": {
        "name": "Nicolas Roulet",
        "email": "nicoroulet@google.com",
        "time": "Fri Feb 17 19:46:31 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Feb 17 19:46:31 2017 +0000"
      },
      "message": "Merge \"Implement log merging.\""
    },
    {
      "commit": "8dc323ef737babc1b1c0b0347b4b895969aee77b",
      "tree": "4afdfab9a14f359bf13e87d9f120fb0363032049",
      "parents": [
        "ca8126c04c91b6b5030be2e2c8cff786c160faac",
        "c20cb50c1c14cd765874511872f087c875f43ed9"
      ],
      "author": {
        "name": "Nicolas Roulet",
        "email": "nicoroulet@google.com",
        "time": "Fri Feb 17 19:41:23 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Feb 17 19:41:24 2017 +0000"
      },
      "message": "Merge \"Added process name to PID log\""
    },
    {
      "commit": "cd5dd016657b351d9c74dcdff87547a781108ccb",
      "tree": "7406a11b1a06b2abf94c72e216cb3810a4a15fc1",
      "parents": [
        "40a4498b967d000c93e8561db5fdd0488cc1d824"
      ],
      "author": {
        "name": "Nicolas Roulet",
        "email": "nicoroulet@google.com",
        "time": "Mon Feb 13 12:09:28 2017 -0800"
      },
      "committer": {
        "name": "Nicolas Roulet",
        "email": "nicoroulet@google.com",
        "time": "Fri Feb 17 11:27:56 2017 -0800"
      },
      "message": "Implement entry iterators\n\nSome code refactoring\n\nBug: 35329553\nTest: manual\nChange-Id: I06e4ac1207b5c707d663ab2f141bb08d80272642\n"
    },
    {
      "commit": "181fd9b5b64bab24bb49a34208f60a16e98488c5",
      "tree": "01f5f3e2cd59acbe4a3c7d92f09ff1f5418af206",
      "parents": [
        "42a5de6da0084fd430c70d58671559f71c738cf0"
      ],
      "author": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Thu Feb 16 15:53:03 2017 -0800"
      },
      "committer": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Fri Feb 17 03:06:13 2017 +0000"
      },
      "message": "stagefright: verbose logging for media connect/disconnect\n\nbug: 35364355\n\nChange-Id: I7b5f0aecf98733255cc27b091fea78298fa7e602\n"
    },
    {
      "commit": "40a4498b967d000c93e8561db5fdd0488cc1d824",
      "tree": "a95deb459b6b0ea0de8e711a0cb545c49eb33769",
      "parents": [
        "4da7820be451847bad698ac0f687b964d9b5d34f"
      ],
      "author": {
        "name": "Nicolas Roulet",
        "email": "nicoroulet@google.com",
        "time": "Fri Feb 03 13:39:57 2017 -0800"
      },
      "committer": {
        "name": "Nicolas Roulet",
        "email": "nicoroulet@google.com",
        "time": "Thu Feb 16 17:04:01 2017 -0800"
      },
      "message": "Implement log merging.\n\nStill missing:\n * Put in separate periodical thread\n\nBug: 35329293\nTest: manual\nChange-Id: Ie8802fb7972e20d8dec493376ea253bb782f3a46\n"
    },
    {
      "commit": "42a5de6da0084fd430c70d58671559f71c738cf0",
      "tree": "f000de2274c93d2bc42ee4ef703940a1216568f6",
      "parents": [
        "9c47c97ecac581d66b6febafd156618247e86742",
        "764d945bfdb9dec60f2b482fbf6c5e83824ed950"
      ],
      "author": {
        "name": "Hangyu Kuang",
        "email": "hkuang@google.com",
        "time": "Fri Feb 17 00:26:04 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Feb 17 00:26:05 2017 +0000"
      },
      "message": "Merge \"media: Support accurate pause/resume/stop in GraphicBufferSource.\""
    },
    {
      "commit": "764d945bfdb9dec60f2b482fbf6c5e83824ed950",
      "tree": "2967f3bc3b05f0fffd413b23f20049412d8910e7",
      "parents": [
        "4441393a9d9830de8b059b279127c6b558f194ba"
      ],
      "author": {
        "name": "Hangyu Kuang",
        "email": "hkuang@google.com",
        "time": "Tue Dec 13 13:07:45 2016 -0800"
      },
      "committer": {
        "name": "Hangyu Kuang",
        "email": "hkuang@google.com",
        "time": "Thu Feb 16 14:33:01 2017 -0800"
      },
      "message": "media: Support accurate pause/resume/stop in GraphicBufferSource.\n\nProcess all buffers that have been queued to the encoder on\nStagefrightRecorder::pause()/stop(). Furthermore, add timestamp support for\npause/stop. Buffers willi keep getting encoded until 1) a buffer with a higher\ntimestamp is queued, or 2) the bufferqueue is abandoned by the producer.\n\nTest: Recording with hacking GoogleCamera timestamp. And Mediarecorder CTS test.\nBug:32765698\nChange-Id: I9ec33d635aef269836d7a5d9f4b906cb41b46a0d\n"
    },
    {
      "commit": "c20cb50c1c14cd765874511872f087c875f43ed9",
      "tree": "4da5367ebd84ebeac6dd927d535a5b1dd84c79e4",
      "parents": [
        "2f77a2229be73b222098c45aed73728842667e12"
      ],
      "author": {
        "name": "Nicolas Roulet",
        "email": "nicoroulet@google.com",
        "time": "Wed Feb 01 12:35:24 2017 -0800"
      },
      "committer": {
        "name": "Nicolas Roulet",
        "email": "nicoroulet@google.com",
        "time": "Thu Feb 16 14:22:16 2017 -0800"
      },
      "message": "Added process name to PID log\n\nBug: 35357686\nTest: included in CL\nChange-Id: Ie4d3cb66a2c766ce87ebabcc9c0d3aa988702e09\n"
    },
    {
      "commit": "9c47c97ecac581d66b6febafd156618247e86742",
      "tree": "c49b5394e42b293c0333754bf01c71d387227833",
      "parents": [
        "6ab6061131a10b7f38074c156fd529fa3719a32b"
      ],
      "author": {
        "name": "Pawin Vongmasa",
        "email": "pawin@google.com",
        "time": "Wed Feb 08 04:09:38 2017 -0800"
      },
      "committer": {
        "name": "Pawin Vongmasa",
        "email": "pawin@google.com",
        "time": "Thu Feb 16 11:16:06 2017 -0800"
      },
      "message": "Enable full migration of OMX to Treble.\n\n1. Toggling between Treble and non-Treble OMX will now be controlled by\ntwo properties: \"persist.hal.binderization\" and\n\"persist.media.treble_omx\". (Before this CL, this was controlled by\n\"debug.treble_omx\".)\n- If persist.media.treble_omx is not set, it will assume a default value\nof -1.\n- If persist.media.treble_omx is -1, persist.hal.binderization will be\nused to determine whether OMX will be created as a Treble or non-Treble\nservice.\n- If persist.media.treble_omx is 1, OMX will be created as a Treble\nservice.\n- If persist.media.treble_omx has any other value, OMX will be created\nas a non-Treble service.\n- persist.media.treble_omx can be changed without rebooting, but it will\nonly take effect after media.codec and mediaserver processes are killed.\n\n2. Remove all dependencies on non-Treble service. This was not done for\nMediaCodec, MediaPlayerService::Client, MediaRecorderClient, stagefright\ncommand, and omx_tests command. OMXClient and media.codec process will\nnow pick the right version of OMX based on properties mentioned above.\nBefore this CL, media.codec would always present the non-Treble version\nof OMX regardless of the flag.\n\n3. Provide workarounds for some HIDL issues.\n- A sequence of nested binder and hwbinder calls require many threads to\nhandle. (b/35283480) The workaround is to increase the number of threads\nin the thread pool of media.codec process.\n- android.hidl.base@1.0::IBase::unlinkToDeath takes a strong pointer\ninstead of a weak pointer. (b/35233970) This causes an infinite\nrecursion in the destructor of ServiceDeathNotifier in\nMediaPlayerService::Client and MediaRecorderClient. The workaround moves\ncalls to unlinkToDeath() outside of the destructor.\n\nTest: Recorded and played videos with Camera app. Ran stagefright and\nomx_tests commands.\nBug: 31399200\n\nChange-Id: Id1940ed982838e10bf10fe8ed5b7bb912a5a2d3a\n"
    },
    {
      "commit": "cefac14261a32fb856b0d1ab31541787112e306e",
      "tree": "d6fb3a4890929e05a5ffccc2d09c0b9da3d6bddc",
      "parents": [
        "2f77a2229be73b222098c45aed73728842667e12"
      ],
      "author": {
        "name": "Hassan Shojania",
        "email": "shojania@google.com",
        "time": "Mon Feb 06 21:02:02 2017 -0800"
      },
      "committer": {
        "name": "Hassan Shojania",
        "email": "shojania@google.com",
        "time": "Wed Feb 15 18:15:37 2017 -0800"
      },
      "message": "Modular DRM for MediaPlayer\n\nBug:  34559906\nTest: Manual through the test app\n\nChange-Id: I286f9ff199c34563b7b8643de725f8d1534ea06c\n"
    },
    {
      "commit": "ac4e4189db77dc0af7671b162d11be5ccec69339",
      "tree": "7ab5eca97ac9179fc6218fb5e19cd396c4a43e6d",
      "parents": [
        "36b31c87807a4f8cd22e73da9bf2df7babdb906e"
      ],
      "author": {
        "name": "Ray Essick",
        "email": "essick@google.com",
        "time": "Sun Feb 12 19:26:52 2017 -0800"
      },
      "committer": {
        "name": "Ray Essick",
        "email": "essick@google.com",
        "time": "Wed Feb 15 10:21:12 2017 -0800"
      },
      "message": "Media metrics for android.media.MediaRecorder\n\nunderlying collection of MediaRecorder metrics for getMetrics() API\nand for media metrics cloud analysis.\n\nBug:  35150984\nTest: hacked CTS, observation of \u0027dumpsys media.metrics\u0027\nChange-Id: Ife2ab06158b0015549ed17d52d7f4c35781f5e0f\n"
    },
    {
      "commit": "30d48d9542fb3f85889108c1ee2daff98a4860e7",
      "tree": "b85955dd0493f049b91a5b4ab32527f39a4ba6e2",
      "parents": [
        "b129be34d1b08440d2867702b22e81c037be899a",
        "9fc8b5cd4a64ef07e84c69112461324d5c13a0b0"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Tue Feb 14 01:38:56 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Feb 14 01:38:57 2017 +0000"
      },
      "message": "Merge \"VolumeShaper: Initial implementation\""
    },
    {
      "commit": "9fc8b5cd4a64ef07e84c69112461324d5c13a0b0",
      "tree": "2d058e73f09f1822108daad51948a34c420634e3",
      "parents": [
        "ed1abbfc73d4ade0ef08239fc56ac66d70a00a92"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Tue Jan 24 13:36:48 2017 -0800"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Mon Feb 13 14:31:46 2017 -0800"
      },
      "message": "VolumeShaper: Initial implementation\n\nThe VolumeShaper is used to apply a volume\nenvelope to an AudioTrack or a MediaPlayer.\n\nTest: CTS\nBug: 30920125\nBug: 31015569\nChange-Id: I42e2f13bd6879299dc780e60d143c2d465483a44\n"
    },
    {
      "commit": "7863c791dba8c4e5e9591b6837d410e580be0a25",
      "tree": "5199273fa3bac5303b0aa8dcdfd984f49f75e30f",
      "parents": [
        "94a20830fc0768efc138ab7f746f80e8b3d60c15",
        "6acd1d432f526ae9a055ddaece28bf93b474a776"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Feb 10 20:24:21 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Feb 10 20:24:22 2017 +0000"
      },
      "message": "Merge changes from topic \u0027mmap_no_irq\u0027\n\n* changes:\n  Add support for mmap stream\n  audioflinger: define MMAP HAL Stream control interface\n"
    },
    {
      "commit": "94a20830fc0768efc138ab7f746f80e8b3d60c15",
      "tree": "e163737cdd306819a8423dc7e8a42cf83b8a67fb",
      "parents": [
        "6bd0c13eaa13b089bbe414a05b0ed834c825d587",
        "032845cc878f538e3336c96e1c24668953eab971"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Fri Feb 10 20:04:58 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Feb 10 20:04:59 2017 +0000"
      },
      "message": "Merge \"fallout of view::Surface / Surface split\""
    },
    {
      "commit": "032845cc878f538e3336c96e1c24668953eab971",
      "tree": "a2697cdbed6665b9de900200e4bbea86fa19d3b0",
      "parents": [
        "e2ce9366d1b138326035c643b7fec68cd2dc83c5"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Wed Feb 08 17:05:02 2017 -0800"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Thu Feb 09 23:07:17 2017 +0000"
      },
      "message": "fallout of view::Surface / Surface split\n\nTest: built and booted device\nBug: treble\nChange-Id: I022ebb581563463e93935da61a113087043dfeca\n"
    },
    {
      "commit": "551061ab211e1da0f060d7c895617814618da5c2",
      "tree": "f8010b47611e50cf67eada7498a66cdee1259579",
      "parents": [
        "e2ce9366d1b138326035c643b7fec68cd2dc83c5"
      ],
      "author": {
        "name": "Kevin Rocard",
        "email": "krocard@google.com",
        "time": "Mon Feb 06 15:59:29 2017 -0800"
      },
      "committer": {
        "name": "Kevin Rocard",
        "email": "krocard@google.com",
        "time": "Thu Feb 09 10:29:05 2017 -0800"
      },
      "message": "audiopolicy: Two clients can not offload concurrently\n\nIf two application are playing a compatible offload stream at the same\ntime.\nEg: two games playing MP3. At least one not taking the audio\nfocus.\n\nThe audio policy was offloading both stream resulting in audio glitches\nand one stream being dropped.\n\nConcurrent offload streams is intended to be a transitioning state when\nan application wants back to back playbacks.\n\nIt should not be allowed for two different applications to stream at the\nsame time.\n\nTest: Play mp3 while mp3 is already offloaded.\nBug: 34012147\n\nChange-Id: I98a8913d6faf5092a1e43a0bdd0f1ce1482221a9\nSigned-off-by: Kevin Rocard \u003ckrocard@google.com\u003e\n"
    },
    {
      "commit": "ba13b7bc3d46d958bc4a395f2c162cb112ec1f3a",
      "tree": "25b98d0f3db1f6b59045880396b2ce8b77faae35",
      "parents": [
        "d2b0b504f1762cf31f61fda093b180544acd3b53"
      ],
      "author": {
        "name": "Ray Essick",
        "email": "essick@google.com",
        "time": "Tue Feb 07 10:03:18 2017 -0800"
      },
      "committer": {
        "name": "Ray Essick",
        "email": "essick@google.com",
        "time": "Tue Feb 07 10:03:18 2017 -0800"
      },
      "message": "connect APIs to mediaextractor getMetrics()\n\nplumbing so that user level android.media.MediaExtractor.getMetrics()\nwill get down to where we keep the metrics and then haul them back\nto the application.  Includes the right hooks so that per-container-type\nmetrics will also be managed.\n\nBug: 35094936\nTest: monitor dumpsys output, augmented CTS examination\n"
    },
    {
      "commit": "8eacd8090e16c022dcbb11850cff83f984fe2357",
      "tree": "8efbb8305163d4956d8e096e769801a11e6ba2b8",
      "parents": [
        "c17c28aac0fa31be3fc4068da5e2f95731e7c361",
        "fe1e1449cadff4f946c33403aecc73b4b4a11e56"
      ],
      "author": {
        "name": "Nicolas Roulet",
        "email": "nicoroulet@google.com",
        "time": "Fri Feb 03 17:35:28 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Feb 03 17:35:29 2017 +0000"
      },
      "message": "Merge \"Implemented typed, thread-specific logging system. Currently supported types are:  * Strings  * Integers  * Floats  * Timestamps  * Process IDs\""
    },
    {
      "commit": "fe1e1449cadff4f946c33403aecc73b4b4a11e56",
      "tree": "500bb66d15abbbd9b48dce430480cc35d4e6245b",
      "parents": [
        "5a3b54df3014ece49eb1f339e5598c01c6126251"
      ],
      "author": {
        "name": "Nicolas Roulet",
        "email": "nicoroulet@google.com",
        "time": "Mon Jan 30 12:02:03 2017 -0800"
      },
      "committer": {
        "name": "Nicolas Roulet",
        "email": "nicoroulet@google.com",
        "time": "Thu Feb 02 16:45:04 2017 -0800"
      },
      "message": "Implemented typed, thread-specific logging system. Currently supported types are:\n * Strings\n * Integers\n * Floats\n * Timestamps\n * Process IDs\n\nAdded printf-like formatted logging using mentioned types.\n\nTest: included in this CL\nBug: 29421410\nChange-Id: Ie07b78d8d39c32fcc8a122ffa9b1b7082800b990\n"
    },
    {
      "commit": "204e2c5ebd4047e417faa985fb0afd4d72f9d844",
      "tree": "205f7ef94b173bc0e74fa5f24cc80b37e36b518e",
      "parents": [
        "c5505da9783d88521eb6b7d6ce5f5b908efdd8df",
        "43605e237f757113b696c0ffffc7b21c12a1752c"
      ],
      "author": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Fri Feb 03 00:01:53 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Fri Feb 03 00:01:53 2017 +0000"
      },
      "message": "CameraBase: Don\u0027t return an sp\u003c\u003e by reference am: f86177dd93 am: e1bdaa8fb1 am: 6cb1912505 am: 4f95157295 am: 7376ce23ad\nam: 43605e237f\n\nChange-Id: I35d434f0efc0cc77f7dc839c554fd164ae0ec4e4\n"
    },
    {
      "commit": "43605e237f757113b696c0ffffc7b21c12a1752c",
      "tree": "cf20d39af7e4aa882d0cc9544a02a87e1e9f8f01",
      "parents": [
        "29e24f225679737229364799e09b5cc19c816f3e",
        "7376ce23ad1c278822a4725ba81bd870519e64c8"
      ],
      "author": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Thu Feb 02 23:59:31 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Thu Feb 02 23:59:31 2017 +0000"
      },
      "message": "CameraBase: Don\u0027t return an sp\u003c\u003e by reference am: f86177dd93 am: e1bdaa8fb1 am: 6cb1912505 am: 4f95157295\nam: 7376ce23ad\n\nChange-Id: I7aba21e50dc865a3ee98e85782e0232bfd9aa380\n"
    },
    {
      "commit": "7376ce23ad1c278822a4725ba81bd870519e64c8",
      "tree": "7f4548b44db15ffa1c73beba85061f069560c34a",
      "parents": [
        "8a91cf1510c006b0d734b14d1a241ed77cf39ec7",
        "4f951572955e2d7c39bd629ddbfb45d4c05a93b9"
      ],
      "author": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Thu Feb 02 23:57:02 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Thu Feb 02 23:57:02 2017 +0000"
      },
      "message": "CameraBase: Don\u0027t return an sp\u003c\u003e by reference am: f86177dd93 am: e1bdaa8fb1 am: 6cb1912505\nam: 4f95157295\n\nChange-Id: I31c70615f0b81da32ebbd2262b262a9024e114dc\n"
    },
    {
      "commit": "6cb19125052b31023b497b5e2f03f6963f4b48aa",
      "tree": "e95e671bfe9870850641b541989e5370d6da2ed0",
      "parents": [
        "1c4083fcbff36dbb67e9e250d79598b96d9b1ed6",
        "e1bdaa8fb12da64015318eab6ee5d30d5fe2368f"
      ],
      "author": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Thu Feb 02 23:49:01 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Thu Feb 02 23:49:01 2017 +0000"
      },
      "message": "CameraBase: Don\u0027t return an sp\u003c\u003e by reference am: f86177dd93\nam: e1bdaa8fb1\n\nChange-Id: I1c48315fdff2a24d31d62d6aaa550f7d3a02bdde\n"
    },
    {
      "commit": "e1bdaa8fb12da64015318eab6ee5d30d5fe2368f",
      "tree": "d7c8bc9db429801fe011f564dac986a967507387",
      "parents": [
        "96f48e1601731dde35ac97ccc0a5eff55cdd32ed",
        "f86177dd930680bf939ef33b9977db27628d7aff"
      ],
      "author": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Thu Feb 02 23:47:01 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Thu Feb 02 23:47:01 2017 +0000"
      },
      "message": "CameraBase: Don\u0027t return an sp\u003c\u003e by reference\nam: f86177dd93\n\nChange-Id: I899d9c4b668171f6e68fdcfac9c7b973831a6a25\n"
    },
    {
      "commit": "f86177dd930680bf939ef33b9977db27628d7aff",
      "tree": "113868c2d2eef459f6538acd0a6d9ff9ffb1d84d",
      "parents": [
        "5337437a1cd62a96a0c772e2ff0738e372d8aa93"
      ],
      "author": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Wed Feb 01 15:27:41 2017 -0800"
      },
      "committer": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Thu Feb 02 12:13:16 2017 -0800"
      },
      "message": "CameraBase: Don\u0027t return an sp\u003c\u003e by reference\n\nIf the server dies, the binder death callback clears out\nthe global camera service sp\u003c\u003e, and any current references to it\nwill become quite unhappy.\n\nTest: Camera CTS passes\nBug: 31992879\nChange-Id: I2966bed35d0319e3f26e3d4b1b8dc08006a22348\n"
    },
    {
      "commit": "8dc4ee85f02e7a40b93280fb1394c729c315e462",
      "tree": "c4554807181e83995658e41b9c34d6d9c1dfce63",
      "parents": [
        "a2db0cb965d26352e01dd930687706aec1a43b7c",
        "49dcfd2089f667f18859654d7c256974aae4e857"
      ],
      "author": {
        "name": "Hangyu Kuang",
        "email": "hkuang@google.com",
        "time": "Thu Feb 02 18:07:17 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Feb 02 18:07:18 2017 +0000"
      },
      "message": "Merge \"media: Add 3gp output format to MediaMuxer.\""
    },
    {
      "commit": "8a21c0191f974a0b9cbd5818052e2655e0aaa306",
      "tree": "a44985c7545c869f72553865d0bbc04c0250aeb7",
      "parents": [
        "12eb31583f40220b73a5e33b427e1d8f58243939"
      ],
      "author": {
        "name": "Pawin Vongmasa",
        "email": "pawin@google.com",
        "time": "Tue Dec 27 04:30:54 2016 +0700"
      },
      "committer": {
        "name": "Pawin Vongmasa",
        "email": "pawin@google.com",
        "time": "Tue Jan 31 16:42:09 2017 -0800"
      },
      "message": "Modify ACodec to allow using Treble.\n\nACodec will connect to the Treble version of Omx if the property\n\"debug.treble_omx\" is set to true (\"1\", \"y\", \"yes\", \"true\" or \"on\").\n\nAlso, fix some bugs found so far.\n\nTest: Compiles\nBug: 31399200\nChange-Id: I52b27b5f99bc1d6797d3b83b8be794ed2de9956a\n"
    },
    {
      "commit": "c5516dcd272bda8ef4fab9999b7035f13eb2cbd8",
      "tree": "2778e00db5f650c7a5695636e4058d7e278ce0ac",
      "parents": [
        "a1ee4c28facd2e4ae0eb288178c8988bf1806148",
        "94e36c5607ec15e4c9a1dff56ca23d4001b932b3"
      ],
      "author": {
        "name": "Pawin Vongmasa",
        "email": "pawin@google.com",
        "time": "Wed Feb 01 00:39:59 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Feb 01 00:40:00 2017 +0000"
      },
      "message": "Merge \"Add an option to connect OMXClient to a Treble service.\""
    },
    {
      "commit": "68b3d9f49e68a11af5225175dc9e60ce88819e84",
      "tree": "750d8fe493c2ec45542968192ecfe52d83133a02",
      "parents": [
        "9b088162cb9cdeb542f106a45d06a1f802e91e6e"
      ],
      "author": {
        "name": "Edwin Wong",
        "email": "edwinwong@google.com",
        "time": "Fri Jan 06 19:07:54 2017 -0800"
      },
      "committer": {
        "name": "Edwin Wong",
        "email": "edwinwong@google.com",
        "time": "Mon Jan 30 15:26:51 2017 -0800"
      },
      "message": "Pass application packagename to drm plugin.\n\nPass application package name to createPlugin and createDrmPlugin.\nThe application packagename will be used as part of a unique\nidentifier for drm plugin.\n\nTest: Play Movies.\n\nTest: ANDROID_BUILD_TOP\u003d ./android-gts/tools/gts-tradefed run gts -m\nGtsMediaTestCases --test\ncom.google.android.media.gts.WidevineH264PlaybackTests#testL1With480P60\n\nVerify the application\u0027s packagename is reachable in the drm plugin\u0027s\ndebug log.\n\nbug: 27101531\n\nChange-Id: I84fb09b591a7af63f6e20004e910112a4ce6ebac\n"
    },
    {
      "commit": "49dcfd2089f667f18859654d7c256974aae4e857",
      "tree": "38f0c37fe6d13c3c149df19f0645e0db2bb502d7",
      "parents": [
        "e4806bbccc2150607d84d2df5cb91aa24c4fe10a"
      ],
      "author": {
        "name": "Hangyu Kuang",
        "email": "hkuang@google.com",
        "time": "Mon Jan 30 13:17:00 2017 -0800"
      },
      "committer": {
        "name": "Hangyu Kuang",
        "email": "hkuang@google.com",
        "time": "Mon Jan 30 14:33:09 2017 -0800"
      },
      "message": "media: Add 3gp output format to MediaMuxer.\n\nTest: CTS test.\nBug: 34281643\nChange-Id: I9f716aba6f2bcbbcdcd65959307a5013a5751f51\n"
    },
    {
      "commit": "94e36c5607ec15e4c9a1dff56ca23d4001b932b3",
      "tree": "85ec4396864895013e80626ac0e3de4583696796",
      "parents": [
        "24a8da67457267e4bac9ac2ffa07e1762510ca34"
      ],
      "author": {
        "name": "Pawin Vongmasa",
        "email": "pawin@google.com",
        "time": "Tue Dec 27 04:59:25 2016 +0700"
      },
      "committer": {
        "name": "Pawin Vongmasa",
        "email": "pawin@google.com",
        "time": "Fri Jan 27 17:32:56 2017 -0800"
      },
      "message": "Add an option to connect OMXClient to a Treble service.\n\nTest: Compiles\nBug: 31399200\nChange-Id: I063a8eead79da2704ba25a864f3d2c2627341c51\n"
    },
    {
      "commit": "1784ec91786ed3a9e1fffcaa20fec8c33830b1ad",
      "tree": "64112aa6e6f4f8d6947c0edeeaa4140123a44f76",
      "parents": [
        "3a0a8b4cc0632a09fa9c669edf9c6a27be5d37d9",
        "071437a2005e39969983ec619a4c7bc54c2dc5a9"
      ],
      "author": {
        "name": "Hassan Shojania",
        "email": "shojania@google.com",
        "time": "Fri Jan 27 18:07:59 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Jan 27 18:07:59 2017 +0000"
      },
      "message": "Merge \"Modular DRM for MediaPlayer\""
    },
    {
      "commit": "3a0a8b4cc0632a09fa9c669edf9c6a27be5d37d9",
      "tree": "236ab0766f2787b1935a9c4dd517df65f21b2238",
      "parents": [
        "45cc284af254a71ae9294585448419f91ae27ee4",
        "db1221479a7ffe7094c51c463bbd36522ed106ab"
      ],
      "author": {
        "name": "Ray Essick",
        "email": "essick@google.com",
        "time": "Fri Jan 27 02:33:45 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Jan 27 02:33:46 2017 +0000"
      },
      "message": "Merge \"Media Metrics for NuPlayer, Codec, Extractor\""
    },
    {
      "commit": "45cc284af254a71ae9294585448419f91ae27ee4",
      "tree": "c68a2845c1155d92657b8ef825fbde2e15ff0e56",
      "parents": [
        "2b118b8f939c0cf1b287b1641d17b057a8e25ce7",
        "e08ab77d276e83388da1f811c556d105a38a81d3"
      ],
      "author": {
        "name": "Ray Essick",
        "email": "essick@google.com",
        "time": "Fri Jan 27 02:33:45 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Jan 27 02:33:46 2017 +0000"
      },
      "message": "Merge \"Provide access for metrics-\u003eJava Bundle conversion\""
    },
    {
      "commit": "2b118b8f939c0cf1b287b1641d17b057a8e25ce7",
      "tree": "5ec25bd81b9d5e692fcab16b4f143fb3f6206ede",
      "parents": [
        "fb388a72e613d669e4de8b0e07d64a6bf640b63a",
        "eeac97b18ca5c939bf2ac59334d36d54f705af3d"
      ],
      "author": {
        "name": "Pawin Vongmasa",
        "email": "pawin@google.com",
        "time": "Fri Jan 27 01:16:32 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Jan 27 01:16:33 2017 +0000"
      },
      "message": "Merge changes from topic \u0027OMX Treble 2\u0027\n\n* changes:\n  Split Treble conversion module into two sides: impl and utils.\n  Use HIDL\u0027s memory in CodecBuffer and add wrapper classes for IOmxBufferProducer and IOmxProducerListener.\n"
    },
    {
      "commit": "e08ab77d276e83388da1f811c556d105a38a81d3",
      "tree": "ce38745514e66c5d093f8a872d0b7fb9111eb050",
      "parents": [
        "fb388a72e613d669e4de8b0e07d64a6bf640b63a"
      ],
      "author": {
        "name": "Ray Essick",
        "email": "essick@google.com",
        "time": "Wed Jan 25 17:47:51 2017 -0800"
      },
      "committer": {
        "name": "Ray Essick",
        "email": "essick@google.com",
        "time": "Fri Jan 27 00:40:03 2017 +0000"
      },
      "message": "Provide access for metrics-\u003eJava Bundle conversion\n\nprovide \u0027friend\u0027 access for the class that converts Media Metrics\nproperties into a Java Bundle to be handed to users through local APIs.\nActual code to do conversion is in frameworks/base/\n\nBug: 34716157\nTest: compilation passes\n"
    },
    {
      "commit": "db1221479a7ffe7094c51c463bbd36522ed106ab",
      "tree": "9d551bf00c96d22d529561669e411e3a4416c2be",
      "parents": [
        "fb388a72e613d669e4de8b0e07d64a6bf640b63a"
      ],
      "author": {
        "name": "Ray Essick",
        "email": "essick@google.com",
        "time": "Wed Jan 25 17:51:55 2017 -0800"
      },
      "committer": {
        "name": "Ray Essick",
        "email": "essick@google.com",
        "time": "Fri Jan 27 00:12:08 2017 +0000"
      },
      "message": "Media Metrics for NuPlayer, Codec, Extractor\n\nCollect metrics for nuplayer/mediaplayer, codec, extractor.\npublishes them to media.metrics service\nprovides hooks that local APIs use to connect to retrieve metrics\nfrom the above when running on their behalf.\n\nSeparate set of changes does the final hop to the local APIs.\n\nBug: 34715803\nTest: build \u0026 run, observed code/extractor/player metrics in logs\nChange-Id: Ic5a0a7b3b93a5a41af93d81050ba038f0f7a4329\n"
    },
    {
      "commit": "eeac97b18ca5c939bf2ac59334d36d54f705af3d",
      "tree": "fa4ba549c27134217df62344ed01793f54364d2f",
      "parents": [
        "f62ea8018813951e8f6a182880cadb3217e4ce37"
      ],
      "author": {
        "name": "Pawin Vongmasa",
        "email": "pawin@google.com",
        "time": "Wed Jan 18 05:03:07 2017 -0800"
      },
      "committer": {
        "name": "Pawin Vongmasa",
        "email": "pawin@google.com",
        "time": "Thu Jan 26 00:53:44 2017 -0800"
      },
      "message": "Split Treble conversion module into two sides: impl and utils.\n\nimpl is on the HAL side. utils is on the framework side.\n\nTest: Compiles\nBug: 31399200\nChange-Id: Ib88a80f406fa2b897aa7c65f5faba6cdd9d6a700\n"
    },
    {
      "commit": "f62ea8018813951e8f6a182880cadb3217e4ce37",
      "tree": "2484670a6fcf5e32d2c700d920f9f17796cae0fe",
      "parents": [
        "1d399328e24b3ea0512e10f0925d8d09b43225ef"
      ],
      "author": {
        "name": "Pawin Vongmasa",
        "email": "pawin@google.com",
        "time": "Tue Dec 20 04:24:47 2016 +0700"
      },
      "committer": {
        "name": "Pawin Vongmasa",
        "email": "pawin@google.com",
        "time": "Thu Jan 26 00:52:10 2017 -0800"
      },
      "message": "Use HIDL\u0027s memory in CodecBuffer and add wrapper classes for\nIOmxBufferProducer and IOmxProducerListener.\n\nTest: Compiles\nBug: 31399200\nChange-Id: Ia09973ee7b25120bc35cff02b1409f33b28a4b4e\n"
    },
    {
      "commit": "29bcb38457deb3c69e0b5d2e8658446e969bd380",
      "tree": "261579eed10dce5b39c0b1e857191205decca154",
      "parents": [
        "6b2704c86f5f34217d820427da979c6bd6624bb8",
        "a53d6553fce1818bdf87833f93633c93ad1b5915"
      ],
      "author": {
        "name": "Jeff Tinker",
        "email": "jtinker@google.com",
        "time": "Thu Jan 26 02:43:40 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jan 26 02:43:41 2017 +0000"
      },
      "message": "Merge \"Implement client code to use Drm and Crypto HALs\""
    },
    {
      "commit": "6b2704c86f5f34217d820427da979c6bd6624bb8",
      "tree": "accffac85c38dc9d2c03bb03182e19b59aa82ff0",
      "parents": [
        "3b8a6c9a638dba5584d40d00d0d38423c128e874",
        "c0dede99d99ab22f59cf34c3b7d262c80d7bbc4a"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Jan 26 01:23:22 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jan 26 01:23:24 2017 +0000"
      },
      "message": "Merge \"camera: Add enable ZSL key\""
    },
    {
      "commit": "a53d6553fce1818bdf87833f93633c93ad1b5915",
      "tree": "8fbbb7b32d753c75a7350d748d6fa08d47402289",
      "parents": [
        "2a0c6d54dc34fdd8cca4e8ed7f39ad512133a878"
      ],
      "author": {
        "name": "Jeff Tinker",
        "email": "jtinker@google.com",
        "time": "Fri Jan 20 00:31:46 2017 -0800"
      },
      "committer": {
        "name": "Jeff Tinker",
        "email": "jtinker@google.com",
        "time": "Wed Jan 25 15:41:12 2017 -0800"
      },
      "message": "Implement client code to use Drm and Crypto HALs\n\nThis change adds DrmHal \u0026 CryptoHal classes that connect to the Treble\nHAL interfaces for drm.  These classes mirror the existing Drm and\nCrypto classes that connect to the DrmPlugin and CryptoPlugin\ninterfaces. Having both allows mediadrmserver to run in either mode\nwhile the HAL is stabilized.\n\nThe shared memory interfaces between mediaserver\u0027s ACodecBufferChannel\nand ICrypto had to be reworked to use the Treble HALs. Specifically,\nthe shared memory path for returning decrypted buffers in the\nnon-secure case had to become separate instead of piggy-backing on the\nsource shared memory buffer. A separate shared memory destination\nbuffer is now allocated on the buffer channel. An abstraction for a\ndecrypt destination buffer was also introduced to clarify ICrypto\u0027s\ndecrypt method.\n\nTests: Playback using Play Movies and ExoPlayer works on angler\nwith and without the treble hal enabled.\n\nbug: 32815560\nChange-Id: I5a3dc84f99902eb8cf8eabab9ad074d307744950\n"
    },
    {
      "commit": "071437a2005e39969983ec619a4c7bc54c2dc5a9",
      "tree": "0b1b44c249e3513e1bb96395484b707c194904d0",
      "parents": [
        "217fc01b390d88993c1c94669b251f952fe2c44e"
      ],
      "author": {
        "name": "Hassan Shojania",
        "email": "shojania@google.com",
        "time": "Mon Jan 23 09:19:40 2017 -0800"
      },
      "committer": {
        "name": "Hassan Shojania",
        "email": "shojania@google.com",
        "time": "Wed Jan 25 15:02:11 2017 -0800"
      },
      "message": "Modular DRM for MediaPlayer\n\nBug:  34559906\nTest: Manual through the test app\nChange-Id: I752c3e2bbc2fac9c75f7ddc986014c4b8ce75d84\n"
    },
    {
      "commit": "c0461f5b18eb6d5516804810f315e6c23879a09d",
      "tree": "409c82898f26abeb75bc1b9430c08578c051ad9a",
      "parents": [
        "b4728afbf8095d5349de9fcd49f3f34b900682ad",
        "66916c26a7055c9e10471720502a29f759609819"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Wed Jan 25 17:03:12 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jan 25 17:03:13 2017 +0000"
      },
      "message": "Merge \"audio hal: Fix multichannel playback\""
    },
    {
      "commit": "b4728afbf8095d5349de9fcd49f3f34b900682ad",
      "tree": "7c89ffe2147137b42c8e961a029488c13bec48d2",
      "parents": [
        "a437457c4f802c8df577da452f3a26a64f55bba4",
        "758c215374dba397dabe17b8e96dd38593c09dd7"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Jan 25 01:54:19 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jan 25 01:54:21 2017 +0000"
      },
      "message": "Merge \"Camera: Combine handling of deferred surface and shared surface\""
    },
    {
      "commit": "66916c26a7055c9e10471720502a29f759609819",
      "tree": "931ce309f34c35775a11240b4f8186db1983f90b",
      "parents": [
        "ceec4a06595253a6dcc167064f318e470e1c3b58"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Tue Jan 24 17:46:33 2017 -0800"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Tue Jan 24 17:46:33 2017 -0800"
      },
      "message": "audio hal: Fix multichannel playback\n\nCorrectly operate on input and output buffers in DownmixerBufferProvider\n\nNote that playback is a bit choppy, need to investigate further.\n\nChange-Id: I350175dcc9cc7142a1935585a8bd5e9abb1b8eb6\nTest: play back a 5.1 file\n"
    },
    {
      "commit": "c0dede99d99ab22f59cf34c3b7d262c80d7bbc4a",
      "tree": "5cd422223a04b98ac4ee89b26afb47d3fa2fe3ff",
      "parents": [
        "217fc01b390d88993c1c94669b251f952fe2c44e"
      ],
      "author": {
        "name": "Chien-Yu Chen",
        "email": "cychen@google.com",
        "time": "Wed Jan 11 11:10:28 2017 -0800"
      },
      "committer": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Tue Jan 24 15:41:39 2017 -0800"
      },
      "message": "camera: Add enable ZSL key\n\nAdd enableZsl key so the apps can choose to allow or\ndisallow out of order frame contents and metadata like\ntimestamp.\n\nTest: Camera CTS tests on Marlin\nBug: 30983997\nChange-Id: I715ef24ab55d6941c0ece16f09f325c26b83ea54\n"
    },
    {
      "commit": "758c215374dba397dabe17b8e96dd38593c09dd7",
      "tree": "d3c1326f44d95e97d5c73270f0195c5e2b7297ae",
      "parents": [
        "217fc01b390d88993c1c94669b251f952fe2c44e"
      ],
      "author": {
        "name": "Shuzhen Wang",
        "email": "shuzhenwang@google.com",
        "time": "Tue Jan 10 18:26:18 2017 -0800"
      },
      "committer": {
        "name": "Shuzhen Wang",
        "email": "shuzhenwang@google.com",
        "time": "Tue Jan 24 11:25:06 2017 -0800"
      },
      "message": "Camera: Combine handling of deferred surface and shared surface\n\n- Refactor the OutputConfiguration to contain isDeferred and isShared\n  flag, and not contain NULL surface.\n- Unify the handling of deferred surface and shared surface.\n\nTest: Camera CTS, and manual testing of GoogleCamera use cases\nBug: 33777818\nChange-Id: I5dd3472f0f2133699b0e9fbdd8ba456956222746\n"
    },
    {
      "commit": "d38e174ddbde8e7419ba01deaded4ff0ead1caaa",
      "tree": "cd62ea763bf947133d4fb6a66b693672294a2694",
      "parents": [
        "efbd36c8f57f41b0ef061cde5a88a3d384538fc9"
      ],
      "author": {
        "name": "Ray Essick",
        "email": "essick@google.com",
        "time": "Mon Jan 23 15:17:06 2017 -0800"
      },
      "committer": {
        "name": "Ray Essick",
        "email": "essick@google.com",
        "time": "Tue Jan 24 09:46:01 2017 -0800"
      },
      "message": "Change from mediaanalytics to mediametrics\n\nreflect the change from \"media.analytics\" to \"media.metrics\" in\nwhat service names we use; bring the metrics service main code into the\nservice directory (vs an additional shared library).\nRemoved references to tentative binder functions that the service\nwon\u0027t be offering, at least not in the near future.\n\nBug: 34615027\nTest: build, boot, new services run, clients talking to said services.\nChange-Id: If17772a8f03c05b142e8d5779830d198710210c1\n"
    },
    {
      "commit": "d112296453154c6974433d860f270e9d8bc7d0d0",
      "tree": "da4b1c15d138189c47e7a53d529405571ecd0ecd",
      "parents": [
        "9e26267afc9bd9b80c44b50b4a40c050f79d15cd",
        "ed32086f6a93a9a22f3877c54030af5c2567939a"
      ],
      "author": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Thu Jan 19 22:08:37 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jan 19 22:08:37 2017 +0000"
      },
      "message": "Merge \"mediaplayer: add getBufferingSettings.\""
    },
    {
      "commit": "ed32086f6a93a9a22f3877c54030af5c2567939a",
      "tree": "ce0af9c6ba0e532db654f80f4cffbcccf610ecca",
      "parents": [
        "13ff5b0ce7ae1d31eaa30f21c9d83290ebff0756"
      ],
      "author": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Wed Jan 18 14:03:40 2017 -0800"
      },
      "committer": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Thu Jan 19 11:33:30 2017 -0800"
      },
      "message": "mediaplayer: add getBufferingSettings.\n\nTest: compiles\nBug: 32524218\nChange-Id: Ifd6243d524d1554dfbbfc1381414100cfafdc02d\n"
    },
    {
      "commit": "e482d3a819edb60038ba5c4ca7f33935b27dd35f",
      "tree": "a2fb03633089ff6c68104dd389a39eb996af8738",
      "parents": [
        "dffb51f4e35fe93215b025bdf4216f3b411c734b",
        "fe44e4f74fe2582cbf012687059278dbcbdaa6f7"
      ],
      "author": {
        "name": "Hangyu Kuang",
        "email": "hkuang@google.com",
        "time": "Thu Jan 19 18:17:39 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jan 19 18:17:40 2017 +0000"
      },
      "message": "Merge \"media: Support recording exceeds filesize limit by splitting files.\""
    },
    {
      "commit": "cac8d4ea54ece7aeb4b2ffa7aafd06fbec731a62",
      "tree": "ed02d8653145fded2d53bcf4c6d7033cca7eb1cf",
      "parents": [
        "d0ffd62e89bf97fa20a63f282d034b6745328210",
        "44344b05261cb9ad46a43e635f637b89aecc7afe"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Jan 18 03:17:58 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jan 18 03:17:59 2017 +0000"
      },
      "message": "Merge \"audio policy: allows dumping Audio Policy Mix\""
    },
    {
      "commit": "addae1cfa92c3bae2b59917160da5520d2a25865",
      "tree": "d1b4f95e84a693a1f932337f9e45a47e35cf2d0a",
      "parents": [
        "7a667f6675f6dfc07892e0f9e67c60b26002e8f8",
        "0129d52df9794d6fdf06be304722b5cb51a2eab5"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Jan 18 01:54:59 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jan 18 01:55:02 2017 +0000"
      },
      "message": "Merge \"camera2: Add support for secondary surface for stream\""
    },
    {
      "commit": "1acece4c23ba36e71bc42d8b44b8b62bd4423620",
      "tree": "36498ad93f4bcbbc852a9eee54774555509ef89a",
      "parents": [
        "3670ef95286d8eb028d30a95448b8f93f8f74007",
        "d621ac82e648c8ef395068edb1af2747f49b700a"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Jan 17 23:16:30 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Jan 17 23:16:30 2017 +0000"
      },
      "message": "Merge \"Monitor crashes of audio hal service via linkToDeath\""
    },
    {
      "commit": "d621ac82e648c8ef395068edb1af2747f49b700a",
      "tree": "3c37b8d97c0c7feec6c567d407d05c8343ec9e6e",
      "parents": [
        "a72ef28f8cc2b894119b470fe6c93d1abe566398"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Thu Jan 12 17:17:45 2017 -0800"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Tue Jan 17 13:42:54 2017 -0800"
      },
      "message": "Monitor crashes of audio hal service via linkToDeath\n\nHwbinder \u0027linkToDeath\u0027 mechanism is used to track abrupt\ndisappearance of server hal objects due to hal server crash.\n\nUpon hal server crash, notifications can be sent to binder\nclients if needed, then the audioserver crashes itself as the\ncurrent audio HAL design does not provide an easy way to restore\nall the transient objects (devices, streams, effects) in their\npre-crash state.\n\nBug: 34158778\nTest: In binderized mode, kill audio hal server\nChange-Id: If9265711edc445984601fcb5c29d2c173a370762\n"
    },
    {
      "commit": "dc6f340e537ce511ea1d2f8ce7dc1c4ed231f6a6",
      "tree": "45fc471ff4d3c46d91281d75b2c049bf73104748",
      "parents": [
        "c62b65fd690a585c674caa6e79559bb847e5b3bd"
      ],
      "author": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Mon Jan 09 15:04:18 2017 -0800"
      },
      "committer": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Tue Jan 17 10:49:33 2017 -0800"
      },
      "message": "mediaplayer: add buffering settings API\n\nTest: compiles, checked that params is passed all the way to source.\nBug:32524218\nChange-Id: I637d1ab09f94a3830a33a39e7e9f1b3efb22357f\n"
    },
    {
      "commit": "c62b65fd690a585c674caa6e79559bb847e5b3bd",
      "tree": "89d7086548553e1a1aa8d9b96a8ba9c4dce9967a",
      "parents": [
        "eadba76ec937ead68bbd267585547c0bbdd459c1",
        "4453f452577064b4907a941225f7fc6e87800e37"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Mon Jan 16 16:18:58 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Jan 16 16:18:58 2017 +0000"
      },
      "message": "Merge \"Remove DRMExtractor\""
    },
    {
      "commit": "2872c7ab71fb554ee14d4e8b65677f9c7a97f966",
      "tree": "9f7dc45786534b506ad0804d6a1c81813a33fdaf",
      "parents": [
        "7e95f0e695f16584416881d17e6193e11ae3559a",
        "48fa06d1e80a872c7495804979256e021e566ae0"
      ],
      "author": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Sat Jan 14 02:54:23 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sat Jan 14 02:54:24 2017 +0000"
      },
      "message": "Merge \"BufferingSettings: hook up internal BufferingSettings API.\""
    },
    {
      "commit": "fe44e4f74fe2582cbf012687059278dbcbdaa6f7",
      "tree": "cbe39fbaa7b5e36134061c4e863489437a2fd5a6",
      "parents": [
        "3cc1da3dc8f367d8a29251088945d67fede8bfb8"
      ],
      "author": {
        "name": "Hangyu Kuang",
        "email": "hkuang@google.com",
        "time": "Tue Jan 03 16:38:11 2017 -0800"
      },
      "committer": {
        "name": "Hangyu Kuang",
        "email": "hkuang@google.com",
        "time": "Fri Jan 13 14:03:48 2017 -0800"
      },
      "message": "media: Support recording exceeds filesize limit by splitting files.\n\nTest: Hacking camera app to record file larger than size limit.\nBug:28150626\nChange-Id: I500913ec96d8ef49a78989d3f973bc7e8d923cb7\n"
    },
    {
      "commit": "4453f452577064b4907a941225f7fc6e87800e37",
      "tree": "3bc5657171b31ab92eb9ade0ab9cbe48fa72f66a",
      "parents": [
        "67d0d7eb36e7c36d0a9dec9264c0cab832196d57"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Fri Jan 13 12:51:08 2017 -0800"
      },
      "committer": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Fri Jan 13 21:54:03 2017 +0000"
      },
      "message": "Remove DRMExtractor\n\nIt was not used, untested and untestable.\n\nBug: 33354165\nTest: ran forward lock and media playback CTS tests, manual playback.\nChange-Id: I4dd3f07ca5b019a5fed0c860aa573fc993464712\n"
    },
    {
      "commit": "35f537fc5aa479caa6fd9055cdc63989d029e8a3",
      "tree": "b67c9f5a8d2a60db36dc3e1b2df52d27843ac9d8",
      "parents": [
        "f95fa3333f03cf5fa45a08402d5c7a671835e042",
        "49b2b4d30a0f74314630a5ea5f0e59697d90443e"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Jan 13 20:06:50 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Jan 13 20:06:50 2017 +0000"
      },
      "message": "Merge \"stagefright: add rangeOffset to OMXBuffer\""
    },
    {
      "commit": "8c48184651df8edb5b9490fe616844dbcfbbb0a4",
      "tree": "a394d86ba1dc2e4826c7e6376b0d2bd74d49ca8a",
      "parents": [
        "060a6c53b5022c9e539a4c9b03b16da546964bec",
        "8981605d43e24c46d395acb5f145b99589d45917"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Fri Jan 13 16:19:32 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Jan 13 16:19:33 2017 +0000"
      },
      "message": "Merge \"AudioFlinger: Move RecordBufferConverter to libaudioprocessing\""
    },
    {
      "commit": "49b2b4d30a0f74314630a5ea5f0e59697d90443e",
      "tree": "824ecd9c69be3ea97ba4589ae48c73c76b9c1821",
      "parents": [
        "d825ab9d5be990a6a7fb28033cfba84441100731"
      ],
      "author": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Wed Jan 11 17:19:42 2017 -0800"
      },
      "committer": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Thu Jan 12 15:54:01 2017 -0800"
      },
      "message": "stagefright: add rangeOffset to OMXBuffer\n\nbug: 31399200\nbug: 22804304\n\nChange-Id: I0ac9a7ee684067d40a26135ab26ebd3de3a2f06d\n"
    },
    {
      "commit": "44344b05261cb9ad46a43e635f637b89aecc7afe",
      "tree": "f088a40f3512f177136b78f02e091d42db7d0934",
      "parents": [
        "38267b773f2cdec4d684b12fde73179bcc66e0c7"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Tue Dec 13 11:21:02 2016 -0800"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Thu Jan 12 13:19:26 2017 -0800"
      },
      "message": "audio policy: allows dumping Audio Policy Mix\n\nThis patch adds the dump of AudioPolicyMix if registered.\nIt also adds the required conversion map to human readable strings\nof the types involved in Mixes.\n\nAdapted for the development branch from the AOSP patch:\nhttps://android-review.googlesource.com/#/c/309127/\n\nChange-Id: I91cf7afe6de5ff837970d9063ca437d4f6201e89\nTest: build, dumpsys media.audio_policy\n"
    },
    {
      "commit": "b04aa125744b7e1d5c56a4c2151eaaa890d68e4c",
      "tree": "d5f4d7530b6233288d812a93a824a39fa6410dba",
      "parents": [
        "a6f38cc3723252b0cac46912ae65adef778e6b14",
        "bdbe7ca3586ec2d4d32793fff9b3d858ad1c1dff"
      ],
      "author": {
        "name": "Jeff Tinker",
        "email": "jtinker@google.com",
        "time": "Thu Jan 12 17:31:06 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jan 12 17:31:07 2017 +0000"
      },
      "message": "Merge \"Fix plugin loading\""
    },
    {
      "commit": "bdbe7ca3586ec2d4d32793fff9b3d858ad1c1dff",
      "tree": "0c2aa083f328d263f1fe0687844172c2f6fcd140",
      "parents": [
        "96966995da4418326a01dd53719c8355a0db9415"
      ],
      "author": {
        "name": "Jeff Tinker",
        "email": "jtinker@google.com",
        "time": "Wed Jan 11 19:01:41 2017 -0800"
      },
      "committer": {
        "name": "Jeff Tinker",
        "email": "jtinker@google.com",
        "time": "Wed Jan 11 19:08:22 2017 -0800"
      },
      "message": "Fix plugin loading\n\nChange-Id: I3572f8bc1c90c5f0697054497bde52e4cbc4e71e\nrelated-to-bug:32815560\n"
    },
    {
      "commit": "8981605d43e24c46d395acb5f145b99589d45917",
      "tree": "8bb7ee0e15081201b70730bbaafed49b47d211dc",
      "parents": [
        "d7c5ec857930496bb8a1045dc8b87b2fdd99899c"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Wed Jan 11 17:08:23 2017 -0800"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Wed Jan 11 17:19:37 2017 -0800"
      },
      "message": "AudioFlinger: Move RecordBufferConverter to libaudioprocessing\n\nTest: Recording loopback\nBug: 31015569\nChange-Id: I7897d959f36ac7424544e35f47576c99a442dd54\n"
    },
    {
      "commit": "fc23520d9c3f15e28baa81de5f7dfa6c1b0af426",
      "tree": "d612d3bd0486cae96622768c95d41849b38dd9c6",
      "parents": [
        "9476864f6a9b8d500f6c74ba40bfd2e1ce5265a2"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Dec 20 18:48:17 2016 -0800"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Jan 11 12:58:55 2017 -0800"
      },
      "message": "audioflinger: define MMAP HAL Stream control interface\n\nAdded definition of MmapStreamInterface used by Oboe service\nto open, configure and control MMAP streams at the audio HAl.\n\nThis interface is implemented by audioflinger and abstracts the details\nof interacting with audio policy manager and audio HAL from Oboe service.\n\nA callback interface MmapStreamCallback is also defiend to communicate\nvolume and routing changes back to Oboe service.\n\nBug: 33398120\nTest: build\nChange-Id: If953d44903aaa4eb17ff16f1922ca16e5e0e0a87\n"
    },
    {
      "commit": "068561c8e84569d51df2adbbb53b56fdfd09c06b",
      "tree": "67e6c9c383b4667adc502b0ed6928a672a6a5b6d",
      "parents": [
        "ee454fcb25bff0f9c5d3455775a4cb66429e875e"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Tue Jan 03 17:09:32 2017 -0800"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Tue Jan 10 17:06:46 2017 -0800"
      },
      "message": "AudioFlinger: Split off audio processing library\n\nTest: native AudioResampler test, general playback test\nBug: 31015569\nChange-Id: Ifb248f4402a583438d756c014dcd7a4577aef713\n"
    },
    {
      "commit": "ee454fcb25bff0f9c5d3455775a4cb66429e875e",
      "tree": "c3951ebbde22c8c3e33712ccc2241f01f4647ca3",
      "parents": [
        "b554bff208ec1af8b6a8cfd78a86103c8dd46089",
        "022b9953153bdb1984f0abb17d21ef8c1826ad49"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Tue Jan 10 23:22:49 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Jan 10 23:22:50 2017 +0000"
      },
      "message": "Merge \"Re-implement HIDL effect processing using FMQ and IMemory\""
    }
  ],
  "next": "0129d52df9794d6fdf06be304722b5cb51a2eab5"
}
