)]}'
{
  "commit": "4e4f1af727795d49104f4c0ff690e3f4e6fc3ded",
  "tree": "be01061674c4f70e980a1129af4914749c67ddfa",
  "parents": [
    "246182468385c1fedc0bad8cb74a87b7788fd067"
  ],
  "author": {
    "name": "vasilvv",
    "email": "vasilvv@google.com",
    "time": "Thu Jul 18 19:26:28 2024 -0700"
  },
  "committer": {
    "name": "Copybara-Service",
    "email": "copybara-worker@google.com",
    "time": "Thu Jul 18 19:28:17 2024 -0700"
  },
  "message": "Refactor MoQT sending logic to pull objects from the application, instead of pushing them onto individual MoQT sessions.\n\nThis CL introduces a new interface, a MoqtTrackPublisher.  A track publisher knows everything necessary to publish a track, caches recent objects and may be shared across multiple MoQT sessions.  Objects are always pulled from the publisher.\n\nThis CL also restructures the sending logic around every object being published within a single subscription (there has been a lot of code from the era where we deduplicated objects; that is now gone).  The publisher notifies the subscription, which in turn notifies the relevant stream within the session.\n\nThere is also a lot of other minor refactors as necessary.\n\nThe current version of this CL does not support publishing objects far in the past, largely due to design ambiguities surrounding how fetch is supposed to work (I am writing a slide deck for Vancouver on that).  Instead, we merely backfill the recent objects that are still in the cache; that covers most of the use cases we care about for now.\n\nPiperOrigin-RevId: 653833971\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "34b592f506a87e051c4d47712fb0e4725fb422ac",
      "old_mode": 33188,
      "old_path": "build/source_list.bzl",
      "new_id": "386d90776d55e47b4059ac9d0367ac7a9bf0e4b8",
      "new_mode": 33188,
      "new_path": "build/source_list.bzl"
    },
    {
      "type": "modify",
      "old_id": "23437ab68b41f7ec061c2f13619ed7cf165f07a0",
      "old_mode": 33188,
      "old_path": "build/source_list.gni",
      "new_id": "20042695a78dca105ff586665fc88d6f3ddae4a6",
      "new_mode": 33188,
      "new_path": "build/source_list.gni"
    },
    {
      "type": "modify",
      "old_id": "1b9a3334ff9262fcd487cd40a18fc0b5c10493c3",
      "old_mode": 33188,
      "old_path": "build/source_list.json",
      "new_id": "7e6cd21a66322778a38a7ec6c66e2e2cc630e78b",
      "new_mode": 33188,
      "new_path": "build/source_list.json"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "395875b570fa0dc92e226341c5dce0abc5cb8ba1",
      "new_mode": 33188,
      "new_path": "quiche/quic/moqt/moqt_cached_object.cc"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "c04b31e20ae06dfc605dc8ba61a629f655582d6f",
      "new_mode": 33188,
      "new_path": "quiche/quic/moqt/moqt_cached_object.h"
    },
    {
      "type": "modify",
      "old_id": "14b7dc2c7256f07ccdcf91388ed3d0f5a1943158",
      "old_mode": 33188,
      "old_path": "quiche/quic/moqt/moqt_integration_test.cc",
      "new_id": "66df4513179802e5706ae0b5c74ca0adbba90670",
      "new_mode": 33188,
      "new_path": "quiche/quic/moqt/moqt_integration_test.cc"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "2fa4daf2d303030d084f0e5be3716f0d25484ed3",
      "new_mode": 33188,
      "new_path": "quiche/quic/moqt/moqt_known_track_publisher.cc"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "dd9316fa4895a1577df9bf05fa46016ed2e77db4",
      "new_mode": 33188,
      "new_path": "quiche/quic/moqt/moqt_known_track_publisher.h"
    },
    {
      "type": "modify",
      "old_id": "c2a22cd677c5192e9f641b72a297e372e4d4f999",
      "old_mode": 33188,
      "old_path": "quiche/quic/moqt/moqt_messages.h",
      "new_id": "61015be9ff04009e1e923e38e9a74e4df56759b6",
      "new_mode": 33188,
      "new_path": "quiche/quic/moqt/moqt_messages.h"
    },
    {
      "type": "modify",
      "old_id": "9a97da0278f77d74ed81fae32aeebd8da6bcf241",
      "old_mode": 33188,
      "old_path": "quiche/quic/moqt/moqt_outgoing_queue.cc",
      "new_id": "35d1f9da7c1492758c64a2e0d63d57938ff71cbb",
      "new_mode": 33188,
      "new_path": "quiche/quic/moqt/moqt_outgoing_queue.cc"
    },
    {
      "type": "modify",
      "old_id": "d738e4309430bd1403a816c6a2e1b76e5a6413d8",
      "old_mode": 33188,
      "old_path": "quiche/quic/moqt/moqt_outgoing_queue.h",
      "new_id": "4daa38906635613da7356d64b1a87acd7d0acaa7",
      "new_mode": 33188,
      "new_path": "quiche/quic/moqt/moqt_outgoing_queue.h"
    },
    {
      "type": "modify",
      "old_id": "ac22b64a8aa7717f016030902c9d3a9dc2904263",
      "old_mode": 33188,
      "old_path": "quiche/quic/moqt/moqt_outgoing_queue_test.cc",
      "new_id": "925e3699b501af8197182eb1ab1ed7441e6eed70",
      "new_mode": 33188,
      "new_path": "quiche/quic/moqt/moqt_outgoing_queue_test.cc"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "ab163d50beed78b2bfe13e569f7370ae9bd21681",
      "new_mode": 33188,
      "new_path": "quiche/quic/moqt/moqt_publisher.h"
    },
    {
      "type": "modify",
      "old_id": "023bdccf65c5aab828262a3ec5c7ebb077c7357c",
      "old_mode": 33188,
      "old_path": "quiche/quic/moqt/moqt_session.cc",
      "new_id": "154c8ba24e6799c629782b617eb630cbaabfc527",
      "new_mode": 33188,
      "new_path": "quiche/quic/moqt/moqt_session.cc"
    },
    {
      "type": "modify",
      "old_id": "b4a0171f4ee0ae22d185d727e6a6aa680f06857e",
      "old_mode": 33188,
      "old_path": "quiche/quic/moqt/moqt_session.h",
      "new_id": "52af69dcded9ca4fc8889413bed19544f59eca37",
      "new_mode": 33188,
      "new_path": "quiche/quic/moqt/moqt_session.h"
    },
    {
      "type": "modify",
      "old_id": "f8e64e8f9e6d6f276f5af33e9eded7cafa937ca7",
      "old_mode": 33188,
      "old_path": "quiche/quic/moqt/moqt_session_test.cc",
      "new_id": "1c8162b8c3817e7978f1e3ec3571a9f31e00b32b",
      "new_mode": 33188,
      "new_path": "quiche/quic/moqt/moqt_session_test.cc"
    },
    {
      "type": "modify",
      "old_id": "21f16e5f9465195037edb45ae960e3912f430115",
      "old_mode": 33188,
      "old_path": "quiche/quic/moqt/moqt_subscribe_windows.cc",
      "new_id": "422a3fcdddb4d8381504b931b3615dbb6dcd1063",
      "new_mode": 33188,
      "new_path": "quiche/quic/moqt/moqt_subscribe_windows.cc"
    },
    {
      "type": "modify",
      "old_id": "d39328414480cf261fa0ebd8198d73e470d969ad",
      "old_mode": 33188,
      "old_path": "quiche/quic/moqt/moqt_subscribe_windows.h",
      "new_id": "5e0307d5acdfc27e82932ebf20f3c8011e65a129",
      "new_mode": 33188,
      "new_path": "quiche/quic/moqt/moqt_subscribe_windows.h"
    },
    {
      "type": "modify",
      "old_id": "0aae7c7d818c89539e4a498831eb84e49ef3f2ae",
      "old_mode": 33188,
      "old_path": "quiche/quic/moqt/moqt_subscribe_windows_test.cc",
      "new_id": "49213ff9c1ca2e7c1c12515f9fedfbf70fb14539",
      "new_mode": 33188,
      "new_path": "quiche/quic/moqt/moqt_subscribe_windows_test.cc"
    },
    {
      "type": "modify",
      "old_id": "d2644c8a9d76b2de3d743f1251131a4d9ef245b7",
      "old_mode": 33188,
      "old_path": "quiche/quic/moqt/moqt_track.cc",
      "new_id": "ee85664de311ff82057a703a58633c974f66868f",
      "new_mode": 33188,
      "new_path": "quiche/quic/moqt/moqt_track.cc"
    },
    {
      "type": "modify",
      "old_id": "c9ece3fe0f37bfb5ff908049991bcc8090029fab",
      "old_mode": 33188,
      "old_path": "quiche/quic/moqt/moqt_track.h",
      "new_id": "3fefee53234f1c561dc0420db0b2851a3dcd1e77",
      "new_mode": 33188,
      "new_path": "quiche/quic/moqt/moqt_track.h"
    },
    {
      "type": "modify",
      "old_id": "fc0a86714742d8a1da9fca628c6c851a1a874ee1",
      "old_mode": 33188,
      "old_path": "quiche/quic/moqt/moqt_track_test.cc",
      "new_id": "4b0ff925d40e640b414747ef3b74d1cbc5c176cf",
      "new_mode": 33188,
      "new_path": "quiche/quic/moqt/moqt_track_test.cc"
    },
    {
      "type": "modify",
      "old_id": "acdbf0c9eabaea8a5ceda7d8fa4111247e94f8e4",
      "old_mode": 33188,
      "old_path": "quiche/quic/moqt/tools/chat_client_bin.cc",
      "new_id": "a344a7df77f32bd0fb2c52406412756448b8dcce",
      "new_mode": 33188,
      "new_path": "quiche/quic/moqt/tools/chat_client_bin.cc"
    },
    {
      "type": "modify",
      "old_id": "0ea75fa43336dc336c4849bba80cf0330cf0d614",
      "old_mode": 33188,
      "old_path": "quiche/quic/moqt/tools/moqt_mock_visitor.h",
      "new_id": "3dc574137e465d1b5341a38b68b42a4ab9c28a0c",
      "new_mode": 33188,
      "new_path": "quiche/quic/moqt/tools/moqt_mock_visitor.h"
    },
    {
      "type": "modify",
      "old_id": "d379afcce203f3ff0d142e4ba494365bf309cdce",
      "old_mode": 33188,
      "old_path": "quiche/quic/moqt/tools/moqt_simulator_bin.cc",
      "new_id": "6aa5d01a7e2e59aa18664d6743011e875056597d",
      "new_mode": 33188,
      "new_path": "quiche/quic/moqt/tools/moqt_simulator_bin.cc"
    }
  ]
}
