Proto commits in GetStream/stream-video-android

These 60 commits are when the Protocol Buffers files have changed:

Commit:29acfef
Author:Pratim Mallick
Committer:GitHub

Honor SFU-provided degradation preference for adaptive video publishing (#1699) * feat(core): pick up SFU DegradationPreference and add WebRTC mapper Regenerate SFU protos to pick up the new DegradationPreference enum and its degradation_preference fields on PublishOption and VideoSender (plus TrackInfo.self_sub_audio_video), and refresh the public API dump. Add toRtcDegradationPreference() converting the SFU enum to org.webrtc.RtpParameters.DegradationPreference, returning null for UNSPECIFIED so callers can keep the current value. Includes unit tests covering every enum variant. Co-authored-by: Cursor <cursoragent@cursor.com> * publisher changes for applying degradation preferences * Remove duplicate handling of ChangePublishQualityEvent from callState. This event directly gets handled by RtcSession handleEvent method * Added test for the two call sites where degradation Preference is getting set to test for the case where sfu sends the same degrdation preference which is already set in the transcevier sender param --------- Co-authored-by: Cursor <cursoragent@cursor.com>

The documentation is generated from this commit.

Commit:799baec
Author:Rahul Kumar Lohra
Committer:GitHub

Improve pinned participant state on rejoin with new session (#1683) * update sfu models * feat: add pins param in ParticipantJoinedEvent * feat: add logic with logs * feat: remove logs * fix: correct the jetpack compose logic to render pinned icon * fix: remove logs * chore: revert changes * chore: revert changes * chore: remove finally * fix: fix unit tests * feat: update codebase with develop * chore: align with JS logic * fix: refactor pins ownership, move them to PinManager * fix: add unit-tests * fix: remove duplicate code * chore: add logic to updateServer Pins from list of participants with pin information * chore: refactor code * chore: Replace PinUpdateAtTime with PinEntry --------- Co-authored-by: Aleksandar Apostolov <apostolov.alexandar@gmail.com>

Commit:97f19f4
Author:rahullohra
Committer:rahullohra

update sfu models

Commit:39e92e1
Author:Pratim Mallick
Committer:GitHub

Add support for stereo playback (#1560) * Update to latest proto * Send stereo = true in Audio track's TrackInfo if hifi is enabled in dashboard * fix: microphone not getting enabled if we join with USAGE_MEDIA mode * Provide a way to set the audio usage from app to call.speaker - it can be either VOICE_COMMUNICATION or MEDIA * Provide a way on the debug option menu to switch between usage_media and usage_voice_communication * Expose the audioDeviceModule from peerConnectionFactory * Apply spotless * Upgraded to webrtc version that supports switching audio usage mid call * api dump * Dont send stereo = true in trackInfo while publishing. This will be done when adding stereo capture to recording feature * Added unit tests to test the audioUsage stateFlow of SpeakerManager * refactor(demo-app): simplify onToggleAudioUsage by removing suspend modifier * Fix: `setAudioUsage` of speakerManager does not work if called before any remote track has come in. Updated to webrtc which has the fix for this. --------- Co-authored-by: Aleksandar Apostolov <apostolov.alexandar@gmail.com>

Commit:383e41d
Author:pratimmallick

Update to latest proto

Commit:637f3ff
Author:rahullohra

chore: merge with develop and refactor

Commit:e8140b9
Author:Aleksandar Apostolov
Committer:GitHub

Add participant source to the ParticipantState and sort with it (#1523)

Commit:ca9ad26
Author:Aleksandar Apostolov
Committer:GitHub

Pause incoming video if network conditions are bad (#1479) * SDP offers should be processed serially * Fix wildcard * Add new SFU events * Pause videos when the network conditions are bad * ApiDump * Improve livestream player when working with the video "pause" * Spotless * Fix compile * Update audio usage in demo-app for livestreams * Update audio usage in demo-app for livestreams * Update example in demo-app * Spotless * Spotless * Do not stop channel

Commit:d766317
Author:Aleksandar Apostolov

Add new SFU events

Commit:3a2a7ed
Author:Aleksandar Apostolov

Reconnect improvements

Commit:d01b9d2
Author:Aleksandar Apostolov
Committer:GitHub

Allow for the SDK to collect RTC stats if configured (#1445) * RTC stats impl * spotless & apidump * Add the ability to delta PC stats * spotless * spotless * Min subscriber extract * Working subscriber extract * cleanup * moved tracks * move trackDimensions initial * move trackDimensions initial * moving subscriptions and delegating track override handler * renaming and encapsulation * fully decoupled subscriber * added viewport id * take viewport id into account * Update test and fix order of arguments * initial test * initial test * Spotless & api dump * api dump * Spotless * Fix test * PC stats * Fix subscriber mixup of video and screenshare track * Add RTC stats * Use key instead of hardcoded text * add create for both PRs * Add initial rtc stats delta * Add onTrack tracing * Spotless & Api dump * Spotless & Api dump * Mark as internal, rename variables to avoid confusion * move variable to top * rename variable and make method private * Send the events as Json * update tests with the tracers * update publisher tests with the tracers * Fix timestamps and delta rtcs stats * Fix timestamps and delta rtcs stats * Fix timestamps and delta rtcs stats * ontrack based on peer connection type * spotless * include reconnectionAttempt number in the tracer id * Add tests * Add tests * Add more tests * Update stream-video-android-core/src/main/kotlin/io/getstream/video/android/core/call/RtcSession.kt Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * Use the tracermanager in the SFU connection module * Add internal annotations and fix typo * ApiDump --------- Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

Commit:46a8060
Author:Aleksandar Apostolov

Add the ability to delta PC stats

Commit:d2fcdd1
Author:Aleksandar Apostolov
Committer:GitHub

[AND-18] Codec negotiation (#1261) * New publisher * map svc codec correctly * Set codec * Send correct layers * Spotless & Api dump * Correctly update, publish options, send all three layers correctly, respect `shouldRetry` when set publisher fails, send preferred options on reconnect or migrate * Spotless and apidump * Remove unnecessary tests * Make the layers functions internal * Api dump * Remove code * Correctly compute encodings and layers based on spatial layers, add test * Remove unused code in transceiver cache and add tests * Remove old dynascale test * Remove lscale test, add mini publisher test * Spotless & ApiDump and import cleanup * Additional cleanup * Update on layer calculation and tests * Add codec to track info. * Spotless & ApiDump * Remove transceiver when stream is unpublished * Log encodings * Spotless ApiDump * Spotless ApiDump * Do not calculate layers for audio tracks * Spotless * Update initial screenshare resolution * Use PCF from call * Send publish options Id with the track info * Api dump * Cache publisher events in case publisher is not created yet. * setTrack instead of add new transceiver when there is already publish option available for that kind of track * remove commented code * Update package name of video layers * Update package in test * Update publisher tests * Minimal SPC test * Spotless & Apidump * Add minimal SPC Factory tests * Fix wildcard imports * Spotless & ApiDump * Add SPC test for the init parameters * Add more tests for RTC session * Remove wildcard imports * Remove wildcard imports * Reformatting * Fix failing tests * Formatting * Add change quality test * Spotless & ApiDump * Correctly test empty encodings * Formatting

Commit:2fe09db
Author:Aleksandar Apostolov

Send publish options Id with the track info

Commit:65791ee
Author:Aleksandar Apostolov

Add codec to track info.

Commit:30b036a
Author:Aleksandar Apostolov

Update proto models

Commit:a3b4321
Author:Liviu Timar

Update protobuf definitions

Commit:1bb5618
Author:Aleksandar Apostolov
Committer:GitHub

[AND-157] Send thermal state of the device to the SFU (#1245) * Update SFU events * Update API * Send thermal state to the SFU

Commit:93064d7
Author:Liviu Timar
Committer:Liviu Timar

Add new proto defs

Commit:6c06ce4
Author:Aleksandar Apostolov
Committer:GitHub

Reconnect v2 (#1219) * Initial socket from chat implementation * Authenticate on connected in coordinator socket. * Spotless * Migrate `CoordinatorSocket` * Spotless and API dump * Fix an issue where StreamCallActivity would leave the call when going into background * Initial reconnect V2 implementation * API dump * Spotless * Correct JoinRequest * [WIP] Refactored Coordinator and SFU sockets * Update correct type for SfuSocketStateEvent * Update state in Connection module, package renaming * Resolve merge conflicts * Continue refactoring * Add connection common implementation * Keep refactoring the SFU socket * Merge conflicts * Update * Update * Update * Update * Update * Update * Update * Update * Update * Update * Update * Update * Update * Update * Update * Update * Update * Update * Update * Update * Update * Update * Update * Update * Update * Update * Update * Update * Spotless & ApiDump * Adapt for the new token provider * Update tests * Spotless apidump * Update * Sotless api dump * Update * Spotless * Move call health monitor into call * Spotless * Update * Revert "Update" This reverts commit fdd64d22c402864805f95f17dc7a84674089e885. * Revert "Spotless" This reverts commit e064aa9016c51e0a46738b54e97a654ab1ba94e2. * Revert "Move call health monitor into call" This reverts commit c0d260f4b43fc845ee41a75601848fe06aabb339. * Revert "Spotless" This reverts commit 0c445e32bcce3161c6eda0d350f040950617d6f8. * Revert "Update" This reverts commit 084bf883771a5e970414358d5183fa6d117d0397. * Revert "Sotless api dump" This reverts commit 0be905df37b03f1168104ff3968ad7108cf2cfb6. * Revert "Update" This reverts commit b73572cb663de58d65dfa3a8f0a0d66fb382d233. * Update * Spotless * Update * Update * Update * Update * Update * Update * Update * Add timeout to the scheduled jobs * Update tests * Update tests * Add missing dependencies * Add javadoc, make some methods internal, remove myself when rejoin to speedup participant list update * Add javadoc, make some methods internal, remove myself when rejoin to speedup participant list update * Add javadoc, make some methods internal, remove myself when rejoin to speedup participant list update * Rejoin if PC state is FAILED * Try fast reconnect instead. * Cancel previous job instead * Synchronize the job handling process

Commit:d0a54b4
Author:Liviu Timar
Committer:Liviu Timar

Add new proto defs for SFU events

Commit:a15ec4d
Author:Kanat Kiialbaev
Committer:GitHub

[PBE-3907] Update SDK to handle missed call notifications (#1105)

Commit:f76e503
Author:Liviu Timar
Committer:GitHub

Add call stats reporting (#1030)

Commit:0b6e6b2
Author:Daniel Novak
Committer:GitHub

Fast-Reconnect support (#822)

Commit:9c4b955
Author:Thierry Schellenbach

update to latest openapi

Commit:7f12227
Author:Thierry Schellenbach

update to latest openapi spec

Commit:0a19ecc
Author:Tommaso Barbugli

make sure old proto files are purged when regenerating

Commit:4096c9d
Author:Thierry Schellenbach

merge

Commit:d570305
Author:Thierry Schellenbach

wip

Commit:9620ad5
Author:TGazica

Merge remote-tracking branch 'origin/update/proto' into task/protocol-update # Conflicts: # stream-video-android-core/api/stream-video-android-core.api # stream-video-android-core/src/main/proto/video/sfu/event/events.pb.go # stream-video-android-core/src/main/proto/video/sfu/models/models.pb.go # stream-video-android-core/src/main/proto/video/sfu/models/models.proto # stream-video-android-core/src/main/proto/video/sfu/models/models_vtproto.pb.go

Commit:8d3c1f4
Author:TGazica

Update models and protos

Commit:47ea323
Author:skydoves

Remove unused files and update sfu

Commit:f84e239
Author:skydoves

Update proto

Commit:bc7bf1e
Author:filbabic

Module restructuring

Commit:1bb7ce0
Author:Filip Babic

Update proto, clean up audio levels, add connection quality state update and partial participant load

Commit:c81f7f9
Author:TGazica

Fix style referencing

Commit:4768052
Author:Filip Babic

Update proto to latest

Commit:29c2c9d
Author:Filip Babic

Proto, SFU & track fixes

Commit:ac2867b
Author:Filip Babic

More work on proto & SFU flow

Commit:b96fdd2
Author:Filip Babic

WIP SFU update to latest

Commit:4f083b0
Author:Filip Babic

Update proto to latest

Commit:b4b2885
Author:Filip Babic

Proto update, tons of API cleanup and improvements

Commit:1ad3bd2
Author:Filip Babic

Proto update to latest, added mute change events

Commit:d051e36
Author:kanat

[50] Fix race condition during join flow

Commit:ef127eb
Author:Filip Babic

WIP SFU update

Commit:0ddbc7e
Author:Filip Babic

Update proto & coord/sfu

Commit:abfd79a
Author:Filip Babic

WIP update proto & BE stuff, readme update

Commit:1ee3fa2
Author:Filip Babic

Update proto, imports, types and bits of logic, left TODOs for cleanup

Commit:6d53f1d
Author:Filip Babic

Add codec support for Join request, update to latest BE

Commit:cbed49a
Author:Filip Babic

WIP rendering on Android

Commit:c311f4b
Author:Filip Babic

WIP SFU implementation

Commit:eeab7db
Author:Filip Babic

Auth cleanup, new credentials, WS auth payload update

Commit:71f6aae
Author:Filip Babic

Api dump

Commit:9605a3e
Author:Filip Babic

Update to proto, code cleanup, new events flow implemented, wrapped LK

Commit:29ea3a0
Author:Filip Babic

Update BE definition, remove VideoParser

Commit:31be604
Author:Filip Babic

Add lifecycle and WS connection logic, more docs, updated proto

Commit:d404ca7
Author:filbabic

Add compose, some login setup

Commit:4637c7c
Author:Filip Babic

Added basic API communication, package rename/restructure

Commit:c19a41f
Author:Filip Babic

Renamed module, sorted out packages

Commit:b2ca60c
Author:Filip Babic

Initial setup for protobufs Kotlin