Update capturer/test code to use the new interface VideoCapturer.
Bug: webrtc:9496 Change-Id: I9adf2c341b831820bbe71f2511616b629c9e1acc Reviewed-on: https://webrtc-review.googlesource.com/87306 Reviewed-by: Magnus Jedvert <magjed@webrtc.org> Commit-Queue: Sami Kalliomäki <sakal@webrtc.org> Cr-Commit-Position: refs/heads/master@{#23869}
This commit is contained in:

committed by
Commit Bot

parent
05b552f76a
commit
b2daaaacbd
@ -77,7 +77,7 @@ public class ScreenCapturerAndroid implements VideoCapturer, VideoSink {
|
||||
// TODO(bugs.webrtc.org/8491): Remove NoSynchronizedMethodCheck suppression.
|
||||
@SuppressWarnings("NoSynchronizedMethodCheck")
|
||||
public synchronized void initialize(final SurfaceTextureHelper surfaceTextureHelper,
|
||||
final Context applicationContext, final VideoCapturer.CapturerObserver capturerObserver) {
|
||||
final Context applicationContext, final CapturerObserver capturerObserver) {
|
||||
checkNotDisposed();
|
||||
|
||||
if (capturerObserver == null) {
|
||||
|
@ -101,7 +101,7 @@ class CameraVideoCapturerTestFixtures {
|
||||
}
|
||||
}
|
||||
|
||||
static private class FakeCapturerObserver implements CameraVideoCapturer.CapturerObserver {
|
||||
static private class FakeCapturerObserver implements CapturerObserver {
|
||||
private int framesCaptured = 0;
|
||||
private @Nullable VideoFrame videoFrame;
|
||||
final private Object frameLock = new Object();
|
||||
@ -272,6 +272,7 @@ class CameraVideoCapturerTestFixtures {
|
||||
* is used for testing local rendering from a capturer.
|
||||
*/
|
||||
static private class VideoTrackWithRenderer {
|
||||
public SurfaceTextureHelper surfaceTextureHelper;
|
||||
public VideoSource source;
|
||||
public VideoTrack track;
|
||||
public RendererCallbacks rendererCallbacks;
|
||||
@ -389,7 +390,12 @@ class CameraVideoCapturerTestFixtures {
|
||||
private VideoTrackWithRenderer createVideoTrackWithRenderer(
|
||||
CameraVideoCapturer capturer, VideoSink rendererCallbacks) {
|
||||
VideoTrackWithRenderer videoTrackWithRenderer = new VideoTrackWithRenderer();
|
||||
videoTrackWithRenderer.source = peerConnectionFactory.createVideoSource(capturer);
|
||||
videoTrackWithRenderer.surfaceTextureHelper = SurfaceTextureHelper.create(
|
||||
"SurfaceTextureHelper test" /* threadName */, null /* sharedContext */);
|
||||
videoTrackWithRenderer.source =
|
||||
peerConnectionFactory.createVideoSource(/* isScreencast= */ false);
|
||||
capturer.initialize(videoTrackWithRenderer.surfaceTextureHelper,
|
||||
testObjectFactory.getAppContext(), videoTrackWithRenderer.source.getCapturerObserver());
|
||||
capturer.startCapture(DEFAULT_WIDTH, DEFAULT_HEIGHT, DEFAULT_FPS);
|
||||
videoTrackWithRenderer.track =
|
||||
peerConnectionFactory.createVideoTrack("dummy", videoTrackWithRenderer.source);
|
||||
|
@ -27,7 +27,7 @@ import org.junit.runner.RunWith;
|
||||
|
||||
@RunWith(BaseJUnit4ClassRunner.class)
|
||||
public class FileVideoCapturerTest {
|
||||
public static class MockCapturerObserver implements VideoCapturer.CapturerObserver {
|
||||
public static class MockCapturerObserver implements CapturerObserver {
|
||||
private final ArrayList<VideoFrame> frames = new ArrayList<VideoFrame>();
|
||||
|
||||
@Override
|
||||
|
@ -698,7 +698,11 @@ public class PeerConnectionTest {
|
||||
final CameraEnumerator enumerator = new Camera1Enumerator(false /* captureToTexture */);
|
||||
final VideoCapturer videoCapturer =
|
||||
enumerator.createCapturer(enumerator.getDeviceNames()[0], null /* eventsHandler */);
|
||||
final VideoSource videoSource = factory.createVideoSource(videoCapturer);
|
||||
final SurfaceTextureHelper surfaceTextureHelper =
|
||||
SurfaceTextureHelper.create("SurfaceTextureHelper", /* sharedContext= */ null);
|
||||
final VideoSource videoSource = factory.createVideoSource(/* isScreencast= */ false);
|
||||
videoCapturer.initialize(surfaceTextureHelper, InstrumentationRegistry.getTargetContext(),
|
||||
videoSource.getCapturerObserver());
|
||||
videoCapturer.startCapture(640, 480, 30);
|
||||
|
||||
offeringExpectations.expectRenegotiationNeeded();
|
||||
@ -905,6 +909,7 @@ public class PeerConnectionTest {
|
||||
videoCapturer.stopCapture();
|
||||
videoCapturer.dispose();
|
||||
videoSource.dispose();
|
||||
surfaceTextureHelper.dispose();
|
||||
factory.dispose();
|
||||
System.gc();
|
||||
}
|
||||
@ -1094,7 +1099,11 @@ public class PeerConnectionTest {
|
||||
final CameraEnumerator enumerator = new Camera1Enumerator(false /* captureToTexture */);
|
||||
final VideoCapturer videoCapturer =
|
||||
enumerator.createCapturer(enumerator.getDeviceNames()[0], null /* eventsHandler */);
|
||||
final VideoSource videoSource = factory.createVideoSource(videoCapturer);
|
||||
final SurfaceTextureHelper surfaceTextureHelper =
|
||||
SurfaceTextureHelper.create("SurfaceTextureHelper", /* sharedContext= */ null);
|
||||
final VideoSource videoSource = factory.createVideoSource(/* isScreencast= */ false);
|
||||
videoCapturer.initialize(surfaceTextureHelper, InstrumentationRegistry.getTargetContext(),
|
||||
videoSource.getCapturerObserver());
|
||||
videoCapturer.startCapture(640, 480, 30);
|
||||
|
||||
// Add offerer media stream.
|
||||
@ -1245,6 +1254,7 @@ public class PeerConnectionTest {
|
||||
videoCapturer.stopCapture();
|
||||
videoCapturer.dispose();
|
||||
videoSource.dispose();
|
||||
surfaceTextureHelper.dispose();
|
||||
factory.dispose();
|
||||
System.gc();
|
||||
}
|
||||
@ -1318,7 +1328,11 @@ public class PeerConnectionTest {
|
||||
final CameraEnumerator enumerator = new Camera1Enumerator(false /* captureToTexture */);
|
||||
final VideoCapturer videoCapturer =
|
||||
enumerator.createCapturer(enumerator.getDeviceNames()[0], null /* eventsHandler */);
|
||||
final VideoSource videoSource = factory.createVideoSource(videoCapturer);
|
||||
final SurfaceTextureHelper surfaceTextureHelper =
|
||||
SurfaceTextureHelper.create("SurfaceTextureHelper", /* sharedContext= */ null);
|
||||
final VideoSource videoSource = factory.createVideoSource(/* isScreencast= */ false);
|
||||
videoCapturer.initialize(surfaceTextureHelper, InstrumentationRegistry.getTargetContext(),
|
||||
videoSource.getCapturerObserver());
|
||||
VideoTrack videoTrack = factory.createVideoTrack("video", videoSource);
|
||||
offeringExpectations.expectRenegotiationNeeded();
|
||||
localStream.addTrack(videoTrack);
|
||||
@ -1369,6 +1383,7 @@ public class PeerConnectionTest {
|
||||
pcUnderTest.dispose();
|
||||
videoCapturer.dispose();
|
||||
videoSource.dispose();
|
||||
surfaceTextureHelper.dispose();
|
||||
factory.dispose();
|
||||
}
|
||||
|
||||
|
@ -14,18 +14,17 @@ import org.webrtc.VideoCapturer;
|
||||
|
||||
public class JavaVideoSourceTestHelper {
|
||||
@CalledByNative
|
||||
public static void startCapture(VideoCapturer.CapturerObserver observer, boolean success) {
|
||||
public static void startCapture(CapturerObserver observer, boolean success) {
|
||||
observer.onCapturerStarted(success);
|
||||
}
|
||||
|
||||
@CalledByNative
|
||||
public static void stopCapture(VideoCapturer.CapturerObserver observer) {
|
||||
public static void stopCapture(CapturerObserver observer) {
|
||||
observer.onCapturerStopped();
|
||||
}
|
||||
|
||||
@CalledByNative
|
||||
public static void deliverFrame(
|
||||
int width, int height, int rotation, VideoCapturer.CapturerObserver observer) {
|
||||
public static void deliverFrame(int width, int height, int rotation, CapturerObserver observer) {
|
||||
observer.onFrameCaptured(
|
||||
new VideoFrame(JavaI420Buffer.allocate(width, height), rotation, 0 /* timestampNs= */));
|
||||
}
|
||||
|
Reference in New Issue
Block a user