66 Commits

Author SHA1 Message Date
perkj@webrtc.org
83bc721c7e Add Android specific VideoCapturer.
The Java implementation of VideoCapturer is losely based on the the work in webrtc/modules/videocapturer.

The capturer is now started asyncronously.
The capturer supports easy camera switching.

BUG=
R=henrika@webrtc.org, magjed@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/30849004

Cr-Commit-Position: refs/heads/master@{#8329}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8329 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-02-11 11:27:22 +00:00
glaznev@webrtc.org
44ae4c8b07 Support using VP9 video codec in AppRTCDemo.
- Add peer connection Java API to initialize field trial string.
- Add setting option to select VP8 or Vp9 as default video codec.
- Minor code clean up and allowing 720p portrait encoding.

R=wzh@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/39899004

Cr-Commit-Position: refs/heads/master@{#8303}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8303 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-02-09 23:26:41 +00:00
glaznev@webrtc.org
f6932297e7 Fix Android video renderer to support video frames
with stride > width.

Recent libvpx update generates output video frames with stride
value greater than width, which was not supported by Android OpenGL
video renderer (Android GLES2 doesn't have GL_UNPACK_ROW_LENGTH
to provide stride information for buffer in glTexImage2D call).

Fix it by implementing native frame copying for Java
VideoRenderer.I420Frame implementation.

BUG=4248
R=braveyao@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/40639004

Cr-Commit-Position: refs/heads/master@{#8252}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8252 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-02-05 17:30:17 +00:00
braveyao@webrtc.org
fedb9ea6bc Correct the class name in peerconnection_jni.cc.
BUG=4194
TEST=Manual Test
R=glaznev@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/40449004

git-svn-id: http://webrtc.googlecode.com/svn/trunk@8106 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-01-21 07:57:06 +00:00
jlmiller@webrtc.org
5f93d0a140 Update libjingle license statements at top of talk files for consistency
BUG=2133
R=juberti@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/39559004

git-svn-id: http://webrtc.googlecode.com/svn/trunk@8105 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-01-20 21:36:13 +00:00
tommi@webrtc.org
8e327c45d0 Update StatsCollector's interface in preparation of more changes.
This CL is the first of three and this one contains interface additions (not deletion for backwards compatibility) as well as a few necessary updates to internal code.

The next CL will be in Chromium to consume the new new methods and remove dependency on the old ones.

The third CL will then contain the bulk of the updates and improvements and be compatible with this interface.

BUG=2822
R=perkj@webrtc.org

Committed: https://code.google.com/p/webrtc/source/detail?r=8095

Review URL: https://webrtc-codereview.appspot.com/36829004

git-svn-id: http://webrtc.googlecode.com/svn/trunk@8097 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-01-19 20:41:26 +00:00
tommi@webrtc.org
43e54e36bf Revert 8095 "Update StatsCollector's interface in preparation of..."
> Update StatsCollector's interface in preparation of more changes.
> 
> This CL is the first of three and this one contains interface additions (not deletion for backwards compatibility) as well as a few necessary updates to internal code.
> 
> The next CL will be in Chromium to consume the new new methods and remove dependency on the old ones.
> 
> The third CL will then contain the bulk of the updates and improvements and be compatible with this interface.
> 
> BUG=2822
> R=perkj@webrtc.org
> 
> Review URL: https://webrtc-codereview.appspot.com/36829004

TBR=tommi@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/37669004

git-svn-id: http://webrtc.googlecode.com/svn/trunk@8096 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-01-19 17:34:23 +00:00
tommi@webrtc.org
5b76fd79df Update StatsCollector's interface in preparation of more changes.
This CL is the first of three and this one contains interface additions (not deletion for backwards compatibility) as well as a few necessary updates to internal code.

The next CL will be in Chromium to consume the new new methods and remove dependency on the old ones.

The third CL will then contain the bulk of the updates and improvements and be compatible with this interface.

BUG=2822
R=perkj@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/36829004

git-svn-id: http://webrtc.googlecode.com/svn/trunk@8095 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-01-19 16:49:33 +00:00
kwiberg@webrtc.org
2ebfac5649 Remove COMPILE_ASSERT and use static_assert everywhere
COMPILE_ASSERT is no longer needed now that we have C++11's
static_assert.

R=aluebs@webrtc.org, andrew@webrtc.org, hellner@chromium.org, henrike@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/39469004

git-svn-id: http://webrtc.googlecode.com/svn/trunk@8058 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-01-14 10:51:54 +00:00
kwiberg@webrtc.org
3df38b442f Unify the two copies of compile_assert.h
This patch basically deletes webrtc/base/compile_assert.h (which is
the more outdated copy) and moves
webrtc/system_wrappers/source/compile_assert.h to take its place.

R=aluebs@webrtc.org, andrew@webrtc.org, tommi@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/36719004

git-svn-id: http://webrtc.googlecode.com/svn/trunk@8048 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-01-13 11:37:48 +00:00
pkasting@chromium.org
16825b1a82 Use int64_t more consistently for times, in particular for RTT values.
Existing code was inconsistent about whether to use uint16_t, int, unsigned int,
or uint32_t, and sometimes silently truncated one to another, or truncated
int64_t.  Because most core time-handling functions use int64_t, being
consistent about using int64_t unless otherwise necessary minimizes the number
of explicit or implicit casts.

BUG=chromium:81439
TEST=none
R=henrik.lundin@webrtc.org, holmer@google.com, tommi@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/31349004

git-svn-id: http://webrtc.googlecode.com/svn/trunk@8045 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-01-12 21:51:21 +00:00
tommi@webrtc.org
e2e199b894 Clean up StatsObserver's OnComplete methods (address TODOs).
R=perkj@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/29239004

git-svn-id: http://webrtc.googlecode.com/svn/trunk@7898 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-12-15 13:22:54 +00:00
tommi@webrtc.org
c57310b982 Switch kStatsValueName* constants to be enums instead of char*.
This is to guard against potentially assigning a value name to an incorrect value, non-static string or otherwise assume they can be treated as strings.

R=perkj@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/26359004

git-svn-id: http://webrtc.googlecode.com/svn/trunk@7884 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-12-12 17:41:28 +00:00
glaznev@webrtc.org
dea5173edf Add start bitrate and vp8 hw acceleration option to
Android AppRTCDemo.

- Add an option to set VP8 encoder start bitrate
usig x-google-start-bitrate line in remote SDP.
- Allow to enabled/disable VP8 hw decoder and
encoder acceleration using appRTC settings.

BUG=4046
R=jiayl@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/32539004

git-svn-id: http://webrtc.googlecode.com/svn/trunk@7775 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-12-01 20:02:13 +00:00
pkasting@chromium.org
4591fbd09f Use size_t more consistently for packet/payload lengths.
See design doc at https://docs.google.com/a/chromium.org/document/d/1I6nmE9D_BmCY-IoV6MDPY2V6WYpEI-dg2apWXTfZyUI/edit?usp=sharing for more information.

This CL was reviewed and approved in pieces in the following CLs:
https://webrtc-codereview.appspot.com/24209004/
https://webrtc-codereview.appspot.com/24229004/
https://webrtc-codereview.appspot.com/24259004/
https://webrtc-codereview.appspot.com/25109004/
https://webrtc-codereview.appspot.com/26099004/
https://webrtc-codereview.appspot.com/27069004/
https://webrtc-codereview.appspot.com/27969004/
https://webrtc-codereview.appspot.com/27989004/
https://webrtc-codereview.appspot.com/29009004/
https://webrtc-codereview.appspot.com/30929004/
https://webrtc-codereview.appspot.com/30939004/
https://webrtc-codereview.appspot.com/31999004/
Committing as TBR to the original reviewers.

BUG=chromium:81439
TEST=none
TBR=pthatcher,henrik.lundin,tina.legrand,stefan,tkchin,glaznev,kjellander,perkj,mflodman,henrika,asapersson,niklas.enbom

Review URL: https://webrtc-codereview.appspot.com/23129004

git-svn-id: http://webrtc.googlecode.com/svn/trunk@7726 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-11-20 22:28:14 +00:00
perkj@webrtc.org
c2dd5ee2c0 Prepare for removal of PeerConnectionObserver::OnError.
Prepare for removal of constraints to PeerConnection::AddStream.

OnError has never been implemented and has been removed from the spec.
Also, constraints to PeerConnection::AddStream has also been removed from the spec and have never been implemented.

R=pbos@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/23319004

git-svn-id: http://webrtc.googlecode.com/svn/trunk@7605 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-11-04 11:31:29 +00:00
glaznev@webrtc.org
a8c0edd29f Avoid using EGLContext class for Android 4.1 and below.
Support for this class was added in Android 4.2, so
disable surface decoding for lower Android versions.

BUG=3901
R=tkchin@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/31669004

git-svn-id: http://webrtc.googlecode.com/svn/trunk@7478 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-10-20 19:08:05 +00:00
buildbot@webrtc.org
3c16d8bd1c (Auto)update libjingle 77414393-> 77554188
git-svn-id: http://webrtc.googlecode.com/svn/trunk@7428 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-10-13 06:35:10 +00:00
glaznev@webrtc.org
dae40dcde9 Change setting VP8 codec specific info values by HW VP8 encoder
to follow SW implementation.

This fixes video freezing observed when connecting Android AppRtcDemo
on devices with hW encoder support with Chrome apprtc.

BUG=
R=mflodman@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/31629004

git-svn-id: http://webrtc.googlecode.com/svn/trunk@7414 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-10-09 17:53:09 +00:00
glaznev@webrtc.org
95bacfed08 Remove bad waiting code from video decoder release function.
Instead keep surface texture object alive while video codec
is re-initialized with a different resolution.

BUG=
R=tkchin@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/28649004

git-svn-id: http://webrtc.googlecode.com/svn/trunk@7401 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-10-09 00:00:11 +00:00
glaznev@webrtc.org
46ffc70878 Temporary fix to allow Invoke() calls for VP8 HW encoder and decoder.
BUG=
R=jiayl@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/24849004

git-svn-id: http://webrtc.googlecode.com/svn/trunk@7387 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-10-07 17:11:36 +00:00
glaznev@webrtc.org
25cc745d6b Switch to SW video decoder on Android after getting 2 or more
critical errors from HW decoder.

BUG=410730
R=tkchin@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/23819004

git-svn-id: http://webrtc.googlecode.com/svn/trunk@7368 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-10-02 16:58:05 +00:00
glaznev@webrtc.org
359d720004 Allow Android apps to set video renderer scaling type.
Also add type check for EGL context object received from apps and
switch to byte buffer video decoding if EGL context is incorrect

BUG=3851
R=tkchin@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/25669004

git-svn-id: http://webrtc.googlecode.com/svn/trunk@7326 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-09-29 23:07:08 +00:00
glaznev@webrtc.org
90668b1633 Switch HW video decoder to output byte buffers if video
renderer EGL context is not provided by app.

R=tkchin@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/24699004

git-svn-id: http://webrtc.googlecode.com/svn/trunk@7281 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-09-23 21:42:15 +00:00
glaznev@webrtc.org
ebf2757339 Fix HW video decoder crash on some Android KK devices.
Remove direct access to decoder Java output buffer memory
when HW decoder is configured to decode to surface.

-

R=tkchin@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/30459005

git-svn-id: http://webrtc.googlecode.com/svn/trunk@7249 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-09-19 19:36:13 +00:00
glaznev@webrtc.org
e65812427d Fixing compilation failure in peerconnection_jni.cc with WEBRTC_CHROMIUM_BUILD.
Symbol LogcatTraceContext not defined.
Submitting on behalf of serya@.
Dup of https://webrtc-codereview.appspot.com/29529004/

TEST=Build target libjingle_peerconnection_javalib with applied CL https://codereview.chromium.org/551793003/
BUG=https://crbug.com/383418
R=serya@chromium.org

Review URL: https://webrtc-codereview.appspot.com/28529004

git-svn-id: http://webrtc.googlecode.com/svn/trunk@7244 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-09-19 16:53:46 +00:00
glaznev@webrtc.org
0b435ba597 A few fixes to avoid crash in HW codec on device orientation change.
- Fix video encoder Reset() function to avoid setting codec
resolution to zero.
- Follow SW codec implementation and do not crash when frame
with the resolution different from the encoder resolution arrives.
Instead wait for at least 3 frames with new resolution and
re-initialize the codec. HW codec reset may take much longer
than SW codec, so these 3 frames threshold avoids resetting
codec when outstanding camera frame captured from previous device
orientation arrives.
- Plus some minor changes to make encoder reset/release
implementation closer to decoder implementation.

BUG=
R=tkchin@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/30439004

git-svn-id: http://webrtc.googlecode.com/svn/trunk@7230 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-09-18 23:01:03 +00:00
andresp@webrtc.org
85ef770d92 Split video engine android initialization into each internal module initialization.
This is to later on allow targets to pick at link time if to include the external or internal implementation. In order to do that the video_engine cannot compile different based on which option is picked later on.

BUG=3768,3770
R=glaznev@webrtc.org, stefan@webrtc.org
TBR=henrike@webrtc.org, mflodman@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/25529004

git-svn-id: http://webrtc.googlecode.com/svn/trunk@7208 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-09-17 11:44:51 +00:00
glaznev@webrtc.org
a59c501c99 Java VideoRenderer class may be backed by two different native
classes depending on type of rendering.
Fix crash in AppRtcDemo by calling correct destructor on exit.

BUG=
R=braveyao@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/23699004

git-svn-id: http://webrtc.googlecode.com/svn/trunk@7202 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-09-17 03:26:59 +00:00
glaznev@webrtc.org
996784548d HW video decoding optimization to better support HD resolution:
- Change hw video decoder wrapper to allow to feed multiple input
and query for an output every 10 ms.
- Add an option to decode video frame into an Android surface object. Create
shared with video renderer EGL context and external texture on
video decoder thread.
- Support external texture rendering in Android renderer.
- Support TextureVideoFrame in Java and use it to pass texture from video decoder
to renderer.
- Fix HW encoder and decoder detection code to avoid query codec capabilities
from sw codecs.

BUG=
R=tkchin@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/18299004

git-svn-id: http://webrtc.googlecode.com/svn/trunk@7185 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-09-15 17:52:42 +00:00
glaznev@webrtc.org
1d53f64b0f Disabling initializeAndroidGlobals when built with WEBRTC_CHROMIUM_BUILD.
webrtc::VideoEngine::SetAndroidObjects and webrtc::VoiceEngine::SetAndroidObjects
are not compatible with WEBRTC_CHROMIUM_BUILD. Since neither VoiceEngine nor VideoEngine
are needed at the time it's better to disable it completely.

BUG=https://crbug.com/412276
R=glaznev@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/24509004

git-svn-id: http://webrtc.googlecode.com/svn/trunk@7155 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-09-11 16:58:25 +00:00
andresp@webrtc.org
4d19e05ab2 Peerconnection_jni to use webrtc/base/checks.h instead of implementing its own.
This needs to happen sooner or later as if webrtc/base/checks.h happens to be included transitively here it would collide.

R=glaznev@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/19259004

git-svn-id: http://webrtc.googlecode.com/svn/trunk@7115 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-09-09 11:45:44 +00:00
pbos@webrtc.org
b648b9d85c Remove test constructor in WebRtcVideoEngine2.
Removes the need for ::Construct().

BUG=1788
R=pthatcher@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/15279004

git-svn-id: http://webrtc.googlecode.com/svn/trunk@6977 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-08-26 11:08:06 +00:00
buildbot@webrtc.org
a09a99950e (Auto)update libjingle 73222930-> 73226398
git-svn-id: http://webrtc.googlecode.com/svn/trunk@6891 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-08-13 17:26:08 +00:00
buildbot@webrtc.org
d4e598d57a (Auto)update libjingle 72097588-> 72159069
git-svn-id: http://webrtc.googlecode.com/svn/trunk@6799 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-07-29 17:36:52 +00:00
glaznev@webrtc.org
efe4b9af49 Add VP8 video decoding hw acceleration support to Java Peerconnection library.
For now NVidia decoder is supported only,
Qualcomm will be added once b/16353967 is fixed.

TODO:
- Support queuing 2-3 decoder input buffers.
- Add average decoding time statistics.
- Add Qualcomm hw decoder support.

BUG=3030
R=tkchin@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/20969004

git-svn-id: http://webrtc.googlecode.com/svn/trunk@6758 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-07-22 17:44:53 +00:00
glaznev@webrtc.org
c6c1dfd7ea Add extra logging and latency restriction to VP8 HW encoder.
- Do not allow encoder to accumulate more than 100 ms of
data in input buffers.
- Add optional extra logging (disabled by default) to track
encoder buffers timing.

BUG=
R=fischman@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/21659004

git-svn-id: http://webrtc.googlecode.com/svn/trunk@6435 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-06-13 22:59:08 +00:00
glaznev@webrtc.org
a40210aee2 Add support for NVidia VP8 HW encoder.
- Some changes in HW VP8 encoder search logic to detect HW codec
with supported color space format.
- Support yuv420 and nv12 formants for encoder input.
- Add some extra logging and encoder frame drop statistics.

BUG=3176
R=fischman@webrtc.org, tkchin@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/12719004

git-svn-id: http://webrtc.googlecode.com/svn/trunk@6389 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-06-10 23:48:29 +00:00
fischman@webrtc.org
9512719569 AppRTCDemo(android): support app (UI) & capture rotation.
Now app UI rotates as the device orientation changes, and the captured stream
tries to maintain real-world-up, matching Chrome/Android and Hangouts/Android
behavior.

BUG=2432
R=glaznev@webrtc.org, henrike@webrtc.org, wu@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/15689005

git-svn-id: http://webrtc.googlecode.com/svn/trunk@6354 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-06-06 18:40:44 +00:00
fischman@webrtc.org
a150bc9bbf PeerConnection(android): allow initializing either (or neither) of {Voice,Video}Engine.
Enables applications that don't want to pay the init/startup cost or request
extra permissions (e.g. audio-only app, or DataChannel-only app).

BUG=3234

Review URL: https://webrtc-codereview.appspot.com/15489004

git-svn-id: http://webrtc.googlecode.com/svn/trunk@6164 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-05-14 22:00:50 +00:00
fischman@webrtc.org
2c98af7935 PeerConnection(Java): auto-WrapCurrentThread() when creating PeerConnectionFactory.
Various pieces of talk/ assume that the current Thread is ThreadManager'd
without checking this, so unconditionally wrap the caller's thread in case it
was created by Java code unbeknownst to ThreadManager.

BUG=2947
R=wu@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/9419004

git-svn-id: http://webrtc.googlecode.com/svn/trunk@6154 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-05-14 17:33:32 +00:00
mallinath@webrtc.org
a0d3067575 Use CreatePeerConnection method which accepts port_allocator.
Other method will be removed, in a different CL.

R=fischman@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/20369006

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5987 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-04-26 00:00:15 +00:00
jiayl@webrtc.org
db41b4dbcd Remove the deprecated GetStats method from PeerConnectionInterface.
R=fischman@webrtc.org, wu@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/8879004

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5634 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-03-03 21:30:06 +00:00
fischman@webrtc.org
358e3367a3 PeerConnection(java): enable HW encoder on N5 for standalone build.
Now that bug 2899 is fixed (r5562) packet-loss is recoverable.  Yay.

BUG=2575
R=noahric@google.com

Review URL: https://webrtc-codereview.appspot.com/8869004

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5568 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-02-18 17:29:37 +00:00
fischman@webrtc.org
c2d75e0708 PeerConnection(java): account for thread shutdown vagaries.
Android's JVM requires threads to detach before they exit, but ONLY if
they needed to AttachCurrentThread.  Conversly, threads that were
attached by the JVM (e.g. the result of making a native call from Java)
must NOT be detached by the application.  This is bug 2441.

The fix for the above is to only pthread_setspecific() for threads that
Attach(), not for already-attached threads.  To ensure that we only
detach Attached threads, added a GetEnv() call to ThreadDestructor(),
which revealed that Oracle's JVM can overly-eagerly clear TLS accounting
data, effectively detaching threads without their consent at shutdown.
Work around this with a specific check.

To guard against (some) regression, added a variant of PeerConnectionTest
that runs on a non-main thread.  This revealed a bug in LinuxDeviceManager
which implicitly assumes its talk_base::Thread has already been
initialized.  Fixed that here too.

BUG=2441
R=henrike@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/8759004

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5567 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-02-18 16:57:36 +00:00
fischman@webrtc.org
3eda643a91 PeerConnection(java): added MediaConstraints support to AudioSource, now fed to AudioTrack.
BUG=2912
R=wu@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/8509004

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5540 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-02-13 04:01:04 +00:00
fischman@webrtc.org
540acde5b3 PeerConnection(java): use MediaCodec for HW-accelerated video encode where available.
Still disabled by default until https://code.google.com/p/webrtc/issues/detail?id=2899 is resolved.

Also (because I needed them during development):
- make AppRTCDemo "debuggable" for extra JNI checks
- honor audio constraints served by apprtc.appspot.com
- don't "restart" video when it hasn't been stopped (affects running with the
  screen off)

BUG=2575
R=noahric@google.com

Review URL: https://webrtc-codereview.appspot.com/8269004

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5539 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-02-13 03:56:14 +00:00
fischman@webrtc.org
d7568a08c3 PeerConnection(java): Add OnRenegotiationNeeded support
Also:
- Make PeerConnectionObserver::OnRenegotiationNeeded() pure virtual to avoid
  this sort of mistake in the future.
- Sprinkle @Override annotations on some callback definitions that were missing
  them.
- Fix a JNI method-signature-lookup typo (s/(V)V/()V/) in PCOJava::OnError()
- Add an explicit ScopedLocalFrameRef to PCOJava::OnError() to match all other
  C++-fired callbacks, for consistency.

BUG=2771
R=wu@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/6829004

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5376 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-01-13 22:04:12 +00:00
fischman@webrtc.org
4177615e87 PeerConnection(java): replace ScopedLocalRef with ScopedLocalRefFrame and fix a local reference leak in OnMessage.
Hopefully the approach of pushing/popping frames will be easier to avoid messing up than remembering to annotate every single local reference with a ScopedLocalRef.

BUG=2761
R=wu@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/6729004

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5355 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-01-09 00:31:17 +00:00
fischman@webrtc.org
f41f06b916 PeerConnection(java): rationalize pointer-to-jlong conversion.
In r4665 I went a bit crazy with the manual reinterpretation of a pointer to a
jlong (to avoid undefined behavior) but that's what reinterpret_cast<> is for.
So use it directly now.
Added a do-nothing DataChannel to AppRTCDemo to regression test this, since the
only repro I've found of the original bug requires ARM ABI (PeerConnectionTest
on ia32 fails to repro).

BUG=2302
R=henrike@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/5489004

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5269 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-12-11 21:07:18 +00:00