-
Notifications
You must be signed in to change notification settings - Fork 46
feat: PiP support for iOS #712
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Merged
Changes from all commits
Commits
Show all changes
10 commits
Select commit
Hold shift + click to select a range
5c5cbbb
PiP support for iOS
Brazol 025d5f2
fix
Brazol 13ec6d6
Merge branch 'main' into feat/PiP-support-for-iOS
Brazol 695a835
cleanup
Brazol c6b43df
Merge branch 'main' into feat/PiP-support-for-iOS
Brazol e971f50
webrtc bump
Brazol 6aa701f
screen sharing plugin added (#717)
Brazol f07e5f8
Merge branch 'main' into feat/PiP-support-for-iOS
Brazol c888cb3
PR tweaks
Brazol d97337e
Merge branch 'main' into feat/PiP-support-for-iOS
Brazol File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -1,4 +1,4 @@ | ||
| import ReplayKit | ||
| import stream_video_flutter | ||
| import stream_video_screen_sharing | ||
|
|
||
| class SampleHandler: BroadcastSampleHandler {} |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -1,5 +1,5 @@ | ||
| // This file is generated. Do not manually edit. | ||
| /// Current package version. | ||
| const String streamVideoVersion = '0.4.4'; | ||
| const String androidWebRTCVersion = 'libwebrtc-m114.5735.10'; | ||
| const String iosWebRTCVersion = 'libwebrtc-m114.5735.10'; | ||
| const String androidWebRTCVersion = 'libwebrtc-m125.6422.03'; | ||
| const String iosWebRTCVersion = 'libwebrtc-m125.6422.04'; |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
52 changes: 52 additions & 0 deletions
52
packages/stream_video_flutter/ios/Classes/PictureInPicture/SampleBufferVideoCallView.swift
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,52 @@ | ||
| // | ||
| // Copyright © 2024 Stream.io Inc. All rights reserved. | ||
| // | ||
|
|
||
| import AVKit | ||
| import UIKit | ||
|
|
||
| final class SampleBufferVideoCallView: UIView { | ||
| override class var layerClass: AnyClass { | ||
| AVSampleBufferDisplayLayer.self | ||
| } | ||
|
|
||
| private var sampleBufferDisplayLayer: AVSampleBufferDisplayLayer { | ||
| layer as! AVSampleBufferDisplayLayer | ||
| } | ||
|
|
||
| var renderingComponent: SampleBufferVideoRendering { | ||
| #if swift(>=5.9) | ||
| if #available(iOS 17.0, *) { | ||
| return sampleBufferDisplayLayer.sampleBufferRenderer | ||
| } else { | ||
| return sampleBufferDisplayLayer | ||
| } | ||
| #else | ||
| return sampleBufferDisplayLayer | ||
| #endif | ||
| } | ||
|
|
||
| var videoGravity: AVLayerVideoGravity { | ||
| get { sampleBufferDisplayLayer.videoGravity } | ||
| set { sampleBufferDisplayLayer.videoGravity = newValue } | ||
| } | ||
|
|
||
| var preventsDisplaySleepDuringVideoPlayback: Bool { | ||
| get { sampleBufferDisplayLayer.preventsDisplaySleepDuringVideoPlayback } | ||
| set { sampleBufferDisplayLayer.preventsDisplaySleepDuringVideoPlayback = newValue } | ||
| } | ||
| } | ||
|
|
||
| protocol SampleBufferVideoRendering { | ||
| @available(iOS 14.0, *) | ||
| var requiresFlushToResumeDecoding: Bool { get } | ||
| var isReadyForMoreMediaData: Bool { get } | ||
| func flush() | ||
| func enqueue(_ sampleBuffer: CMSampleBuffer) | ||
| } | ||
|
|
||
| extension AVSampleBufferDisplayLayer: SampleBufferVideoRendering {} | ||
| #if swift(>=5.9) | ||
| @available(iOS 17.0, *) | ||
| extension AVSampleBufferVideoRenderer: SampleBufferVideoRendering {} | ||
| #endif |
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.