)]}'
{
  "commit": "1ceadc7a1631c7ac0b45d0a7047ea81999ecf4cf",
  "tree": "0295161f2c6f79033a5a20426bdc1b2201ecbe21",
  "parents": [
    "7bd55da6bccfe63b0f07b6f37554f85dd577d75a"
  ],
  "author": {
    "name": "vasilvv",
    "email": "vasilvv@google.com",
    "time": "Mon May 04 18:02:22 2026 -0700"
  },
  "committer": {
    "name": "Copybara-Service",
    "email": "copybara-worker@google.com",
    "time": "Mon May 04 18:03:03 2026 -0700"
  },
  "message": "Rewrite MOQT control message parser.\n\nInstead of the old parser there are now two classes:\n* MoqtControlStreamParser unframes control messages.  It will be transferred from Unknown stream to a specific bidi stream subtype.\n* MoqtControlMessageParser is ~stateless parser that actually parses the payload of unframed messages.\n\nThere\u0027s a MoqtControlParser polyfill that will be removed in the follow-up CL, as fixing the call sites would make this CL 2x larger.\n\nThis also sharpens error handling around various FIN-related edge cases (for instance, an empty bidi stream or a bidi stream with an incomplete type is now a fatal error).\n\nPiperOrigin-RevId: 910348826\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "38e17432afd8246404579abda4e71ce04a0f6edf",
      "old_mode": 33188,
      "old_path": "quiche/quic/moqt/moqt_parser.cc",
      "new_id": "19d864e5661f01564ebc92a8409e7b9768767c77",
      "new_mode": 33188,
      "new_path": "quiche/quic/moqt/moqt_parser.cc"
    },
    {
      "type": "modify",
      "old_id": "e04dbcb4f83e73c94bd5a940ee1cffbf72c174b5",
      "old_mode": 33188,
      "old_path": "quiche/quic/moqt/moqt_parser.h",
      "new_id": "9a62066fd16815a584eaf2922b8d443ca0517e23",
      "new_mode": 33188,
      "new_path": "quiche/quic/moqt/moqt_parser.h"
    },
    {
      "type": "modify",
      "old_id": "f9b79581b053251602317173dfc74a1952c15fce",
      "old_mode": 33188,
      "old_path": "quiche/quic/moqt/moqt_parser_fuzz_test.cc",
      "new_id": "ee7305255d832960bb9918a39c19853948ff38a7",
      "new_mode": 33188,
      "new_path": "quiche/quic/moqt/moqt_parser_fuzz_test.cc"
    },
    {
      "type": "modify",
      "old_id": "5a903ec219a3c2a8b5a13c8eff8c1bad7c4ff6fe",
      "old_mode": 33188,
      "old_path": "quiche/quic/moqt/moqt_parser_test.cc",
      "new_id": "e395a82c74b4ce052078a6761bb01c0636a05538",
      "new_mode": 33188,
      "new_path": "quiche/quic/moqt/moqt_parser_test.cc"
    },
    {
      "type": "modify",
      "old_id": "c5c2ab8df3684a6065a1754c2f7e701fb5bf2b53",
      "old_mode": 33188,
      "old_path": "quiche/quic/moqt/moqt_session.cc",
      "new_id": "499666d88f776fbf0c79d38dc0a3d9e68a4909f8",
      "new_mode": 33188,
      "new_path": "quiche/quic/moqt/moqt_session.cc"
    },
    {
      "type": "modify",
      "old_id": "fbb194b89741a9f4ca89a89d1b1fe21b35ac0f51",
      "old_mode": 33188,
      "old_path": "quiche/quic/moqt/moqt_session.h",
      "new_id": "59e20848d0c23cb2edec4206bacc1f3f49f268f0",
      "new_mode": 33188,
      "new_path": "quiche/quic/moqt/moqt_session.h"
    },
    {
      "type": "modify",
      "old_id": "04af379e3fc4e2982851e8ab2f49ed34ec28ed96",
      "old_mode": 33188,
      "old_path": "quiche/quic/moqt/moqt_session_test.cc",
      "new_id": "ecf0e5364b4a24b3e26a56fd1f6a386092d541b2",
      "new_mode": 33188,
      "new_path": "quiche/quic/moqt/moqt_session_test.cc"
    },
    {
      "type": "modify",
      "old_id": "970ee4683dfd5633b7b9fa4263a2dce04807bf16",
      "old_mode": 33188,
      "old_path": "quiche/quic/moqt/test_tools/moqt_framer_utils.cc",
      "new_id": "39ea2176d0b5e5f86749ae5e1b373b38c6e5cc2a",
      "new_mode": 33188,
      "new_path": "quiche/quic/moqt/test_tools/moqt_framer_utils.cc"
    },
    {
      "type": "modify",
      "old_id": "6aa81aa4308de40e0d4e887c186f08c2c9dc10da",
      "old_mode": 33188,
      "old_path": "quiche/quic/moqt/test_tools/moqt_framer_utils.h",
      "new_id": "0e4326b7cbe82fc2ffbcd204b208ae11b40970f7",
      "new_mode": 33188,
      "new_path": "quiche/quic/moqt/test_tools/moqt_framer_utils.h"
    },
    {
      "type": "modify",
      "old_id": "10451df39110f54e2680b06bde1e28799b71006a",
      "old_mode": 33188,
      "old_path": "quiche/quic/moqt/test_tools/moqt_parser_test_visitor.h",
      "new_id": "51cb39eca22f9810ea043e78b48a2e53806c2367",
      "new_mode": 33188,
      "new_path": "quiche/quic/moqt/test_tools/moqt_parser_test_visitor.h"
    },
    {
      "type": "modify",
      "old_id": "813e9699fe5adf446d87c968f946283de77cf00b",
      "old_mode": 33188,
      "old_path": "quiche/quic/moqt/test_tools/moqt_test_message.h",
      "new_id": "f1da5ad5b68e53f6e344114dadb302db4d3e6ef9",
      "new_mode": 33188,
      "new_path": "quiche/quic/moqt/test_tools/moqt_test_message.h"
    }
  ]
}
