916 Commits

Author SHA1 Message Date
solenberg
566ef247b9 Move VoiceEngineObserver into AudioSendStream so that we detect typing noises and return properly in GetStats().
BUG=webrtc:4690

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

Cr-Commit-Position: refs/heads/master@{#10548}
2015-11-06 23:34:58 +00:00
noahric
23725e09c6 Remove ICU usage from jni_helpers.cc.
JNI already has jstring<->UTF8 string conversion, so using that should
save ~1mb off android binaries (ICU is *large*), probably around
300-400k after compression.

BUG=

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

Cr-Commit-Position: refs/heads/master@{#10545}
2015-11-06 21:56:11 +00:00
Honghai Zhang
5a846c086b Make ConnectionType public in order to add java NetworkObserver.
BUG=
R=glaznev@webrtc.org, jiayl@google.com

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

Cr-Commit-Position: refs/heads/master@{#10485}
2015-11-02 19:33:30 +00:00
Alex Glaznev
5c3da4b6e9 Call MediaCodec.stop() on separate thread.
MediaCodec.stop() call may hang in some rear cases. To avoid
application hang this call need to be done on separate thread and
possible error reported back to application.
Application may elect to continue executing and use another codec
instance for encoding/decoding or stop the call and exit.

BUG=b/24339249
R=magjed@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#10467}
2015-10-30 22:31:25 +00:00
kwiberg
102c6a61bc Replace rtc:🦗:Settable with rtc::Maybe
The former is very similar to the latter, but less general (mostly in
naming).

This CL, which is the first to use Maybe at scale, also removes the implicit conversion from T to Maybe<T>, since it was agreed that the increased verbosity increased legibility.

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

Cr-Commit-Position: refs/heads/master@{#10461}
2015-10-30 09:47:44 +00:00
asapersson
075fb4bfea MediaCodecVideoEncoder: Add number of quality resolution downscales to Encoded callback.
BUG=

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

Cr-Commit-Position: refs/heads/master@{#10453}
2015-10-29 15:49:21 +00:00
glaznev
e55c42c13e Remove limitation on the amount of maximum pending HW decoder inputs.
Plus log first few decoder frames in and out events.

BUG=b/25287910

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

Cr-Commit-Position: refs/heads/master@{#10439}
2015-10-28 17:30:38 +00:00
Henrik Kjellander
98f53510b2 system_wrappers: rename interface -> include
BUG=webrtc:5095
R=tommi@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#10438}
2015-10-28 17:17:50 +00:00
magjed
83585c9075 VideoCapturerAndroid: More frequent and verbose logging
BUG=b/24437529

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

Cr-Commit-Position: refs/heads/master@{#10434}
2015-10-28 10:27:30 +00:00
deadbeef
18a944bf0a Revert of Adding the ability to change ICE servers through SetConfiguration. (patchset #7 id:120001 of https://codereview.webrtc.org/1391013007/ )
Reason for revert:
Caused compiler warning, breaking Chrome FYI bots.

Original issue's description:
> Adding the ability to change ICE servers through SetConfiguration.
>
> Added a SetIceServers method to PortAllocator. Also added a new
> PeerConnection Initialize method that takes a PortAllocator, in the
> hope that we can get rid of PortAllocatorFactoryInterface, since the
> only substantial thing a factory does is convert the webrtc:: ICE
> servers to cricket:: versions.
>
> Committed: https://crrev.com/d3b26d94399ff539db375a9b84010ee75479d4cf
> Cr-Commit-Position: refs/heads/master@{#10420}

TBR=pthatcher@webrtc.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true

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

Cr-Commit-Position: refs/heads/master@{#10421}
2015-10-27 02:21:45 +00:00
deadbeef
d3b26d9439 Adding the ability to change ICE servers through SetConfiguration.
Added a SetIceServers method to PortAllocator. Also added a new
PeerConnection Initialize method that takes a PortAllocator, in the
hope that we can get rid of PortAllocatorFactoryInterface, since the
only substantial thing a factory does is convert the webrtc:: ICE
servers to cricket:: versions.

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

Cr-Commit-Position: refs/heads/master@{#10420}
2015-10-27 00:55:27 +00:00
deadbeef
8f46c63f6f Revert of Adding the ability to create an RtpSender without a track. (patchset #8 id:140001 of https://codereview.webrtc.org/1413713003/ )
Reason for revert:
Causing a compiler warning, and causing WebRtcBrowserTest.CallAndModifyStream to fail.

Original issue's description:
> Adding the ability to create an RtpSender without a track.
>
> This CL also changes AddStream to immediately create a sender, rather
> than waiting until the track is seen in SDP. And the PeerConnection now
> builds the list of "send streams" from the list of senders, rather than
> the collection of local media streams.
>
> Committed: https://crrev.com/ac9d92ccbe2b29590c53f702e11dc625820480d5
> Cr-Commit-Position: refs/heads/master@{#10414}

TBR=pthatcher@webrtc.org,pthatcher@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true

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

Cr-Commit-Position: refs/heads/master@{#10417}
2015-10-26 21:11:25 +00:00
deadbeef
ac9d92ccbe Adding the ability to create an RtpSender without a track.
This CL also changes AddStream to immediately create a sender, rather
than waiting until the track is seen in SDP. And the PeerConnection now
builds the list of "send streams" from the list of senders, rather than
the collection of local media streams.

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

Cr-Commit-Position: refs/heads/master@{#10414}
2015-10-26 18:48:26 +00:00
magjed
401fb0648a SurfaceTextureHelper: Remove use of quitSafely() because it's API lvl 18
There is no reason to not just quit() in release().

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

Cr-Commit-Position: refs/heads/master@{#10394}
2015-10-24 01:17:59 +00:00
magjed
238b15d543 SurfaceViewRenderer: Remove use of quitSafely() because it's API lvl 18
I replaced quitSafely() with a CountDownLatch. The reason for not using ThreadUtils.invokeUninterruptibly() is that I want to stop accepting frames asap, and invokeUninterruptibly() would still accept frames during the waiting time.

BUG=webrtc:4742

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

Cr-Commit-Position: refs/heads/master@{#10393}
2015-10-24 01:14:33 +00:00
magjed
c3402fc3ef EGL10.eglCreateWindowSurface(): Replace Surface input with SurfaceHolder
Sending a Surface as input to EGL10.eglCreateWindowSurface() is not supported everywhere. See this code as reference:
ae9610220b/opengl/tools/glgen/stubs/egl/eglCreateWindowSurface.java (42)

Sending a SurfaceHolder as input instead should hopefully be supported everywhere, and this is also what GlSurfaceView does:
http://grepcode.com/file/repository.grepcode.com/java/ext/com.google.android/android/5.1.1_r1/android/opengl/GLSurfaceView.java#1076

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

Cr-Commit-Position: refs/heads/master@{#10392}
2015-10-24 01:13:20 +00:00
Peter Boström
49e196af40 Remove VideoFrameType aliases for FrameType.
No longer used in Chromium, so these can now be removed.

BUG=webrtc:5042
R=mflodman@webrtc.org
TBR=magjed@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#10390}
2015-10-23 13:58:27 +00:00
magjed
8c425aa8f6 Android: Replace EGL14 with EGL10
The purpose with this change is to support older API levels by replacing EGL14 (API lvl 17) with EGL10 (API lvl 1). The main purpose is to lower API lvl requirement for SurfaceViewRenderer from API lvl 17 to API lvl 15. Also, camera texture capture will work on API lvl < 17 (and texture encode/decode in MediaCodec, but we don't use MediaCodec below API lvl 18?).

GLSurfaceView/VideoRendererGui is already using EGL10.

EGL 1.1 - 1.4 added new functionality, but won't affect performance. We don't need the functionality, so there should be no reason to not use EGL 1.0.

I have profiled AppRTCDemo with Qualcomm Trepn Profiler on a Nexus 5 and Nexus 6 and couldn't see any difference.

Specifically, this CL:
 * Update EglBase to use EGL10 instead of EGL14.
 * Update imports from EGL14 to EGL10 in a lot of files (plus changing import order in some cases).
 * Update VideoCapturerAndroid to always support texture capture.

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

Cr-Commit-Position: refs/heads/master@{#10378}
2015-10-22 23:52:45 +00:00
tfarina
ff134ebd3d talk: Use NDEBUG macro.
NDEBUG is a standard macro with the semantic "Not Debug" for C89, C99, C++98,
  C++2003, C++2011, C++2014 standards. There are no _DEBUG macros in the
  standards.

_DEBUG is a macro Visual Studio defines when you specify the /MTd or /MDd
option.

http://stackoverflow.com/a/29253284/5237416

This should help fix the TODO in third_party/libjingle/libjingle.gyp

BUG=None
R=sergeyu@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#10377}
2015-10-22 23:15:25 +00:00
deadbeef
c80741f895 Fixing some issues with the direction attribute of m-lines in offers.
By default, we'll now offer to receive if already receiving
(meaning that the last remote description contained a track).

Also, m-lines that are neither receiving nor sending are now correctly
marked "inactive".

Also moved some logic relating to default tracks out of webrtcsdp.cc,
such that now the direction seen by upper layers will always be
consistent with the consumed/produced SDP.

BUG=528089

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

Cr-Commit-Position: refs/heads/master@{#10376}
2015-10-22 20:14:51 +00:00
ivoc
797ef12324 Added StopAecDump function to PeerConnectionFactory.
The function to stop recording an AEC dump was missing from the PeerConnectionFactory interface (only a start function was provided). This CL adds the missing stop function.

BUG=webrtc:4741

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

Cr-Commit-Position: refs/heads/master@{#10372}
2015-10-22 10:25:45 +00:00
hbos
3b7c793574 New DtlsIdentityStoreInterface::RequestIdentity added that takes rtc::KeyParams. The old RequestIdentity still exists that take rtc::KeyType.
Default implementation added that invokes the other RequestIdentity method, adding default parameters or dropping the parameters.

This CL is in preparation for removing the RequestIdentity that takes rtc::KeyType, necessary as to not break Chromium.

BUG=webrtc:4927, 528250

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

Cr-Commit-Position: refs/heads/master@{#10351}
2015-10-21 08:44:27 +00:00
asapersson
86b016027d Add stats for average QP per frame for VP8 (for received video streams):
"WebRTC.Video.Decoded.VP8.Qp"

BUG=chromium:512752

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

Cr-Commit-Position: refs/heads/master@{#10349}
2015-10-21 06:55:32 +00:00
olka
30a5b5e9fb passing |buffer| by reference in AndroidVideoCapturer::OnIncomingFrame
BUG=webrtc:5062

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

Cr-Commit-Position: refs/heads/master@{#10342}
2015-10-20 18:05:02 +00:00
Alex Glaznev
c6aec4b8ed Fix HW video codec stack traces reporting.
Print stack traces for active instance only.
Also add Nexus 4 to H.264 encoder blacklist.

R=wzh@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#10329}
2015-10-19 23:39:33 +00:00
honghaiz
023f3ef029 Create network change notifier and pass the event to NetworkManager
BUG=

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

Cr-Commit-Position: refs/heads/master@{#10325}
2015-10-19 16:39:38 +00:00
pbos
22993e1a0c Unify FrameType and VideoFrameType.
Prevents some heap allocation and frame-type conversion since interfaces
mismatch. Also it's less confusing to have one type for this.

BUG=webrtc:5042
R=magjed@webrtc.org, mflodman@webrtc.org, henrik.lundin@webrtc.org, solenberg@webrtc.org, stefan@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#10320}
2015-10-19 09:39:15 +00:00
Alex Glaznev
9781152e04 Add new Android camera events.
Add events to track when camera is requested to open,
when first camera frame is available and when camera is
closed.

BUG=b/24271359
R=perkj@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#10306}
2015-10-16 20:10:24 +00:00
pbos
be16f79818 Remove simulcast bitrate modes.
Instead always use the SBM_VERY_HIGH setting.

BUG=webrtc:4885
R=hta@webrtc.org, mflodman@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#10305}
2015-10-16 19:49:47 +00:00
perkj
12f680214e Revert "Prepare MediaCodecVideoEncoder for surface textures."
This reverts commit 90754174d98d6b71fd4aaed897bd54980f7e59c4.

Revert "Fix use of scaler in MediaCodecVideoEncoder"

This reverts commit ec93628e75fdb81f23635b39b5f3da846bcefd21.

R=magjed@webrtc.org
TBR=glaznev@webrtc.org

BUG=webrtc:4993 b/24984012

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

Cr-Commit-Position: refs/heads/master@{#10300}
2015-10-16 11:31:57 +00:00
ivoc
112a3d81db Added functions on libjingle API to start and stop the recording of an RtcEventLog.
BUG=webrtc:4741

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

Cr-Commit-Position: refs/heads/master@{#10297}
2015-10-16 09:22:23 +00:00
deadbeef
cbc9507755 Temporarily rename P2PTestConductor.
Need to do this because some build bots were relying on the previous
name, in order to skip tests that were expected to time out.

TBR=pthatcher@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#10295}
2015-10-16 02:32:04 +00:00
deadbeef
5e97fb5c99 Don't create remote streams if m-line direction doesn't include "send".
BUG=webrtc:5054

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

Cr-Commit-Position: refs/heads/master@{#10293}
2015-10-15 19:49:14 +00:00
deadbeef
af1b59cf27 Cleaning up peerconnection_unittest.
Merging the PeerConnectionTestClientBase and JsepTestClient classes,
since there's no real logical distinction. This should make it slightly
less painful to write new PeerConnection tests.

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

Cr-Commit-Position: refs/heads/master@{#10292}
2015-10-15 19:08:47 +00:00
stefan
c1aeaf0dc3 Wire up packet_id / send time callbacks to webrtc via libjingle.
BUG=webrtc:4173

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

Cr-Commit-Position: refs/heads/master@{#10289}
2015-10-15 14:26:17 +00:00
magjed
543b6ca30a Revert of "Android MediaCodecVideoDecoder: Manage lifetime of texture frames" https://codereview.webrtc.org/1378033003/
The code that depends on the reverted CL is disabled but not removed. NativeHandleImpl is reverted to the previous implementation, and the new implementation is renamed to NativeTextureHandleImpl. Texture capture can not be used anymore, because it will crash in peerconnection_jni.cc.

Reason for revert:
Increased HW decoder latency and crashes related to that. Also suspected cause of video tearing.

Original issue's description:
> This CL should be the last one in a series to finally
> unblock camera texture capture.
>
> The SurfaceTexture.updateTexImage() calls are moved from
> the video renderers into MediaCodecVideoDecoder, and the
> destructor of the texture frames will signal
> MediaCodecVideoDecoder that the frame has returned. This
> CL also removes the SurfaceTexture from the native handle
> and only exposes the texture matrix instead, because only
> the video source should access the SurfaceTexture.
>
> BUG=webrtc:4993
> R=glaznev@webrtc.org, perkj@webrtc.org
>
> Committed: https://crrev.com/91b348c7029d843e06868ed12b728a809c53176c
> Cr-Commit-Position: refs/heads/master@{#10203}

TBR=glaznev
BUG=webrtc:4993

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

Cr-Commit-Position: refs/heads/master@{#10288}
2015-10-15 12:45:13 +00:00
deadbeef
d59daf8023 Merging BaseSession code into WebRtcSession.
After the TransportController CL, BaseSession does little more than
hold a state and an error, and act as an intermediary for the
TransportController. So it doesn't make sense for it to be its own
class.

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

Cr-Commit-Position: refs/heads/master@{#10281}
2015-10-14 22:02:50 +00:00
deadbeef
ab9b2d1516 Reland of Moving MediaStreamSignaling logic into PeerConnection. (patchset #1 id:1 of https://codereview.webrtc.org/1403633005/ )
Reason for reland:
The original CL actually didn't break browser_tests; it was
just a coincidence that it started failing.

Original issue's description:
> Revert of Moving MediaStreamSignaling logic into PeerConnection. (patchset #10 id:180001 of https://codereview.webrtc.org/1393563002/ )
>
> Reason for revert:
> Broke browser_tests on Mac. Still need to investigate the cause.
>
> Original issue's description:
> > Moving MediaStreamSignaling logic into PeerConnection.
> >
> > This needs to happen because in the future, m-lines will be offered
> > based on the set of RtpSenders/RtpReceivers, rather than the set of
> > tracks that MediaStreamSignaling knows about.
> >
> > Besides that, MediaStreamSignaling was a "glue class" without
> > a clearly defined role, so it going away is good for other
> > reasons as well.
> >
> > Committed: https://crrev.com/97c392935411398b506861601c82e31d95c591f0
> > Cr-Commit-Position: refs/heads/master@{#10268}
>
> TBR=pthatcher@webrtc.org
> NOPRESUBMIT=true
> NOTREECHECKS=true
> NOTRY=true
>
> Committed: https://crrev.com/fc648b6d934e936f4d9a32c813364b331536ec3b
> Cr-Commit-Position: refs/heads/master@{#10269}

TBR=pthatcher@webrtc.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true

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

Cr-Commit-Position: refs/heads/master@{#10277}
2015-10-14 18:33:20 +00:00
magjed
6d387c0e92 Android MediaCodecVideoDecoder: Limit max pending frames to number of input buffers
This CL should reduce the number of timeouts for dequeueInputBuffer() which results in the log "MediaCodecVideo: dequeueInputBuffer error" followed by software fallback for VP8/VP9 and codec restart for H264.

A timeout always happen for dequeueInputBuffer() when frames_received_ > frames_decoded_ + num_input_buffers. The following code tries to drain the decoder before enqueuing more input buffers:
// Try to drain the decoder and wait until output is not too
// much behind the input.
if (frames_received_ > frames_decoded_ + max_pending_frames_) {
  ALOGV("Received: %d. Decoded: %d. Wait for output...",
      frames_received_, frames_decoded_);
  if (!DeliverPendingOutputs(jni, kMediaCodecTimeoutMs,
                             true /* dropFrames */)) {
    ALOGE << "DeliverPendingOutputs error";
    return ProcessHWErrorOnCodecThread();
  }
  if (frames_received_ > frames_decoded_ + max_pending_frames_) {
    ALOGE << "Output buffer dequeue timeout";
    return ProcessHWErrorOnCodecThread();
  }
  ...
}

However, for H264, |max_pending_frames_| can currently be larger than the number of input buffers so that the code above is never executed. This CL limits |max_pending_frames_| to the number of input buffers.

TBR=glaznev
BUG=b/24867188,b/24864151

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

Cr-Commit-Position: refs/heads/master@{#10273}
2015-10-14 11:02:08 +00:00
deadbeef
fc648b6d93 Revert of Moving MediaStreamSignaling logic into PeerConnection. (patchset #10 id:180001 of https://codereview.webrtc.org/1393563002/ )
Reason for revert:
Broke browser_tests on Mac. Still need to investigate the cause.

Original issue's description:
> Moving MediaStreamSignaling logic into PeerConnection.
>
> This needs to happen because in the future, m-lines will be offered
> based on the set of RtpSenders/RtpReceivers, rather than the set of
> tracks that MediaStreamSignaling knows about.
>
> Besides that, MediaStreamSignaling was a "glue class" without
> a clearly defined role, so it going away is good for other
> reasons as well.
>
> Committed: https://crrev.com/97c392935411398b506861601c82e31d95c591f0
> Cr-Commit-Position: refs/heads/master@{#10268}

TBR=pthatcher@webrtc.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true

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

Cr-Commit-Position: refs/heads/master@{#10269}
2015-10-13 23:43:11 +00:00
deadbeef
97c3929354 Moving MediaStreamSignaling logic into PeerConnection.
This needs to happen because in the future, m-lines will be offered
based on the set of RtpSenders/RtpReceivers, rather than the set of
tracks that MediaStreamSignaling knows about.

Besides that, MediaStreamSignaling was a "glue class" without
a clearly defined role, so it going away is good for other
reasons as well.

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

Cr-Commit-Position: refs/heads/master@{#10268}
2015-10-13 20:23:48 +00:00
Alex Glaznev
a0751c5c06 Cleanup OWNERS of talk/app/webrtc.
R=juberti@google.com

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

Cr-Commit-Position: refs/heads/master@{#10267}
2015-10-13 16:53:37 +00:00
perkj
73f44f6481 VideoCapturerAndroid, only you SurfaceViewHelper when capturing to textures.
SurfaceViewHelper requires EGL14 that was added in API level 17. Since the SurfaceViewHelper is only neeed when we capture to textures, this cl change back to not use it when we are capturing to byte buffers.

Also, thread.quitsafely was added in level 18. Instead a new ThreadUtil method has been added for this.

BUG=b/24782220
TEST = run
ninja -C out/Debug libjingle_peerconnection_android_unittest && CHECKOUT_SOURCE_ROOT=`pwd` build/android/adb_install_apk.py --debug out/Debug/apks/libjingle_peerconnection_android_unittest.apk && ./third_party/android_tools/sdk/platform-tools/adb shell am instrument -w -e class org.webrtc.VideoCapturerAndroidTest org.webrtc.test/android.test.InstrumentationTestRunner on a device running Android 4.1 (I tried Nexus 7, the first version)

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

Cr-Commit-Position: refs/heads/master@{#10265}
2015-10-13 15:15:13 +00:00
perkj
ec93628e75 Fix use of scaler in MediaCodecVideoEncoder
This bug fixes an issue introduced in https://codereview.webrtc.org/1396073003/

BUG=webrtc:5067
TEST= set new_bit_rate = 200 in MediaCodecVideoEncoder::SetRatesOnCodecThread and compile and run ApprtDemo
R=magjed@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#10263}
2015-10-13 12:04:08 +00:00
Alex Glaznev
325d414e8c Add option to print peer connection factory Java stack traces.
Removing static declaration for media codec thread to allow
running multiple HW codec instances.

R=wzh@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#10258}
2015-10-12 21:56:09 +00:00
Alex Glaznev
a5b62d987a Replace API v23 calls.
R=jiayl@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#10257}
2015-10-12 20:56:29 +00:00
Magnus Jedvert
fc950848e3 Fix: RefCountInterface: Make AddRef() and Release() const
The landed CL contained some unwanted changes.

TBR=tommi

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

Cr-Commit-Position: refs/heads/master@{#10255}
2015-10-12 14:10:50 +00:00
magjed
52a30e31f1 Reland of Android: Put common native VideoFrameBuffer implementation in androidvideocapturer_jni (patchset #1 id:1 of https://codereview.webrtc.org/1389283003/ )
Reason for revert:
Nothing wrong with the original CL, the bug was in rtc::Bind(), which is fixed now (https://codereview.webrtc.org/1403683004/).

Original issue's description:
> Revert of Android: Put common native VideoFrameBuffer implementation in androidvideocapturer_jni (patchset #1 id:1 of https://codereview.webrtc.org/1391403004/ )
>
> Reason for revert:
> Crashes on AppRTCDemo disconnect
>
> Original issue's description:
> > Android: Put common native VideoFrameBuffer implementation in native_handle_impl.cc
> >
> > BUG=webrtc:4993
> > R=perkj@webrtc.org
> >
> > Committed: https://crrev.com/60472216da0644b49ed5f9fa51c51d4874afafa7
> > Cr-Commit-Position: refs/heads/master@{#10248}
>
> TBR=perkj@webrtc.org
> NOPRESUBMIT=true
> NOTREECHECKS=true
> NOTRY=true
> BUG=webrtc:4993
>
> Committed: https://crrev.com/962c26bfd6c3eb3cf7402daaab89404ae38dd534
> Cr-Commit-Position: refs/heads/master@{#10249}

TBR=perkj@webrtc.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=webrtc:4993

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

Cr-Commit-Position: refs/heads/master@{#10254}
2015-10-12 13:53:27 +00:00
Magnus Jedvert
1b40a9a8af RefCountInterface: Make AddRef() and Release() const
This CL makes AddRef() and Release() const member methods and the refcount integer mutable. This is reasonable, because they only manage the lifetime of the object, and this is also how it's done in Chromium.

The purpose is to be able to capture a const pointer in a scoped_refptr, which is currenty impossible. The practial problem this CL solves is this:

void Foo::Bar() const {}

rtc::Callback0<void> Foo::MakeClosure() const {
  return rtc::Bind(&Foo::Bar, this);
}

We currently capture |this| as const Foo*. With this CL, |this| will be captured as scoped_refptr<const Foo>.

A test is also added in bind_unittest to check this behaviour.

BUG=webrtc:5065
R=perkj@webrtc.org, tommi@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#10253}
2015-10-12 13:50:50 +00:00
perkj
90754174d9 Prepare MediaCodecVideoEncoder for surface textures.
This make small refactorings to MediaVideoEncoder to prepare for adding support to encode from textures. The C++ layer does not have any functional changes.
- Moves ResetEncoder to always work on the codec thread
- Adds use of ThreadChecker.
- Change Java MediaEncoder.Init to return true or false and introduce method getInputBuffers.
- Add simple unit test for Java MediaCodecVideoEncoder.

BUG=webrtc:4993

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

Cr-Commit-Position: refs/heads/master@{#10250}
2015-10-12 10:04:22 +00:00