)]}'
{
  "log": [
    {
      "commit": "68e0df70cdd57dbe32f11b5de50dd83c6492d075",
      "tree": "487ed1ea1849844493c436ccde9d432724fd652f",
      "parents": [
        "63dc6cf50582fa13702c59f43155f6c18312178b"
      ],
      "author": {
        "name": "jiabin",
        "email": "jiabin@google.com",
        "time": "Mon Mar 18 17:55:35 2019 -0700"
      },
      "committer": {
        "name": "jiabin",
        "email": "jiabin@google.com",
        "time": "Tue Apr 02 17:31:42 2019 -0700"
      },
      "message": "Use package name, pid, uid to check permission of capturing hotword.\n\nPackage name will be cached in ModuleClient when attaching a client. It\nwill be used when querying permission of capturing hotword.\n\nTest: test with logging.\nBug: 74078996\nBug: 122721589\nChange-Id: Icd2911f5d331d243c9eb5d58003ce5525c70c81e\n"
    },
    {
      "commit": "4b2018b0c0b65b1f6e20e571bbaf0e8984dccc06",
      "tree": "94339667fc464ad0bca7be4f07cf9148bf720b3f",
      "parents": [
        "63c0f36d2ba1b752a040b47d108f4cc907da227b"
      ],
      "author": {
        "name": "François Gaffie",
        "email": "francois.gaffie@renault.com",
        "time": "Wed Nov 07 11:18:59 2018 +0100"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Feb 26 12:45:57 2019 -0800"
      },
      "message": "audiopolicy: add Volume Group introspection APIs\n\nChange-Id: Ib02900bde69ee24685d9d374c0e5f73d33fa59e7\nSigned-off-by: François Gaffie \u003cfrancois.gaffie@renault.com\u003e\n\nTest: make\nBug: 124767636\n"
    },
    {
      "commit": "58d4be5a5a5d24f18b7a207148c7caa317fef366",
      "tree": "37e0a5e790187815757bd906c7767cfcea0e1f74",
      "parents": [
        "6054a7765cfd65c34d49a5a435bee1d0cdfb2d32"
      ],
      "author": {
        "name": "François Gaffie",
        "email": "francois.gaffie@renault.com",
        "time": "Tue Nov 06 15:30:12 2018 +0100"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Feb 05 00:18:00 2019 +0000"
      },
      "message": "audio: get rid of hardcoded translation stream \u003c--\u003e attributes\n\nIMPORTANT NOTE:\n    CL depends on another CL in frameworks/base\n    https://partner-android-review.googlesource.com/c/platform/frameworks/base/+/1206275\n\nAudioProductStrategies offers the possibility to dynamically\ntranslate attributes to stream types (and vice versa) within\naudio policy engine.\nLegacy engine has hard coded rules to maintain the translation\nservice.\n\nThis patch removes the hardcoded translation within the helper\nand replaces them by AudioProductStrategy APIs.\n\nTest: AudioPolicyTests: AudioProductStrategiesAllStreamsTest\nIt loops on all stream types supported by strategy and ensures\ndevice selection matches. Hard coded stuff would prevent right device\nselection.\nTest: CTS: AudioTrackTest AudioRecordTest\nTest: audio smoke test on sailfish, walleye blueline\n\n\nChange-Id: I76589df5555136ed49dbacc7aac9b0b5e828bef2\nSigned-off-by: François Gaffie \u003cfrancois.gaffie@renault.com\u003e\n"
    },
    {
      "commit": "d0ba9ed06c61ab3e66627e027fbc34ba998140ee",
      "tree": "49948f80335bea4a358c7f455dfd6a5e59a94e30",
      "parents": [
        "7188f1ad365cd9d475723b639d521b491eaca389"
      ],
      "author": {
        "name": "François Gaffie",
        "email": "francois.gaffie@renault.com",
        "time": "Mon Nov 05 11:50:42 2018 +0100"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Feb 01 18:05:54 2019 -0800"
      },
      "message": "audio policy service: Add introspection API to retrieve AudioProductStrategies\n\nThis CL adds required introspection APIs to deal with product strategies:\n\n-getter of the collection of product strategies\n-helper function to return the strategy associated to a given attributes.\nThis API is mandatory to avoid duplicating the logic that compiles the strategy\nfor a given Audio Attributes structure.\n\nTest: make\n\nChange-Id: I0e107570a44227bb52a4f359954c93215d4f8bae\nSigned-off-by: François Gaffie \u003cfrancois.gaffie@renault.com\u003e\n"
    },
    {
      "commit": "dc7553ff1bf7ec88e17a8577b94bb9dd9a1cbb43",
      "tree": "e51119764c576e4e051cef763280f8d35c7a7b27",
      "parents": [
        "612be7ff334b6c2c1051bd6dbb4088922af0336e"
      ],
      "author": {
        "name": "François Gaffie",
        "email": "francois.gaffie@renault.com",
        "time": "Fri Nov 02 10:39:57 2018 +0100"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Feb 01 18:05:21 2019 -0800"
      },
      "message": "audiopolicy: engine: Add ProductStrategy common code\n\n-Adds new Engine APIs for Product Strategy management\n-Adds a common engine code to handle product strategies\n-Adds a parsing configuration library to feed the strategies\n-Prepare both engine for the switch\n\nTest: make\nChange-Id: I00f57ece798893bc6f9aa9ed54a3e5237e8d5cf1\n"
    },
    {
      "commit": "b2a7ed2e9d10d3aa277b0457a2601c99217e273f",
      "tree": "b2775d1fca12ead36f594ab516215baf6e0856e4",
      "parents": [
        "0e7fbcb161e2e806ffb2f321cd14e92924463ec2"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Fri Jan 18 10:34:03 2019 -0800"
      },
      "committer": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Fri Jan 18 10:34:03 2019 -0800"
      },
      "message": "Fix test failures\n\nBug: 123077756\nTest: CTS\nChange-Id: I2b440fef382bd7a6b5d956defd7715ec614f8d31\n"
    },
    {
      "commit": "54c88096751d736a4b91d1f3eb0c6e0d5c3470ea",
      "tree": "4be4375a8807d2f540eace2bc32cedce62462b85",
      "parents": [
        "cccfb3fe54e4d45a6f02e197765eebfbd5926c34"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Fri Jan 11 14:06:15 2019 -0800"
      },
      "committer": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Mon Jan 14 16:59:13 2019 +0000"
      },
      "message": "Remove libmediaextractor\n\nMove DataSourceBase and MediaSource to libstagefright, and\nMediaBuffer, MediaBufferGroup and MetaData to libstagefright_foundation.\n\nTest: build\n\nChange-Id: I4f0ae01d40a32f4b773a2f74d5f2ae136e375322\n"
    },
    {
      "commit": "57822099ae5f887353ff07cb15563a4aac54336c",
      "tree": "59204dd1a84bab7c42773957b8c909ddd7dc5482",
      "parents": [
        "435ba2e250da24bed173d4ca7415f5adb5f7846b"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Mon Jan 07 14:51:32 2019 -0800"
      },
      "committer": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Thu Jan 10 09:01:21 2019 -0800"
      },
      "message": "Export support types from extractors\n\nMake each extractor  plugin export a list of file types it supports,\nso we no longer need to hardcode such a list in the framework.\n\nTest: manual\nChange-Id: I1e41a5d477ea56960ad3e4bc35f5183c03c3fe3a\n"
    },
    {
      "commit": "a308287ea13cbab40ad6892be20b1253b83c0e36",
      "tree": "b1dc33b4a8f055820aa26b0d0377cbf1b142affc",
      "parents": [
        "3c3c97ae534870c90f54e8cffc6d7d82ab8ca3da"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Wed Dec 19 14:36:28 2018 -0800"
      },
      "committer": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Thu Dec 20 11:03:24 2018 -0800"
      },
      "message": "Remove support for non-NDK extractor formats\n\nRemove support for intermediate extractor format versions\nand leave only the \u0027V3\u0027 format, but remove \u0027V3\u0027 from the\nnames of the classes and structs involved, and reset the\nversion number back to 2 (version 1 is the C++ interface\nshipped in P, which is no longer supported).\n\nBug: 111407253\nTest: build\nChange-Id: I702080e6bbfbac265967a93945ee97191d463125\n"
    },
    {
      "commit": "e92a5c7d3b0face0059566118e68d19c95284f39",
      "tree": "2001e358d8195313a65d4e7c682b6a11ae3f96ed",
      "parents": [
        "706e8765fb5809e6814f156981de45675e88fbad"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Thu Dec 13 09:52:38 2018 -0800"
      },
      "committer": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Thu Dec 13 15:46:05 2018 -0800"
      },
      "message": "Convert OggExtractor to V3 format\n\nand move it to the media APEX.\n\nBug: 111407253\nTest: manual, CTS\nChange-Id: Ia6b6edc42f8bb374d4cc07888fb0f45030ca462f\n"
    },
    {
      "commit": "20147323b745dcc8ee395b6815082e456ee7d1d6",
      "tree": "6c009edb7320f4a4f5c287ecd536974e9e0e4ace",
      "parents": [
        "7763cf3b0eb9ae0ed5c375d19324fa068a070229"
      ],
      "author": {
        "name": "Ray Essick",
        "email": "essick@google.com",
        "time": "Sat Nov 17 09:08:39 2018 -0800"
      },
      "committer": {
        "name": "Ray Essick",
        "email": "essick@google.com",
        "time": "Wed Dec 12 14:08:06 2018 -0800"
      },
      "message": "C interface to MediaMetrics\n\nC interface is more stable across upgrades than C++\nand simplifies cross-package interfaces in upgradeable components.\n\nBug: 119675363\nTest: parallel metrics generation from nuplayer\nChange-Id: I36beeade82a208be64af0860eb6f175a2801b27f\n"
    },
    {
      "commit": "43480e826492987eea860cfde1823921d48be51b",
      "tree": "3b7a231d000b75a09e9cfa6cf56d4d2e54700346",
      "parents": [
        "63a9ec6bd5b163196787bb2424ef87637345516c",
        "a33c8e8e7a4ac2f2fc28c7619c54d493c6f4b1ad"
      ],
      "author": {
        "name": "Chih-Hung Hsieh",
        "email": "chh@google.com",
        "time": "Tue Dec 11 22:33:19 2018 -0800"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Dec 11 22:33:19 2018 -0800"
      },
      "message": "Merge \"Fix cert-dcl16-c clang-tidy warnings in include.\" am: fc3c56fb85 am: f9eee4612b\nam: a33c8e8e7a\n\nChange-Id: I95d0ee896e0c025f6fed8c17c0a382a86183fa56\n"
    },
    {
      "commit": "21b9616be90c88251ce1e7194c6e3868e43e477c",
      "tree": "cd32fd2063267f313be11a89798aa16f8f4f0dcb",
      "parents": [
        "14c577fac81b8fdcc75e4bf9243f16bd624ba58b"
      ],
      "author": {
        "name": "Chih-Hung Hsieh",
        "email": "chh@google.com",
        "time": "Tue Dec 11 13:48:32 2018 -0800"
      },
      "committer": {
        "name": "Chih-Hung Hsieh",
        "email": "chh@google.com",
        "time": "Tue Dec 11 13:48:32 2018 -0800"
      },
      "message": "Fix cert-dcl16-c clang-tidy warnings in include.\n\nBug: 120614316\nTest: make with WITH_TIDY\u003d1 DEFAULT_GLOBAL_TIDY_CHECKS\u003d-*,cert-dcl16-c\nChange-Id: I7c62e6ff195ca35939da898872b69b0a4da59ec6\n"
    },
    {
      "commit": "0e043b67ee430bc807971a5ffb29c653501ce99c",
      "tree": "d48612310795acb3478370ae141a63274b06f8b8",
      "parents": [
        "b6670e3dbe3ca63d6766ae45de809ea97590d817"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Wed Nov 14 11:26:05 2018 -0800"
      },
      "committer": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Thu Dec 06 10:10:06 2018 -0800"
      },
      "message": "C-ify MediaBuffer\n\nBug: 111407253\nTest: CTS, manual\nChange-Id: Id20094f23d9d0dc0ec23127bbedc62c6e29944bd\n"
    },
    {
      "commit": "0ac73a5dd0db5f6b67b4c21a9ab5e28d5ab532bd",
      "tree": "bb7acb89d31b2f6500ec15f6bedb73dca64dd3af",
      "parents": [
        "3df5310387cb396892d49f3576ba52a22413baa6"
      ],
      "author": {
        "name": "Sampath Shetty",
        "email": "Sampath.Shetty@dolby.com",
        "time": "Tue Mar 27 15:16:35 2018 +1100"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Mon Nov 26 15:24:12 2018 -0800"
      },
      "message": "Extract AudioPresentations from AC4 in MP4 and TS\n\nTranslates MPEG-4 AC4 DSI AC4Presentations to AudioPresentation.\nParses MPEG2-TS audio preselection descriptors from MPEG2-TS.\nAdds AudioPresentationInfo interface to native MediaExtractor.\n\nTest: Manually test\nBug: 119312182\nChange-Id: I61286b38543e114aeaef331aa013bc2d2d7626c3\n"
    },
    {
      "commit": "6e189b19bbcdb21692924b90d6b33181e490b3fa",
      "tree": "19c789d8d68b7a3f87d54525ff50173fa14fedd3",
      "parents": [
        "fd1c998237da395af546e0e3143a4133f966559b"
      ],
      "author": {
        "name": "mike dooley",
        "email": "mdooley@google.com",
        "time": "Wed Nov 07 15:44:37 2018 +0100"
      },
      "committer": {
        "name": "mike dooley",
        "email": "mdooley@google.com",
        "time": "Fri Nov 09 20:05:44 2018 +0100"
      },
      "message": "Converting sound trigger v2.2 getModelState to be asynchronous\n\nTest: built android with checkbuild flag\n\nChange-Id: Ic12dbfe46aae08666ab02a1a8ee0dbb5c2d9381f\nBug-Id: 70206501\n"
    },
    {
      "commit": "59409356027170e408836905f2b6be7f41ef17da",
      "tree": "5b134630a17a274fbc6bfa207d18abde73167681",
      "parents": [
        "79ca50328c5227002bebf212608b50b066e52a24",
        "7530afeffbdec1e0538ec7a6f993364e273f215b"
      ],
      "author": {
        "name": "Hsin-Yi Chen",
        "email": "hsinyichen@google.com",
        "time": "Thu Nov 01 19:46:31 2018 -0700"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Thu Nov 01 19:46:31 2018 -0700"
      },
      "message": "Merge \"Delete unused headers in media/libmedia/include/media\" am: 887cb9ea94 am: a47789fdff\nam: 7530afeffb\n\nChange-Id: If7a43a0a99e1496cbd2303182c902b103f22c219\n"
    },
    {
      "commit": "e2c88b2f635b4e45f622b4884005b40ef9d05e2d",
      "tree": "a6f0b25056a07f675bba3551cba3ea30646db7d2",
      "parents": [
        "e1a209a6a99048f50fcce8e47088c211801ef4bf"
      ],
      "author": {
        "name": "Hsin-Yi Chen",
        "email": "hsinyichen@google.com",
        "time": "Wed Oct 31 15:35:39 2018 +0800"
      },
      "committer": {
        "name": "Hsin-Yi Chen",
        "email": "hsinyichen@google.com",
        "time": "Thu Nov 01 18:02:15 2018 +0800"
      },
      "message": "Delete unused headers in media/libmedia/include/media\n\nBug: 117582158\nTest: mma\nChange-Id: I89a4069edc959ccbc428c81af63e183f5d187c72\n"
    },
    {
      "commit": "0917fc25390c5f362332630e2d980480d1444e0d",
      "tree": "08edc1477b4d81cb80c8536bd09a68f2098def70",
      "parents": [
        "dfc777b807355fbc649f506bdacdff443bc52609",
        "67e3d41769f202522970ab45a50892a0bb6518cd"
      ],
      "author": {
        "name": "Michael Dooley",
        "email": "mdooley@google.com",
        "time": "Wed Oct 24 06:04:42 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Oct 24 06:04:42 2018 +0000"
      },
      "message": "Merge \"Revert \"Revert \"Adding getModelState API to sound trigger\"\"\""
    },
    {
      "commit": "4d026f5583e1f61726b8d24569433a6b072ebf6e",
      "tree": "9546463d3800947bcb5f9708f5bab83e014ab3b8",
      "parents": [
        "fdd42e95352f85b2cb7833bc652dc32ec6dc34f9"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Thu Oct 04 13:04:29 2018 -0700"
      },
      "committer": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Wed Oct 17 13:48:35 2018 -0700"
      },
      "message": "Convert Ogg and Flac extractors to use AMediaFormat\n\nBug: 111407253\nTest: manual, CTS\nChange-Id: I8aeb44ceeb831bb558cac1123f0aaade8163abf8\n"
    },
    {
      "commit": "67e3d41769f202522970ab45a50892a0bb6518cd",
      "tree": "c0e11ea1905288361d1a9a459a7d6604504587fa",
      "parents": [
        "6dd21efefed9d570d5ce07f602686d01321795eb"
      ],
      "author": {
        "name": "Michael Dooley",
        "email": "mdooley@google.com",
        "time": "Tue Oct 16 19:51:16 2018 +0000"
      },
      "committer": {
        "name": "Michael Dooley",
        "email": "mdooley@google.com",
        "time": "Tue Oct 16 19:51:16 2018 +0000"
      },
      "message": "Revert \"Revert \"Adding getModelState API to sound trigger\"\"\n\nThis reverts commit 6dd21efefed9d570d5ce07f602686d01321795eb.\n\nReason for revert: rolling forward with fix\n\nChange-Id: I07d6c471681abffeb596817dfb00de40c853560c\n"
    },
    {
      "commit": "5dcf85aa7666bf7efb5472e49c14c97c7b1bcefc",
      "tree": "d79d9f3603a571b14fdd5e7de9811ee14826331f",
      "parents": [
        "1e91e0ea18e4c267b54ae2e14c8c9f0a013188a7"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Thu Oct 11 09:49:02 2018 -0700"
      },
      "committer": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Thu Oct 11 10:57:13 2018 -0700"
      },
      "message": "Use media_status_t instead of status_t in extractor interface\n\nBug: 111407253\nTest: CTS\n\nChange-Id: Iabf0e033f553a398b70bdf616261fbdabc6f71f8\n"
    },
    {
      "commit": "3db2dccc3a9e9733b5fcd84f93e0f58bda4075b2",
      "tree": "a4dcf4db0c2b59408b92c1ea53c62b0489ea9b7a",
      "parents": [
        "32fddecebdd0ae2c63b930cfb039f41c71739de6"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Wed Oct 03 14:09:37 2018 -0700"
      },
      "committer": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Thu Oct 04 07:14:27 2018 -0700"
      },
      "message": "Remove start() parameter from extractors\n\nBug: 111407253\nTest: CTS\nChange-Id: I570374f936e434b214e9cd55e2a72f12ebeafad2\n"
    },
    {
      "commit": "56f1938e514594c41f04ee3a7d9b84deef265eb7",
      "tree": "d27e46b08f0d1653282b66f9d56442738866016c",
      "parents": [
        "f441367a5fde9d08788797c4daccd717ce1a7609"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Wed Sep 12 15:30:59 2018 -0700"
      },
      "committer": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Tue Oct 02 14:14:31 2018 -0700"
      },
      "message": "Support extractors that use AMediaFormat for metadata\n\nSupport secondary plugin API that uses AMediaFormat so plugins can be gradually\nchanged over to it.\n\nBug: 111407253\nTest: CTS, manual\n\nChange-Id: I25de3cb9463ca3b91370cecd16c80915d6407daf\n"
    },
    {
      "commit": "2a3363ad85d82a8dfa89573d0d84898cb8bb8727",
      "tree": "3e9be93220d9925d70e82a416211bdece2d9b341",
      "parents": [
        "f7f463120abca9a0050f3e82b0ebd222410e141b"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Thu Sep 13 13:15:30 2018 -0700"
      },
      "committer": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Fri Sep 28 16:07:44 2018 -0700"
      },
      "message": "C-ify MediaTrack\n\nAdd C-API replacement for MediaTrack in extractor plugins.\nMove MediaTrack from libmediaextractor.so to libmedia.so\n\nBug: 111407253\nTest: CTS, manual\n\nChange-Id: I3407e903fe41a2d7b7233538808281fce318c27a\n"
    },
    {
      "commit": "c2b10b3dbe7f72bd6e212db0cf92f2d88f922b79",
      "tree": "daf51eee33140f2bc17fce5f29eb1030d2cf58e9",
      "parents": [
        "5a855fee64e7b6996618a4f9288fd06be77456c1"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Mon Sep 24 13:19:43 2018 -0700"
      },
      "committer": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Mon Sep 24 13:22:04 2018 -0700"
      },
      "message": "Fix and simplify cached datasource handling.\n\nThis fixes random CTS failures due to bad frees.\n\nBug: 111407253\nTest: CTS\n\nChange-Id: If8bdb92b735f83aa3b4d54035fdb0729a9c4ba61\n"
    },
    {
      "commit": "b83becc21422314de2ad31c286f52437ce88fdc0",
      "tree": "47d15d7b4f40884aafc40f8a0118c73d2917796d",
      "parents": [
        "080de927bace8f010735dd3c3397bb29d603113c",
        "6dd21efefed9d570d5ce07f602686d01321795eb"
      ],
      "author": {
        "name": "Michael Dooley",
        "email": "mdooley@google.com",
        "time": "Fri Sep 14 16:21:17 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Sep 14 16:21:17 2018 +0000"
      },
      "message": "Merge \"Revert \"Adding getModelState API to sound trigger\"\""
    },
    {
      "commit": "6dd21efefed9d570d5ce07f602686d01321795eb",
      "tree": "14ed5d5d11af36880f87a3d856b8f55b9cbb671a",
      "parents": [
        "19a2dc31ab87bcc992a9725a0a6a3698d5855025"
      ],
      "author": {
        "name": "Michael Dooley",
        "email": "mdooley@google.com",
        "time": "Fri Sep 14 16:08:30 2018 +0000"
      },
      "committer": {
        "name": "Michael Dooley",
        "email": "mdooley@google.com",
        "time": "Fri Sep 14 16:08:30 2018 +0000"
      },
      "message": "Revert \"Adding getModelState API to sound trigger\"\n\nThis reverts commit 19a2dc31ab87bcc992a9725a0a6a3698d5855025.\n\nReason for revert: fix build breakage\n\nChange-Id: I9f58d4c7cfbd871259b4d3186b81de2af6c5021f\n"
    },
    {
      "commit": "6e73ccf3fcd744ff6706f0052e1d45faa57fea20",
      "tree": "039242e4b2d4c123324641cb19261938f062a003",
      "parents": [
        "581779dae6a35fbaec11e09174a4c99946a696e0",
        "19a2dc31ab87bcc992a9725a0a6a3698d5855025"
      ],
      "author": {
        "name": "Michael Dooley",
        "email": "mdooley@google.com",
        "time": "Fri Sep 14 12:32:10 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Sep 14 12:32:10 2018 +0000"
      },
      "message": "Merge \"Adding getModelState API to sound trigger\""
    },
    {
      "commit": "19a2dc31ab87bcc992a9725a0a6a3698d5855025",
      "tree": "c0e11ea1905288361d1a9a459a7d6604504587fa",
      "parents": [
        "f8219e1b52a2aa634176e9dcf7822f526a82b852"
      ],
      "author": {
        "name": "mike dooley",
        "email": "mdooley@google.com",
        "time": "Wed Aug 22 14:57:53 2018 +0200"
      },
      "committer": {
        "name": "mike dooley",
        "email": "mdooley@google.com",
        "time": "Thu Sep 13 21:42:00 2018 +0200"
      },
      "message": "Adding getModelState API to sound trigger\n\nTest: built android\nBug-Id: 70206501\nChange-Id: Ib0c7dfa74bbab196516330a222ae9dcb78a6a9e3\n"
    },
    {
      "commit": "98603d8711b10969ba770fbb19774201212207a1",
      "tree": "f4cbd7d89e49d348ec4f42e32c45509b2acbcefa",
      "parents": [
        "ddc47d47a956e7b67449f2345ccf481e025ca62d"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Tue Jul 17 11:06:55 2018 -0700"
      },
      "committer": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Fri Aug 24 09:43:09 2018 -0700"
      },
      "message": "Add AMediaFormat functions to clear and copy\n\nAlso move NdkMediaFormat internals to libmedia to avoid a future circular\ndependency between libmedia and libmediandk.\n\nBug: 111407253\nTest: build, boot, play some files\n\nChange-Id: I54d91439f216c3834726e5505afef40dc0d93e67\n"
    },
    {
      "commit": "a70beb16195266900997f2f376d2f28017cd45a4",
      "tree": "ba0716f8eb0e1210e663bd48242c2b56deeee401",
      "parents": [
        "9985754cabf9d426bf95e3adfc27cea7fcc86e42"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Tue Jul 17 14:10:03 2018 -0700"
      },
      "committer": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Thu Aug 23 08:10:30 2018 -0700"
      },
      "message": "Move MediaExtractor back to libstagefright\n\nIt is no longer needed in libmediaextractor, and moving it back\nto libstagefright will avoid a circular dependency later.\n\nBug: 111407253\nTest: build, boot, play some files\n\nChange-Id: I1373a9eedee27998e7733ea23ae1a375e45cc9c3\n"
    },
    {
      "commit": "cec44d0c8dc9703ca87435d95bdcd6ef228784d7",
      "tree": "a8f3ae236978e7201114e765a652632a0286d30e",
      "parents": [
        "0b16447f1cbaab5838477a68b26eeefa18b4e7aa"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Sun Jun 17 22:21:09 2018 -0700"
      },
      "committer": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Tue Aug 21 10:49:16 2018 -0700"
      },
      "message": "C-ify DataSource\n\nAdd a C API for DataSource/Base, and a helper so extractors\ncan continue using a C++ API.\n\nBug: 111407253\nTest: build, boot, play some files\n\nChange-Id: I1c8b2990e17d18eee53c9abf7ebef2ced0e8b7fd\n"
    },
    {
      "commit": "0b16447f1cbaab5838477a68b26eeefa18b4e7aa",
      "tree": "0f76341e23d59c1337877d2353791b97c12a5480",
      "parents": [
        "05435244e8c93c2fcf9ea6aefdc09854c7798e73"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Wed May 30 12:16:56 2018 -0700"
      },
      "committer": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Tue Aug 21 10:02:48 2018 -0700"
      },
      "message": "C API for extractor plugins\n\nDefine a C extractor plugin API, along with some helpers\nso extractors can still be implemented in C++ if desired.\n\nBug: 111407253\nTest: build, boot, play some files\n\nChange-Id: Iba947381441769d77929b4235cdb4a4cd5d4f606\n"
    },
    {
      "commit": "39b09b52e313e89c3493927b379d2e256bf04bd9",
      "tree": "04e64f327c09b0d3344884d59c35ff520c751e3e",
      "parents": [
        "cd56a1c2a0adcd21aad3a64c761aa3562d915be1"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Jun 29 12:24:40 2018 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Jul 10 09:02:26 2018 -0700"
      },
      "message": "audioserver: log system event for binder timeouts\n\nAdd event logging in case of audioserver watchdog to help\ncollect statistics.\n\nTest: make. Simulate watchdog and check events in logcat.\n\nChange-Id: I4716852c77d56703ad5f3dfc2500f598a2b80a12\n"
    },
    {
      "commit": "a1fa1715f86df5f79025b03ee9483ca29189a0b0",
      "tree": "97d9195d5adc436a8f2ac9b88916ac3516714c19",
      "parents": [
        "be019a84320313ffa267000c62c1c1ccca9c0fac",
        "3b2ceb31754d95b94485fac355c21cabd806fa02"
      ],
      "author": {
        "name": "Neil Fuller",
        "email": "nfuller@google.com",
        "time": "Thu Jun 07 13:18:05 2018 -0700"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Thu Jun 07 13:18:05 2018 -0700"
      },
      "message": "Merge \"Remove common_time code\" am: d22857101e\nam: 3b2ceb3175\n\nChange-Id: I91a45fc18dbc51a1be23c589d1af06af9c9421a7\n"
    },
    {
      "commit": "bdce434a6d498b4456bb0c17c5b4e0cd1fb71ecf",
      "tree": "f7d6749c82f6fead5f0f3296e1b0d6b8d16e5ef0",
      "parents": [
        "25af42f8bff5a973205bbc36d8617a133e908c51"
      ],
      "author": {
        "name": "Neil Fuller",
        "email": "nfuller@google.com",
        "time": "Mon Jun 04 15:36:56 2018 +0100"
      },
      "committer": {
        "name": "Neil Fuller",
        "email": "nfuller@google.com",
        "time": "Wed Jun 06 17:05:23 2018 +0100"
      },
      "message": "Remove common_time code\n\nThis code is unused.\n\nBug: 80462439\nTest: Build / boot\nMerged-In: I1cfac4bdd59f1b8a9231abc49d3311637f71ce88\nChange-Id: I1cfac4bdd59f1b8a9231abc49d3311637f71ce88\n"
    },
    {
      "commit": "2fb209685730d73f5fc692d3bca8da7f9ceacad1",
      "tree": "b1206bb6e9f2deb15b25962e42e299c685fca97c",
      "parents": [
        "20bd30baf9fcd59e7000e7c626cc8bc1e85637bc"
      ],
      "author": {
        "name": "Neil Fuller",
        "email": "nfuller@google.com",
        "time": "Mon Jun 04 15:36:56 2018 +0100"
      },
      "committer": {
        "name": "Neil Fuller",
        "email": "nfuller@google.com",
        "time": "Mon Jun 04 19:23:40 2018 +0100"
      },
      "message": "Remove common_time code\n\nThis code is unused.\n\nBug: 80462439\nTest: Build / boot\nChange-Id: I1cfac4bdd59f1b8a9231abc49d3311637f71ce88\n"
    },
    {
      "commit": "2a4e16168061c0516c48b93450917eede7723c44",
      "tree": "059bb279ffacafb9e120b1fbb1e3b49a749b2781",
      "parents": [
        "1ee5077f7b6a0129492494aa55f92089c4cc2049"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Fri Jun 01 15:06:09 2018 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Fri Jun 01 15:17:11 2018 -0700"
      },
      "message": "AudioTrackShared: Move framesReadySafe to ServerProxy\n\nAllows common use for latency computation.\nImplementation for AudioRecordServerProxy added.\n\nTest: audio sanity, subsequent latency tests\nBug: 80447764\nChange-Id: Ib53181cdced16606bf268769a04bd52c689d89d3\n"
    },
    {
      "commit": "f6ab58dfbc394e88115eb1483aaf47db91279981",
      "tree": "3a1c63e4a0e66fcb960201ec9852cc8c7e8dc8c0",
      "parents": [
        "59fef32845e5fec2f5c97c9637965b8c3ca24a6f"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Fri May 25 12:50:39 2018 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Fri May 25 14:03:16 2018 -0700"
      },
      "message": "AudioFlinger: Add latency measurements from timestamp\n\nReplaces main and aux buf from track dump.\n\nBug: 80272001\nTest: adb shell dumpsys media.audio_flinger\nChange-Id: I5d6565410e652ec7fc6701b171d299dea9f7bc3e\n"
    },
    {
      "commit": "0c1407f79ef36422330c2003a608d37df714256b",
      "tree": "04eb9f45da49543f2ad97040a692ea245f8906bd",
      "parents": [
        "0c1f9148ed187a9c3819374050c5ea319b059439"
      ],
      "author": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Wed May 02 17:09:05 2018 -0700"
      },
      "committer": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Mon May 07 19:38:05 2018 -0700"
      },
      "message": "Decode one row of tiles at a time for image that has tiles\n\nAdd an api to IMediaMetadataRetriever to decode image rect.\nIt will reuse the same full frame IMemory, and decode only\nthe requested rect. For now, StagefrightMetadataRetriever\nwill only allow decoding of rect that\u0027s a full row of tiles,\nand the requested must be issued sequentially (i.e. no\narbitrary rects). When the extract side is fixed to allow\nseeking by tiles, it can be extended to allow arbitrary\nrects.\n\nThis allows HeifDecoderImpl (on client side) to start\nprocessing the getScanlines in parallel with the decoding.\n\nTest: CTS MediaMetadataRetrieverTest;\nManual testing of HEIF decoding of files with or without tiles;\nManual testing of HEIF thumbnails generation in Downloads app.\n\nbug: 78475896\nChange-Id: I820b21cdf33f80593ee6092d8e1ba68b3beb65dd\n"
    },
    {
      "commit": "3f4e6ddcf05aa1a286bc3963b5a9f53bf30b4327",
      "tree": "afb38add9c3818f5039a7d1b21fe65bd2b3e53a3",
      "parents": [
        "67f280ee7f7ec076cce335c7aa7d3150ae0a3e28"
      ],
      "author": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Tue Apr 24 16:12:57 2018 -0700"
      },
      "committer": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Thu Apr 26 11:58:49 2018 -0700"
      },
      "message": "Remove one redundant frame copy in MetadataRetriever\n\nWhen extracting bitmaps, MediaMetadataRetriever does a copy from\nStagefrightMetadataRetriever\u0027s VideoFrame to IMemory. We could\njust allocate IMemory directly and return that to the client.\n\nbug: 78475896\nChange-Id: Ibe07e7d2c68f031261470308476089c2fa9298ea\n"
    },
    {
      "commit": "331679c8a5cd21a0e6a7a1d851e965e4721f7420",
      "tree": "9e3835bb805631ca42a90ded01796b73307a4642",
      "parents": [
        "554e08c6b00b2a57348f4545d450915a9e8c870a"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Apr 16 17:03:16 2018 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Apr 16 17:08:06 2018 -0700"
      },
      "message": "Revert \"Revert \"audioflinger: implement silenced capture for mmap\"\"\n\nThis reverts commit 611ebb95e76c230214780b7b583b8a3c5277ac7a.\n\nBug: 78118584\nbug: 72134552\nTest: \u0027adb shell write_sine_callback -m3 -pl -s100 -x\u0027 and Plug headphones in and out.\nTest: AAudio CTS tests\nChange-Id: I7558ad7b9c6c2d352ebce105382fe914c26fd35e\n"
    },
    {
      "commit": "611ebb95e76c230214780b7b583b8a3c5277ac7a",
      "tree": "1c8ef30309a0954a51a6b4c872f30ca399f064d2",
      "parents": [
        "a2f478ca0b2bda8db9b321f0cfa9e9d3cf6130f9"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Apr 16 19:43:59 2018 +0000"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Apr 16 19:43:59 2018 +0000"
      },
      "message": "Revert \"audioflinger: implement silenced capture for mmap\"\n\nThis reverts commit a2f478ca0b2bda8db9b321f0cfa9e9d3cf6130f9.\n\nBug: 78118584\nChange-Id: Ie0da3dea445f2474c7a889c5f9919305c1c96d40\n"
    },
    {
      "commit": "a2f478ca0b2bda8db9b321f0cfa9e9d3cf6130f9",
      "tree": "00e39e41acac99cc35c292c65c7bca60973fdd5a",
      "parents": [
        "9fc25229e0723c93b453ab34957f22a643e2b602"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Apr 10 19:09:40 2018 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Apr 11 19:07:45 2018 -0700"
      },
      "message": "audioflinger: implement silenced capture for mmap\n\nImplement silencing of audio capture for idle UIDs for\nMMAP streams.\n\nUse audio HAL setMicGain() API to silence the mmap buffer for\nexclusive mode and when only one client is active in shared mode.\n\nAdd new MmapStreamCallback method onStreamSilenced() for AAudio\nservice to selectively silence streams from silenced UIDs in\nshared mode.\n\nBug: 72134552\nTest: manual\nChange-Id: I7c92ba0002bc5ba003c1a3c887edddf9ae53b538\n"
    },
    {
      "commit": "1d3556d6a068f141ac390a04f6a9d92a70f8d7ed",
      "tree": "e89b4aa887013efbc8227dcf4c56addf4ab284b9",
      "parents": [
        "1f03085b596f185d91ccae11b7c0d9f0bc8cd206"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Thu Mar 29 16:30:14 2018 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Mon Apr 02 14:19:24 2018 -0700"
      },
      "message": "AudioTrack: Prevent server from reading client data after stop\n\nPrior to this CL, if an AudioTrack client wrote audio data after\nAudioTrack stop(), but before the track was drained by the server,\nthe newly written client data would be consumed in the drain.\n\nWe now limit the server read to the client write position on stop.\nThis interlocking is essential for rapid asynchronous AudioTrack\ncommand processing.\n\nTest: AudioTrack CTS, SoundPool looping, bug test case\nBug: 75788313\nChange-Id: Ib70e3dc46afe047a8c6cf1fb906a618b3c66cc7f\n"
    },
    {
      "commit": "3528c9330f481f236f16753cb0846c7d6ddcc7ee",
      "tree": "3fb6f04c3842c26e81a68fb847596aa237b713d9",
      "parents": [
        "12cc6e7a4162ea4137f9082a3e0fea551b21aae3"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Feb 23 17:17:22 2018 -0800"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Mar 22 10:02:49 2018 -0700"
      },
      "message": "audio services: monitor execution time for binder commands\n\nAdd a mechanism to monitor execution time of incoming binder\ncalls to audio flinger and audio policy and cause native audioserver\nrestart in case of timeout.\n\nBug: 69250055\nTest: manual. audio smoke tests\nChange-Id: I01b5bf2599fb2a4cd265cbbe8d4e34b2b059aaf4\n"
    },
    {
      "commit": "a1a005fc01118685c92e723c8dcf7afeffc9d59c",
      "tree": "0182587d13b606180463f8e70fc8914c42720a9e",
      "parents": [
        "9d3824e06b07300a5b20b7d6bf024b3f3b0a177f"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Tue Mar 06 12:44:24 2018 -0800"
      },
      "committer": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Tue Mar 13 15:36:38 2018 +0000"
      },
      "message": "Remove 6 out of 8 RefBase references from mkv extractor\n\nBug: 67908544\nTest: CTS DecoderTest\nChange-Id: I04b6cda83861e70f1de70abc671dd791327be159\n(cherry picked from commit ba1f0ab5ce8aa3a96578f6fb372d28d56a687aef)\n"
    },
    {
      "commit": "4f8f900d3cb8ee117980705ac5df250f9df63bfc",
      "tree": "9cb144737b86c91e2053293b611589ec79946af0",
      "parents": [
        "547921396126d2e5e6387a04bc971e616250574b",
        "7d2c6e8be2c9a4f3c1364d243856a345f17f851e"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Feb 27 22:02:33 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Feb 27 22:02:33 2018 +0000"
      },
      "message": "Merge \"Move mediadrm-related headers\""
    },
    {
      "commit": "3d21ae3fad5a894cf15f2e7e7a1d54d0f3d19db0",
      "tree": "4e73f99782f61c1d3d76767b9e03e2aae7ea6130",
      "parents": [
        "13cb23855c3b5242818725262d8822dd4f9be24e"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Fri Feb 16 08:24:08 2018 -0800"
      },
      "committer": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Fri Feb 23 10:04:34 2018 -0800"
      },
      "message": "Remove RefBase from the extractor API\n\n- Add MetaDataBase base class that MetaData derives from, but which\n  does not derive from RefBase.\n- MediaBuffer::meta_data() now returns a MetaDataBase\u0026 rather than an\n  sp\u003cMetaData\u003e\n- Rename MediaSourceBase to MediaTrack.\n- MediaSource no longer derives from MediaSourceBase (or MediaTrack)\n- MediaTrack::getFormat(), MediaExtractor::getTrackMetaData() and\n  MediaExtractor::getMetaData() all take a MetaDataBase\u0026 parameter that\n  they fill out, rather than returning a MetaData directly (the\n  corresponding methods on MediaSource and RemoteMediaExtractor continue\n  to return MetaData)\n\nBug: 67908544\nTest: CTS MediaPlayerTest, DecoderTest, EncodeDecodeTest, manually record video\n\nChange-Id: Ib531ab309061290be33d40d6100c9a8127e22083\n"
    },
    {
      "commit": "03e1e2c6c10a8ae597109a10b3f7870f40e78f94",
      "tree": "e37fd95c9a827d2b97ae7cae2a1bf8110f5aa191",
      "parents": [
        "e54461ae132a79d0ffa9d3ec4631df13eb5c7809"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Tue Feb 20 12:49:08 2018 -0800"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Tue Feb 20 13:01:28 2018 -0800"
      },
      "message": "Fix underrun count for static tracks\n\nShould always return 0 - static tracks don\u0027t underrun.\n\nTest: Soundpool with 40+ static tracks and enabling Bluetooth\nBug: 73550407\nChange-Id: I1e31970eb88a21ce06fc3e0383f4e4b969ad9f02\n"
    },
    {
      "commit": "7d2c6e8be2c9a4f3c1364d243856a345f17f851e",
      "tree": "3aab41fe8acce7056a1e7b01ebc2e8882e416b9a",
      "parents": [
        "987ac7056040ed1594dc975c8a9d7cee463fa834"
      ],
      "author": {
        "name": "Jeff Tinker",
        "email": "jtinker@google.com",
        "time": "Fri Feb 16 16:14:59 2018 -0800"
      },
      "committer": {
        "name": "Jeff Tinker",
        "email": "jtinker@google.com",
        "time": "Fri Feb 16 17:04:00 2018 -0800"
      },
      "message": "Move mediadrm-related headers\n\nRelocate drm and crypto headers from media\nto mediadrm to have finer grained ownership\n\nbug:73556221\nChange-Id: I7d1b5944f261f9b1fdeed7605e4c0b4b4ca43e1a\n"
    },
    {
      "commit": "24aabf915e8252ab318d0df6888a0d61a4c7a904",
      "tree": "f4d8dcf0f150c6b63ebc741089b32025198c4bec",
      "parents": [
        "9e5be7f0dccf9dfd99e022527b01ea684c1dfddc",
        "2a243f08193fe9ff1afe018e9953f01c44ced9de"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Fri Feb 02 19:08:50 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Feb 02 19:08:50 2018 +0000"
      },
      "message": "Merge \"Remove RefBase from plugin-side DataSource\""
    },
    {
      "commit": "2a243f08193fe9ff1afe018e9953f01c44ced9de",
      "tree": "80d5f40de50cd826248cfe4265b383677f25d0c0",
      "parents": [
        "58bce947568db8f6dd5e12e6548aff27af26ae96"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Tue Jan 30 08:29:57 2018 -0800"
      },
      "committer": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Fri Feb 02 07:52:05 2018 -0800"
      },
      "message": "Remove RefBase from plugin-side DataSource\n\nExtractor plugins now use DataSourceBase, which is not refcounted.\nFramework-side DataSource derives from DataSourceBase and RefBase.\nAlso remove MediaExtractor::release, because it is not needed\nanymore due to the way the extractor/track/datasource lifecycle\nis managed now.\nAlso add source and target pid to CallbackDataSource name, to\nmake the extractor dumpsys more useful.\n\nBug: 67908556\nTest: build, boot, CTS, skia test app for heif\nChange-Id: I6b9cbe903f76b0cf27ba87f4a456f424803efd08\n"
    },
    {
      "commit": "1de79cfe1031a1ea6b3ba9fd77ed8686c0b6f694",
      "tree": "75289e92ed05721a30dcf9761aaaa9e4a56f1204",
      "parents": [
        "c717e5e41ed866d3f156e15835150f898acba27d"
      ],
      "author": {
        "name": "rago",
        "email": "rago@google.com",
        "time": "Thu Feb 01 15:21:02 2018 -0800"
      },
      "committer": {
        "name": "rago",
        "email": "rago@google.com",
        "time": "Thu Feb 01 15:21:02 2018 -0800"
      },
      "message": "Fixes related to typo in audio.h\n\nBug: 64038649\nTest: Manual Testing and CTS tests.\nChange-Id: Id2650638f789d85116d780d87b19debd2a13a737\n"
    },
    {
      "commit": "de2c195a218cc24eaf3a7ced149f7eb723656a97",
      "tree": "90f7ece00616bf5c905fe14ae1b17ee864041685",
      "parents": [
        "4b8dbfc9e85ca7c2cc4acdcddca997f197fee718",
        "a70eef730d7665c9f4b2dfd25faf072785f80a2d"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Thu Feb 01 16:46:08 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Feb 01 16:46:08 2018 +0000"
      },
      "message": "Merge changes from topic \"fix-b-63901775-add-presentation\"\n\n* changes:\n  Audio presentation selection for AudioTrack native\n  Add presentation API interface\n"
    },
    {
      "commit": "cb30d8477cbd16dcef6acee1e07dedfa246e9456",
      "tree": "1d3aa1463ffd4718c13061bcf964e2562ea88c85",
      "parents": [
        "7d880c31d2079299000b036c6ae742dc695a5b19"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Fri Jan 26 15:29:02 2018 -0800"
      },
      "committer": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Mon Jan 29 23:33:18 2018 +0000"
      },
      "message": "Remove RefBase from plugin-side MediaSource\n\nExtractor plugins now use MediaSourceBase, which is not refcounted.\nFramework-side MediaSource derives from MediaSourceBase and RefBase.\n\nBug: 67908556\nTest: build, boot\n\nChange-Id: Ie33ca07f0d0ba783a504d7b7bf1a75ca4acdd745\n"
    },
    {
      "commit": "46a76fa5ffb88dbde2c67335dbc5cf20b75b10b6",
      "tree": "7215e85bae943107de3bf07537c28c98216f5690",
      "parents": [
        "6e075b43b0ba324a97fc0f89ef65196ed25be671"
      ],
      "author": {
        "name": "jiabin",
        "email": "jiabin@google.com",
        "time": "Fri Jan 05 10:18:21 2018 -0800"
      },
      "committer": {
        "name": "jiabin",
        "email": "jiabin@google.com",
        "time": "Fri Jan 26 17:16:16 2018 -0800"
      },
      "message": "Add support for getting all available microphones characteristics.\n\nAdd MicrophoneInfo class in native side and native logic for supporting\nquery all available microphones.\n\nBug: 64038649\nTest: Run test and check the print log.\nChange-Id: Ic0a9cce55a1265a66ba08fe81b56b56cb88ba42f\n"
    },
    {
      "commit": "9ee64f139ceff98ea5f9afcc2eaab42901922d56",
      "tree": "e3e6fb7d52310b617c21d61bbd2b6cdc4feb8bc3",
      "parents": [
        "254d783c0db9d7af6b863ad1819f5c4a543a939d"
      ],
      "author": {
        "name": "Previr Rangroo",
        "email": "prang@dolby.com",
        "time": "Tue Nov 28 17:55:36 2017 +1100"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Thu Jan 25 12:33:52 2018 -0800"
      },
      "message": "Add presentation API interface\n\nThis adds AudioPresentationInfo interface to enable applications\nto query and receive audio presentation\ninformation from multiplexed data sources (e.g. MP4 or MPEG2-TS).\n\nBug: 63901775\nTest: make\nChange-Id: I3156cc8594ae153fe8cd2dedc191bfab207f5203\nSigned-off-by: Previr Rangroo \u003cprang@dolby.com\u003e\n"
    },
    {
      "commit": "f0e618d0ee16c63f918c7bb87ec1ff264d177746",
      "tree": "c57a89695d8305242ccacabc5e692606989d831f",
      "parents": [
        "38428ce1b306d8922778f4994d67f0ddffb4fcd2"
      ],
      "author": {
        "name": "Adam Stone",
        "email": "blueeyes@google.com",
        "time": "Wed Jan 17 19:20:41 2018 -0800"
      },
      "committer": {
        "name": "Adam Stone",
        "email": "blueeyes@google.com",
        "time": "Wed Jan 24 17:24:43 2018 -0800"
      },
      "message": "Add EventMetric and a single use case.\n\nAdds an EventMetric class, associated unit tests, and an instance of the\nEventMetric to DrmHal. Also added a unit test for CounterMetric and\ncreated a class to hold all of the future metric instances.\n\nBUG: 64001676\n\nTest: Added and ran unit tests.  Also added a CTS test case.\nChange-Id: Ic94bedd5f8293a58a939613a4ae69ce656a772be\n"
    },
    {
      "commit": "aaf87dd09686bdb47df0a638b622a4c2ea37a331",
      "tree": "055e6f879ea604b1f66bc9cea091481308b17487",
      "parents": [
        "a13ac6c89d0246f081127eec11cd5eb467d168d3"
      ],
      "author": {
        "name": "Adam Stone",
        "email": "blueeyes@google.com",
        "time": "Mon Jan 08 11:55:06 2018 -0800"
      },
      "committer": {
        "name": "Adam Stone",
        "email": "blueeyes@google.com",
        "time": "Tue Jan 23 16:51:17 2018 -0800"
      },
      "message": "Add CounterMetric and a single use case.\n\nThis adds a new class CounterMetric which is used to hold metric\ninformation.  It also adds a single use case for recording and\nreporting a counter metric.\n\nBUG: 64001676\n\nTest: Added and ran a new test for the specific CounterMetric use case.\nChange-Id: I39cab8328f135e579f80b6c2fab721da5f569795\n"
    },
    {
      "commit": "4e1af9fc9c1108d4514e92774f750bcd434dbbcc",
      "tree": "03dc781c49ae6b37c4661c591ece2c5a4eed8cfe",
      "parents": [
        "a11f9357196db29e6f8f05b91334524de4f3207e"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Wed Jan 03 15:54:35 2018 -0800"
      },
      "committer": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Thu Jan 18 19:48:46 2018 -0800"
      },
      "message": "aaudio: implement sessionId for effects\n\nIf a sessionID other than AAUDIO_SESSION_ID_NONE is requested\nthen legacy data path will be forced.\n\nSessionID is implemented for MMAP data path but not used.\nIt is easier to implement it now then try to figure\nit out later.\n\nBug: 33268927\nTest: test_session_id.cpp will be moved to CTS when stable\nChange-Id: I3ea67f57c1cbe24a512980f1352b917ab3cb6387\n"
    },
    {
      "commit": "63a007198b64d551af1d27b81ee8fa8dd52a972a",
      "tree": "9860c46699647830d4af88e5b42160073a9e4c0b",
      "parents": [
        "21f6d6cbecf190724b044251576edf6ee6f48364"
      ],
      "author": {
        "name": "Peiyong Lin",
        "email": "lpy@google.com",
        "time": "Fri Jan 05 19:07:53 2018 -0800"
      },
      "committer": {
        "name": "Peiyong Lin",
        "email": "lpy@google.com",
        "time": "Fri Jan 05 19:13:01 2018 -0800"
      },
      "message": "Remove bad symlink for media/IMediaCodecService.h and media/MediaDefs.h\n\nThe destination files of these symlinks no longer exist, remove symlink so that\nthe generated cmake file can be loaded by clion.\n\nTest: make\nChange-Id: I00afd6950c80869cb6fb7f01ec42300332002924\n"
    },
    {
      "commit": "0f27f00da936e1392ba1f86cd7e327be41c4438d",
      "tree": "bab130db129cb37ee80f022104ac613a680a03bf",
      "parents": [
        "be9b9730488a13add26e1c9f301f7ba3e4a26945"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Dec 14 16:50:47 2017 -0800"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Dec 14 16:50:47 2017 -0800"
      },
      "message": "fix bad symlink for media/AudioClient.h\n\nTest: make\nChange-Id: Ia011bfd61a4bb6a37bc666d80925d68eaca99b5d\n"
    },
    {
      "commit": "21da647792c0b78ab3943be0f32066015d5e8c34",
      "tree": "15ad0b64bf6eaabf24223d7fd376ef9ac00eb9cc",
      "parents": [
        "a4fa4760fa417473324e009b3f4117a2d539c486"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Nov 09 16:29:26 2017 -0800"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Nov 16 11:33:12 2017 -0800"
      },
      "message": "refactor AudioTrack and AudioFlinger createTrack()\n\nRefactor the mechanism used by audio tracks to query and attach\nto an output mixer/stream in audio flinger. This will:\n- reduce the number of binder transactions needed to create a track\n- move sample rate, framecount and flags validations to audio server\nside\n- move audio session allocation to audio server side\n- prepare restriction of certain binder transactions to audioserver only\n\nTest: CTS tests for AudioTrack\n\nChange-Id: If4369aad6c080a56c0b42fbfcc97c8ade17a7439\n"
    },
    {
      "commit": "d91dc5a0602f54fc0d4d2187f37b5b8169bb62c3",
      "tree": "4a3b6fb269ae76af3c0567cc1d57780c17bd2c30",
      "parents": [
        "04ce1be860b40e18ca7f5fdf64ecb82567d7fe24"
      ],
      "author": {
        "name": "Dongwon Kang",
        "email": "dwkang@google.com",
        "time": "Tue Oct 10 00:07:09 2017 -0700"
      },
      "committer": {
        "name": "Dongwon Kang",
        "email": "dwkang@google.com",
        "time": "Tue Oct 17 13:43:59 2017 -0700"
      },
      "message": "Remove libmedia and libstagefright dependency from extractors\n\n- MediaSource, DataSource and MediaExtractor are moved to\n  libmediaextractor so that they can be used by extractor\n  implementations without depending on libmedia and libstagefright.\n- XXXFactory classes has been added in order not to expose CreateXXX\n  methods in libmediaextractor.\n- avc_utils is moved to libstagefright_foundation since most of\n  extractor implementations are relying on that.\n\nTest: build + post submit media CTS tests\nBug: 65851881\nChange-Id: I7d5cf18dd25abc10478ac3f6e7d1828ad023e3fb\n"
    },
    {
      "commit": "158482dcc8a81172ef6ac5725bee2bf7329b1e96",
      "tree": "08ce7b3f080f2f692305670e0a8bdc425f77d354",
      "parents": [
        "3463e1de5b6c4fc99724cdff249aa6abaa8ebdf5",
        "8589ce7045fd4f5520aabbc773f00c7136925fd7"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Oct 03 15:53:43 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Oct 03 15:53:43 2017 +0000"
      },
      "message": "Merge \"Split nblog off from nbaio\""
    },
    {
      "commit": "d0a98fa05f0f6719b93d000c4638230af06e0b99",
      "tree": "438b19e4d9bddffee72c9bab98772d99bd6b7cb1",
      "parents": [
        "5bb3cfe6f3591736a82ac8ede71ced1472e19700"
      ],
      "author": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Thu Sep 14 17:43:10 2017 -0700"
      },
      "committer": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Mon Sep 18 18:34:59 2017 +0000"
      },
      "message": "stagefright: remove Miracast sender code\n\nThis has been deprecated for some time. Remove this from codebase\nto avoid introducing new HAL for HDCP. Log warning and return NULL\nwhen remote display is requested. \n\nbug: 62213914\nChange-Id: I3560b60fe83a01c51df0f2e715a8f2c760e57bf8\n"
    },
    {
      "commit": "8589ce7045fd4f5520aabbc773f00c7136925fd7",
      "tree": "a02b3ba722bc13f798c9c10cc51d19b670388452",
      "parents": [
        "f24d95960d85c891fc40db6f1e9644385efb4eb3"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Sep 08 17:03:42 2017 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Sep 08 17:06:32 2017 -0700"
      },
      "message": "Split nblog off from nbaio\n\nnbaio is an acronym for \"non-blocking audio I/O\", and nblog means\n\"non-blocking logger\" so nblog does not belong with nbaio.\n\nThere are a lot of improvements planned for nblog, and having the\nrestructuring done will make it clearer as more files are added.\n\nTest: builds OK\nChange-Id: Ib28bada2566c1d64bdbe9f5d7a5ce40e080178ef\n"
    },
    {
      "commit": "0b8529fbacaa35634ac24bb62c5890cddcb623b6",
      "tree": "f2ae5de5ae80bb6f69b929172804410e3335abf8",
      "parents": [
        "f238bd3c57632b7f4eeb6b1a6a9542058e911a5b",
        "8cf3a0788df2ee184b498086b1b8da322eeadcca"
      ],
      "author": {
        "name": "Ivan Lozano",
        "email": "ivanlozano@google.com",
        "time": "Fri Sep 01 23:07:08 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Sep 01 23:07:08 2017 +0000"
      },
      "message": "Merge \"Generate the IPlayer interface with AIDL.\""
    },
    {
      "commit": "8cf3a0788df2ee184b498086b1b8da322eeadcca",
      "tree": "1bd36129bbd4afa491689deca23977dbf30930f6",
      "parents": [
        "a5ec8b0ec9c94fd9474fae1d1d1dc798ae6c4d2d"
      ],
      "author": {
        "name": "Ivan Lozano",
        "email": "ivanlozano@google.com",
        "time": "Wed Aug 09 09:01:33 2017 -0700"
      },
      "committer": {
        "name": "Ivan Lozano",
        "email": "ivanlozano@google.com",
        "time": "Fri Sep 01 10:14:30 2017 -0700"
      },
      "message": "Generate the IPlayer interface with AIDL.\n\nThis removes the manually rolled IPlayer implementation and instead uses\nan aidl generated implementation. The IPlayer aidl file is moved from\nframeworks/base/.\n\nTest: run cts --module CtsMediaTestCases\nBug: 64223827\nChange-Id: Ia609f7ba1cc6f71ce919d6174dd8b5e0e1b05575\n"
    },
    {
      "commit": "cc1895eb41723109cb62f00ea524baea408d6a70",
      "tree": "42e5b315e9be93acb64351dcafc71e185d1e8d8c",
      "parents": [
        "86bd71d753feb1e556d65d6d449635df366e92a6"
      ],
      "author": {
        "name": "Shubham Ajmera",
        "email": "shubhamajmera@google.com",
        "time": "Thu Aug 24 16:02:22 2017 -0700"
      },
      "committer": {
        "name": "Shubham Ajmera",
        "email": "shubhamajmera@google.com",
        "time": "Thu Aug 24 16:02:22 2017 -0700"
      },
      "message": "Remove leftover of change ff6900d8f991aac0b67b625f8a1d4d0461b4\n\nTest: make\nChange-Id: I6a6d8cb9aff5e12c388d8d15cc8e03364671a9e3\n"
    },
    {
      "commit": "e66ef840c36aaca77c618873da203115d9921fcc",
      "tree": "0121dcdd42bf7962d5609c1f223856774b3a4051",
      "parents": [
        "7c618e82e826f61890f83bfb31a4f74249827e79",
        "8499f13735227aab50b4bc859a1ea6f02166e912"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Aug 15 15:12:28 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Aug 15 15:12:28 2017 +0000"
      },
      "message": "Merge \"Update OWNERS to be more specific\""
    },
    {
      "commit": "f9db68df36df4b6858a379e010ba69ec9328cfc7",
      "tree": "64c945648b42f3bdc4670e600308d30a1be105f6",
      "parents": [
        "1389cc47fc04ae8715e9a5b6ed48cd2131b4ad21",
        "6bc7d881814ae51ac1f98def9e65037e4608f3a8"
      ],
      "author": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Thu Aug 10 03:47:03 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Thu Aug 10 03:47:03 2017 +0000"
      },
      "message": "Merge \"stagefright: add HEIF support\" into oc-mr1-dev am: 97ab472f39\nam: 6bc7d88181\n\nChange-Id: I570804240719142ebb14ab279befe69b5852d67e\n"
    },
    {
      "commit": "b51ca280e6aaace44ec1d80837439b825c6fce82",
      "tree": "2b5b07364d40fb2a5e50e7ea17e6c907d2e46a16",
      "parents": [
        "24c15776247c46e34562100213035bb7aaffe013"
      ],
      "author": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Wed Jul 26 16:25:28 2017 -0700"
      },
      "committer": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Wed Aug 09 16:20:35 2017 -0700"
      },
      "message": "stagefright: add HEIF support\n\n- add HEIF support in MPEG4Extractor.\n\n- decode HEIF image or tiled image in StagefrightMetadataRetriever\u0027s\n  getFrameAt() api and convert to requested color format.\n\nbug: 64077740\n\nTest: cts-tradefed run cts-dev --module CtsMediaTestCases --compatibility:module-arg CtsMediaTestCases:include-annotation:android.platform.test.annotations.RequiresDevice\n\nChange-Id: Id4b26f1584ca6219073ffb0167f208e1c3bf8aa2\n"
    },
    {
      "commit": "8499f13735227aab50b4bc859a1ea6f02166e912",
      "tree": "25f47c647364a40db2ece3d0e06496e0f0e42a16",
      "parents": [
        "08455b8df21e586c88d9f66eff71f0d26230192e"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Aug 04 08:08:45 2017 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Aug 08 08:13:11 2017 -0700"
      },
      "message": "Update OWNERS to be more specific\n\nStill to do ... media/OWNERS\n\nTest: Gerrit works as expected\nChange-Id: I2645175569b579764d0298641287e56bfabeab9f\n"
    },
    {
      "commit": "e48652674ebd4047363a79d38a6018978087223e",
      "tree": "4d7b5927da48cf1504b0b32fc01a88265dea717f",
      "parents": [
        "633adf69ae8f9aeb41bceb193afefe35e5550c7f"
      ],
      "author": {
        "name": "Sanna Catherine de Treville Wager",
        "email": "scwager@google.com",
        "time": "Fri Jul 14 16:24:15 2017 -0700"
      },
      "committer": {
        "name": "Sanna Catherine de Treville Wager",
        "email": "scwager@google.com",
        "time": "Fri Jul 21 15:52:40 2017 +0000"
      },
      "message": "Separate merge from dump and call merge periodically\n\nEvery time merge is called by the thread loop,\nthe data is also processed and written to\nPerformanceAnalysis. A call to dump retrieves\nthe FIFO of processed data in PerformanceAnalysis\ninstead of the unprocessed Reader FIFO, and prints\nthe result to the console.\n\nTest: dumpsys media.log\n\nChange-Id: Ic479f48e9e4fdf4523a8f15db514dbdd85b70434\n"
    },
    {
      "commit": "9fc83c5c30d110fdddb6ae5e436a0a6190203082",
      "tree": "dc078c5dfab8f3a2ac9a505e8d2f0dd7e434d90a",
      "parents": [
        "ad8ea9637aeb3e33d2bf8adb3e9ae074aaca8c78",
        "2be091cebb9462b63d7160d0fa2cfa8703973a69"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Jul 20 03:26:45 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jul 20 03:26:45 2017 +0000"
      },
      "message": "Merge \"Move xmlparser to under libstagefright\""
    },
    {
      "commit": "971ec06dbc67a070009bdd775d8c97d91c442b64",
      "tree": "bd5d93ffff0836929bd2870fde31a8e7729bedaa",
      "parents": [
        "cd341a74087a951ae6dd6d05988792960b699a9c",
        "0c0ca185203f8c960a424965f14a2bcf588c6350"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Jul 20 03:26:31 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jul 20 03:26:31 2017 +0000"
      },
      "message": "Merge \"Remove unused symbolic links to OMX header files\""
    },
    {
      "commit": "2be091cebb9462b63d7160d0fa2cfa8703973a69",
      "tree": "2b1c84f801a6b9e61be1c10d8fb7f7c58164fd23",
      "parents": [
        "2ef71c5be307e98c6a0164e8b58cb716f9b31622"
      ],
      "author": {
        "name": "Pawin Vongmasa",
        "email": "pawin@google.com",
        "time": "Mon Jul 10 17:31:11 2017 -0700"
      },
      "committer": {
        "name": "Pawin Vongmasa",
        "email": "pawin@google.com",
        "time": "Wed Jul 19 15:04:48 2017 -0700"
      },
      "message": "Move xmlparser to under libstagefright\n\nTest: make cts -j123 \u0026\u0026 cts-tradefed run cts-dev --module \\\nCtsMediaTestCases --compatibility:module-arg \\\nCtsMediaTestCases:include-annotation:\\\nandroid.platform.test.annotations.RequiresDevice\n\nBug: 37657124\nChange-Id: Ib78f983635586558b99850b2fd54143b0a418d1d\n"
    },
    {
      "commit": "0c0ca185203f8c960a424965f14a2bcf588c6350",
      "tree": "efea9ccf96f76729ad878911f1eb3b657fd0eef9",
      "parents": [
        "b25d3927c08503e68a213526a8f82d40eacde81b"
      ],
      "author": {
        "name": "Pawin Vongmasa",
        "email": "pawin@google.com",
        "time": "Tue Jul 18 18:29:19 2017 -0700"
      },
      "committer": {
        "name": "Pawin Vongmasa",
        "email": "pawin@google.com",
        "time": "Wed Jul 19 15:00:09 2017 -0700"
      },
      "message": "Remove unused symbolic links to OMX header files\n\nTest: Compiles\nBug: 63821829\nChange-Id: I11f29e5390470c0c8fe30683444d07d450f6fe23\n"
    },
    {
      "commit": "49b653357a0187934be3d96f514f6d301d23d77c",
      "tree": "ebd68b929e48e6bdd6e7ce190b7b1ad416663833",
      "parents": [
        "349978eecda936c35462fccc926fa3e9eb5fd50d",
        "33ecc4f6b0e53ea7088ff4f151323e29183070c5"
      ],
      "author": {
        "name": "John Bruce",
        "email": "juce@google.com",
        "time": "Wed Jul 19 17:33:46 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jul 19 17:33:46 2017 +0000"
      },
      "message": "Merge \"Marshal Metrics\""
    },
    {
      "commit": "349978eecda936c35462fccc926fa3e9eb5fd50d",
      "tree": "995751bb8d261b6d0b15c04c32e1303adc573add",
      "parents": [
        "c0f5a3bb2d065c9a89e01d67adb2af3a862d4822",
        "54a378b996b5eaddd2a2506e5a16040523fae7c4"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Wed Jul 19 17:31:58 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jul 19 17:31:58 2017 +0000"
      },
      "message": "Merge \"Add owner\""
    },
    {
      "commit": "54a378b996b5eaddd2a2506e5a16040523fae7c4",
      "tree": "7fcb1ce0d8ffb7583238bf7925816ffc02e95138",
      "parents": [
        "8280e4156628d53c0a90c405fa57d4c40c33b62b"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Wed Jul 19 10:30:17 2017 -0700"
      },
      "committer": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Wed Jul 19 10:30:17 2017 -0700"
      },
      "message": "Add owner\n\nfor drm includes\n\nChange-Id: I8a471a75f9cbbb48494c0bc16766f6aecb804edd\n"
    },
    {
      "commit": "33ecc4f6b0e53ea7088ff4f151323e29183070c5",
      "tree": "4a174497fc23c8a5ee993d0e7e6d6316edd052a1",
      "parents": [
        "6133281c9b06c1d1176eca7f07401bba1067081e"
      ],
      "author": {
        "name": "John W. Bruce",
        "email": "juce@google.com",
        "time": "Mon Apr 03 16:49:05 2017 -0700"
      },
      "committer": {
        "name": "John W. Bruce",
        "email": "juce@google.com",
        "time": "Tue Jul 18 16:40:44 2017 -0700"
      },
      "message": "Marshal Metrics\n\nBecause DRM Plugins will not be allowed to call the AMI API under\nTreble, the mediadrmservice will need to marshal the metrics out of the\nplugin in protobuf format and report them to the AMI API instead. This\npatch implements the pulling and interpreting of metrics from DRM\nPlugins.\n\nBug: 36497276\nTest: Played Google Play Movies, verified that playback still worked and\n      Widevine metrics appeared in a dump of the system media metrics.\nChange-Id: If07717c1b87022bc1fcdedfbc62b9193899742d5\n"
    },
    {
      "commit": "b182515e9ce7c0819fb752f24b8063569b464e3c",
      "tree": "9afd6f20d337dcd7e62c4add01547a66bfa690b4",
      "parents": [
        "8280e4156628d53c0a90c405fa57d4c40c33b62b"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Jul 12 12:43:08 2017 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Jul 12 12:43:08 2017 -0700"
      },
      "message": "media: add missing symlink to AudioClient.h\n\nBug: 62950008\nTest: make\nChange-Id: Ic5cd8babd5023ec72d246816e5f9f1b49f475d1f\n"
    },
    {
      "commit": "2c582f9dadb83b72a415d9235971eee356322720",
      "tree": "894de0b22ccc17a7115c696085be10153cdeda5d",
      "parents": [
        "4a8bc4de507573954844af991ad2c2ac949f1bef",
        "d2075e8b86dbf6d7c6af7de6f2f698b1acf4c6df"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Jul 12 11:38:41 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jul 12 11:38:41 2017 +0000"
      },
      "message": "Merge \"Move headers in media/omx/1.0 to the right place\""
    },
    {
      "commit": "d2075e8b86dbf6d7c6af7de6f2f698b1acf4c6df",
      "tree": "eada73a1b4d244c1aaec535b2dbea1547d70ce46",
      "parents": [
        "eb29e9ce27cd34975d675a6ed43786e1cab1e5f7"
      ],
      "author": {
        "name": "Pawin Vongmasa",
        "email": "pawin@google.com",
        "time": "Tue Jul 11 04:50:40 2017 -0700"
      },
      "committer": {
        "name": "Pawin Vongmasa",
        "email": "pawin@google.com",
        "time": "Wed Jul 12 02:50:51 2017 -0700"
      },
      "message": "Move headers in media/omx/1.0 to the right place\n\nTest: Compiles\nBug: 37657124\nChange-Id: I695def527a3149a36e5f010250bbb52e2d0ff99f\n"
    },
    {
      "commit": "a54f1283fdd9adbd64ecca4e14af56aaa0e8c825",
      "tree": "cdadd19276119f775480482778c2df15a6ae264f",
      "parents": [
        "20e6916035865710b7a30ac7f2eac1311e2c2e70"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Sat Jul 01 19:39:32 2017 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Jul 11 18:21:40 2017 -0700"
      },
      "message": "aaudio: indicate client UID and PID to audio flinger\n\nImplement correct indication of client UID and PID to audio flinger\nfor AAudio MMAP streams in both exclusive mode and shared mode.\n- Add start/stop client methods on MMAP streams used only when the MMAP\nstream is in AAudio service and carries a mix of shared streams.\n- Add \"In Service\u0027\" indication from \"client\" side to AAudioServiceStreamMMAP\nso that the behavior can be adapted accordingly.\n- Modify logic on audio flinger side with regard to mmap tracks and\naudio HAL stream activity:\n  - use same audio session for all clients on a same stream to match\n  audio policy logic to share same direct output stream for clients on same\n  session. This is also more consistent with current volume and effect\n  handling as all MMAP  clients sharing the same output stream have the\n  same volume and use case.\n  - start/stop the HAL when the stream is started/stopped with the initial client\n  handle (returned when the stream is opened) but do not create a track.\n  AAudioService implementation will always send an additional start command before\n  first client starts and a stop command after last client stops,\n  in both shared and exclusive mode.\n  - start/stop a track only if the start/stop stream command is received\n  with a handle different from the initial handle.\n- Allow more than one active client from the same UID on a MMAP input in audio policy.\n\nBug: 62950008\nTest: verify playback and capture in mmap mode\nChange-Id: I86151bbb637ff172d2fd5f813056eab13a7bcd3c\n"
    },
    {
      "commit": "6eb0c0e980c8ccd5c0cddfd0f1875f9501b293c7",
      "tree": "3be83b90dc9719351f5f6cac8a815f83d7038147",
      "parents": [
        "af3c24c938f2a0fa715918f1a6a73c794f0d5e60"
      ],
      "author": {
        "name": "Steven Moreland",
        "email": "smoreland@google.com",
        "time": "Thu Jul 06 11:11:31 2017 -0700"
      },
      "committer": {
        "name": "Steven Moreland",
        "email": "smoreland@google.com",
        "time": "Fri Jul 07 19:37:54 2017 +0000"
      },
      "message": "Split libnbaio into libnbaio + libnbaio_mono.\n\nWhen the vndk is enabled (BOARD_VNDK_VERSION\u003dcurrent),\nvendor libraries must only link against vendor variants\nin the build system. This also means that they receive restricted\nsets of headers and that automatic global headers are restricted.\n\nTest: mma -j BOARD_VNDK_VERSION\u003dcurrent\nTest: boots device, audio plays over YouTube\nBug: 37342627\nBug: 63269228\nChange-Id: Ifa9c96f6b98b456def485be6bc5046ee54c3c3ca\n"
    },
    {
      "commit": "26cd4e41c01ae0e1c1fa4037d7d670ab86e10415",
      "tree": "3498a5730aec0de86c67279fb4af92516137e38e",
      "parents": [
        "53fdc1d748735a82f05fa77d04ec08e4c5d43eaa"
      ],
      "author": {
        "name": "Vijay Venkatraman",
        "email": "vijaykv@google.com",
        "time": "Fri Jun 30 15:17:05 2017 -0700"
      },
      "committer": {
        "name": "Vijay Venkatraman",
        "email": "vijaykv@google.com",
        "time": "Fri Jun 30 15:17:05 2017 -0700"
      },
      "message": "Fix nbaio headers by moving them to include/media/nbaio\n\nBug: 63172425\nTest: Build target\nChange-Id: Idc8aecad00aa4d31125ff1026a2c7c8654dd1a9e\n"
    },
    {
      "commit": "53fdc1d748735a82f05fa77d04ec08e4c5d43eaa",
      "tree": "95f1fe2b71fe7a0efd373193c2f4fe20e22cb551",
      "parents": [
        "a48289c0f7dcc5a8f3e379c9d9fc0bee2916d9ef"
      ],
      "author": {
        "name": "Vijay Venkatraman",
        "email": "vijaykv@google.com",
        "time": "Fri Jun 30 14:43:09 2017 -0700"
      },
      "committer": {
        "name": "Vijay Venkatraman",
        "email": "vijaykv@google.com",
        "time": "Fri Jun 30 14:43:09 2017 -0700"
      },
      "message": "Fix audioprocessing headers by moving them to include/media\n\nBug: 63172425\nTest: Build target\nChange-Id: I7d28827f93133af6f94d9f48c2346ff5d4011df5\n"
    },
    {
      "commit": "a48289c0f7dcc5a8f3e379c9d9fc0bee2916d9ef",
      "tree": "c3595eac6dd49bb02c78a0957ac619236cc48f2e",
      "parents": [
        "cd6d380e4f526476a11adface7680b3981c6a7d7"
      ],
      "author": {
        "name": "Vijay Venkatraman",
        "email": "vijaykv@google.com",
        "time": "Fri Jun 30 14:20:00 2017 -0700"
      },
      "committer": {
        "name": "Vijay Venkatraman",
        "email": "vijaykv@google.com",
        "time": "Fri Jun 30 14:36:50 2017 -0700"
      },
      "message": "Fix audiohal headers to be under include/media/audiohal\n\nBug: 63172425\nTest: Build target\nChange-Id: Iafe731d02a5c7ebd1a3a41143150a80a793ceb86\n"
    },
    {
      "commit": "8538e15909bae62c0788c7921515b7ccb1d866c6",
      "tree": "ada54771ddccda6e5dc1a8d1da30235d1126052e",
      "parents": [
        "cd1038cfd8ffab08eb96e6c55dc799349073bb52",
        "d5a416a49d5074e2966f5fe255561cbaaf31a325"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Jun 28 20:37:26 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jun 28 20:37:26 2017 +0000"
      },
      "message": "Merge \"cas: convert MediaCas to HIDL\""
    },
    {
      "commit": "24177835c5c57078a9ffcf439dc4246bd264dad3",
      "tree": "56fa9b314e0d4ab3f0b540aa3f6e00dcafa13d1a",
      "parents": [
        "325b2997d92c4ba2c116b47e6c3d0d0045c5386b",
        "88724633820406638b217656625e92afc78e6d82"
      ],
      "author": {
        "name": "Tomasz Wasilczyk",
        "email": "twasilczyk@google.com",
        "time": "Mon Jun 26 20:58:41 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Jun 26 20:58:53 2017 +0000"
      },
      "message": "Merge \"Remove previous implementation of RadioService.\""
    },
    {
      "commit": "d5a416a49d5074e2966f5fe255561cbaaf31a325",
      "tree": "1ea87bb5fe5ed45acf272e403d618cfe17cba499",
      "parents": [
        "2fdb0fff6c0f763841511308971444c1c920f35e"
      ],
      "author": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Tue May 16 11:16:34 2017 -0700"
      },
      "committer": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Fri Jun 23 16:15:49 2017 -0700"
      },
      "message": "cas: convert MediaCas to HIDL\n\n- Remove AIDL interfaces.\n- Replace usage with corresponding HIDL interfaces.\n- Move MediaCasService implementation from frameworks/av\n  to hardware/interfaces/cas.\n\nbug: 22804304\n\nChange-Id: I56ab22565a43e91481ac2759ce69462bcc194046\n"
    },
    {
      "commit": "88724633820406638b217656625e92afc78e6d82",
      "tree": "7402fcb117aa1f65a5cb647075155eb671e87a68",
      "parents": [
        "c4df16cd349f90b788a4eb39a46ecb70dd4edcb6"
      ],
      "author": {
        "name": "Tomasz Wasilczyk",
        "email": "twasilczyk@google.com",
        "time": "Fri Jun 23 10:47:15 2017 -0700"
      },
      "committer": {
        "name": "Tomasz Wasilczyk",
        "email": "twasilczyk@google.com",
        "time": "Fri Jun 23 10:47:15 2017 -0700"
      },
      "message": "Remove previous implementation of RadioService.\n\nBug: b/36863239\nTest: instrumentalization\nChange-Id: I47892ce638b1247f0f367265f68461a418bd6753\n"
    },
    {
      "commit": "2c6c3bb76b2fa18ed3536331a1700250bd04c7ce",
      "tree": "2bdd2a6e5f8a2ba988a41d76b390827bfa68a964",
      "parents": [
        "2da80c13523113c4d93c3fe1b11ac16cd22b6d0e"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Fri Jun 16 14:01:45 2017 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Thu Jun 22 15:01:28 2017 -0700"
      },
      "message": "AudioFlinger: Log Record and MMap thread events\n\nAlso update track dump for better grouping and consistency.\n\nTest: adb shell dumpsys media.audio_flinger\nBug: 62700410\nBug: 62701585\nChange-Id: I3a6e76eac871cb08ff14d45f7d3992a6e7fba045\n"
    },
    {
      "commit": "d4b59cd1a9469fd58dbf7212b110cac81f019f49",
      "tree": "e3c79623fe86dad2ae8929cece99b25b2b51d557",
      "parents": [
        "62a0751f9daaba5aff37aa8de93737e2f7af6362",
        "eb96cfcbce82e4beb8a3a307adbe032f233a5fd1"
      ],
      "author": {
        "name": "Chih-hung Hsieh",
        "email": "chh@google.com",
        "time": "Thu Jun 08 20:46:31 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Thu Jun 08 20:46:31 2017 +0000"
      },
      "message": "Merge \"Add OWNERS in frameworks/av\" am: 7b2b2a497c am: 556252fa99\nam: eb96cfcbce\n\nChange-Id: Idc2a33bb46af020f4d59c6fca13b433185aca0b7\n"
    },
    {
      "commit": "eb96cfcbce82e4beb8a3a307adbe032f233a5fd1",
      "tree": "bbb5d18633a86c628667a9d5301ff2a682a61733",
      "parents": [
        "7840d603cad132c9b02116fae1b1ab99c8f3b7b8",
        "556252fa992b5f405f8bb81da23061ffe5771c99"
      ],
      "author": {
        "name": "Chih-hung Hsieh",
        "email": "chh@google.com",
        "time": "Thu Jun 08 20:40:49 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Thu Jun 08 20:40:49 2017 +0000"
      },
      "message": "Merge \"Add OWNERS in frameworks/av\" am: 7b2b2a497c\nam: 556252fa99\n\nChange-Id: Ic699b8f7a93fe0634aaac1ce924f6c0bf6d5ace9\n"
    }
  ],
  "next": "b1e2a238227076e274b39da9531d4287b6207251"
}
