Skip to content
This repository was archived by the owner on Feb 10, 2026. It is now read-only.

FCE-2189: Fix track updates in PiP on iOS - #508

Merged
anna1901 merged 2 commits into
mainfrom
FCE-2189/fix-track-updates-ios
Oct 29, 2025
Merged

FCE-2189: Fix track updates in PiP on iOS#508
anna1901 merged 2 commits into
mainfrom
FCE-2189/fix-track-updates-ios

Conversation

@anna1901

@anna1901 anna1901 commented Oct 29, 2025

Copy link
Copy Markdown
Contributor

Description

  • add handling detecting when peer turns off the camera
  • fix default displayName
  • small refactor and cleanup in PiP related code

There is a bug, where sometimes both primary and secondary video tracks are not displayed if pip is opened too soon, but it will be fixed in a separate task

Documentation impact

  • Documentation update required
  • Documentation updated in another PR
  • No documentation update required

Types of changes

  • Bug fix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to
    not work as expected)

@linear

linear Bot commented Oct 29, 2025

Copy link
Copy Markdown

displayName: displayName,
hasVideoTrack: true
)
return trackToTrackInfo(videoTrack: videoTrack, endpoint: endpoint)

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

suggestion: It might make it more swifty if this was an extension on Endpoint. Tracks are already inside. endpoint.trackInfo would look cleaner.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

But I would still have to pass video track, because the logic for selecting it is inside the manager, or am I wrong?

@@ -127,22 +115,30 @@ class PictureInPictureManager {
// Fallback: return first available remote peer with video track
for endpoint in remoteEndpoints {
if let videoTrack = endpoint.tracks.values.first(where: { $0 is RemoteVideoTrack }) as? RemoteVideoTrack {

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

issue: I only noticed this right now (I know I wrote the code). But I think if the user doesn't have a video track but is sharing his screen, we won't show anything. Does it make sense to create a new task out of this issue?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Yes, that's true, it does

@anna1901
anna1901 merged commit 8389ba4 into main Oct 29, 2025
4 checks passed
@anna1901
anna1901 deleted the FCE-2189/fix-track-updates-ios branch October 29, 2025 16:36
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants