Skip to content

Commit db894fa

Browse files
committed
expose RtpParameters.Encoding's minBitrateBps to VideoEncoding
1 parent f683209 commit db894fa

File tree

2 files changed

+33
-26
lines changed

2 files changed

+33
-26
lines changed

.changeset/fast-laws-teach.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
"client-sdk-android": minor
3+
---
4+
5+
Introduce VideoEncoding.minBitrate

livekit-android-sdk/src/main/java/io/livekit/android/room/track/LocalVideoTrackOptions.kt

Lines changed: 28 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,7 @@ constructor(
5454

5555
data class VideoEncoding(
5656
val maxBitrate: Int,
57+
val minBitrate: Int,
5758
val maxFps: Int,
5859
) {
5960
fun toRtpEncoding(
@@ -63,6 +64,7 @@ data class VideoEncoding(
6364
return RtpParameters.Encoding(rid, true, scaleDownBy).apply {
6465
numTemporalLayers = 1
6566
maxBitrateBps = maxBitrate
67+
minBitrateBps = minBitrate
6668
maxFramerate = maxFps
6769

6870
// only set on the full track
@@ -109,39 +111,39 @@ enum class VideoPreset169(
109111
) : VideoPreset {
110112
H90(
111113
VideoCaptureParameter(160, 90, 15),
112-
VideoEncoding(90_000, 15),
114+
VideoEncoding(90_000, 0, 15),
113115
),
114116
H180(
115117
VideoCaptureParameter(320, 180, 15),
116-
VideoEncoding(160_000, 15),
118+
VideoEncoding(160_000, 0, 15),
117119
),
118120
H216(
119121
VideoCaptureParameter(384, 216, 15),
120-
VideoEncoding(180_000, 15),
122+
VideoEncoding(180_000, 0, 15),
121123
),
122124
H360(
123125
VideoCaptureParameter(640, 360, 30),
124-
VideoEncoding(450_000, 30),
126+
VideoEncoding(450_000, 0, 30),
125127
),
126128
H540(
127129
VideoCaptureParameter(960, 540, 30),
128-
VideoEncoding(800_000, 30),
130+
VideoEncoding(800_000, 0, 30),
129131
),
130132
H720(
131133
VideoCaptureParameter(1280, 720, 30),
132-
VideoEncoding(1_700_000, 30),
134+
VideoEncoding(1_700_000, 0, 30),
133135
),
134136
H1080(
135137
VideoCaptureParameter(1920, 1080, 30),
136-
VideoEncoding(3_000_000, 30),
138+
VideoEncoding(3_000_000, 0, 30),
137139
),
138140
H1440(
139141
VideoCaptureParameter(2560, 1440, 30),
140-
VideoEncoding(5_000_000, 30),
142+
VideoEncoding(5_000_000, 0, 30),
141143
),
142144
H2160(
143145
VideoCaptureParameter(3840, 2160, 30),
144-
VideoEncoding(8_000_000, 30),
146+
VideoEncoding(8_000_000, 0, 30),
145147
),
146148
}
147149

@@ -154,39 +156,39 @@ enum class VideoPreset43(
154156
) : VideoPreset {
155157
H120(
156158
VideoCaptureParameter(160, 120, 15),
157-
VideoEncoding(70_000, 15),
159+
VideoEncoding(70_000, 0, 15),
158160
),
159161
H180(
160162
VideoCaptureParameter(240, 180, 15),
161-
VideoEncoding(125_000, 15),
163+
VideoEncoding(125_000, 0, 15),
162164
),
163165
H240(
164166
VideoCaptureParameter(320, 240, 15),
165-
VideoEncoding(140_000, 15),
167+
VideoEncoding(140_000, 0, 15),
166168
),
167169
H360(
168170
VideoCaptureParameter(480, 360, 30),
169-
VideoEncoding(330_000, 30),
171+
VideoEncoding(330_000, 0, 30),
170172
),
171173
H480(
172174
VideoCaptureParameter(640, 480, 30),
173-
VideoEncoding(500_000, 30),
175+
VideoEncoding(500_000, 0, 30),
174176
),
175177
H540(
176178
VideoCaptureParameter(720, 540, 30),
177-
VideoEncoding(600_000, 30),
179+
VideoEncoding(600_000, 0, 30),
178180
),
179181
H720(
180182
VideoCaptureParameter(960, 720, 30),
181-
VideoEncoding(1_300_000, 30),
183+
VideoEncoding(1_300_000, 0, 30),
182184
),
183185
H1080(
184186
VideoCaptureParameter(1440, 1080, 30),
185-
VideoEncoding(2_300_000, 30),
187+
VideoEncoding(2_300_000, 0, 30),
186188
),
187189
H1440(
188190
VideoCaptureParameter(1920, 1440, 30),
189-
VideoEncoding(3_800_000, 30),
191+
VideoEncoding(3_800_000, 0, 30),
190192
),
191193
}
192194

@@ -199,38 +201,38 @@ enum class ScreenSharePresets(
199201
) : VideoPreset {
200202
H360_FPS3(
201203
VideoCaptureParameter(640, 360, 3),
202-
VideoEncoding(200_000, 3),
204+
VideoEncoding(200_000, 0, 3),
203205
),
204206
H360_FPS15(
205207
VideoCaptureParameter(640, 360, 15),
206-
VideoEncoding(400_000, 15),
208+
VideoEncoding(400_000, 0, 15),
207209
),
208210
H720_FPS5(
209211
VideoCaptureParameter(1280, 720, 5),
210-
VideoEncoding(800_000, 5),
212+
VideoEncoding(800_000, 0, 5),
211213
),
212214
H720_FPS15(
213215
VideoCaptureParameter(1280, 720, 15),
214-
VideoEncoding(1_500_000, 15),
216+
VideoEncoding(1_500_000, 0, 15),
215217
),
216218
H720_FPS30(
217219
VideoCaptureParameter(1280, 720, 30),
218-
VideoEncoding(2_000_000, 30),
220+
VideoEncoding(2_000_000, 0, 30),
219221
),
220222
H1080_FPS15(
221223
VideoCaptureParameter(1920, 1080, 15),
222-
VideoEncoding(2_500_000, 15),
224+
VideoEncoding(2_500_000, 0, 15),
223225
),
224226
H1080_FPS30(
225227
VideoCaptureParameter(1920, 1080, 30),
226-
VideoEncoding(5_000_000, 30),
228+
VideoEncoding(5_000_000, 0, 30),
227229
),
228230

229231
/**
230232
* Uses the original resolution without resizing.
231233
*/
232234
ORIGINAL(
233235
VideoCaptureParameter(0, 0, 30, adaptOutputToDimensions = false),
234-
VideoEncoding(7_000_000, 30),
236+
VideoEncoding(7_000_000, 0, 30),
235237
)
236238
}

0 commit comments

Comments
 (0)