OLD | NEW |
1 /* | 1 /* |
2 * Copyright 2014 The WebRTC Project Authors. All rights reserved. | 2 * Copyright 2014 The WebRTC Project Authors. All rights reserved. |
3 * | 3 * |
4 * Use of this source code is governed by a BSD-style license | 4 * Use of this source code is governed by a BSD-style license |
5 * that can be found in the LICENSE file in the root of the source | 5 * that can be found in the LICENSE file in the root of the source |
6 * tree. An additional intellectual property rights grant can be found | 6 * tree. An additional intellectual property rights grant can be found |
7 * in the file PATENTS. All contributing project authors may | 7 * in the file PATENTS. All contributing project authors may |
8 * be found in the AUTHORS file in the root of the source tree. | 8 * be found in the AUTHORS file in the root of the source tree. |
9 */ | 9 */ |
10 | 10 |
(...skipping 382 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
393 } | 393 } |
394 // TODO(perkj): If we can always capture to textures, there is no need to ch
eck if the | 394 // TODO(perkj): If we can always capture to textures, there is no need to ch
eck if the |
395 // hardware encoder supports to encode from a texture. | 395 // hardware encoder supports to encode from a texture. |
396 if (!MediaCodecVideoEncoder.isVp8HwSupportedUsingTextures()) { | 396 if (!MediaCodecVideoEncoder.isVp8HwSupportedUsingTextures()) { |
397 Log.i(TAG, "VP8 encode to textures is not supported."); | 397 Log.i(TAG, "VP8 encode to textures is not supported."); |
398 return; | 398 return; |
399 } | 399 } |
400 doLoopbackTest(createParametersForVideoCall(VIDEO_CODEC_VP8, true), true); | 400 doLoopbackTest(createParametersForVideoCall(VIDEO_CODEC_VP8, true), true); |
401 } | 401 } |
402 | 402 |
403 | |
404 // Test that a call can be setup even if a released EGL context is used during
setup. | |
405 // The HW encoder and decoder will fallback to encode and decode from byte buf
fers. | |
406 public void testLoopbackEglContextReleasedBeforeSetup() throws InterruptedExce
ption { | |
407 if (Build.VERSION.SDK_INT < Build.VERSION_CODES.KITKAT) { | |
408 Log.i(TAG, "Decode to textures is not supported, requires SDK version 19."
); | |
409 return; | |
410 } | |
411 eglBase.release(); | |
412 doLoopbackTest(createParametersForVideoCall(VIDEO_CODEC_VP8, false), true); | |
413 eglBase = null; | |
414 } | |
415 | |
416 // Test that a call can be setup even if the EGL context used during initializ
ation is | 403 // Test that a call can be setup even if the EGL context used during initializ
ation is |
417 // released before the Video codecs are created. The HW encoder and decoder is
setup to use | 404 // released before the Video codecs are created. The HW encoder and decoder is
setup to use |
418 // textures. | 405 // textures. |
419 public void testLoopbackEglContextReleasedAfterCreatingPc() throws Interrupted
Exception { | 406 public void testLoopbackEglContextReleasedAfterCreatingPc() throws Interrupted
Exception { |
420 if (Build.VERSION.SDK_INT < Build.VERSION_CODES.KITKAT) { | 407 if (Build.VERSION.SDK_INT < Build.VERSION_CODES.KITKAT) { |
421 Log.i(TAG, "Decode to textures is not supported. Requires SDK version 19")
; | 408 Log.i(TAG, "Decode to textures is not supported. Requires SDK version 19")
; |
422 return; | 409 return; |
423 } | 410 } |
424 | 411 |
425 loopback = true; | 412 loopback = true; |
426 PeerConnectionParameters parameters = createParametersForVideoCall(VIDEO_COD
EC_VP8, false); | 413 PeerConnectionParameters parameters = createParametersForVideoCall(VIDEO_COD
EC_VP8, true); |
427 MockRenderer localRenderer = new MockRenderer(EXPECTED_VIDEO_FRAMES, LOCAL_R
ENDERER_NAME); | 414 MockRenderer localRenderer = new MockRenderer(EXPECTED_VIDEO_FRAMES, LOCAL_R
ENDERER_NAME); |
428 MockRenderer remoteRenderer = new MockRenderer(EXPECTED_VIDEO_FRAMES, REMOTE
_RENDERER_NAME); | 415 MockRenderer remoteRenderer = new MockRenderer(EXPECTED_VIDEO_FRAMES, REMOTE
_RENDERER_NAME); |
429 pcClient = createPeerConnectionClient( | 416 pcClient = createPeerConnectionClient( |
430 localRenderer, remoteRenderer, parameters, eglBase.getEglBaseContext()); | 417 localRenderer, remoteRenderer, parameters, eglBase.getEglBaseContext()); |
431 | 418 |
432 // Wait for local SDP, rename it to answer and set as remote SDP. | 419 // Wait for local SDP, rename it to answer and set as remote SDP. |
433 assertTrue("Local SDP was not set.", waitForLocalSDP(WAIT_TIMEOUT)); | 420 assertTrue("Local SDP was not set.", waitForLocalSDP(WAIT_TIMEOUT)); |
434 | 421 |
435 // Release the EGL context used for creating the PeerConnectionClient. | 422 // Release the EGL context used for creating the PeerConnectionClient. |
436 // Since createPeerConnectionClient is asynchronous, we must wait for the lo
cal | 423 // Since createPeerConnectionClient is asynchronous, we must wait for the lo
cal |
(...skipping 121 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
558 assertTrue("Local video frames were not rendered after video restart.", | 545 assertTrue("Local video frames were not rendered after video restart.", |
559 localRenderer.waitForFramesRendered(WAIT_TIMEOUT)); | 546 localRenderer.waitForFramesRendered(WAIT_TIMEOUT)); |
560 assertTrue("Remote video frames were not rendered after video restart.", | 547 assertTrue("Remote video frames were not rendered after video restart.", |
561 remoteRenderer.waitForFramesRendered(WAIT_TIMEOUT)); | 548 remoteRenderer.waitForFramesRendered(WAIT_TIMEOUT)); |
562 } | 549 } |
563 pcClient.close(); | 550 pcClient.close(); |
564 assertTrue(waitForPeerConnectionClosed(WAIT_TIMEOUT)); | 551 assertTrue(waitForPeerConnectionClosed(WAIT_TIMEOUT)); |
565 Log.d(TAG, "testVideoSourceRestart done."); | 552 Log.d(TAG, "testVideoSourceRestart done."); |
566 } | 553 } |
567 } | 554 } |
OLD | NEW |