)]}'
{
  "commit": "1aacbbfc7a576e2d365de6f974e93fe311709ed4",
  "tree": "34fa2823385fd5e48ea4b862a69d61037861db06",
  "parents": [
    "b00f47926a3c5c0e1ee6358b0f1a61742deee8ca"
  ],
  "author": {
    "name": "kwasniow",
    "email": "kwasniow@cisco.com",
    "time": "Tue Mar 17 09:28:09 2026"
  },
  "committer": {
    "name": "WebRTC LUCI CQ",
    "email": "webrtc-scoped@luci-project-accounts.iam.gserviceaccount.com",
    "time": "Sun Mar 22 08:34:08 2026"
  },
  "message": "Sframe API support for sender and receiver\n\nThis CL introduces the public API surface for Sframe (Secure Frame)\nencryption and decryption on RTP senders and receivers. The actual\npipeline wiring is deferred to a follow-up CL; all factory methods\ncurrently return nullptr.\n\nNew API headers (api/sframe/):\n\n- sframe_types.h: shared enums SframeMode (per-frame / per-packet)\n  and SframeCipherSuite (AES-CTR-HMAC variants, AES-GCM-128/256).\n- sframe_encrypter_interface.h: SframeEncrypterInit config struct\n  and SframeEncrypterInterface for sender-side key management\n  (SetEncryptionKey).\n- sframe_decrypter_interface.h: SframeDecrypterInit config struct\n  and SframeDecrypterInterface for receiver-side key management\n  (AddDecryptionKey, RemoveDecryptionKey).\n\nInterface changes:\n\n- RtpSenderInterface gains CreateSframeEncrypter(SframeEncrypterInit)\n- RtpReceiverInterface gains CreateSframeDecrypter(SframeDecrypterInit)\n- Both proxy files updated with corresponding PROXY_METHOD entries.\n\nNew RtpReceiverBase class introduced inheriting RtpReceiverInternal,\nproviding CreateSframeDecrypter. This mirrors the existing RtpSenderBase\npattern. AudioRtpReceiver and VideoRtpReceiver now inherit\nRtpReceiverBase instead of RtpReceiverInternal, eliminating future code\nduplication.\n\nBug: webrtc:479862368\nChange-Id: I2d62b61f2d10325d8dca9f15f08a0eb0509eed01\nReviewed-on: https://webrtc-review.googlesource.com/c/src/+/452260\nReviewed-by: Harald Alvestrand \u003chta@webrtc.org\u003e\nReviewed-by: Philip Eliasson \u003cphilipel@webrtc.org\u003e\nCommit-Queue: Harald Alvestrand \u003chta@webrtc.org\u003e\nCr-Commit-Position: refs/heads/main@{#47224}\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "d7587e6fef14d38cd22d891b86e1957e61560731",
      "old_mode": 33188,
      "old_path": "api/BUILD.gn",
      "new_id": "d7f763f96c6972bb97bda732b4b99fda0267a7b0",
      "new_mode": 33188,
      "new_path": "api/BUILD.gn"
    },
    {
      "type": "modify",
      "old_id": "9ac347b45f27da4be0201737ee72140a84a68299",
      "old_mode": 33188,
      "old_path": "api/rtp_receiver_interface.h",
      "new_id": "7dae849c48e6a95af4b9f8b16d05264222f12a9d",
      "new_mode": 33188,
      "new_path": "api/rtp_receiver_interface.h"
    },
    {
      "type": "modify",
      "old_id": "be839285bfd5d9a0ff2e1ff627b2675802a7bacc",
      "old_mode": 33188,
      "old_path": "api/rtp_sender_interface.h",
      "new_id": "5ea6efee1829c84598b7449aa85713f2383967db",
      "new_mode": 33188,
      "new_path": "api/rtp_sender_interface.h"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "7ad85bd1ed3a5ed8c11a57282ac40879ffd97e71",
      "new_mode": 33188,
      "new_path": "api/sframe/sframe_decrypter_interface.h"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "60babc338958bbb1808e72e951dc1a7331db0ca5",
      "new_mode": 33188,
      "new_path": "api/sframe/sframe_encrypter_interface.h"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "2414bf3d9fead7be95694eca0c0de45172f6d25f",
      "new_mode": 33188,
      "new_path": "api/sframe/sframe_types.h"
    },
    {
      "type": "modify",
      "old_id": "88287d5ea9187559a167a51b9b3918666058cfb3",
      "old_mode": 33188,
      "old_path": "pc/BUILD.gn",
      "new_id": "8a576969ae619af877555d742203a908f1261663",
      "new_mode": 33188,
      "new_path": "pc/BUILD.gn"
    },
    {
      "type": "modify",
      "old_id": "b90e70a863335fb6fd80f5e98e75fe86962c88d2",
      "old_mode": 33188,
      "old_path": "pc/audio_rtp_receiver.cc",
      "new_id": "ab3fbada46822ffc9255d00de0380a4c2677b690",
      "new_mode": 33188,
      "new_path": "pc/audio_rtp_receiver.cc"
    },
    {
      "type": "modify",
      "old_id": "a8b07a0186aa9465c807c219d8546882b8526971",
      "old_mode": 33188,
      "old_path": "pc/audio_rtp_receiver.h",
      "new_id": "f89ab65976405b79c2a569b397b7f34664c79f26",
      "new_mode": 33188,
      "new_path": "pc/audio_rtp_receiver.h"
    },
    {
      "type": "modify",
      "old_id": "31a20df17ab557ddff2097dd842f8b0095765c53",
      "old_mode": 33188,
      "old_path": "pc/rtp_receiver.cc",
      "new_id": "33dddb872dd3afa00e2d80f15779d6c5b2d0f6a1",
      "new_mode": 33188,
      "new_path": "pc/rtp_receiver.cc"
    },
    {
      "type": "modify",
      "old_id": "45399b684dbf7fc399eb0e736517c09e4f50d982",
      "old_mode": 33188,
      "old_path": "pc/rtp_receiver.h",
      "new_id": "6a2b21dc3321b18a730c3f7994d58d0f5f90c07a",
      "new_mode": 33188,
      "new_path": "pc/rtp_receiver.h"
    },
    {
      "type": "modify",
      "old_id": "223b30703054b58c286fae69d0859238cea2e101",
      "old_mode": 33188,
      "old_path": "pc/rtp_receiver_proxy.h",
      "new_id": "2022cbf0798d1f0c538ff03a3487295437aa1c95",
      "new_mode": 33188,
      "new_path": "pc/rtp_receiver_proxy.h"
    },
    {
      "type": "modify",
      "old_id": "3a4e6b778fd7159fec680a45377c561a19bac53a",
      "old_mode": 33188,
      "old_path": "pc/rtp_sender.cc",
      "new_id": "7af007cfa89e4c0ae80ebda5a4f7777d15d02024",
      "new_mode": 33188,
      "new_path": "pc/rtp_sender.cc"
    },
    {
      "type": "modify",
      "old_id": "848db55281e5a0adef0de591b939bb635eb47eca",
      "old_mode": 33188,
      "old_path": "pc/rtp_sender.h",
      "new_id": "eeec9ae1c80f6a6b00e9b62d13f8f0d186366f14",
      "new_mode": 33188,
      "new_path": "pc/rtp_sender.h"
    },
    {
      "type": "modify",
      "old_id": "8e609c5e43f448cdce0b294fa97ae2b2580ae456",
      "old_mode": 33188,
      "old_path": "pc/rtp_sender_proxy.h",
      "new_id": "74d28b55ed3984b101a9d08e85a7e9b51f196a81",
      "new_mode": 33188,
      "new_path": "pc/rtp_sender_proxy.h"
    },
    {
      "type": "modify",
      "old_id": "b296c818a5d66a7b35382d155b0fd60fc686c998",
      "old_mode": 33188,
      "old_path": "pc/video_rtp_receiver.cc",
      "new_id": "250caa90d71b0d9c851fa2a104b432cdc92701ab",
      "new_mode": 33188,
      "new_path": "pc/video_rtp_receiver.cc"
    },
    {
      "type": "modify",
      "old_id": "ec0d8bb39b03802395bba9e09e6aad37916cb44d",
      "old_mode": 33188,
      "old_path": "pc/video_rtp_receiver.h",
      "new_id": "552539ded806de700e60f1c43d0da510754f66d2",
      "new_mode": 33188,
      "new_path": "pc/video_rtp_receiver.h"
    }
  ]
}
