11 Commits

Author SHA1 Message Date
nisse
a44e72c44f Call java SurfaceTextureHelper.dispose from the corresponding C++ destructor.
This makes it clearer that the C++ SurfaceTextureHelper owns its associated java object it.

In addition, arrange so that the SurfaceTextureHelper.stopListening
method (in java) can be called from any thread.

BUG=

Review-Url: https://codereview.webrtc.org/1988043002
Cr-Commit-Position: refs/heads/master@{#12941}
2016-05-27 07:28:05 +00:00
Magnus Jedvert
181310fb6f Android: Drop old frame in SurfaceTextureHelper.startListening()
Drop any pending texture frame when SurfaceTextureHelper.startListening()
is called because the frame might be from the previous
startListening()/stopListening() capture session. This typically happens
when switching between the front/back camera, and an old frame will get
incorrect rotation and mirroring because of the front/back camera
mismatch.

Dropping the frame in SurfaceTextureHelper also removes the need for
the |dropNextFrame| logic in VideoCapturerAndroid.

R=perkj@webrtc.org

Review URL: https://codereview.webrtc.org/2002963002 .

Cr-Commit-Position: refs/heads/master@{#12849}
2016-05-23 14:26:59 +00:00
magjed
2aa84260d8 Android: Handle SurfaceTextureHelper ctor failure for decoder and capturer
BUG=webrtc:5874
TEST=Manually throw an exception inside the SurfaceTextureHelper ctor and run AppRTCDemo.

Review-Url: https://codereview.webrtc.org/1840193007
Cr-Commit-Position: refs/heads/master@{#12665}
2016-05-09 15:28:55 +00:00
Magnus Jedvert
fae14804ee Android: Fix chroma sampling bug when converting from texture to YUV
The xUnit for the UV channels in SurfaceTextureHelper.YuvConverter is
currently calculated from 1 / (2 * width). It should be 1 / (width / 2)
instead.

R=nisse@webrtc.org

Review URL: https://codereview.webrtc.org/1862003002 .

Cr-Commit-Position: refs/heads/master@{#12274}
2016-04-07 07:26:54 +00:00
Magnus Jedvert
3db6f9b4df Android EGL: Synchronize calls to eglSwapBuffers and eglMakeCurrent
BUG=webrtc:5702
R=glaznev@webrtc.org, perkj@webrtc.org

Review URL: https://codereview.webrtc.org/1848483002 .

Cr-Commit-Position: refs/heads/master@{#12178}
2016-03-31 11:17:20 +00:00
magjed
82b750b80e Android SurfaceTextureHelper: Distinguish thread names for decoder and camera
Review URL: https://codereview.webrtc.org/1843973002

Cr-Commit-Position: refs/heads/master@{#12176}
2016-03-31 07:54:18 +00:00
magjed
d8ddb796e4 SurfaceTextureHelper: Fix startListening()/stopListening() race
SurfaceTextureHelper.startListening() is asynchronous and posts a Runnable to the handler thread. If stopListening() is called before that Runnable is executed, the Runnable will set the listener after stopListening() has been called. Then the next call to startListening() will fail with "SurfaceTextureHelper listener has already been set."

This CL adds a test to reproduce this bug, and a fix.

BUG=5519,b/27677772

Review URL: https://codereview.webrtc.org/1806013003

Cr-Commit-Position: refs/heads/master@{#12030}
2016-03-17 10:13:47 +00:00
magjed
81e8e374ec Android SurfaceTextureHelper: Add stopListening() function
This CL replaces the function SurfaceTextureHelper.setListener() that
could only be called once with the functions startListening() and
stopListening() that can be called multiple times. This is necessary
when the SurfaceTextureHelper will be passed to the VideoCapturerAndroid
in startCapture(). startListening() will be called in startCapture() and
stopListening() in stopCapture().

BUG=webrtc:5519

Review URL: https://codereview.webrtc.org/1755573002

Cr-Commit-Position: refs/heads/master@{#11855}
2016-03-03 10:18:44 +00:00
magjed
9e69dfdfd5 Java SurfaceTextureHelper: Remove support for external thread
Currently, VideoCapturerAndroid owns a dedicated tread, and
SurfaceTextureHelper get this thread passed in the ctor. In
VideoCapturerAndroid.dispose(), ownership of the thread is passed to
SurfaceTextureHelper so that we can return directly instead of waiting
for the last frame to return.

This CL makes the SurfaceTextureHelper own the thread the whole time
instead, and VideoCapturerAndroid calls getHandler() to get it instead.

BUG=webrtc:5519

Review URL: https://codereview.webrtc.org/1738123002

Cr-Commit-Position: refs/heads/master@{#11790}
2016-02-26 15:45:50 +00:00
kjellander
b24317bfda Fix license headers in webrtc/api.
In addition to the code moved from talk/app/webrtc
there were some files in webrtc/api/objctests that still
had the libjingle license header.

BUG=webrtc:5418
TBR=tkchin@webrtc.org
NOTRY=True

Review URL: https://codereview.webrtc.org/1680293005

Cr-Commit-Position: refs/heads/master@{#11552}
2016-02-10 15:54:53 +00:00
Henrik Kjellander
15583c19d7 Move talk/app/webrtc to webrtc/api
The previously disabled warnings that were inherited from
talk/build/common.gypi are now replaced by target-specific disabling
of only the failing warnings. Additional disabling was needed since the stricter
compilation warnings that applies to code in webrtc/.

License headers will be updated in a follow-up CL.

Other modifications:
* Updated the header guards.
* Sorted the includes using chromium/src/tools/sort-headers.py
  except for these files:
  talk/app/webrtc/peerconnectionendtoend_unittest.cc
  talk/app/webrtc/java/jni/androidmediadecoder_jni.cc
  talk/app/webrtc/java/jni/androidmediaencoder_jni.cc
  webrtc/media/devices/win32devicemanager.cc

The HAVE_SCTP define was added for the peerconnection_unittests target
in api_tests.gyp.

I also checked that none of
SRTP_RELATIVE_PATH
HAVE_SRTP
HAVE_WEBRTC_VIDEO
HAVE_WEBRTC_VOICE
were used by the talk/app/webrtc code.

For Chromium, the following changes will need to be applied to the roll CL that updates the
DEPS for WebRTC and libjingle:
https://codereview.chromium.org/1615433002

BUG=webrtc:5418
NOPRESUBMIT=True
R=deadbeef@webrtc.org, pthatcher@webrtc.org, tommi@webrtc.org

Review URL: https://codereview.webrtc.org/1610243002 .

Cr-Commit-Position: refs/heads/master@{#11545}
2016-02-10 09:53:26 +00:00