)]}'
{
  "commit": "5ccc379791baf78d5189898929aea9f34f588b21",
  "tree": "2067f676d4c27f7186984db7c9464e74468d9dcc",
  "parents": [
    "2c39aebe93b5da6e01f332f0e3e92bb217f11c12"
  ],
  "author": {
    "name": "martinduke",
    "email": "martinduke@google.com",
    "time": "Wed Nov 27 11:12:55 2024 -0800"
  },
  "committer": {
    "name": "Copybara-Service",
    "email": "copybara-worker@google.com",
    "time": "Wed Nov 27 11:13:59 2024 -0800"
  },
  "message": "Refactor MoQT Upstream SUBSCRIBE processing and data structures.\n\nStreamline and simplify in preparation for also sending FETCH.\n\n- Move subscribe-specific properties to SubscribeRemoteTrack, derived from RemoteTrack.\n\n- A map of subscribes by track_alias_. Also, a separate map of pointers to those records indexed by subscribe_id_. pointers to FetchTask will also be stored in the latter.\n\n- Eliminate \"active subscribes\" and just put the state into SubscribeRemoteTrack, since we are now indexing all subscribe by ID.\n\n- Allow access to the stream type in the parser to verify it\u0027s correct for the subscription.\n\n- Based on @vasilvv suggestion, deleted a check in quiche_weak_ptr.h that was misfiring.\n\n- Added support for Upstream UNSUBSCRIBE to avoid a problem with ChatClient not clearing subscription state.\n\nNot in production.\n\nPiperOrigin-RevId: 700756286\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "c0d7b49ea544e252e3e1a5239b62c0ab5454a363",
      "old_mode": 33188,
      "old_path": "quiche/common/quiche_weak_ptr.h",
      "new_id": "29dc6d69fe0d390fc7f46eb7aff43f2649a66d49",
      "new_mode": 33188,
      "new_path": "quiche/common/quiche_weak_ptr.h"
    },
    {
      "type": "modify",
      "old_id": "73e9c2d22aa31cf7131f31c28cee4afa153190d7",
      "old_mode": 33188,
      "old_path": "quiche/common/quiche_weak_ptr_test.cc",
      "new_id": "f07d7072d7574e6a764b321989d53f16e34de971",
      "new_mode": 33188,
      "new_path": "quiche/common/quiche_weak_ptr_test.cc"
    },
    {
      "type": "modify",
      "old_id": "c7630a5815394a18ee3b93e2fb69ed6c932114bc",
      "old_mode": 33188,
      "old_path": "quiche/quic/moqt/moqt_integration_test.cc",
      "new_id": "dc1820b3dfe457a74542aae7a07c5903ac9a3769",
      "new_mode": 33188,
      "new_path": "quiche/quic/moqt/moqt_integration_test.cc"
    },
    {
      "type": "modify",
      "old_id": "58795c4b7bc066c0b4e91068e973962acc5cd937",
      "old_mode": 33188,
      "old_path": "quiche/quic/moqt/moqt_parser.h",
      "new_id": "34953e4a0003f9f7686d3146f3d0beeafc334201",
      "new_mode": 33188,
      "new_path": "quiche/quic/moqt/moqt_parser.h"
    },
    {
      "type": "modify",
      "old_id": "0bf32bf3a13ba74d11ce073f9bd04830fe5a1dde",
      "old_mode": 33188,
      "old_path": "quiche/quic/moqt/moqt_session.cc",
      "new_id": "10b59399a3201c900c6fd86acefdb0fadde428b1",
      "new_mode": 33188,
      "new_path": "quiche/quic/moqt/moqt_session.cc"
    },
    {
      "type": "modify",
      "old_id": "c4ae79461a6935151c7fe9d39cff24ba85a1af7b",
      "old_mode": 33188,
      "old_path": "quiche/quic/moqt/moqt_session.h",
      "new_id": "628f1884f4b549185b40a771b3992d7a95ba674f",
      "new_mode": 33188,
      "new_path": "quiche/quic/moqt/moqt_session.h"
    },
    {
      "type": "modify",
      "old_id": "2e7aed08197dc2b3ce78d7b2eb8b89af2d6d3e29",
      "old_mode": 33188,
      "old_path": "quiche/quic/moqt/moqt_session_test.cc",
      "new_id": "3298cfc8b55e3d0df22f9f0cb5869bf29ceef006",
      "new_mode": 33188,
      "new_path": "quiche/quic/moqt/moqt_session_test.cc"
    },
    {
      "type": "modify",
      "old_id": "ee85664de311ff82057a703a58633c974f66868f",
      "old_mode": 33188,
      "old_path": "quiche/quic/moqt/moqt_track.cc",
      "new_id": "07f44d72b04221ea7cf280febc63115f1012aa0e",
      "new_mode": 33188,
      "new_path": "quiche/quic/moqt/moqt_track.cc"
    },
    {
      "type": "modify",
      "old_id": "0da047ac6f3a2178b09c7fcf203fc3b7e7b83314",
      "old_mode": 33188,
      "old_path": "quiche/quic/moqt/moqt_track.h",
      "new_id": "e47464a693e9ff54544aeda14964bd0390da95d9",
      "new_mode": 33188,
      "new_path": "quiche/quic/moqt/moqt_track.h"
    },
    {
      "type": "modify",
      "old_id": "cd62dd862ef67ade2576460f2d9dd6922eae4fdd",
      "old_mode": 33188,
      "old_path": "quiche/quic/moqt/moqt_track_test.cc",
      "new_id": "a5717ce914b4d05cc9bf2670043e6159956afd95",
      "new_mode": 33188,
      "new_path": "quiche/quic/moqt/moqt_track_test.cc"
    },
    {
      "type": "modify",
      "old_id": "d41edd63346e5a8bb071a326a71e41f0ec719f04",
      "old_mode": 33188,
      "old_path": "quiche/quic/moqt/test_tools/moqt_session_peer.h",
      "new_id": "5426ef6bd71c2427cab3bbdc075975731ad819f0",
      "new_mode": 33188,
      "new_path": "quiche/quic/moqt/test_tools/moqt_session_peer.h"
    },
    {
      "type": "modify",
      "old_id": "28c93c1a1afeeed4244f724ec0f97e05b00a840c",
      "old_mode": 33188,
      "old_path": "quiche/quic/moqt/tools/chat_client.cc",
      "new_id": "e98cf759cef172a49d1e3db08a8fe9aa40a6e5dc",
      "new_mode": 33188,
      "new_path": "quiche/quic/moqt/tools/chat_client.cc"
    },
    {
      "type": "modify",
      "old_id": "024b78db95a79c92a8a1a0ff27678f28fe672fc8",
      "old_mode": 33188,
      "old_path": "quiche/quic/moqt/tools/chat_client.h",
      "new_id": "e2c341fa0c3b736eb61e8ec7f51dbd254e182f59",
      "new_mode": 33188,
      "new_path": "quiche/quic/moqt/tools/chat_client.h"
    },
    {
      "type": "modify",
      "old_id": "c4f0327fb14d26b1796138d76a997b9f87708bac",
      "old_mode": 33188,
      "old_path": "quiche/quic/moqt/tools/chat_server.cc",
      "new_id": "3f31a4776ce0a7a150692563dfba428b2ceda74f",
      "new_mode": 33188,
      "new_path": "quiche/quic/moqt/tools/chat_server.cc"
    },
    {
      "type": "modify",
      "old_id": "1af6e5caa3a160d4ea9ba90a55322ddb235013eb",
      "old_mode": 33188,
      "old_path": "quiche/quic/moqt/tools/chat_server.h",
      "new_id": "0c883ed470782e13858279ae2dacdbacbbac84d0",
      "new_mode": 33188,
      "new_path": "quiche/quic/moqt/tools/chat_server.h"
    },
    {
      "type": "modify",
      "old_id": "f31fff48b6eb8ce86e277439d5e3b0086fb671a6",
      "old_mode": 33188,
      "old_path": "quiche/quic/moqt/tools/moqt_ingestion_server_bin.cc",
      "new_id": "4b7aa2db33a98cbb76a76796fb25aedcc68bedb7",
      "new_mode": 33188,
      "new_path": "quiche/quic/moqt/tools/moqt_ingestion_server_bin.cc"
    },
    {
      "type": "modify",
      "old_id": "972fc0ce78dd52a6b4e6b026e0c7caaeb4546f3e",
      "old_mode": 33188,
      "old_path": "quiche/quic/moqt/tools/moqt_mock_visitor.h",
      "new_id": "70316964bc3c14860c951c0370c3607b116f74ef",
      "new_mode": 33188,
      "new_path": "quiche/quic/moqt/tools/moqt_mock_visitor.h"
    },
    {
      "type": "modify",
      "old_id": "39cf2c8d1325ca24a92d4a67cb7466553050478e",
      "old_mode": 33188,
      "old_path": "quiche/quic/moqt/tools/moqt_simulator_bin.cc",
      "new_id": "b2a30e60f89f2e9edd4784ade04ee5856cad901f",
      "new_mode": 33188,
      "new_path": "quiche/quic/moqt/tools/moqt_simulator_bin.cc"
    }
  ]
}
