)]}'
{
  "commit": "72af8011fe38f00df58579b476187f8e9fb35a58",
  "tree": "2ec2a01232f54814c8c902a66b361a6af19f27a0",
  "parents": [
    "b6cf5390d6c582076b320a4a1c50a920503a1b6e"
  ],
  "author": {
    "name": "Eric Laurent",
    "email": "elaurent@google.com",
    "time": "Wed Mar 15 17:36:22 2023 +0100"
  },
  "committer": {
    "name": "Eric Laurent",
    "email": "elaurent@google.com",
    "time": "Fri Mar 24 19:02:13 2023 +0000"
  },
  "message": "audio policy: optimize preferred device selection\n\nSeveral optimizations to avoid redundant track invalidation\nwhen a preferred device is specified for an AudioTrack.\n1) in AudioTrack: only invalidate the track if the preferred device\n   differs from the actual device. If the track is not active,\n   immediately restore it instead of waiting for next start.\n2) in AudioPolicyManager: avoid invalidating the track in startSource() and\n   stopSource() if another active client with the same preferred device\n   exists.\n\nAlso fix a problem in getOutput() preventing MediaPlayer to open a sink\nfor call assistant use case.\n\nBug: 272560885\nTest: atest RoutingTest\nChange-Id: Ia3fb06eaf2e292d2795d588226c7672b7ab6722f\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "6ab8339eaeb7b73ad2bebe7dcd98bef5b658d66b",
      "old_mode": 33188,
      "old_path": "media/libaudioclient/AudioTrack.cpp",
      "new_id": "b8999512bf8f47aa166f20b84fd4c55406cec48e",
      "new_mode": 33188,
      "new_path": "media/libaudioclient/AudioTrack.cpp"
    },
    {
      "type": "modify",
      "old_id": "9f540e61af5a47275d58bff9cbc214bd342aab1f",
      "old_mode": 33188,
      "old_path": "media/libaudioclient/include/media/AudioTrack.h",
      "new_id": "ee81ef82e8972dd87effe1f957b94cb2a4a31a58",
      "new_mode": 33188,
      "new_path": "media/libaudioclient/include/media/AudioTrack.h"
    },
    {
      "type": "modify",
      "old_id": "8e19d02d2f8527008d8b555ebe21ade3c1462521",
      "old_mode": 33188,
      "old_path": "media/libmediaplayerservice/MediaPlayerService.cpp",
      "new_id": "e654bce2e7d3a0f94880354feccb3dff243f94b7",
      "new_mode": 33188,
      "new_path": "media/libmediaplayerservice/MediaPlayerService.cpp"
    },
    {
      "type": "modify",
      "old_id": "75fa595fa3bb82a54029718b2bd8fb8d2e713a3f",
      "old_mode": 33188,
      "old_path": "services/audiopolicy/common/managerdefinitions/include/AudioOutputDescriptor.h",
      "new_id": "0e4bc6ccd1bba0d1ddb8a36a5560c03777fd0884",
      "new_mode": 33188,
      "new_path": "services/audiopolicy/common/managerdefinitions/include/AudioOutputDescriptor.h"
    },
    {
      "type": "modify",
      "old_id": "8eefe775d8d219dc9719c95b4ce0b3f7ca1d55ce",
      "old_mode": 33188,
      "old_path": "services/audiopolicy/common/managerdefinitions/src/AudioOutputDescriptor.cpp",
      "new_id": "41fbebc9ee5c2fd23df314b340649bd960ceb770",
      "new_mode": 33188,
      "new_path": "services/audiopolicy/common/managerdefinitions/src/AudioOutputDescriptor.cpp"
    },
    {
      "type": "modify",
      "old_id": "8d00a3d8a82a1c617ad6353bda0b6f376ac923c7",
      "old_mode": 33188,
      "old_path": "services/audiopolicy/managerdefault/AudioPolicyManager.cpp",
      "new_id": "f625fdb3bee62765f77799e825293e6de60ee62a",
      "new_mode": 33188,
      "new_path": "services/audiopolicy/managerdefault/AudioPolicyManager.cpp"
    },
    {
      "type": "modify",
      "old_id": "49224c5bb0c9897ba558fda22b9db2e1cb0595a1",
      "old_mode": 33188,
      "old_path": "services/audiopolicy/service/AudioPolicyInterfaceImpl.cpp",
      "new_id": "04aeabaa01cbe09e2fcd71dc2569a3447804f25a",
      "new_mode": 33188,
      "new_path": "services/audiopolicy/service/AudioPolicyInterfaceImpl.cpp"
    }
  ]
}
