Repository navigation
Conversation
There was a problem hiding this comment.
💡 Harness Review
The change unifies screenshots and recordings in the live capture workflow, but the recording lifecycle and shared file operations need corrections.
Renaming a recording changes its extension to .png, so the capture preview can no longer play it. The newly listed recordings use RenameScreenshot, which constructs the destination with GetImageExtension() rather than preserving the source extension. SyncPreview then sends the renamed MP4 bytes to Texture2D.LoadImage because IsVideo returns false. Construct the destination with Path.GetExtension(path). Use that extension in the collision message.
Reviewed commit 01c3eef
🤖 Helpful? 👍/👎
A screenrecord capture with a variable frame rate and a single keyframe, which AndroidLogcatVideoPlayerTests play, step and seek through. Marked binary in .gitattributes, which otherwise normalizes every file as text. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
/review |
|
/review |
There was a problem hiding this comment.
💡 Harness Review
The change integrates live-stream recording and video previews into the capture list, but encoder failures can leave the interface displaying an active recording that is no longer producing frames.
Reviewed commit 1090ca4
🤖 Helpful? 👍/👎
|
/review |
There was a problem hiding this comment.
💡 Harness Review
The change replaces device-side video capture with live-stream recording and integrates playback into the capture list. I examined recording lifecycle, frame timing, preview controls, file operations, and reload restoration, and found no new actionable issues beyond those previously reported.
Reviewed commit e2cef57
🤖 Helpful? 👍/👎
|
/review |
| if (last != null && last.time >= time) | ||
| return last; |
There was a problem hiding this comment.
When a rotated frame is decoded after a later touch is logged, playback crops the rotated frame using the previous content rectangle. The recorder’s update budget allows queued frames to remain while live-view input logs touches. NoteTouch timestamps changes using NowUs, while Decode timestamps metadata using the frame’s recording slot. ChangeAt returns the latest entry for any earlier timestamp, so NoteContent can move a queued frame’s crop change to the later touch time. Display-size changes are delayed similarly. Insert changes in timestamp order. Merge entries only when their timestamps match.
🤖 Helpful? 👍/👎
|
/review |
There was a problem hiding this comment.
💡 Harness Review
The change replaces device-side recording with live-stream encoding and adds playback controls and selection restoration. I examined recording timing, preview behavior, capture operations, and lifecycle handling, and found no new issues beyond those previously reported.
Reviewed commit af3a26e
🤖 Helpful? 👍/👎
Purpose of PR
Type of change: Improvement to Video Capture
https://jira.unity3d.com/browse/PLAT-23512
Screen recordings in the Screen Capture window are now made from the live stream, and can be played back in the window.
https://www.youtube.com/watch?v=exqVXgTFjNU&feature=youtu.be
Highlights
UnityEditor.Media.MediaEncoder, replacingadb screenrecord.dumpsys display..json, asframeChangesover time:AndroidLogcat.*) for the recording and live stream hot paths.Halo effect
Screen Capture window: live view, capture list, screenshots.
adb screenrecordis no longer used. Linux has no H.264 encoder or player, so recording and playback are unavailable there, and the video tests are skipped.Testing status
AndroidLogcatVideoPlayerTests. Test videos are generated at test time withMediaEncoder. They cover opening, play/pause, stepping, seeking while paused and while playing, resuming, single-frame videos, and rename/delete of the previewed recording.AndroidLogcatStreamRecorderTests: frame changes of frames still queued keep their time after a later touch.CanRecordTheLiveStream,RecordingNeedsTheLiveStream).🤖 Generated with Claude Code