)]}'
{
  "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": "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": "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": "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": "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"
    }
  ]
}
