Skip to content
Merged
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
camel case & header cleanup
  • Loading branch information
vaind committed Feb 9, 2024
commit e9488b10816ea2bc18bfdb123383ffdfeedf4ea0
14 changes: 5 additions & 9 deletions text/0129-video-replay-envelope.md
Original file line number Diff line number Diff line change
Expand Up @@ -30,15 +30,11 @@ We need this to to capture replays on platforms where it's not possible/feasible
- From the SDK, we would send a new envelope with the following items: `Replay`, `ReplayVideo` and `ReplayRecording`.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@billyvg How would the player like to be notified that it should download video data? A type value on the replay? The video events in the RRWeb? Infer it from the replay's platform? Something else?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@cmanallen Thinking of using the rrweb video event

- The newly introduced item type, [`ReplayVideo`](https://github.com/getsentry/relay/blob/5fd3969e88d3eea1f2849e55b61678cac6b14e44/relay-server/src/envelope.rs#L115C5-L115C20) is used to transport the video data.
The envelope item would consist of a single header line (JSON), followed by a new line and the raw video data.
- The header should contain at least the following metadata:
- The header should contain at least the following metadata: needed to ingest the item.

```json
{
"segment-id": 4,
Copy link
Member

@romtsn romtsn Feb 8, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@cmanallen just to confirm: this segment_id and the ones in the Replay item and ReplayRecording's payload should be the same, correct? Shall we also document it here for transparency?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

They should be the same but if you sent a segment 2 video with a segment 3 rrweb event nothing would break. So long as the rrweb video event on segment 2 accurately reflects the segment 2 video. The events are not dependent on one another for processing. They are just associated to the same "segment_id" metadata.

"size": 3440,
"duration": 5000,
"encoding": "whatever",
"container": "whatever",
}
```

Expand All @@ -54,16 +50,16 @@ We need this to to capture replays on platforms where it's not possible/feasible
"data": {
"tag": "video",
"payload": {
"segment-id": 4,
"segmentId": 4,
"size": 3440,
"duration": 5000,
"encoding": "whatever",
"container": "whatever",
"height": 1920,
"width": 1080,
"frame-count": 50,
"frame-rate-type": "constant|variable",
"frame-rate": 10,
"frameCount": 50,
"frameRateType": "constant|variable",
"frameRate": 10,
}
}
}
Expand Down