Show screenshares as fullscreen - #5402
Merged
Merged
Conversation
mahibi
force-pushed
the
noid/simplifyCallArchitcture
branch
2 times, most recently
from
October 17, 2025 13:34
02d5796 to
b3e4179
Compare
mahibi
force-pushed
the
noid/simplifyCallArchitcture
branch
2 times, most recently
from
October 27, 2025 14:22
540b336 to
17424b4
Compare
mahibi
force-pushed
the
noid/simplifyCallArchitcture
branch
4 times, most recently
from
November 4, 2025 13:43
852e38d to
6bb9146
Compare
mahibi
force-pushed
the
noid/simplifyCallArchitcture
branch
2 times, most recently
from
November 7, 2025 11:09
9e811b9 to
bb39632
Compare
mahibi
force-pushed
the
noid/simplifyCallArchitcture
branch
2 times, most recently
from
November 12, 2025 15:26
83679e8 to
d8f7940
Compare
This was referenced Nov 13, 2025
mahibi
force-pushed
the
noid/simplifyCallArchitcture
branch
3 times, most recently
from
November 18, 2025 12:34
c10bda6 to
6c7f054
Compare
mahibi
marked this pull request as ready for review
November 18, 2025 12:44
Collaborator
Author
|
The test |
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
…rwrite if it was not offered because it's a voiceOnly call) Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
add log in getParticipant if not found Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
keep to use hardware encoder/decoder for other streams.
with hardware encoder/decoder, the stream might freeze for high res screenshares.
Crash log snippet:
2025-11-07 10:37:44.750 9405-11072 MediaCodec com.nextcloud.talk2 I (0xb4000070580ed870) configure surface(0xb4000071f852e4f0) crypto(0x0) flags(0)
2025-11-07 10:37:44.750 9405-11072 MediaCodec com.nextcloud.talk2 D (0xb4000070580ed870) configure format: AMessage(what = 0x00000000) = {
string mime = "video/avc"
int32_t width = 4096
int32_t height = 2304
}
2025-11-07 10:37:44.750 9405-11072 CCodecConfig com.nextcloud.talk2 D no recognized params in: Dict {
string vendor.dolby.filter_mimeType.value = "video/avc"
}
2025-11-07 10:37:44.750 9405-11072 MediaCodec com.nextcloud.talk2 D pass vendor.dolby.filter_mimeType.value: video/avc
2025-11-07 10:37:44.751 9405-11860 SurfaceUtils com.nextcloud.talk2 D connecting to surface 0xb4000071f852e500, reason connectToSurface
2025-11-07 10:37:44.751 9405-11860 MediaCodec com.nextcloud.talk2 I [c2.qti.avc.decoder] setting surface generation to 9630833
2025-11-07 10:37:44.751 9405-11860 SurfaceUtils com.nextcloud.talk2 D disconnecting from surface 0xb4000071f852e500, reason connectToSurface(reconnect)
2025-11-07 10:37:44.751 9405-11860 Surface com.nextcloud.talk2 D Surface::disconnect
2025-11-07 10:37:44.751 9405-11860 BufferQueueProducer com.nextcloud.talk2 D [SurfaceTexture-1-9405-112](id:24bd00000080,api:3,p:9405,c:9405) disconnect: api 3
2025-11-07 10:37:44.751 9405-11860 SurfaceUtils com.nextcloud.talk2 D connecting to surface 0xb4000071f852e4f0, reason connectToSurface(reconnect-with-listener)
2025-11-07 10:37:44.751 9405-11861 CCodec com.nextcloud.talk2 D [c2.qti.avc.decoder] buffers are bound to CCodec for this session
2025-11-07 10:37:44.751 9405-11861 CCodecConfig com.nextcloud.talk2 D no c2 equivalents for native-window
2025-11-07 10:37:44.752 9405-11861 CCodecConfig com.nextcloud.talk2 D no c2 equivalents for native-window-generation
2025-11-07 10:37:44.752 9405-11861 CCodecConfig com.nextcloud.talk2 D no c2 equivalents for flags
2025-11-07 10:37:44.753 9405-11861 CCodecConfig com.nextcloud.talk2 D c2 config diff is c2::u32 raw.size.height = 2304
c2::u32 raw.size.width = 4096
2025-11-07 10:37:44.754 9405-11861 Codec2Client com.nextcloud.talk2 W query -- param skipped: index = 1107298332.
2025-11-07 10:37:44.754 9405-11861 CCodec com.nextcloud.talk2 D encoding statistics level = 0
2025-11-07 10:37:44.754 9405-11861 CCodec com.nextcloud.talk2 D setup formats input: AMessage(what = 0x00000000) = {
int32_t feature-secure-playback = 0
int32_t frame-rate = 30
int32_t height = 2304
int32_t max-input-size = 13271040
string mime = "video/avc"
int32_t priority = 1
int32_t profile = 8
int32_t width = 4096
Rect crop(0, 0, 4095, 2303)
}
2025-11-07 10:37:44.754 9405-11861 CCodec com.nextcloud.talk2 D setup formats output: AMessage(what = 0x00000000) = {
int32_t android._color-format = 0
int32_t android._video-scaling = 1
int32_t android._dataspace = 281411584
int32_t color-standard = 6
int32_t color-range = 2
int32_t color-transfer = 3
int32_t sar-height = 1
int32_t rotation-degrees = 0
Buffer hdr-static-info = {
00000000: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00000010: 00 00 00 00 00 00 00 00 00 .........
}
int32_t sar-width = 1
Rect crop(0, 0, 4095, 2303)
int32_t width = 4096
int32_t feature-secure-playback = 0
int32_t frame-rate = 30
int32_t height = 2304
int32_t max-height = 2160
int32_t max-width = 4096
string mime = "video/raw"
int32_t priority = 1
int32_t color-format = 2130708361
}
2025-11-07 10:37:44.754 9405-11861 CCodecConfig com.nextcloud.talk2 I query failed after returning 17 values (BAD_INDEX)
2025-11-07 10:37:44.755 9405-11861 nextcloud.talk2 com.nextcloud.talk2 E Failed to query component interface for required system resources: 6
2025-11-07 10:37:44.755 9405-11072 MediaCodec com.nextcloud.talk2 I (0xb4000070580ed870) start
2025-11-07 10:37:44.759 9405-11860 MediaCodec com.nextcloud.talk2 E Codec reported err 0xfffffff4/NO_MEMORY, actionCode 0, while in state 5/STARTING
2025-11-07 10:37:44.759 9405-11860 SurfaceUtils com.nextcloud.talk2 D disconnecting from surface 0xb4000071f852e500, reason disconnectFromSurface
2025-11-07 10:37:44.759 9405-11860 Surface com.nextcloud.talk2 D Surface::disconnect
2025-11-07 10:37:44.759 9405-11860 BufferQueueProducer com.nextcloud.talk2 D [SurfaceTexture-1-9405-112](id:24bd00000080,api:3,p:9405,c:9405) disconnect: api 3
2025-11-07 10:37:44.775 9405-11072 org.webrtc.Logging com.nextcloud.talk2 E AndroidVideoDecoder: initDecode failed
2025-11-07 10:37:44.775 9405-11072 org.webrtc.Logging com.nextcloud.talk2 E AndroidVideoDecoder: android.media.MediaCodec$CodecException:
2025-11-07 10:37:44.775 9405-11072 org.webrtc.Logging com.nextcloud.talk2 E AndroidVideoDecoder: android.media.MediaCodec$CodecException: (Ask Gemini)
at android.media.MediaCodec.native_start(Native Method)
at android.media.MediaCodec.start(MediaCodec.java:2798)
at org.webrtc.MediaCodecWrapperFactoryImpl$MediaCodecWrapperImpl.start(MediaCodecWrapperFactoryImpl.java:42)
at org.webrtc.AndroidVideoDecoder.initDecodeInternal(AndroidVideoDecoder.java:182)
at org.webrtc.AndroidVideoDecoder.initDecode(AndroidVideoDecoder.java:146)
2025-11-07 10:37:44.775 9405-11072 org.webrtc.Logging com.nextcloud.talk2 I AndroidVideoDecoder: release
2025-11-07 10:37:44.775 9405-11072 org.webrtc.Logging com.nextcloud.talk2 I AndroidVideoDecoder: release: Decoder is not running.
2025-11-07 10:37:44.775 9405-11072 org.webrtc.Logging com.nextcloud.talk2 I SurfaceTextureHelper: stopListening()
2025-11-07 10:37:44.775 9405-11072 org.webrtc.Logging com.nextcloud.talk2 I SurfaceTextureHelper: dispose()
2025-11-07 10:37:44.778 9405-11864 org.webrtc.Logging com.nextcloud.talk2 I EglBase14Impl: Using OpenGL ES version 2
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
to examine why loading spinners keep showing for huge calls with many participants Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
mahibi
force-pushed
the
noid/simplifyCallArchitcture
branch
from
November 27, 2025 10:31
14097bf to
328f2a9
Compare
This happens e.g. when they don't have permissions to send audio and video. The fix is to set isConnected = true in the ParticipantUiState creation. At first it felt like setting isConnected to true is a hack, but it should be okay as it's immediately changed by the peerConnection handling for the other cases. Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
for small tiles with long participant names there is not enough space at the bottom.. revert 516b53f Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
This needs to be investigated but the PR needs to be merged to move forward. Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
mahibi
force-pushed
the
noid/simplifyCallArchitcture
branch
from
November 27, 2025 13:33
328f2a9 to
ee79d67
Compare
Contributor
|
APK file: https://www.kaminsky.me/nc-dev/android-artifacts/5402.apk |
Contributor
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
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.

This PR will introduce to show screenshares as fullscreen
This PR will also:
Followup improvements should be:
🖼️ Video
ScreenshareFullscreenHandling.mp4
🚧 TODO
testStateSentWithExponentialBackoffWhenAnotherParticipantAdded🏁 Checklist
/backport to stable-xx.x