)]}'
{
  "log": [
    {
      "commit": "8ee49b4c5d558e200f2c287c90d195c16bb917df",
      "tree": "ef269c85bf1dfce68bd600e4a2c4038007c4b786",
      "parents": [
        "ad5490028fcbb5291aaa1b63daddf8a22b84baff"
      ],
      "author": {
        "name": "jiabin",
        "email": "jiabin@google.com",
        "time": "Fri Oct 11 16:13:32 2019 -0700"
      },
      "committer": {
        "name": "jiabin",
        "email": "jiabin@google.com",
        "time": "Tue Dec 03 14:44:38 2019 -0800"
      },
      "message": "Add parcelable test for classes in libaudiofoundation.\n\nAdd parcelable test by writing the objects to Parcel and then reading\nthe objects to check parcelable functions work as expected.\n\nTest: atest audiofoundation_parcelable_test\nBug: 135621476\nChange-Id: I1d2263f0fe91e80b9262501372fde5e104469988\nMerged-In: I1d2263f0fe91e80b9262501372fde5e104469988\n"
    },
    {
      "commit": "ad5490028fcbb5291aaa1b63daddf8a22b84baff",
      "tree": "4c80bc5f50d13ae7f69b13a9e8245b9f9c8a8097",
      "parents": [
        "0da24a38b94018ad07172b3c1f0058b8210fa2e0"
      ],
      "author": {
        "name": "jiabin",
        "email": "jiabin@google.com",
        "time": "Thu Oct 17 14:15:45 2019 -0700"
      },
      "committer": {
        "name": "jiabin",
        "email": "jiabin@google.com",
        "time": "Tue Dec 03 14:42:37 2019 -0800"
      },
      "message": "Add export header lib headers to libaudiofoundation_headers.\n\nAdd libaudio_system_headers, libaudioclient_headers, libmedia_headers\nto export_header_lib_headers for libaudiofoundation_headers so that\nthere is not needed to add header lib when using libaudiofoundation.\n\nTest: make\nBug: 135621476\nChange-Id: Iaa2c8046f9bce4b69398795e162d1ee39cece24b\nMerged-In: Iaa2c8046f9bce4b69398795e162d1ee39cece24b\n"
    },
    {
      "commit": "0da24a38b94018ad07172b3c1f0058b8210fa2e0",
      "tree": "592bd6e7ba809635fb51937cf84637a4a566ab85",
      "parents": [
        "d19519a22ae29ce0b9e9c6b8325344af2bc52725"
      ],
      "author": {
        "name": "jiabin",
        "email": "jiabin@google.com",
        "time": "Tue Oct 15 16:04:13 2019 -0700"
      },
      "committer": {
        "name": "jiabin",
        "email": "jiabin@google.com",
        "time": "Tue Dec 03 14:39:57 2019 -0800"
      },
      "message": "Add equals functions for classes in libaudiofoundation.\n\nAdd equals functions that can be used to check if current object is the\nsame as the given object by checking if all members are the same.\n\nBug: 135621476\nTest: make\nChange-Id: Idcf09587f629e6719e9dcf2f0fb7d68a01eafef9\nMerged-In: Idcf09587f629e6719e9dcf2f0fb7d68a01eafef9\n"
    },
    {
      "commit": "d19519a22ae29ce0b9e9c6b8325344af2bc52725",
      "tree": "765dfd6fd3192b4dbceaaf7e9664fc51fac64084",
      "parents": [
        "12dc6b0e9fba8b7a8028d26fe02014fa2efe101e"
      ],
      "author": {
        "name": "jiabin",
        "email": "jiabin@google.com",
        "time": "Tue Oct 08 17:33:38 2019 -0700"
      },
      "committer": {
        "name": "jiabin",
        "email": "jiabin@google.com",
        "time": "Tue Dec 03 14:39:19 2019 -0800"
      },
      "message": "Make audio stuff parcelable.\n\nMake some generic audio classes parcelable so that they can be easily\nused in binder call, including AudioProfile, AudioPort, AudioPortConfig,\nDeviceDescriptorBase.\n\nBug: 135621476\nTest: make\nChange-Id: I8bdcd0da13739fc53638c78aac133336b77fb9d2\nMerged-In: I8bdcd0da13739fc53638c78aac133336b77fb9d2\n"
    },
    {
      "commit": "12dc6b0e9fba8b7a8028d26fe02014fa2efe101e",
      "tree": "b72ebe2d9bd0682eef8613ed8a8cb30359c1a0ff",
      "parents": [
        "4ad3d03f619176464973f04adef235f49255b6ed"
      ],
      "author": {
        "name": "jiabin",
        "email": "jiabin@google.com",
        "time": "Tue Oct 01 09:38:30 2019 -0700"
      },
      "committer": {
        "name": "jiabin",
        "email": "jiabin@google.com",
        "time": "Tue Dec 03 14:38:42 2019 -0800"
      },
      "message": "Clear up bit mask usage in audio policy.\n\nThis change includes:\n1. Use DeviceTypeSet to represent a combination of audio device types.\n2. Add helper functions for DeviceTypeSet\n3. Stop using audio device type as a bit mask in DeviceVector\n\nTest: atest AudioTrackTest AudioRecordTest AudioPlaybackCaptureTest\nTest: atest AudioHostTest AudioServiceHostTest audiopolicy_tests\nTest: audio smoke test\nChange-Id: If80513b689848bcab6094f70a572f053856afa82\nMerged-In: If80513b689848bcab6094f70a572f053856afa82\n"
    },
    {
      "commit": "4ad3d03f619176464973f04adef235f49255b6ed",
      "tree": "d7636502d562f370f83807acf4c3cb18531fce9c",
      "parents": [
        "cc82581159b8570042e8ab0c4d921c79433d9fd4"
      ],
      "author": {
        "name": "jiabin",
        "email": "jiabin@google.com",
        "time": "Wed Jul 31 17:23:17 2019 -0700"
      },
      "committer": {
        "name": "jiabin",
        "email": "jiabin@google.com",
        "time": "Tue Dec 03 14:36:56 2019 -0800"
      },
      "message": "Make AudioGain parcelable.\n\nMake AudioGain parcelable so that it can be easier to use in binder\ncall.\n\nBug: 135621476\nTest: make\nChange-Id: I4159e92a27c6d99570ac2e2175c3d46fa7975059\nMerged-In: I4159e92a27c6d99570ac2e2175c3d46fa7975059\n"
    },
    {
      "commit": "cc82581159b8570042e8ab0c4d921c79433d9fd4",
      "tree": "30a901c2add7c902adccd19288ee5c55b0a0886b",
      "parents": [
        "f21a5174bc42114b3085f5a76829da505eeaf079",
        "38b2c5d794fb142686b200582432c57ebd3c6ba5"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Dec 03 18:53:31 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Dec 03 18:53:31 2019 +0000"
      },
      "message": "Merge changes from topics \"adtFunctionsNoBitMask\", \"audioArraysStaticCheck\", \"mvSystemAudioTests\", \"rmDeviceTypeBitMaskUsage\"\n\n* changes:\n  Add audio health tests.\n  Move systemaudio_tests to system/media.\n  Enable AUDIO_ARRAYS_STATIC_CHECK.\n  Add test for device type helper functons.\n  Stop using audio device types as bit mask in policy.h\n  Add test for audio device type helper functions.\n"
    },
    {
      "commit": "38b2c5d794fb142686b200582432c57ebd3c6ba5",
      "tree": "30a901c2add7c902adccd19288ee5c55b0a0886b",
      "parents": [
        "807d3ad2d892b6d75e650e9bdc1d087ada205bd4"
      ],
      "author": {
        "name": "jiabin",
        "email": "jiabin@google.com",
        "time": "Thu Sep 26 17:56:44 2019 -0700"
      },
      "committer": {
        "name": "jiabin",
        "email": "jiabin@google.com",
        "time": "Mon Dec 02 14:31:46 2019 -0800"
      },
      "message": "Add audio health tests.\n\nFirst test for audio health check. The test checks if all declared\ndevices found by checking if the audio device types of attached devices\ncan be seen by audio policy.\n\nBug: 141580284\nTest: atest audio_health_tests audiopolicy_tests\nChange-Id: I0374f382eaab7b36ab623b11a59e0634565f2187\nMerged-In: I0374f382eaab7b36ab623b11a59e0634565f2187\n"
    },
    {
      "commit": "807d3ad2d892b6d75e650e9bdc1d087ada205bd4",
      "tree": "cb778c944b11121dd442f64d9a4b0092c92a62b2",
      "parents": [
        "8cb192feee635eb4859eabf3b754427cd6785718"
      ],
      "author": {
        "name": "jiabin",
        "email": "jiabin@google.com",
        "time": "Mon Sep 23 14:51:40 2019 -0700"
      },
      "committer": {
        "name": "jiabin",
        "email": "jiabin@google.com",
        "time": "Mon Dec 02 14:30:10 2019 -0800"
      },
      "message": "Move systemaudio_tests to system/media.\n\nBug: 135621476\nTest: atest systemaudio_tests\nChange-Id: I66f6498b0119cd210f7bc159758a105be8bc5d1d\nMerged-In: I66f6498b0119cd210f7bc159758a105be8bc5d1d\n"
    },
    {
      "commit": "8cb192feee635eb4859eabf3b754427cd6785718",
      "tree": "2e034bbeae67c28c0cddf00e20b42997e6185245",
      "parents": [
        "f3d474d651818ecf5d45712d506c39b7e950ef60"
      ],
      "author": {
        "name": "jiabin",
        "email": "jiabin@google.com",
        "time": "Mon Sep 23 10:34:20 2019 -0700"
      },
      "committer": {
        "name": "jiabin",
        "email": "jiabin@google.com",
        "time": "Mon Dec 02 14:29:38 2019 -0800"
      },
      "message": "Enable AUDIO_ARRAYS_STATIC_CHECK.\n\nEnable static check for audio arrays so that it can be earlier to catch\nif there is any error within the audio arrays.\n\nBug: 135621476\nTest: make\nChange-Id: I598311e0853ca77dff83fb97974e534adb238567\nMerged-In: I598311e0853ca77dff83fb97974e534adb238567\n"
    },
    {
      "commit": "f3d474d651818ecf5d45712d506c39b7e950ef60",
      "tree": "f9da191b48addf6f25ab71931f2ce850a002158d",
      "parents": [
        "9b307d7e1e381fa693e9ef597067482aa434688c"
      ],
      "author": {
        "name": "jiabin",
        "email": "jiabin@google.com",
        "time": "Thu Sep 19 17:55:16 2019 -0700"
      },
      "committer": {
        "name": "jiabin",
        "email": "jiabin@google.com",
        "time": "Mon Dec 02 14:28:43 2019 -0800"
      },
      "message": "Add test for device type helper functons.\n\nThe added tests cover:\n1. audio_is_remoute_submix_device\n2. audio_is_digital_in/out_device\n3. audio_idevice_is_digital\n\nTest: atest systemaudio_tests\nBug: 135621476\nChange-Id: Idf8a9db97db6035ecc832a6a9bba6f64f8fc7479\nMerged-In: Idf8a9db97db6035ecc832a6a9bba6f64f8fc7479\n"
    },
    {
      "commit": "9b307d7e1e381fa693e9ef597067482aa434688c",
      "tree": "1e4f282148f598a82ca818aaebd1fc57d3bef344",
      "parents": [
        "d7631f083d26c77e6d027011681d12ca977a7ed2"
      ],
      "author": {
        "name": "jiabin",
        "email": "jiabin@google.com",
        "time": "Wed Sep 18 15:13:13 2019 -0700"
      },
      "committer": {
        "name": "jiabin",
        "email": "jiabin@google.com",
        "time": "Mon Dec 02 14:27:43 2019 -0800"
      },
      "message": "Stop using audio device types as bit mask in policy.h\n\nBug: 135621476\nTest: atest AudioHostTest, AudioPlaybackCaptureTest\nTest: atest AudioServiceHostTest, audiopolicy_tests\nTest: listen to music, make phone call with BT device\nTest: test play music via Android Auto emulator\nChange-Id: I154555579b0ebb8b020d00e9c05c8b9f79a08db4\nMerged-In: I154555579b0ebb8b020d00e9c05c8b9f79a08db4\n"
    },
    {
      "commit": "d7631f083d26c77e6d027011681d12ca977a7ed2",
      "tree": "53b8b68e80e4192d0f821036e482d23422d9804e",
      "parents": [
        "f21a5174bc42114b3085f5a76829da505eeaf079"
      ],
      "author": {
        "name": "jiabin",
        "email": "jiabin@google.com",
        "time": "Mon Sep 16 17:08:21 2019 -0700"
      },
      "committer": {
        "name": "jiabin",
        "email": "jiabin@google.com",
        "time": "Mon Dec 02 14:19:29 2019 -0800"
      },
      "message": "Add test for audio device type helper functions.\n\nThis CL added test audio device type helper functions, which expect a\nsingle audio device type as a parameter.\n\nBug: 135621476\nTest: atest systemaudio_tests\nChange-Id: I5dac8eab93ab2251eea62b3b8d797f504bf538e4\nMerged-In: I5dac8eab93ab2251eea62b3b8d797f504bf538e4\n"
    },
    {
      "commit": "f21a5174bc42114b3085f5a76829da505eeaf079",
      "tree": "1090d56e69ef68230d89e236fc913436ec1cc423",
      "parents": [
        "a9c48964d4735012212f822f0b8984614d586941",
        "6713a38298ccd91ba1718e559f057c705904f865"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Dec 02 19:50:51 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Dec 02 19:50:51 2019 +0000"
      },
      "message": "Merge changes I70ebe6bc,I9a6d6401,Icbde26fe,I40299d95,Ifd8eb281, ...\n\n* changes:\n  Create DeviceDescriptorBase.\n  Copy DeviceDescriptor to libaudiofoundation.\n  Rename AudioPort and PolicyAudioPort accordingly.\n  Make audio port in policy not derive from audio port base\n  Rename AudioProfileVector.h as AudioProfileVectorHelper.h\n  Leave AudioProfileVector only in libaudiofoundation.\n"
    },
    {
      "commit": "a9c48964d4735012212f822f0b8984614d586941",
      "tree": "6d93b968396bd5522c5b9e2eb1c0aa17dd28ca90",
      "parents": [
        "4cabab17c4a83791061028af33b6e582da4638e4",
        "f9bd900f18a3092a3ec28776e8fdfd260b081f4b"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Dec 02 19:45:31 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Dec 02 19:45:31 2019 +0000"
      },
      "message": "Merge \"Add test for setDeviceConnectionState.\""
    },
    {
      "commit": "4cabab17c4a83791061028af33b6e582da4638e4",
      "tree": "da1986b72ccccb6b45f6b98c660651d70bfd904c",
      "parents": [
        "b2872d478fbb66eddd59d8a35d81796850927153",
        "890df85d72d163bec59d1f20312768300bc1d5f9"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Dec 02 19:45:23 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Dec 02 19:45:23 2019 +0000"
      },
      "message": "Merge \"Refactor audiopolicymanager_tests.\""
    },
    {
      "commit": "6713a38298ccd91ba1718e559f057c705904f865",
      "tree": "a85b701316bf17a62e50376b271778dc6f4d8e96",
      "parents": [
        "2177b121ab8fc29c836719353b898456a671e728"
      ],
      "author": {
        "name": "jiabin",
        "email": "jiabin@google.com",
        "time": "Thu Sep 12 16:29:15 2019 -0700"
      },
      "committer": {
        "name": "jiabin",
        "email": "jiabin@google.com",
        "time": "Wed Nov 27 11:04:33 2019 -0800"
      },
      "message": "Create DeviceDescriptorBase.\n\nDeviceDescriptorBase is a class that derives from AudioPort and\nAudioPortConfig and contains extensions to describe a audio port that is\na hardware device. DeviceDescriptor derives from DeviceDescriptorBase\nand contains policy related stuff.\n\nTest: atest AudioTrackTest AudioRecordTest AudioManagerTest\nTest: atest AudioPlaybackCaptureTest AudioHostTest audiopolicy_tests\nTest: audio smoke test\nBug: 135621476\nChange-Id: I70ebe6bca70a77bbfc8f6855de3fd4c4ffa1c487\nMerged-In: I70ebe6bca70a77bbfc8f6855de3fd4c4ffa1c487\n"
    },
    {
      "commit": "2177b121ab8fc29c836719353b898456a671e728",
      "tree": "49a8086420a6ec7414da22676cdb3879175b3bc9",
      "parents": [
        "dd81cc2046346b92dc2c7c92d5a7628471bb5218"
      ],
      "author": {
        "name": "jiabin",
        "email": "jiabin@google.com",
        "time": "Wed Sep 11 10:16:33 2019 -0700"
      },
      "committer": {
        "name": "jiabin",
        "email": "jiabin@google.com",
        "time": "Wed Nov 27 11:04:04 2019 -0800"
      },
      "message": "Copy DeviceDescriptor to libaudiofoundation.\n\nThe file is copied from managerdefinition folder. Doing this to get a\nbetter git history.\n\nTest: make\nBug: 135621476\nChange-Id: I9a6d6401e45102b5303730b4900b1899968ca267\nMerged-In: I9a6d6401e45102b5303730b4900b1899968ca267\n"
    },
    {
      "commit": "dd81cc2046346b92dc2c7c92d5a7628471bb5218",
      "tree": "24548543a9d9b63e68299105e8c09b41303fe7d0",
      "parents": [
        "dff2a4f7fcf16ea320684f9ca04bc05b8bf1b5b8"
      ],
      "author": {
        "name": "jiabin",
        "email": "jiabin@google.com",
        "time": "Wed Sep 11 10:15:46 2019 -0700"
      },
      "committer": {
        "name": "jiabin",
        "email": "jiabin@google.com",
        "time": "Wed Nov 27 11:03:39 2019 -0800"
      },
      "message": "Rename AudioPort and PolicyAudioPort accordingly.\n\nMake the file name consistent as the class name.\n\nTest: make\nBug: 135621476\nChange-Id: Icbde26fe1798e344c3746f4678db098688456654\nMerged-In: Icbde26fe1798e344c3746f4678db098688456654\n"
    },
    {
      "commit": "dff2a4f7fcf16ea320684f9ca04bc05b8bf1b5b8",
      "tree": "7a6363492021a517099fc38a67efcacd377768dc",
      "parents": [
        "c02546150da2b87e71ed6d2df8abf48791ad79cb"
      ],
      "author": {
        "name": "jiabin",
        "email": "jiabin@google.com",
        "time": "Tue Sep 10 14:29:54 2019 -0700"
      },
      "committer": {
        "name": "jiabin",
        "email": "jiabin@google.com",
        "time": "Wed Nov 27 11:02:54 2019 -0800"
      },
      "message": "Make audio port in policy not derive from audio port base\n\nThis patch aims to make the structure for libaudiofoundation and policy\nstuff simpler, including:\n1. Make AudioPortBase as AudioPort in libaudiofoundation. Create\nPolicyAudioPort that contains policy related stuff, which is used by\naudiopolicy.\n2. Make AudioPortConfigBase as AudioPortConfig in libaudiofoundation.\nCreate PolicyAudioPortConfig that contains policy related stuff.\n3. DeviceDescriptor derives from AudioPort, AudioPortConfig, PolicyAudioPort\nand PolicyAudioPortConfig. IOProfile derives from AudioPort,\nPolicyAudioPort. AudioInputDescriptor/AudioOutputDescriptor derives from\nAudioPortConfig, PolicyAudioPortConfig.\n\nTest: atest AudioTrackTest, AudioRecordTest, AudioManagerTest\nTest: atest audiopolicy_tests, AudioHostTest\nTest: audio smoke test\nBug: 135621476\nChange-Id: I40299d95dda3b3fc0ea88b079f2fe38d8f7e5b31\nMerged-In: I40299d95dda3b3fc0ea88b079f2fe38d8f7e5b31\n"
    },
    {
      "commit": "c02546150da2b87e71ed6d2df8abf48791ad79cb",
      "tree": "88ecb87c7a96f1fa100f3c2133788a093c6a4b57",
      "parents": [
        "b9733bc444e79abf65fd18be3c25cb7e9499b7ad"
      ],
      "author": {
        "name": "jiabin",
        "email": "jiabin@google.com",
        "time": "Tue Sep 10 14:29:14 2019 -0700"
      },
      "committer": {
        "name": "jiabin",
        "email": "jiabin@google.com",
        "time": "Wed Nov 27 10:51:54 2019 -0800"
      },
      "message": "Rename AudioProfileVector.h as AudioProfileVectorHelper.h\n\nThe file only contains helper functions for AudioProfileVector.\n\nTest: make\nBug: 135621476\nChange-Id: Ifd8eb281cbb7d6395fd5d4b4d6f308d58e6ded3d\nMerged-In: Ifd8eb281cbb7d6395fd5d4b4d6f308d58e6ded3d\n"
    },
    {
      "commit": "b9733bc444e79abf65fd18be3c25cb7e9499b7ad",
      "tree": "fc5fa1bbe0ee8f698e81ac59d5e42c8d613b7fb5",
      "parents": [
        "1e415c058a14bf9ba2683685c40deda1dad6cd9c"
      ],
      "author": {
        "name": "jiabin",
        "email": "jiabin@google.com",
        "time": "Tue Sep 10 14:27:34 2019 -0700"
      },
      "committer": {
        "name": "jiabin",
        "email": "jiabin@google.com",
        "time": "Wed Nov 27 10:51:25 2019 -0800"
      },
      "message": "Leave AudioProfileVector only in libaudiofoundation.\n\nMake AudioProfileVector only in libaudiofoundation. In policy part,\ninstead of having policy specific AudioProfileVector deriving from\nAudioProfileVector in libaudiofoundation, make all the functions as\nglobal functions. In that case, AudioPortBase does not need to be a\ntemplate class. That helps make the structure clearer.\n\nTest: audio smoke test\nTest: CTS for AudioTrack, AudioRecord, AudioManager\nTest: audiopolicy_tests, AudioHostTest\nBug: 135621476\nChange-Id: I36b12123cf52c3f82cef09a965403791dff74093\nMerged-In: I36b12123cf52c3f82cef09a965403791dff74093\n"
    },
    {
      "commit": "f9bd900f18a3092a3ec28776e8fdfd260b081f4b",
      "tree": "0f86d5a77d1096a23b295264625844e67449e5a5",
      "parents": [
        "890df85d72d163bec59d1f20312768300bc1d5f9"
      ],
      "author": {
        "name": "jiabin",
        "email": "jiabin@google.com",
        "time": "Thu Sep 05 14:07:25 2019 -0700"
      },
      "committer": {
        "name": "jiabin",
        "email": "jiabin@google.com",
        "time": "Wed Nov 27 10:39:41 2019 -0800"
      },
      "message": "Add test for setDeviceConnectionState.\n\nThe test uses HDMI and bt hfp to test setting of device connection\nstate. After the device is connected, the test tries to use explicit\nrouting to the new connected device to make sure the connection state is\nset correctly.\n\nBug: 135621476\nTest: atest audiopolicy_tests\nChange-Id: I14759daac6d3522fa133a6e3b27b3863bb4ce3d1\nMerged-In: I14759daac6d3522fa133a6e3b27b3863bb4ce3d1\n"
    },
    {
      "commit": "890df85d72d163bec59d1f20312768300bc1d5f9",
      "tree": "823e2c973a610e52ecfe65b769c24e8e98267223",
      "parents": [
        "1e415c058a14bf9ba2683685c40deda1dad6cd9c"
      ],
      "author": {
        "name": "jiabin",
        "email": "jiabin@google.com",
        "time": "Thu Sep 05 10:26:04 2019 -0700"
      },
      "committer": {
        "name": "jiabin",
        "email": "jiabin@google.com",
        "time": "Wed Nov 27 10:38:16 2019 -0800"
      },
      "message": "Refactor audiopolicymanager_tests.\n\nThe refactor includes:\n1. Allow to set up audio policy manager with configuration file.\n2. Allow explicitly routing.\n\nBug: 135621476\nTest: atest audiopolicy_tests\nChange-Id: Idf6d76bc78a74b56eb55bc7b9458bebba8f367d8\nMerged-In: Idf6d76bc78a74b56eb55bc7b9458bebba8f367d8\n"
    },
    {
      "commit": "b2872d478fbb66eddd59d8a35d81796850927153",
      "tree": "ef38b97daf400489a3d836d92725ac81fb19847d",
      "parents": [
        "1e415c058a14bf9ba2683685c40deda1dad6cd9c",
        "80f128b4074ab814060b460cc5059c523e81eeb3"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Nov 27 07:11:32 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Nov 27 07:11:32 2019 +0000"
      },
      "message": "Merge \"camera2 ndk: Don\u0027t send onStatusChanged callbacks for devices which don\u0027t support camera2.\""
    },
    {
      "commit": "1e415c058a14bf9ba2683685c40deda1dad6cd9c",
      "tree": "994d049704547e2b78f160ecec8f7649bcd83dd8",
      "parents": [
        "8121bf7c57fbe4b29699c22164768b3e911aeb8f",
        "eaf09f089a42f7a7ea39339e93b358b37b58956f"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Nov 27 01:15:30 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Nov 27 01:15:30 2019 +0000"
      },
      "message": "Merge changes I05611b70,I6cd1a53e,Ic2e08efc,I13ac0673,I0d87fd76\n\n* changes:\n  Add AudioPortFoundation, AudioPortBase and AudioPortConfigBase.\n  Copy AudioPort.h to libaudiofoundation.\n  Make AudioProfile as a common class and create AudioProfileVectorBase.\n  Preparation for moving AudioProfile to libaudiofoundation.\n  Return DeviceDescriptor or DeviceVector in Engine.\n"
    },
    {
      "commit": "8121bf7c57fbe4b29699c22164768b3e911aeb8f",
      "tree": "d3a79a7c11770ee44427aeb2c2e180ab448aea20",
      "parents": [
        "16bcc29edb3dac99f85abfe47ea5e731fd977769",
        "723ed138e8e105ccac62c5f94bf95f05a5d8d2b8"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Nov 27 01:14:08 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Nov 27 01:14:08 2019 +0000"
      },
      "message": "Merge \"Add unit test for dynamic policy.\""
    },
    {
      "commit": "723ed138e8e105ccac62c5f94bf95f05a5d8d2b8",
      "tree": "d3a79a7c11770ee44427aeb2c2e180ab448aea20",
      "parents": [
        "16bcc29edb3dac99f85abfe47ea5e731fd977769"
      ],
      "author": {
        "name": "jiabin",
        "email": "jiabin@google.com",
        "time": "Wed Aug 28 15:31:47 2019 -0700"
      },
      "committer": {
        "name": "jiabin",
        "email": "jiabin@google.com",
        "time": "Tue Nov 26 15:52:37 2019 -0800"
      },
      "message": "Add unit test for dynamic policy.\n\nAdd unit test for dyanmic policy. Including:\n    1. Use bp file instead of mk file\n    2. Test (un)registering policy mixes\n    3. Test dynamic policy playback rerouting\n    4. Test dynamic policy mix record injection\nThe idea of 3. and 4. is from pa/1201282.\n\nTest: atest audiopolicy_tests\nBug: 135621476\nChange-Id: Ic95c6f9193c2448168897c5441554cff735f401d\nMerged-In: Ic95c6f9193c2448168897c5441554cff735f401d\n"
    },
    {
      "commit": "eaf09f089a42f7a7ea39339e93b358b37b58956f",
      "tree": "f91620a31611160cc06ce12a1ba69dd15583e04e",
      "parents": [
        "736ffc105e64398dfa789bec3be880c7a1809761"
      ],
      "author": {
        "name": "jiabin",
        "email": "jiabin@google.com",
        "time": "Mon Aug 19 15:08:30 2019 -0700"
      },
      "committer": {
        "name": "jiabin",
        "email": "jiabin@google.com",
        "time": "Tue Nov 26 15:26:53 2019 -0800"
      },
      "message": "Add AudioPortFoundation, AudioPortBase and AudioPortConfigBase.\n\nThe purpose of this change is to make a generic AudioPort class that\ncould be used by vendor.\n1. Add AudioPortFoundation and AudioPortBase. AudioPortFoundation\ncontains generic members of an audio port. AudioPortBase is a template\nclass that derives from AudioPortFoundation. It takes audio profile\nvector as a template parameters. That makes it more feasible to use\ncustomized audio profile stuff as needed. In audio policy, AudioPort\nderives from AudioPortBase and contain policy related stuff.\n2. Add AudioPortConfigBase. AudioPortConfigBase contains generic members\nof an audio port config. AudioPortConfig derives from AudioPortConfigBase\nand contains policy related stuff.\n3. Use std::string instead of String8 in AudioPort and AudioPortConfig.\n\nBug: 135621476\nTest: CTS for AudioRecord, AudioTrack, AudioManager, RoutingTest\nTest: audiopolicy_tests, AudioServiceHostTest\naudio smoke test\nTest: dumpsys media.audio_policy\nChange-Id: I05611b7067c18006660de2c678acd56bdd34010a\nMerged-In: I05611b7067c18006660de2c678acd56bdd34010a\n"
    },
    {
      "commit": "736ffc105e64398dfa789bec3be880c7a1809761",
      "tree": "f16714080b0a732a6b15093cf3b1d142fd03c813",
      "parents": [
        "b677643c52cec078ae2f25eeabb6350f6b32010a"
      ],
      "author": {
        "name": "jiabin",
        "email": "jiabin@google.com",
        "time": "Mon Aug 19 14:14:57 2019 -0700"
      },
      "committer": {
        "name": "jiabin",
        "email": "jiabin@google.com",
        "time": "Tue Nov 26 15:26:24 2019 -0800"
      },
      "message": "Copy AudioPort.h to libaudiofoundation.\n\nCopy AudioPort.h from audio policy to libaudiofoundation and name it as\nAudioPortBase.h. Note that AudioPortBase has not been added into the\nmake file as it needs some more change to make it work. Doing this just\nto make a cleaner diff for later change.\n\nBug: 135621476\nTest: make\nChange-Id: I6cd1a53e889340c7fefffdd5832854016cd733ee\nMerged-In: I6cd1a53e889340c7fefffdd5832854016cd733ee\n"
    },
    {
      "commit": "b677643c52cec078ae2f25eeabb6350f6b32010a",
      "tree": "0620c5106519ffd18a5361f272e249af9252215a",
      "parents": [
        "59a8759e91d4cd806026fd95e329e9a9d2b14313"
      ],
      "author": {
        "name": "jiabin",
        "email": "jiabin@google.com",
        "time": "Mon Aug 19 10:10:17 2019 -0700"
      },
      "committer": {
        "name": "jiabin",
        "email": "jiabin@google.com",
        "time": "Tue Nov 26 15:26:24 2019 -0800"
      },
      "message": "Make AudioProfile as a common class and create AudioProfileVectorBase.\n\nAudioProfile is a class that contains information for an audio profile.\nAudioProfileVectorBase is a base class that contains operations for a\nvector of audio profiles. AudioProfileVector derives from\nAudioProfileVectorBase and contains policy related stuff.\n\nBug: 135621476\nTest: CTS for AudioRecord, AudioTrack, AudioManager\nTest: audio smoke test, audiopolicy_tests\nTest: dumpsys media.audio_policy\nChange-Id: Ic2e08efcc5efa99e499a931811b7042fbd5ddf04\nMerged-In: Ic2e08efcc5efa99e499a931811b7042fbd5ddf04\n"
    },
    {
      "commit": "59a8759e91d4cd806026fd95e329e9a9d2b14313",
      "tree": "5a706d8c78e114fe1785b53f71fc9763fae5c8fe",
      "parents": [
        "147f5c318877c4fa8afa8e97208c109abf58c1cd"
      ],
      "author": {
        "name": "jiabin",
        "email": "jiabin@google.com",
        "time": "Tue Aug 13 15:17:08 2019 -0700"
      },
      "committer": {
        "name": "jiabin",
        "email": "jiabin@google.com",
        "time": "Tue Nov 26 15:26:24 2019 -0800"
      },
      "message": "Preparation for moving AudioProfile to libaudiofoundation.\n\nCopy AudioProfile from audio policy to libaudiofoundation. Note that\nAudioProfile in libaudiofoundation has not been added into the make\nfile as it needs some more change to make it work. Doing this just to\nmake a cleaner diff for later change.\nRename AudioProfile in managerdefinitions folder as AudioProfileVector\nsince AudioProfile will be moved to libaudiofoundation.\n\nBug: 135621476\nTest: make\nChange-Id: I13ac067317648bbfd8d3960d16a1ea56ded83011\nMerged-In: I13ac067317648bbfd8d3960d16a1ea56ded83011\n"
    },
    {
      "commit": "147f5c318877c4fa8afa8e97208c109abf58c1cd",
      "tree": "66656efb03caa2e12a7bc97f764d5b3a38837c92",
      "parents": [
        "16bcc29edb3dac99f85abfe47ea5e731fd977769"
      ],
      "author": {
        "name": "jiabin",
        "email": "jiabin@google.com",
        "time": "Wed Aug 07 14:43:33 2019 -0700"
      },
      "committer": {
        "name": "jiabin",
        "email": "jiabin@google.com",
        "time": "Tue Nov 26 14:27:02 2019 -0800"
      },
      "message": "Return DeviceDescriptor or DeviceVector in Engine.\n\nTo remove the limit on the number of audio device types, there is a\nneed to remove the return value as a combination of audio_devices_t.\nUsing DeviceDescriptor or DeviceVector in Engine is a starting point.\n\nTest: audiopolicy_tests, smoke test\nTest: CTS for AudioTrack, AudioRecord, AudioManager\nBug: 135621476\nChange-Id: I0d87fd76385629e6e6b74cdd37dbd334ae02c04f\nMerged-In: I0d87fd76385629e6e6b74cdd37dbd334ae02c04f\n"
    },
    {
      "commit": "16bcc29edb3dac99f85abfe47ea5e731fd977769",
      "tree": "5e2fe3642a8276bc199bda930a7b903ebae6596e",
      "parents": [
        "a6f7d915bb569f100436462065504cc4035fa13e",
        "4562b3b99b5462bd475325bd19a6047c30ce282a"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Nov 26 20:54:15 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Nov 26 20:54:15 2019 +0000"
      },
      "message": "Merge changes from topics \"AddLibaudiofoundation\", \"stdContainers\"\n\n* changes:\n  Use standard containers for audio stuff in audio framework\n  Move AudioGain to libaudiofoundation.\n"
    },
    {
      "commit": "4562b3b99b5462bd475325bd19a6047c30ce282a",
      "tree": "2e6200fbf5d873e90bdf6f6ccf45ef0c7a871aa3",
      "parents": [
        "41502b244f6107ed57330eb447d8e29960b9cf4f"
      ],
      "author": {
        "name": "jiabin",
        "email": "jiabin@google.com",
        "time": "Mon Jul 29 10:13:34 2019 -0700"
      },
      "committer": {
        "name": "jiabin",
        "email": "jiabin@google.com",
        "time": "Tue Nov 26 11:41:08 2019 -0800"
      },
      "message": "Use standard containers for audio stuff in audio framework\n\n1. Add SampleRateSet, FormatSet, ChannelMaskSet, FormatVector\nusing std::vector and std::set in libaudiofoundation.\n2. Use SampleRateSet, FormatSet, ChannelMaskSet, FormatVector in\naudio framework.\n\nBug: 135621476\nTest: make, CTS for AudioRecord, AudioTrack, AudioManagerTest\nTest: play and record audio\nChange-Id: Ic04e637bcc6ba9df84c5e7561ec3c03f18a7d242\nMerged-In: Ic04e637bcc6ba9df84c5e7561ec3c03f18a7d242\n"
    },
    {
      "commit": "41502b244f6107ed57330eb447d8e29960b9cf4f",
      "tree": "63cf7c0b4e160cfd242bfbb603b6568aa89f0815",
      "parents": [
        "b8ec243b5f142edb13102bb76b887496d3a5cd5e"
      ],
      "author": {
        "name": "jiabin",
        "email": "jiabin@google.com",
        "time": "Wed Jul 31 09:59:09 2019 -0700"
      },
      "committer": {
        "name": "jiabin",
        "email": "jiabin@google.com",
        "time": "Tue Nov 26 11:29:16 2019 -0800"
      },
      "message": "Move AudioGain to libaudiofoundation.\n\n1. Create folder for libaudiofoudation.\n2. Move AudioGain to libaudiofoudation. The goal is to make AudioGain\nbe able to use in binder call and be vendor-available later.\n\nBug: 135621476\nTest: make, CTS for AudioTrack, AudioRecord, AudioManagerTest\nChange-Id: Ibf16ad9cb7f2ac657a02632ccbe4f934b5a12731\nMerged-In: Ibf16ad9cb7f2ac657a02632ccbe4f934b5a12731\n"
    },
    {
      "commit": "a6f7d915bb569f100436462065504cc4035fa13e",
      "tree": "c6057c310a2080b90f0cab8102635c41f5b18d08",
      "parents": [
        "b8ec243b5f142edb13102bb76b887496d3a5cd5e",
        "fb38e211b4db2e101b98efac60c3b3cb07be7b4b"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Nov 26 17:46:37 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Nov 26 17:46:37 2019 +0000"
      },
      "message": "Merge \"codec2: add ION usage mapper to the sample service\""
    },
    {
      "commit": "fb38e211b4db2e101b98efac60c3b3cb07be7b4b",
      "tree": "c6057c310a2080b90f0cab8102635c41f5b18d08",
      "parents": [
        "b8ec243b5f142edb13102bb76b887496d3a5cd5e"
      ],
      "author": {
        "name": "Wonsik Kim",
        "email": "wonsik@google.com",
        "time": "Fri Nov 22 19:35:20 2019 -0800"
      },
      "committer": {
        "name": "Wonsik Kim",
        "email": "wonsik@google.com",
        "time": "Mon Nov 25 12:27:34 2019 -0800"
      },
      "message": "codec2: add ION usage mapper to the sample service\n\nBug: 144995284\nTest: manually include the service into device; test if the mapper gets invoked.\nChange-Id: Ifd434ea04f5dc5faab59aaaf4f208cc86a1128a5\n"
    },
    {
      "commit": "b8ec243b5f142edb13102bb76b887496d3a5cd5e",
      "tree": "8be3cda57bb169fd4ebd1cd12f83460cba220167",
      "parents": [
        "76d06d2d13577841dfbdbc7488a37ba3bfc05c04",
        "f0468c07b4972878d10b96bdcecf83737088a508"
      ],
      "author": {
        "name": "Jooyung Han",
        "email": "jooyung@google.com",
        "time": "Sat Nov 23 03:37:33 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Sat Nov 23 03:37:33 2019 +0000"
      },
      "message": "Merge \"Make file_contexts as \"android:path\" property\""
    },
    {
      "commit": "76d06d2d13577841dfbdbc7488a37ba3bfc05c04",
      "tree": "004f28c2a7293b6fd6128cfbf8afe61454658a98",
      "parents": [
        "910201b8cae7b60929a7180a98c45b9ae7aa0591",
        "5a20d9e97f3845da46e726c4ed53a4d470004ebf"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Nov 22 18:10:58 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Nov 22 18:10:58 2019 +0000"
      },
      "message": "Merge \"libaudiohal: Call IDevice.close in HAL V6\""
    },
    {
      "commit": "910201b8cae7b60929a7180a98c45b9ae7aa0591",
      "tree": "bff0f02a43835d81a834ee85d1a3c641241d2863",
      "parents": [
        "43251208e388077681869d639d6d9210e277460d",
        "ea0eb37207cf6fffb3ee7926e8b8cff7ec38c0fd"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Nov 22 00:03:07 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Nov 22 00:03:07 2019 +0000"
      },
      "message": "Merge \"C2SoftAvcEnc: Allocate output buffer as per clip\u0027s dimensions\""
    },
    {
      "commit": "ea0eb37207cf6fffb3ee7926e8b8cff7ec38c0fd",
      "tree": "c8edcb33bb25edd4303ebc7e3f29896d765dbf4f",
      "parents": [
        "71a763b4753628b916c4d3ece5b2da8e898dc03f"
      ],
      "author": {
        "name": "Harish Mahendrakar",
        "email": "harish.mahendrakar@ittiam.com",
        "time": "Thu Nov 21 10:33:05 2019 -0800"
      },
      "committer": {
        "name": "Harish Mahendrakar",
        "email": "harish.mahendrakar@ittiam.com",
        "time": "Thu Nov 21 19:36:29 2019 +0000"
      },
      "message": "C2SoftAvcEnc: Allocate output buffer as per clip\u0027s dimensions\n\nInstead of allocating a fixed size output buffer, allocate it as per\nwidth and height of the input being encoded. To ensure for very low\nresolutions, this size doesn\u0027t become too small, use a minimum size of\n512K Bytes.\n\nBug: 144928581\nTest: h264 related tests in android.media.cts.VideoEncoderTest\nChange-Id: I01c1aa03456043824354005f1708f07b3268d97e\n"
    },
    {
      "commit": "5a20d9e97f3845da46e726c4ed53a4d470004ebf",
      "tree": "ae4638dd5bd56ab53130b6ab337cf36a7c1d437c",
      "parents": [
        "43251208e388077681869d639d6d9210e277460d"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Wed Nov 20 14:20:01 2019 -0800"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Thu Nov 21 10:59:07 2019 -0800"
      },
      "message": "libaudiohal: Call IDevice.close in HAL V6\n\nCall IDevice.close when the client doesn\u0027t need the device.\n\nBug: 114451103\nTest: adb shell stop\nChange-Id: I486db716be59cd4ea0f6d75d0e366f802ee9b06d\nMerged-In: I486db716be59cd4ea0f6d75d0e366f802ee9b06d\n"
    },
    {
      "commit": "43251208e388077681869d639d6d9210e277460d",
      "tree": "998a381db54afb658c3c617d86309d148f4d34b6",
      "parents": [
        "aa59be48d4385700852552e3359f5c41a73fcd16",
        "81e1c008520d77adb180f5f58f5ed34b38dabaf7"
      ],
      "author": {
        "name": "Greg Kaiser",
        "email": "gkaiser@google.com",
        "time": "Wed Nov 20 16:50:40 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Nov 20 16:50:40 2019 +0000"
      },
      "message": "Merge \"Revert \"DecryptHandle cleanup\"\""
    },
    {
      "commit": "aa59be48d4385700852552e3359f5c41a73fcd16",
      "tree": "e266a87d2b582ced8392bb2063dc81c996392a4b",
      "parents": [
        "a8129f7246dfb580158a002d06492c699183101c",
        "359adca4b7cf734ab9a0d27a005b9f6dfdc0ad8e"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Nov 20 16:05:27 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Nov 20 16:05:27 2019 +0000"
      },
      "message": "Merge \"Camera: Check consumer interface before disconnecting\""
    },
    {
      "commit": "81e1c008520d77adb180f5f58f5ed34b38dabaf7",
      "tree": "78df0ce9e680a06bbc567567d95a10ab111ea607",
      "parents": [
        "a8129f7246dfb580158a002d06492c699183101c"
      ],
      "author": {
        "name": "Greg Kaiser",
        "email": "gkaiser@google.com",
        "time": "Wed Nov 20 06:12:58 2019 -0800"
      },
      "committer": {
        "name": "Greg Kaiser",
        "email": "gkaiser@google.com",
        "time": "Wed Nov 20 06:15:15 2019 -0800"
      },
      "message": "Revert \"DecryptHandle cleanup\"\n\nThis reverts commit e75d74c70f125bddeb36e175de77e3b0461d1e48.\n\nTest: Local build completes\nBug: 144814133\n"
    },
    {
      "commit": "f0468c07b4972878d10b96bdcecf83737088a508",
      "tree": "0ca00e38dcbfddd2ee316328d38bba36f4698ff0",
      "parents": [
        "bcb857727f2f85a1827b3fba9a6549097f76a04a"
      ],
      "author": {
        "name": "Jooyung Han",
        "email": "jooyung@google.com",
        "time": "Wed Nov 20 17:52:27 2019 +0900"
      },
      "committer": {
        "name": "Jooyung Han",
        "email": "jooyung@google.com",
        "time": "Wed Nov 20 17:52:27 2019 +0900"
      },
      "message": "Make file_contexts as \"android:path\" property\n\nTill now, file_contexts has been treated differently that other input\nsrc files. Now it is tagged as `android:\"path\"` because it is.\n\nBug: 144732805\nTest: m\nChange-Id: I9d842958da500900e83a95b7d194c9d8a46feee0\n"
    },
    {
      "commit": "a8129f7246dfb580158a002d06492c699183101c",
      "tree": "046998455cb57700e99e614c21ad7e3771519021",
      "parents": [
        "bc0d257bbe16df642b8c75510e2d59665c46dfe4",
        "e75d74c70f125bddeb36e175de77e3b0461d1e48"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Wed Nov 20 01:26:29 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Nov 20 01:26:29 2019 +0000"
      },
      "message": "Merge \"DecryptHandle cleanup\""
    },
    {
      "commit": "e75d74c70f125bddeb36e175de77e3b0461d1e48",
      "tree": "046998455cb57700e99e614c21ad7e3771519021",
      "parents": [
        "bc0d257bbe16df642b8c75510e2d59665c46dfe4"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Thu Nov 14 08:33:58 2019 -0800"
      },
      "committer": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Tue Nov 19 14:47:48 2019 -0800"
      },
      "message": "DecryptHandle cleanup\n\nRemove copyControlVector, extendedData and decryptInfo from DecryptHandle,\nsince none of these were actually used.\n\nTest: atest cts/tests/tests/drm/src/android/drm/cts/DRMTest.java\nChange-Id: I499bf4884e467b53d05e1317e3dbe0bd85537577\n"
    },
    {
      "commit": "bc0d257bbe16df642b8c75510e2d59665c46dfe4",
      "tree": "78df0ce9e680a06bbc567567d95a10ab111ea607",
      "parents": [
        "6409c17eff53948db8ef84f8492e0c26838f16d1",
        "19b0be6e8b5ffe28215dc00e2c551be46483d0aa"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Tue Nov 19 22:40:23 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Nov 19 22:40:23 2019 +0000"
      },
      "message": "Merge \"Remove DrmInitialization from IDataSource\""
    },
    {
      "commit": "19b0be6e8b5ffe28215dc00e2c551be46483d0aa",
      "tree": "2bf28aa0a6f9667c0c92de2c3355302e163b0e24",
      "parents": [
        "0501baaa032a55226be40aeeb945dcebba635164"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Fri Nov 15 07:51:15 2019 -0800"
      },
      "committer": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Tue Nov 19 12:20:24 2019 -0800"
      },
      "message": "Remove DrmInitialization from IDataSource\n\nDrmInitialization only needs to be called on PlayerServiceFileSource\nand PlayerServiceMediaHTTP, so just have those initialize the forward\nlock engine automatically, which removes the need to have this in the\nIDataSource interface.\n\nTest: atest cts/tests/tests/drm/src/android/drm/cts/DRMTest.java\n\nChange-Id: I344f46b65b5c473930b16b9b4041e4897384dc18\nMerged-In: I344f46b65b5c473930b16b9b4041e4897384dc18\n"
    },
    {
      "commit": "6409c17eff53948db8ef84f8492e0c26838f16d1",
      "tree": "6ca436a70b46b305f11097cd401fa37dd098b8d9",
      "parents": [
        "bcb857727f2f85a1827b3fba9a6549097f76a04a",
        "8dc1c7270317fee54d9ac5836e972e1b5ac99ceb"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Nov 19 18:39:52 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Nov 19 18:39:52 2019 +0000"
      },
      "message": "Merge \"WriterTest: Fix bounds check\""
    },
    {
      "commit": "8dc1c7270317fee54d9ac5836e972e1b5ac99ceb",
      "tree": "6ca436a70b46b305f11097cd401fa37dd098b8d9",
      "parents": [
        "bcb857727f2f85a1827b3fba9a6549097f76a04a"
      ],
      "author": {
        "name": "Greg Kaiser",
        "email": "gkaiser@google.com",
        "time": "Mon Nov 18 08:54:52 2019 -0800"
      },
      "committer": {
        "name": "Greg Kaiser",
        "email": "gkaiser@google.com",
        "time": "Mon Nov 18 08:54:52 2019 -0800"
      },
      "message": "WriterTest: Fix bounds check\n\nBecause of 0-based indexing, we need to make sure the index is\nnot equal to the number of elements in the array.\n\nTest: TreeHugger\nChange-Id: I9662d4a67cdfebb0c890c65a35a2456cd3af001b\n"
    },
    {
      "commit": "80f128b4074ab814060b460cc5059c523e81eeb3",
      "tree": "a36b3ba3757dfaa9e45bb55c3ce690f1dacd0bdd",
      "parents": [
        "3066e206366b25b6b64cf0ad29188bd04b56b183"
      ],
      "author": {
        "name": "Jayant Chowdhary",
        "email": "jchowdhary@google.com",
        "time": "Wed Oct 30 16:13:31 2019 -0700"
      },
      "committer": {
        "name": "Jayant Chowdhary",
        "email": "jchowdhary@google.com",
        "time": "Mon Nov 18 08:45:48 2019 -0800"
      },
      "message": "camera2 ndk: Don\u0027t send onStatusChanged callbacks for devices which don\u0027t support camera2.\n\nBug: 143368726\n\nTest: CTS native camera tests\n\nChange-Id: I7b33bdc906924f3acb3d1809aacdf6e4769d0607\nSigned-off-by: Jayant Chowdhary \u003cjchowdhary@google.com\u003e\n"
    },
    {
      "commit": "bcb857727f2f85a1827b3fba9a6549097f76a04a",
      "tree": "002aab41080ca2751ecd9789183b868ea6cd7b10",
      "parents": [
        "3288ea49b1eb664fd3f2a1bbcd0e46bd142568dd",
        "a4e3ab2dce04cb798add7d7780fc88f3544dfe7a"
      ],
      "author": {
        "name": "Ray Essick",
        "email": "essick@google.com",
        "time": "Fri Nov 15 22:49:19 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Nov 15 22:49:19 2019 +0000"
      },
      "message": "Merge \"Benchmark: Fixing error propgation for Async callback\""
    },
    {
      "commit": "3288ea49b1eb664fd3f2a1bbcd0e46bd142568dd",
      "tree": "26d95610848ad3a6177a524c8bf8c86923acb997",
      "parents": [
        "429f364cc4eb0f42298461b88cc3b197f46c04f3",
        "303954601a6ad31339d9493e56c50a6c3e45a13e"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Nov 15 21:06:53 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Nov 15 21:06:53 2019 +0000"
      },
      "message": "Merge \"MediaTesting: Add Writer Test\""
    },
    {
      "commit": "303954601a6ad31339d9493e56c50a6c3e45a13e",
      "tree": "26d95610848ad3a6177a524c8bf8c86923acb997",
      "parents": [
        "429f364cc4eb0f42298461b88cc3b197f46c04f3"
      ],
      "author": {
        "name": "Manisha Jajoo",
        "email": "manisha.jajoo@ittiam.com",
        "time": "Mon Nov 11 19:56:37 2019 +0530"
      },
      "committer": {
        "name": "Manisha Jajoo",
        "email": "manisha.jajoo@ittiam.com",
        "time": "Fri Nov 15 18:56:18 2019 +0530"
      },
      "message": "MediaTesting: Add Writer Test\n\nTest: writerTest -P /sdcard/res/\n\nBug: 144317323\n\nChange-Id: Ifd63c5608c873c6cbfd2e64cee1b350dca168908\n"
    },
    {
      "commit": "a4e3ab2dce04cb798add7d7780fc88f3544dfe7a",
      "tree": "7ed95d13131abe19d0f2104531374f7958c621b1",
      "parents": [
        "429f364cc4eb0f42298461b88cc3b197f46c04f3"
      ],
      "author": {
        "name": "Rakesh Kumar",
        "email": "rakesh.kumar@ittiam.com",
        "time": "Thu Sep 19 20:24:00 2019 +0530"
      },
      "committer": {
        "name": "Rakesh Kumar",
        "email": "rakesh.kumar@ittiam.com",
        "time": "Fri Nov 15 18:13:14 2019 +0530"
      },
      "message": "Benchmark: Fixing error propgation for Async callback\n\nTest: decoderTest --gtest_repeat\u003d10 -P /sdcard/res/\nTest: encoderTest --gtest_repeat\u003d10 -P /sdcard/res/\n\nBug: 141359753\n\nChange-Id: I8206c92174ce32557bc72b346a41050f7f362fa0\n"
    },
    {
      "commit": "429f364cc4eb0f42298461b88cc3b197f46c04f3",
      "tree": "e2932f46fd5ceb61f15749742dbc1cb2d3e4d290",
      "parents": [
        "71a763b4753628b916c4d3ece5b2da8e898dc03f",
        "d2ad8c608830bc3d5bcbc06447d3d09342f71824"
      ],
      "author": {
        "name": "Ray Essick",
        "email": "essick@google.com",
        "time": "Thu Nov 14 02:35:17 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Nov 14 02:35:17 2019 +0000"
      },
      "message": "Merge \"Benchmark: Remove libutils dependency\""
    },
    {
      "commit": "71a763b4753628b916c4d3ece5b2da8e898dc03f",
      "tree": "46c442804b4c4348e807e049abd9bea4643be603",
      "parents": [
        "0501baaa032a55226be40aeeb945dcebba635164",
        "e32d76cbe2c394bb5426325eeab1d291103e3b9b"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Nov 13 18:39:28 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Nov 13 18:39:28 2019 +0000"
      },
      "message": "Merge \"Benchmark: Add test for Codec2 decoders\""
    },
    {
      "commit": "0501baaa032a55226be40aeeb945dcebba635164",
      "tree": "7e44b75d1a8aedf8a70c05be2d7697167c1aa2ca",
      "parents": [
        "29d7ade15885c7f6de38b94335f5228cc65ca791",
        "7df4e8716abf58b3ac5b355a24b4e4fe3643f37c"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Wed Nov 13 15:43:54 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Nov 13 15:43:54 2019 +0000"
      },
      "message": "Merge \"DecryptHandle: remove unused operators\""
    },
    {
      "commit": "29d7ade15885c7f6de38b94335f5228cc65ca791",
      "tree": "f82026be2df3260e106330b2777f59438a642882",
      "parents": [
        "da161ed4c02194d3d46c97181ba9da927c66ac21",
        "24791a8cd5b5d8ab95074ed4408aba719f2c99c0"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Nov 13 06:36:36 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Nov 13 06:36:36 2019 +0000"
      },
      "message": "Merge \"Rename # vndk tag to # llndk\""
    },
    {
      "commit": "24791a8cd5b5d8ab95074ed4408aba719f2c99c0",
      "tree": "f82026be2df3260e106330b2777f59438a642882",
      "parents": [
        "da161ed4c02194d3d46c97181ba9da927c66ac21"
      ],
      "author": {
        "name": "Jiyong Park",
        "email": "jiyong@google.com",
        "time": "Wed Nov 06 12:44:53 2019 +0900"
      },
      "committer": {
        "name": "Jiyong Park",
        "email": "jiyong@google.com",
        "time": "Wed Nov 13 05:51:39 2019 +0000"
      },
      "message": "Rename # vndk tag to # llndk\n\nThe APIs that are tagged with # vndk are actually for LLNDK libraries.\nAlthough LLNDK is part of VNDK, calling those APIs \u0027vndk\u0027 has given\nusers a wrong perception that the APIs don\u0027t need to be kept stable\nbecause that\u0027s the norm for most of the VNDK libraries that are not\nLLNDK.\n\nIn order to eliminate the misunderstanding, rename the tag to \u0027llndk\u0027 so\nthat people introducing new such API will realize what they are signing\nthemselves up for.\n\nExempt-From-Owner-Approval: cherry-pick from internal gerrit\n\nBug: 143765505\nTest: m\nMerged-In: I6b48cf2091def384780ca91c32a0ddb738e70455\n(cherry picked from commit 22993109269a588da90545ef3fa9b3dd232621ec)\nChange-Id: I6b48cf2091def384780ca91c32a0ddb738e70455\n"
    },
    {
      "commit": "7df4e8716abf58b3ac5b355a24b4e4fe3643f37c",
      "tree": "bab18128375e4ad50dc8e7cd46bb31c1de642bac",
      "parents": [
        "da161ed4c02194d3d46c97181ba9da927c66ac21"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Tue Nov 12 13:33:34 2019 -0800"
      },
      "committer": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Tue Nov 12 23:23:25 2019 +0000"
      },
      "message": "DecryptHandle: remove unused operators\n\nNothing was using these, so remove them.\n\nTest: build, atest cts/tests/tests/drm/src/android/drm/cts/DRMTest.java\n\nChange-Id: I4545951f6d6faa21ef35732306302a52b7d941d8\n"
    },
    {
      "commit": "da161ed4c02194d3d46c97181ba9da927c66ac21",
      "tree": "84d3034128fb1ded7d86bcbea3a6015638afdf0a",
      "parents": [
        "82d6654ade066f8c3e3018fb7e1fc82c96604a74",
        "21f7bf62903606bcb1ced10251158aeb439c4cc0"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Tue Nov 12 17:00:06 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Nov 12 17:00:06 2019 +0000"
      },
      "message": "Merge \"Pass track from meta-\u003emessage and vice versa\""
    },
    {
      "commit": "21f7bf62903606bcb1ced10251158aeb439c4cc0",
      "tree": "84d3034128fb1ded7d86bcbea3a6015638afdf0a",
      "parents": [
        "82d6654ade066f8c3e3018fb7e1fc82c96604a74"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Fri Nov 08 09:03:21 2019 -0800"
      },
      "committer": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Fri Nov 08 19:19:14 2019 +0000"
      },
      "message": "Pass track from meta-\u003emessage and vice versa\n\nCDD requires that the track is the same for compability track and the\nactual Dolby Vision track, so we need to pass that back to the app.\n\nBug: 129367182\nTest: CTS\nChange-Id: Iab1ad3c4a593923ec6fc4231a4208806bf0159b7\nMerged-In: Iab1ad3c4a593923ec6fc4231a4208806bf0159b7\n"
    },
    {
      "commit": "82d6654ade066f8c3e3018fb7e1fc82c96604a74",
      "tree": "8c5c5accf91f3f7f3f74f7e0bda018c1d59c4be5",
      "parents": [
        "e4ff5510d91b613ea59055d0d95035cef1993a5d",
        "b60cb13a5740d41a94eccef99a22e25f7432f3c4"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Nov 08 17:31:42 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Nov 08 17:31:42 2019 +0000"
      },
      "message": "Merge changes from topic \"upstream-hal-v6\"\n\n* changes:\n  Rename of the Vendor HAL\n  Support Audio HAL V6\n  libaudioHAL: reduce version specific code\n  Avoid querying the audio service twice\n"
    },
    {
      "commit": "b60cb13a5740d41a94eccef99a22e25f7432f3c4",
      "tree": "8c5c5accf91f3f7f3f74f7e0bda018c1d59c4be5",
      "parents": [
        "f22253bc9f5de5a164bf08389ae0f7a8f3fc4d40"
      ],
      "author": {
        "name": "Kevin Rocard",
        "email": "krocard@google.com",
        "time": "Thu Oct 03 18:38:34 2019 +0100"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Thu Nov 07 14:36:19 2019 -0800"
      },
      "message": "Rename of the Vendor HAL\n\nTest: push V6 to device and check audio works fine\n      Kill the audioserver and check that the HAL restarts\nBug: 134940862\nChange-Id: I3347ee3aabe753d34c69dacbd707c60105d80a47\nMerged-In: I3347ee3aabe753d34c69dacbd707c60105d80a47\nSigned-off-by: Kevin Rocard \u003ckrocard@google.com\u003e\n"
    },
    {
      "commit": "f22253bc9f5de5a164bf08389ae0f7a8f3fc4d40",
      "tree": "848e8b8f85ccbe051c013183f02529d64d11c06c",
      "parents": [
        "00538f18b8d22af1a27462a25cde65aa7cce33ef"
      ],
      "author": {
        "name": "Kevin Rocard",
        "email": "krocard@google.com",
        "time": "Mon Sep 30 19:59:31 2019 +0100"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Thu Nov 07 14:35:19 2019 -0800"
      },
      "message": "Support Audio HAL V6\n\nTest: push V6 to device and check audio works fine\nBug: 134940862\nChange-Id: Ied5aeccdf8f1e9a085ed9cac9d696271b7a1bb63\nMerged-In: Ied5aeccdf8f1e9a085ed9cac9d696271b7a1bb63\nSigned-off-by: Kevin Rocard \u003ckrocard@google.com\u003e\n"
    },
    {
      "commit": "00538f18b8d22af1a27462a25cde65aa7cce33ef",
      "tree": "3ab80637d13c01dd29483bc34d9978e1d398fccb",
      "parents": [
        "a8f139322e67234e9260e39176a8ab0f732134a8"
      ],
      "author": {
        "name": "Kevin Rocard",
        "email": "krocard@google.com",
        "time": "Tue Jun 25 14:26:29 2019 -0700"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Thu Nov 07 14:34:13 2019 -0800"
      },
      "message": "libaudioHAL: reduce version specific code\n\nBug: 134940862\nTest: Plays audio\nChange-Id: Ia8c99c0600425321b4b30ac341168101960eed59\nMerged-In: Ia8c99c0600425321b4b30ac341168101960eed59\nSigned-off-by: Kevin Rocard \u003ckrocard@google.com\u003e\n"
    },
    {
      "commit": "a8f139322e67234e9260e39176a8ab0f732134a8",
      "tree": "d55a2c5865450ddae99272273099c6f18723a9f3",
      "parents": [
        "e4ff5510d91b613ea59055d0d95035cef1993a5d"
      ],
      "author": {
        "name": "Kevin Rocard",
        "email": "krocard@google.com",
        "time": "Tue Jun 25 16:08:29 2019 -0700"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Thu Nov 07 14:32:51 2019 -0800"
      },
      "message": "Avoid querying the audio service twice\n\nBug: 134940862\nTest: run on target\nChange-Id: Ia884d0e926569d983ba12952817d2cecc8d8d34f\nMerged-In: Ia884d0e926569d983ba12952817d2cecc8d8d34f\nSigned-off-by: Kevin Rocard \u003ckrocard@google.com\u003e\n"
    },
    {
      "commit": "e4ff5510d91b613ea59055d0d95035cef1993a5d",
      "tree": "44e49d54e5b31f25a5cd6a559456b78eeb53a13b",
      "parents": [
        "9752654ce4306bd229bdf140a1e5441622c090d3",
        "5f958f861d97cf46e7c25814963c669c7baa00b5"
      ],
      "author": {
        "name": "Henry Fang",
        "email": "quxiangfang@google.com",
        "time": "Thu Nov 07 19:33:33 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Nov 07 19:33:33 2019 +0000"
      },
      "message": "Merge \"Update plugin for cas@1.2\""
    },
    {
      "commit": "9752654ce4306bd229bdf140a1e5441622c090d3",
      "tree": "da4b628f05fd1cd170ce6d6677f6e2b3c67bbf4b",
      "parents": [
        "b12f55b3d996b1b67e6ffde01dc9485d64d8f8d9",
        "14d88efaabb46568ce5d09f8560c085ddbf1e0d3"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Nov 07 10:35:21 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Nov 07 10:35:21 2019 +0000"
      },
      "message": "Merge \"ARTSPConnection: HTTP Authentication: Fix URI bounds\""
    },
    {
      "commit": "b12f55b3d996b1b67e6ffde01dc9485d64d8f8d9",
      "tree": "941dc0d0b04110cf234ae93daf3d1d1172687321",
      "parents": [
        "6c525b799c5a9f57a1f144bd454be4015c44ec45",
        "386c36ff5cc9c1185b66f4e145de450368d206ef"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Nov 06 23:11:54 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Nov 06 23:11:54 2019 +0000"
      },
      "message": "Merge \"Fix the issue of NV12 input with wrong format VPX_IMG_FMT_I420\""
    },
    {
      "commit": "5f958f861d97cf46e7c25814963c669c7baa00b5",
      "tree": "8c626b68f96c36ffc0622d29588b76d5fa177e6a",
      "parents": [
        "5c031de66210ecbec85792c6da1c65313b9e22fa"
      ],
      "author": {
        "name": "Henry Fang",
        "email": "quxiangfang@google.com",
        "time": "Wed Oct 09 16:48:52 2019 -0700"
      },
      "committer": {
        "name": "Henry Fang",
        "email": "quxiangfang@google.com",
        "time": "Wed Nov 06 22:59:10 2019 +0000"
      },
      "message": "Update plugin for cas@1.2\n\nTest: Manual\nbug: 141783130\nChange-Id: I7954f8543c09538adad0c1eac8a70f7be48e6092\nMerged-In: I7954f8543c09538adad0c1eac8a70f7be48e6092\n"
    },
    {
      "commit": "6c525b799c5a9f57a1f144bd454be4015c44ec45",
      "tree": "88d96d3ba31458ca72b6481758b0b5f7de7fce63",
      "parents": [
        "db1cb2c7481faee30a07e08759f2d85b9ed3e954",
        "37850a5d0251fc3229db192a7aa7448f95adf3b6"
      ],
      "author": {
        "name": "Nick Desaulniers",
        "email": "ndesaulniers@google.com",
        "time": "Wed Nov 06 17:22:46 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Nov 06 17:22:46 2019 +0000"
      },
      "message": "Merge \"[libstagefright] fix -Wimplicit-int-float-conversion\""
    },
    {
      "commit": "db1cb2c7481faee30a07e08759f2d85b9ed3e954",
      "tree": "f94d16b8e7f62f5a81cc72ffd92a064a07d18bf5",
      "parents": [
        "af5e66cb0163a3b6765e434234b2a4ee291307a5",
        "cb137d0ead90f63e9b67bd9af21425b32ebc150d"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Nov 06 15:37:30 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Nov 06 15:37:30 2019 +0000"
      },
      "message": "Merge \"[audiopolicy] fix -Wreorder-init-list\""
    },
    {
      "commit": "14d88efaabb46568ce5d09f8560c085ddbf1e0d3",
      "tree": "47f8996d4c872051bde22ee0234be18f5f0a52bf",
      "parents": [
        "5c031de66210ecbec85792c6da1c65313b9e22fa"
      ],
      "author": {
        "name": "Hendrik Hagendorn",
        "email": "hendrik@hagendorn.it",
        "time": "Wed Nov 06 00:07:43 2019 +0100"
      },
      "committer": {
        "name": "Hendrik Hagendorn",
        "email": "hendrik@hagendorn.it",
        "time": "Wed Nov 06 11:03:34 2019 +0100"
      },
      "message": "ARTSPConnection: HTTP Authentication: Fix URI bounds\n\nWhen parsing the DESCRIBE response of an RTSP server, the end of the\nURI is one character too long. This causes an additional space to be\ncopied into the authorization header, which some servers reject.\n\nExample:\n* DESCRIBE rtsp://10.0.0.1:1234/Streaming/Channels/202 RTSP/1.0\n* Authorization: Digest nonce\u003d\"[nonce]\", username\u003d\"[user]\", uri\u003d\"rtsp://10.0.0.1:1234/Streaming/Channels/202 \", response\u003d\"[res]\"\n\nChange-Id: Idb4e201578a2a2a0e4c59abad609816641a4dd99\n"
    },
    {
      "commit": "af5e66cb0163a3b6765e434234b2a4ee291307a5",
      "tree": "4a3c77f27d887dbcab0defc47472fe33855ee00c",
      "parents": [
        "5c031de66210ecbec85792c6da1c65313b9e22fa",
        "1eb82df62c86dace5f0f56f00e631c7696177a63"
      ],
      "author": {
        "name": "Tao Wu",
        "email": "lepton@google.com",
        "time": "Tue Nov 05 23:36:50 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Nov 05 23:36:50 2019 +0000"
      },
      "message": "Merge \"AudioFlinger: Initialize frames to zero.\""
    },
    {
      "commit": "37850a5d0251fc3229db192a7aa7448f95adf3b6",
      "tree": "f45a69d9dc6e45a73e736aff143e49809c6c9aa7",
      "parents": [
        "cb137d0ead90f63e9b67bd9af21425b32ebc150d"
      ],
      "author": {
        "name": "Nick Desaulniers",
        "email": "ndesaulniers@google.com",
        "time": "Tue Oct 15 18:31:37 2019 -0700"
      },
      "committer": {
        "name": "Nick Desaulniers",
        "email": "ndesaulniers@google.com",
        "time": "Tue Nov 05 22:40:25 2019 +0000"
      },
      "message": "[libstagefright] fix -Wimplicit-int-float-conversion\n\nIEEE754 single precision cannot precisely represent\nINT32_MAX/UINT_MAX/RAND_MAX.\n\nIEEE754 double precision cannot precisely represent INT64_MAX.\n\nAs such, implicit conversions from operations with floating point and\nintegral operands may result in a loss of precision.\n\nAccept the imprecision with by making the existing implicit casts\nexplicit.\n\nBug: 139945549\nTest: mm\nMerged-in: Ic66b3d3bbac9e644e27ad8233018f24dfce3209f\nChange-Id: Ic5a40abbccb1bf4d78475a6f3d1d2835df603d0a\nSigned-off-by: Nick Desaulniers \u003cndesaulniers@google.com\u003e\n"
    },
    {
      "commit": "1eb82df62c86dace5f0f56f00e631c7696177a63",
      "tree": "4a3c77f27d887dbcab0defc47472fe33855ee00c",
      "parents": [
        "5c031de66210ecbec85792c6da1c65313b9e22fa"
      ],
      "author": {
        "name": "Tao Wu",
        "email": "lepton@google.com",
        "time": "Tue Nov 05 10:20:18 2019 -0800"
      },
      "committer": {
        "name": "Tao Wu",
        "email": "lepton@google.com",
        "time": "Tue Nov 05 10:24:36 2019 -0800"
      },
      "message": "AudioFlinger: Initialize frames to zero.\n\nOtherwise we could return the uninitialized value when result !\u003d OK.\n\nBug: 143955791\nTest: manual - Run the test in the bug and it doesn\u0027t crash.\nChange-Id: I23b2b0a20202152648a3e40650965bba45127ff3\n"
    },
    {
      "commit": "5c031de66210ecbec85792c6da1c65313b9e22fa",
      "tree": "3950c0d5cfc19edfc7f2d34029174f8453456449",
      "parents": [
        "835742ef39627596802f51f02461c822ba2c824b",
        "17e4d6ce7af2022308b087d65f494e3bd44d6b11"
      ],
      "author": {
        "name": "Hung-ying Tyan",
        "email": "tyanh@google.com",
        "time": "Tue Nov 05 05:35:42 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Nov 05 05:35:42 2019 +0000"
      },
      "message": "Merge \"add the AV1 in the VideoCodingMapEntry\""
    },
    {
      "commit": "17e4d6ce7af2022308b087d65f494e3bd44d6b11",
      "tree": "0d3c9191bb05a3de20c7f9c1040e9d24c26aa61e",
      "parents": [
        "839cd0691bd3265343e87fbb9545ed27319b99c1"
      ],
      "author": {
        "name": "chunlei.guo",
        "email": "chunlei.guo@unisoc.com",
        "time": "Sun Sep 29 18:49:05 2019 +0800"
      },
      "committer": {
        "name": "Hung-ying Tyan",
        "email": "tyanh@google.com",
        "time": "Tue Nov 05 05:35:08 2019 +0000"
      },
      "message": "add the AV1 in the VideoCodingMapEntry\n\nWe have developed an AV1 decoder within the OpenMax framework.\n\nBug: 141833956\nChange-Id: I0ac8ec3a9fef6f0a3c28df371d31b0fe38553c6c\n"
    },
    {
      "commit": "d2ad8c608830bc3d5bcbc06447d3d09342f71824",
      "tree": "9e733818e4b66a7970f0e962f57db12280e92b51",
      "parents": [
        "835742ef39627596802f51f02461c822ba2c824b"
      ],
      "author": {
        "name": "Snehal N Bhamare",
        "email": "snehal.bhamare@ittiam.com",
        "time": "Wed Oct 09 19:13:43 2019 +0530"
      },
      "committer": {
        "name": "Snehal N Bhamare",
        "email": "snehal.bhamare@ittiam.com",
        "time": "Mon Nov 04 19:02:04 2019 +0530"
      },
      "message": "Benchmark: Remove libutils dependency\n\nTest: extractorTest -P /data/local/tmp/MediaBenchmark/res/\n\nBug: 142464243\n\nChange-Id: Id109b6cf492a65dd7a7875dbba9b7f3422ff94ff\n"
    },
    {
      "commit": "835742ef39627596802f51f02461c822ba2c824b",
      "tree": "ad041364c1ce2d5498e332ce3403c76b4035a870",
      "parents": [
        "2218ec1a22bb644669b7c142cea1a06c00abcf49",
        "e485c71ff467279864035a9b3b3a27573c4e7b7d"
      ],
      "author": {
        "name": "Jooyung Han",
        "email": "jooyung@google.com",
        "time": "Thu Oct 31 00:42:35 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Oct 31 00:42:35 2019 +0000"
      },
      "message": "Merge \"Add VNDK APEX path as permitted paths of sphal\""
    },
    {
      "commit": "359adca4b7cf734ab9a0d27a005b9f6dfdc0ad8e",
      "tree": "741e8f07f2f56c89d2e42e32233d5c4e9d6c0c37",
      "parents": [
        "2218ec1a22bb644669b7c142cea1a06c00abcf49"
      ],
      "author": {
        "name": "Emilian Peev",
        "email": "epeev@google.com",
        "time": "Wed Oct 30 10:12:46 2019 -0700"
      },
      "committer": {
        "name": "Emilian Peev",
        "email": "epeev@google.com",
        "time": "Wed Oct 30 21:06:40 2019 +0000"
      },
      "message": "Camera: Check consumer interface before disconnecting\n\nThe internal buffer queue and respective \u0027mConsumer\u0027 may\nnever get initialized in case the connection and/or\nconfiguration of client shared output surfaces fails.\nTo avoid possible instabilities check whether the\nconsumer interface is valid before trying to disconnect.\n\nBug: 143506890\nTest: atest\ncts/tests/camera/src/android/hardware/camera2/cts/MultiViewTest.java\n\nChange-Id: Ia533233444fd548ddb52f4fde06212a21bc843bc\n"
    },
    {
      "commit": "2218ec1a22bb644669b7c142cea1a06c00abcf49",
      "tree": "a3b155bc6d972c6f58077c6a023be65a224e34be",
      "parents": [
        "83c89bc149d9a8e8c90031c858b9b606b694c757",
        "64a3b064787f57525c64fb5431dafc01c3bb33c0"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Oct 30 14:44:36 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Oct 30 14:44:36 2019 +0000"
      },
      "message": "Merge \"Consistently say \"Available since API level\".\""
    },
    {
      "commit": "64a3b064787f57525c64fb5431dafc01c3bb33c0",
      "tree": "a3b155bc6d972c6f58077c6a023be65a224e34be",
      "parents": [
        "83c89bc149d9a8e8c90031c858b9b606b694c757"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Oct 29 10:09:30 2019 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Oct 29 10:09:30 2019 -0700"
      },
      "message": "Consistently say \"Available since API level\".\n\nBug: http://b/143470841\nTest: treehugger\nChange-Id: I716a1b407a694edf1150b7dee6d1a901aa8f238b\n"
    },
    {
      "commit": "e485c71ff467279864035a9b3b3a27573c4e7b7d",
      "tree": "1d58a1bcdc72641e9a43caba3117788b9bd74623",
      "parents": [
        "3066e206366b25b6b64cf0ad29188bd04b56b183"
      ],
      "author": {
        "name": "Jooyung Han",
        "email": "jooyung@google.com",
        "time": "Tue Oct 29 05:48:18 2019 +0900"
      },
      "committer": {
        "name": "Jooyung Han",
        "email": "jooyung@google.com",
        "time": "Tue Oct 29 12:37:41 2019 +0900"
      },
      "message": "Add VNDK APEX path as permitted paths of sphal\n\nWith VNDK APEX, the path for VNDK libs has been changed\nfrom /system/lib/vndk-VER to /apex/com.android.vndk.vVER/lib\n\nBut we need to keep older location since it should run on\nolder version of system due to APEX requirements.\n\nWhen VNDK APEX is used, older location is just a symlink to a new\nlocation. So we have to add a new location as permitted path. Otherwise,\nlinker would fail because it checks accessibility using realpath().\n\nTest: add a vendor binary to /apex/com.android.media.swcodec/bin\n      which opens /system/lib/vndk-sp{VNDK_VER}/hw/android.hidl.memory@1.0-impl.so\n      via android_load_sphal_library()\nBug: 142912195\n\nChange-Id: I13779679af5cf7f687a726afe0b6118e15cf1869\n"
    },
    {
      "commit": "83c89bc149d9a8e8c90031c858b9b606b694c757",
      "tree": "d46ca423f99a79ca220268510469cdb1649f5c95",
      "parents": [
        "3066e206366b25b6b64cf0ad29188bd04b56b183",
        "aa7f5c075b73953a6998144c3a8a048860752b69"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Oct 28 21:58:18 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Oct 28 21:58:18 2019 +0000"
      },
      "message": "Merge \"Fix dst rect calculation\""
    },
    {
      "commit": "3066e206366b25b6b64cf0ad29188bd04b56b183",
      "tree": "9e2fb7fd9ec74ffcf85e6d9e7971619ef952405b",
      "parents": [
        "7730a4479d280936130be94ecdd304a4820f7323",
        "5d959b14989989689f1e0ec4eef1b2ecd159e3bf"
      ],
      "author": {
        "name": "Xin Li",
        "email": "delphij@google.com",
        "time": "Sun Oct 27 04:44:29 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Sun Oct 27 04:44:29 2019 +0000"
      },
      "message": "Merge \"Merge Coral/Flame into AOSP master\""
    },
    {
      "commit": "5d959b14989989689f1e0ec4eef1b2ecd159e3bf",
      "tree": "9e2fb7fd9ec74ffcf85e6d9e7971619ef952405b",
      "parents": [
        "7730a4479d280936130be94ecdd304a4820f7323",
        "ec565c575d029bdef8bcdf9762276b44255e5dfb"
      ],
      "author": {
        "name": "Xin Li",
        "email": "delphij@google.com",
        "time": "Fri Oct 25 19:06:35 2019 -0700"
      },
      "committer": {
        "name": "Xin Li",
        "email": "delphij@google.com",
        "time": "Fri Oct 25 19:06:35 2019 -0700"
      },
      "message": "Merge Coral/Flame into AOSP master\n\nBug: 141248619\nChange-Id: Ie0faac4b16b7a3a521b225614a46e42602d501e1\nMerged-In: Ie78dbefaf12fb00fa8c4d1f352de87b43c7263bb\n"
    },
    {
      "commit": "7730a4479d280936130be94ecdd304a4820f7323",
      "tree": "616068663790444afeda53a61c9bf01c7e730a03",
      "parents": [
        "a2bc7eada863d845b04c85195dbb26df37bdef69",
        "93db39b482ef18d6f384bb42cb8d09d89eb1e3a8"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Sat Oct 26 01:45:57 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Sat Oct 26 01:45:57 2019 +0000"
      },
      "message": "Merge \"Move Visualizer to libaudioeffect_jni, its only user\""
    },
    {
      "commit": "93db39b482ef18d6f384bb42cb8d09d89eb1e3a8",
      "tree": "24c2a9ecfac087c3c1f4c99d09ef977060433b8f",
      "parents": [
        "f65c700c2947c2e89b2b8ced10972fab29ae175d"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Wed Oct 23 09:19:18 2019 -0700"
      },
      "committer": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Fri Oct 25 20:35:49 2019 +0000"
      },
      "message": "Move Visualizer to libaudioeffect_jni, its only user\n\nThis removes libaudioeffect_jni\u0027s dependency on libmedia and removes\nlibmedia\u0027s dependency on libaudioutils.\n\nTest: build\nChange-Id: Iabd4835f2d09e403ebed8b8ba2e42ac1fa86b044\nMerged-In: Iabd4835f2d09e403ebed8b8ba2e42ac1fa86b044\n"
    },
    {
      "commit": "ec565c575d029bdef8bcdf9762276b44255e5dfb",
      "tree": "660e5fa119829f2528809ec9c7ecfb4cc27d7082",
      "parents": [
        "001b8646402131b5e55c6633971b9d9a851cd18e",
        "a2bc7eada863d845b04c85195dbb26df37bdef69"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Fri Oct 25 13:08:26 2019 -0700"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Fri Oct 25 13:08:26 2019 -0700"
      },
      "message": "Merge \"Remove more header symlinks\"\nam: a2bc7eada8\n\nChange-Id: I690dd345b0a74078b7cae24bdf3fdb2549d8c62d\n"
    },
    {
      "commit": "001b8646402131b5e55c6633971b9d9a851cd18e",
      "tree": "d6d35a052cb23da872cc2bb606956a8e98d82bdc",
      "parents": [
        "e18118e0064f1ea936d3edc26ae20e4f5671ca43",
        "f65c700c2947c2e89b2b8ced10972fab29ae175d"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Fri Oct 25 12:50:12 2019 -0700"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Fri Oct 25 12:50:12 2019 -0700"
      },
      "message": "Merge \"DO NOT MERGE: Visualizer: Fix deadlock on close\"\nam: f65c700c29\n\nChange-Id: I4f7f7af27b474badf95c4aa5e7ac4add860d2738\n"
    },
    {
      "commit": "a2bc7eada863d845b04c85195dbb26df37bdef69",
      "tree": "b17e23ebf1c9551620b761a4918994cf930ab6e9",
      "parents": [
        "f65c700c2947c2e89b2b8ced10972fab29ae175d",
        "6b2859450f91f1cdd8b3ca2435df4dd37907cd8a"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Fri Oct 25 19:47:54 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Oct 25 19:47:54 2019 +0000"
      },
      "message": "Merge \"Remove more header symlinks\""
    },
    {
      "commit": "f65c700c2947c2e89b2b8ced10972fab29ae175d",
      "tree": "db4fe610f5d32796b7956d4db49adf04cc23ca78",
      "parents": [
        "e75850d70aecf270430f4713a2ac02ddba70c849",
        "81f66d83075ad1008a7dc25ea0c4ea43d950a44d"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Fri Oct 25 19:40:48 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Oct 25 19:40:48 2019 +0000"
      },
      "message": "Merge \"DO NOT MERGE: Visualizer: Fix deadlock on close\""
    },
    {
      "commit": "e18118e0064f1ea936d3edc26ae20e4f5671ca43",
      "tree": "d6d35a052cb23da872cc2bb606956a8e98d82bdc",
      "parents": [
        "37062b54f37ebd4dc3542acdc50f2550574fd8bd",
        "e75850d70aecf270430f4713a2ac02ddba70c849"
      ],
      "author": {
        "name": "George Burgess IV",
        "email": "gbiv@google.com",
        "time": "Fri Oct 25 09:51:09 2019 -0700"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Fri Oct 25 09:51:09 2019 -0700"
      },
      "message": "Merge \"nuplayer: fix a use-of-uninit-value\"\nam: e75850d70a\n\nChange-Id: I20295b2273b1378bf01dbc9498711fbe9233c669\n"
    },
    {
      "commit": "e75850d70aecf270430f4713a2ac02ddba70c849",
      "tree": "fa8203ce436cbb5187e35b834ba9febec8e55773",
      "parents": [
        "f7902c01f85ba4941cbfa19fe105e9235426d857",
        "61318c55b26fde06801a09f10f324f487b011bdc"
      ],
      "author": {
        "name": "George Burgess IV",
        "email": "gbiv@google.com",
        "time": "Fri Oct 25 16:34:16 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Oct 25 16:34:16 2019 +0000"
      },
      "message": "Merge \"nuplayer: fix a use-of-uninit-value\""
    }
  ],
  "next": "81f66d83075ad1008a7dc25ea0c4ea43d950a44d"
}
