)]}'
{
  "commit": "137ec0c681557d0bea79e8d14a7361aa6a73202f",
  "tree": "0c31993c208ffb35dd89d1f25d4079d583865366",
  "parents": [
    "d249e53db5364c7a67a8c51205f34e30f5562686"
  ],
  "author": {
    "name": "vasilvv",
    "email": "vasilvv@google.com",
    "time": "Wed Aug 28 12:01:33 2024 -0700"
  },
  "committer": {
    "name": "Copybara-Service",
    "email": "copybara-worker@google.com",
    "time": "Wed Aug 28 12:02:37 2024 -0700"
  },
  "message": "Introduce Object ACKs (OACKs) to MoQT.\n\nOACKs let the application receiver acknowledge that it has received (and potentially processed) the object.  In addition to that, we also communicate how far off from the deadline the object was received.\n\nThe sender want to know this information if it is in a position to adjust the send rate:\n- when it\u0027s a 1:1 connection and it controls the video bitrate,\n- when it\u0027s doing sender-side ABR.\n\nThe reason we want to do MoQ-level ACKs is that the alternatives are not as good:\n- using QUIC ACKs directly breaks layering and is infeasible with web APIs\n- using a building up queue as a signal is possible, but the queue takes a time to build up, thus making it a delayed signal\n\nPiperOrigin-RevId: 668549384\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "1ed0b6c48edb5edc799035f3a3540836b49680fa",
      "old_mode": 33188,
      "old_path": "quiche/quic/moqt/moqt_framer.cc",
      "new_id": "dabdea47487cca5776ebfd71dc9f8d657e522cd8",
      "new_mode": 33188,
      "new_path": "quiche/quic/moqt/moqt_framer.cc"
    },
    {
      "type": "modify",
      "old_id": "6aef8b6c7e2cf14171e460a54756ac1ec6af4bd4",
      "old_mode": 33188,
      "old_path": "quiche/quic/moqt/moqt_framer.h",
      "new_id": "188715a8f02929d398b45a53d76bdb81248fb1cb",
      "new_mode": 33188,
      "new_path": "quiche/quic/moqt/moqt_framer.h"
    },
    {
      "type": "modify",
      "old_id": "a216af23b02c9ea3a71f99e0cf4d772750bc33e7",
      "old_mode": 33188,
      "old_path": "quiche/quic/moqt/moqt_framer_test.cc",
      "new_id": "0afeb2a233c149a64768aec828d0c555610eb89d",
      "new_mode": 33188,
      "new_path": "quiche/quic/moqt/moqt_framer_test.cc"
    },
    {
      "type": "modify",
      "old_id": "0eb9331da2eb05bf6d1bfa46566c7127278cc9b5",
      "old_mode": 33188,
      "old_path": "quiche/quic/moqt/moqt_integration_test.cc",
      "new_id": "a8a67e73d321d48105f97ab11c61147f0f325506",
      "new_mode": 33188,
      "new_path": "quiche/quic/moqt/moqt_integration_test.cc"
    },
    {
      "type": "modify",
      "old_id": "277687f0d17bdc29287345a2aad49b512dd09bc7",
      "old_mode": 33188,
      "old_path": "quiche/quic/moqt/moqt_messages.cc",
      "new_id": "7e3e61651311a2f2e1eabefae573c260e3b2821b",
      "new_mode": 33188,
      "new_path": "quiche/quic/moqt/moqt_messages.cc"
    },
    {
      "type": "modify",
      "old_id": "2ec9b05d3e031fb7dd6c0a6ccaae5f2eb1673143",
      "old_mode": 33188,
      "old_path": "quiche/quic/moqt/moqt_messages.h",
      "new_id": "c25231be6df048f949d05d65f502f68b2fd0cc2b",
      "new_mode": 33188,
      "new_path": "quiche/quic/moqt/moqt_messages.h"
    },
    {
      "type": "modify",
      "old_id": "3e95abd326f01e2fc5f8c7e63481f73457c3a715",
      "old_mode": 33188,
      "old_path": "quiche/quic/moqt/moqt_parser.cc",
      "new_id": "3e6b0e5243eebdcbe1c6cca1d115ef07fd9f00a1",
      "new_mode": 33188,
      "new_path": "quiche/quic/moqt/moqt_parser.cc"
    },
    {
      "type": "modify",
      "old_id": "bada6cd3c2443978d75d0d81790096adac290d07",
      "old_mode": 33188,
      "old_path": "quiche/quic/moqt/moqt_parser.h",
      "new_id": "b10c22fde271faf29bb91c2f074e0e7156dbb772",
      "new_mode": 33188,
      "new_path": "quiche/quic/moqt/moqt_parser.h"
    },
    {
      "type": "modify",
      "old_id": "cf6b2e3fe9707de59731d0017f02d594f5789501",
      "old_mode": 33188,
      "old_path": "quiche/quic/moqt/moqt_parser_test.cc",
      "new_id": "11f6f29d0bb007f701f14c6c3ce4273a708d03ff",
      "new_mode": 33188,
      "new_path": "quiche/quic/moqt/moqt_parser_test.cc"
    },
    {
      "type": "modify",
      "old_id": "356a3da5de1a561341ef719d3270e6af00eee970",
      "old_mode": 33188,
      "old_path": "quiche/quic/moqt/moqt_session.cc",
      "new_id": "2d9d0737fbd09f443cca907439093d8eaa886e90",
      "new_mode": 33188,
      "new_path": "quiche/quic/moqt/moqt_session.cc"
    },
    {
      "type": "modify",
      "old_id": "c2f2aaa27ee4e9bdc4bf4aae813113056a854de3",
      "old_mode": 33188,
      "old_path": "quiche/quic/moqt/moqt_session.h",
      "new_id": "8ccbdd64312b7456b9b4f65998f907d7fb4100e4",
      "new_mode": 33188,
      "new_path": "quiche/quic/moqt/moqt_session.h"
    },
    {
      "type": "modify",
      "old_id": "c3122cf1d5dab836f82b04d2a04b6f5c1559381a",
      "old_mode": 33188,
      "old_path": "quiche/quic/moqt/moqt_session_test.cc",
      "new_id": "9547cf4433e17d6dbadaa4363dd70840a90dd94b",
      "new_mode": 33188,
      "new_path": "quiche/quic/moqt/moqt_session_test.cc"
    },
    {
      "type": "modify",
      "old_id": "37636b76eb5bed49bb2c16d70021986bf76a4fda",
      "old_mode": 33188,
      "old_path": "quiche/quic/moqt/moqt_track.h",
      "new_id": "5f3a75c9abeebfeb955570372b8de0a39dab82b2",
      "new_mode": 33188,
      "new_path": "quiche/quic/moqt/moqt_track.h"
    },
    {
      "type": "modify",
      "old_id": "20b42ee72bcfcd3ebe4965d949071e785b7f446d",
      "old_mode": 33188,
      "old_path": "quiche/quic/moqt/test_tools/moqt_simulator_harness.cc",
      "new_id": "d181d0b39dea6a41a1e4b9589a9265a32aedd025",
      "new_mode": 33188,
      "new_path": "quiche/quic/moqt/test_tools/moqt_simulator_harness.cc"
    },
    {
      "type": "modify",
      "old_id": "748252c0e618f833b9955a6acd02075801b304c2",
      "old_mode": 33188,
      "old_path": "quiche/quic/moqt/test_tools/moqt_test_message.h",
      "new_id": "c6feb688a1648dafdda719af2f72ed635a9545ff",
      "new_mode": 33188,
      "new_path": "quiche/quic/moqt/test_tools/moqt_test_message.h"
    },
    {
      "type": "modify",
      "old_id": "8d33ca116e3ffc644311f85e8afce17e1fb00b8c",
      "old_mode": 33188,
      "old_path": "quiche/quic/moqt/tools/chat_client.cc",
      "new_id": "f5bc8df2665e555d6b8335100bbd8f29179595a1",
      "new_mode": 33188,
      "new_path": "quiche/quic/moqt/tools/chat_client.cc"
    },
    {
      "type": "modify",
      "old_id": "dad15330403de62bfdef8840f588f75517caacce",
      "old_mode": 33188,
      "old_path": "quiche/quic/moqt/tools/chat_client.h",
      "new_id": "0b3ffc7b97696aa3006cc57581edf7848b292278",
      "new_mode": 33188,
      "new_path": "quiche/quic/moqt/tools/chat_client.h"
    },
    {
      "type": "modify",
      "old_id": "60a155773487231d688aaea785d1eeb0e7c4349f",
      "old_mode": 33188,
      "old_path": "quiche/quic/moqt/tools/chat_server.h",
      "new_id": "a399af9c43e5f44e2c633f6e480f8e9d3f55eaf5",
      "new_mode": 33188,
      "new_path": "quiche/quic/moqt/tools/chat_server.h"
    },
    {
      "type": "modify",
      "old_id": "2464c73e2e14e8134df3c10fad2897fde9c4bb2e",
      "old_mode": 33188,
      "old_path": "quiche/quic/moqt/tools/moqt_client.cc",
      "new_id": "8457c9962f6dcb5e56168d17f01e51b41fb9eb7b",
      "new_mode": 33188,
      "new_path": "quiche/quic/moqt/tools/moqt_client.cc"
    },
    {
      "type": "modify",
      "old_id": "01d010dcbdd350c7b328faca81d6986eda1b9efd",
      "old_mode": 33188,
      "old_path": "quiche/quic/moqt/tools/moqt_ingestion_server_bin.cc",
      "new_id": "a66eb8db67c7decb30b44d5edc2bdb439ab50524",
      "new_mode": 33188,
      "new_path": "quiche/quic/moqt/tools/moqt_ingestion_server_bin.cc"
    },
    {
      "type": "modify",
      "old_id": "a5475a3ed4d8913f47cd31713f97c2a8dd58338d",
      "old_mode": 33188,
      "old_path": "quiche/quic/moqt/tools/moqt_mock_visitor.h",
      "new_id": "1e4aebf183e3e5c3c23ab68dae4509153ca52fb2",
      "new_mode": 33188,
      "new_path": "quiche/quic/moqt/tools/moqt_mock_visitor.h"
    },
    {
      "type": "modify",
      "old_id": "ac1748a5e2d2bb07e7af0a4b42bdb8e5fa3821bd",
      "old_mode": 33188,
      "old_path": "quiche/quic/moqt/tools/moqt_server.cc",
      "new_id": "32b70ed14b76ccd3c11d8198cff7ee1a1a391da4",
      "new_mode": 33188,
      "new_path": "quiche/quic/moqt/tools/moqt_server.cc"
    },
    {
      "type": "modify",
      "old_id": "70c64b5b998df43613a138a88755113ded45ba24",
      "old_mode": 33188,
      "old_path": "quiche/quic/moqt/tools/moqt_simulator_bin.cc",
      "new_id": "b3369cb2e20313073bcf0461cf6497b5b428c014",
      "new_mode": 33188,
      "new_path": "quiche/quic/moqt/tools/moqt_simulator_bin.cc"
    }
  ]
}
