steep-balloon-41261
09/01/2023, 3:57 PMdry-elephant-14928
09/01/2023, 6:44 PMcold-camera-7729
09/14/2023, 10:05 AMcold-camera-7729
09/14/2023, 10:05 AMcold-camera-7729
09/21/2023, 6:32 AMeager-raincoat-52616
09/21/2023, 6:37 AMVideoProcessor object into LocalParticipant.createVideoTrack()eager-raincoat-52616
09/21/2023, 6:38 AMcold-camera-7729
09/21/2023, 6:43 AMcold-camera-7729
09/21/2023, 6:44 AMeager-raincoat-52616
09/21/2023, 6:44 AMeager-raincoat-52616
09/21/2023, 6:45 AMcold-camera-7729
09/21/2023, 6:46 AMcold-camera-7729
09/21/2023, 6:47 AMeager-raincoat-52616
09/21/2023, 7:37 AMclass ExampleVideoProcessor : VideoProcessor {
private var sink: VideoSink? = null
override fun onCapturerStarted(success: Boolean) {
}
override fun onCapturerStopped() {
}
override fun onFrameCaptured(frame: VideoFrame) {
val processedFrame = process(frame)
sink?.onFrame(processedFrame)
// Make sure to release when you're done with frame.
processedFrame.release()
}
private fun process(frame: VideoFrame): VideoFrame {
val buffer = frame.buffer.toI420() ?: return frame
// Modify video buffer as needed...
return VideoFrame(buffer, frame.rotation, frame.timestampNs)
}
override fun setSink(sink: VideoSink?) {
this.sink = sink
}
}
fun publishProcessedVideo() {
val videoTrack = localParticipant.createVideoTrack(
videoProcessor = ExampleVideoProcessor(),
)
videoTrack.startCapture()
localParticipant.publishVideoTrack(
track = videoTrack,
)
}eager-raincoat-52616
09/21/2023, 8:40 AMcold-camera-7729
09/21/2023, 9:40 AMboundless-salesclerk-13461
09/21/2023, 12:50 PMpublishProcessedVideo() the LocalParticipant class (from LiveKit dart SDK) doesn't have a createVideoTrack() function.
Any thoughts on how to proceed?