davidliu
Committed by GitHub

Add capture options and video processor for screencast tracks (#410)

@@ -141,15 +141,19 @@ internal constructor( @@ -141,15 +141,19 @@ internal constructor(
141 fun createScreencastTrack( 141 fun createScreencastTrack(
142 name: String = "", 142 name: String = "",
143 mediaProjectionPermissionResultData: Intent, 143 mediaProjectionPermissionResultData: Intent,
  144 + options: LocalVideoTrackOptions = videoTrackCaptureDefaults.copy(),
  145 + videoProcessor: VideoProcessor? = null,
144 ): LocalScreencastVideoTrack { 146 ): LocalScreencastVideoTrack {
  147 + val screencastOptions = options.copy(isScreencast = true)
145 return LocalScreencastVideoTrack.createTrack( 148 return LocalScreencastVideoTrack.createTrack(
146 mediaProjectionPermissionResultData, 149 mediaProjectionPermissionResultData,
147 peerConnectionFactory, 150 peerConnectionFactory,
148 context, 151 context,
149 name, 152 name,
150 - LocalVideoTrackOptions(isScreencast = true), 153 + screencastOptions,
151 eglBase, 154 eglBase,
152 screencastVideoTrackFactory, 155 screencastVideoTrackFactory,
  156 + videoProcessor,
153 ) 157 )
154 } 158 }
155 159
@@ -129,8 +129,10 @@ constructor( @@ -129,8 +129,10 @@ constructor(
129 options: LocalVideoTrackOptions, 129 options: LocalVideoTrackOptions,
130 rootEglBase: EglBase, 130 rootEglBase: EglBase,
131 screencastVideoTrackFactory: Factory, 131 screencastVideoTrackFactory: Factory,
  132 + videoProcessor: VideoProcessor?
132 ): LocalScreencastVideoTrack { 133 ): LocalScreencastVideoTrack {
133 val source = peerConnectionFactory.createVideoSource(options.isScreencast) 134 val source = peerConnectionFactory.createVideoSource(options.isScreencast)
  135 + source.setVideoProcessor(videoProcessor)
134 val callback = MediaProjectionCallback() 136 val callback = MediaProjectionCallback()
135 val capturer = createScreenCapturer(mediaProjectionPermissionResultData, callback) 137 val capturer = createScreenCapturer(mediaProjectionPermissionResultData, callback)
136 capturer.initialize( 138 capturer.initialize(