Commit Graph

267 Commits

Author SHA1 Message Date
9c09e6ee2b Add high perf mode to VP8
R=marpan@webrtc.org, stefan@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@6470 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-06-17 16:32:08 +00:00
4ef254f781 Enable videoprocessor_integrationtest tests on android.
R=kjellander@webrtc.org, stefan@webrtc.org
TBR=holmer@google.com

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@6316 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-06-03 16:42:03 +00:00
21a5d449b7 Increase VPMVideoDecimator's initial max_frame_rate_ to 60, which allow us potentially do 60fps.
BUG=
R=stefan@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@6274 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-05-29 19:43:26 +00:00
88fbb2d86b Switch to using base/constructormagic.h and remove system_wrappers/interface/constructor_magic.h.
Same as https://webrtc-codereview.appspot.com/19519004. The issue in
http://chromegw.corp.google.com/i/internal.chromium.webrtc.fyi/builders/Linux...
is solved by this change
http://src.chromium.org/viewvc/chrome/trunk/src/third_party/libjingle/libjing...
(tested locally).

BUG=3380
R=andrew@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@6218 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-05-21 21:18:46 +00:00
2fa7f79094 Revert 6202 "Switch to using base/constructormagic.h and remove ..."
> Switch to using base/constructormagic.h and remove system_wrappers/interface/constructor_magic.h.
> 
> BUG=N/A
> R=andrew@webrtc.org
> 
> Review URL: https://webrtc-codereview.appspot.com/19519004

TBR=henrike@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@6210 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-05-21 11:07:29 +00:00
125ffd709d Switch to using base/constructormagic.h and remove system_wrappers/interface/constructor_magic.h.
BUG=N/A
R=andrew@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@6202 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-05-20 15:20:44 +00:00
70bb2d5755 Revert r6198 "Expose the original packet length in in the RTP play tools."
TBR=henrik.lundin@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@6200 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-05-20 13:25:48 +00:00
e208458643 Expose the original packet length in in the RTP play tools.
R=henrik.lundin@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@6198 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-05-20 13:09:16 +00:00
a36db970bd Suppress GMOCK printouts from TestVideoSenderWithVp8
Adding a missing EXPECT_CALL.

R=stefan@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@6196 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-05-20 11:16:10 +00:00
ebb467fdc8 Avoid NACK-list flush error on keyframe packets.
Receiver code used to indicate a flush error even if the incoming packet
is a keyframe, forcing a request of a keyframe. Now it takes this
keyframe into account and doesn't error as the stream is decodable from
this point.

BUG=
R=stefan@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@6188 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-05-19 15:28:02 +00:00
64339a7069 Don't crash if a frame returned from the decoder is too old.
BUG=crbug/371805
R=pbos@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@6187 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-05-19 13:31:35 +00:00
a36ad6929d Add webrtc field trials API.
From now on it is expected that code linking system_wrappers.gyp:system_wrappers
provides an implementation for field_trial API or links with the default one in
system_wrappers.gyp:field_trial_default.

Note: Since there is no use of webrtc::field_trial API inside webrtc this CL on
itself does not forces the clients to actually define it. It however lays the
API and updates the gyp rules to link with so that it is ready to use.

Tested: Introduced a use of field trial in system wrappers and make sure all
bots were building successfully.

BUG=crbug/367114
R=tommi@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@6147 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-05-14 12:24:04 +00:00
66773a032a Move timestamp_extrapolator and rtp_to_ntp to system wrapper so that it can be shared by both audio and video engine.
BUG=3111
TEST=try bots
R=mflodman@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@6074 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-05-07 17:09:44 +00:00
ed4cb56575 Remove timestamp_extrapolator's dependency to Clock and vcm defines.
TEST=existing tests
BUG=
R=stefan@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@6058 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-05-06 04:50:49 +00:00
8f69330310 Replace scoped_array<T> with scoped_ptr<T[]>.
scoped_array is deprecated. This was done using a Chromium clang tool:
http://src.chromium.org/viewvc/chrome/trunk/src/tools/clang/rewrite_scoped_ar...

except for the few not-built-on-Linux files which were updated manually.

TESTED=trybots
BUG=2515
R=niklas.enbom@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5985 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-04-25 23:10:28 +00:00
c0a15b7ddc Fix crashes due to dangling external decoder pointer.
When checking whether we need to release external decoder,
we have to do pointer comparison. We can't rely on payload
types, because payload types can be stale (e.g. before we
decode the first video frame after RegisterReceiveCodec).
This leaves a dangling pointer to external decoder, which
leads to crashes later, after we actually delete the
external decoder object.
This change has been verified in Chromecast code tree.

BUG=chromium:335539
R=stefan@webrtc.org

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

Patch from Sergey Volk <servolk@chromium.org>.

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5922 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-04-17 01:22:48 +00:00
7de47bce12 Remove use of tmpnam.
This solves compilation with the Mac SDK 10.9.

BUG=3120, 3151
TEST=git try -t modules_tests:VideoProcessorIntegrationTest*
R=fischman@webrtc.org, henrike@webrtc.org, stefan@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5917 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-04-16 08:04:26 +00:00
6c75c98964 Propagate capture ntp timestamp from rtp to renderer.
Mostly the interface changes, the real implementation of ntp timestamp will come in a follow up cl.

TEST=new tests and try bots
BUG=3111
R=niklas.enbom@webrtc.org, stefan@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5911 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-04-15 17:46:33 +00:00
2c89b5cb27 Make everyone an OWNER for .gyp/.gypi add/delete purposes, non-talk/ edition.
This CL brought to you by:
$ for d in $(for f in $(git ls-files '*gyp' '*gypi'); do dirname $f; done|sort|uniq|grep -v '^\.$'); do echo -e "\n# These are for the common case of adding or renaming files. If you're doing\n# structural changes, please get a review from a reviewer in this file.\nper-file *.gyp=*\nper-file *.gypi=*" >> $d/OWNERS; done
$ for d in $(for f in $(git ls-files '*gyp' '*gypi'); do dirname $f; done|sort|uniq|grep -v '^\.$'); do git add $d/OWNERS; done

(and then removed the talk/ impact)

R=niklas.enbom@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5903 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-04-14 20:08:03 +00:00
34c5da6b5e Cleaned up logging in video_coding.
Converted all calls to WEBRTC_TRACE to LOG(). Also removed a large number of less useful logs.

BUG=3153
R=mflodman@webrtc.org, pbos@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5887 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-04-11 14:08:35 +00:00
dc80bae2a6 Convert logs in rtp rtcp module from WEBRTC_TRACE into LOG.
Clean some logs and add asserts in the way.

BUG=3153
R=mflodman@webrtc.org, stefan@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5861 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-04-08 11:06:12 +00:00
0e65fdaa3b Fix "unreachable code" warnings (MSVC warning 4702) in webrtc.
BUG=chromium:346399
TEST=none
R=tommi@webrtc.org

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

Patch from Peter Kasting <pkasting@chromium.org>.

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5747 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-03-21 10:26:42 +00:00
1faef7d084 Use codec width/height as the encoded_image width/height.
The raw_->w and raw_->h which are the stored image width/height may not be the encoded image size in the case when the incoming frame has a odd size.

R=marpan@google.com, marpan@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5739 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-03-20 17:00:46 +00:00
3f655aa5f7 Add #include <cstdlib> for std::abs.
IWYU violation. Fixes a breakage in the libc++ build of Chromium.

BUG=
R=earthdok@chromium.org, stefan@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5715 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-03-18 11:10:11 +00:00
b5f3029302 Replace labs with std::abs.
Resolves clang 3.5 warnings on OS X for -Wabsolute-value.

BUG=chromium:351479
R=andrew@webrtc.org, thakis@chromium.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5692 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-03-13 08:53:39 +00:00
3ecc162d01 Remove std:: prefixes from C functions in webrtc/.
std::memcpy -> memcpy for instance. This change was motivated by a
compile report complaining that std::rand() was used instead of rand(),
probably with a stdlib.h include instead of cstdlib. Use of C functions
without the std:: prefix is a lot more common, so removing std:: to
address this.

BUG=
R=tommi@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5658 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-03-07 15:23:34 +00:00
a0d11da359 Remove upper check for number of cores in VCM, I didn't find any good reasons for checking this.
BUG=2990
TEST=Manually adding a high number without any noticable change.
R=stefan@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5645 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-03-05 15:18:45 +00:00
0117d1c48c Fix compilation errors under clang 3.5.
Enables building tip-of-tree clang which introduces new warnings that
cause compilation errors in our code base (-Werror).

BUG=
R=andrew@webrtc.org, stefan@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5630 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-03-03 16:47:03 +00:00
7f52a6ef2b Split the implementation of VP8Encoder|Decoder::Create into a seperated file
(vp8_factory.cc).

R=fischman@webrtc.org, marpan@google.com, marpan@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5606 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-02-24 23:56:39 +00:00
1dd9b4d98e Add BWE tools for parsing RTP files.
bwe_rtp_play feeds packets from an RTP file into the BWE and prints the estimates.
bwe_rtp_to_text parses an RTP file and outputs the result to a text file.

R=henrik.lundin@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5466 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-01-31 09:15:48 +00:00
f7c6e743b3 Fix deadlock in video_receiver.cc.
In webrtc::vcm::VideoReceiver::ResetDecoder(), the lock order is:
1. take _receiveCritSect,
2. take process_crit_sect_

This conflicts with the follow code path:
1. webrtc::vcm::VideoReceiver::Process(), take process_crit_sect_
  call -> webrtc::vcm::VideoReceiver::NackList(),
2.  with nackStats=kNackKeyFrameRequest, take _receiveCritSect

BUG=2861
TEST=trybots
R=sprang@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5456 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-01-29 10:27:51 +00:00
99eab02fb1 Fix "field '_testNo' is uninitialized" warnings.
BUG=2849
R=stefan@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5434 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-01-27 09:30:35 +00:00
39fcfd78ae Remove empty VideoCodecGeneric struct.
Struct was added prematurely and triggers a warning with
-Wextern-c-compat in latest clang.

R=henrika@webrtc.org
BUG=

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5383 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-01-14 12:55:59 +00:00
c5aeb2aa15 Make code simpler on VCMEncodedCallback.
R=marpan@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5358 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-01-09 08:04:32 +00:00
1df9dc3957 Isolate register post encode callback in video coding module to simplify code and critical sections.
R=marpan@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5357 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-01-09 08:01:57 +00:00
b08a12d6e8 Isolate debug recording from video sender into a thread safe small class.
R=marpan@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5353 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-01-08 12:38:22 +00:00
e682aa5077 Refactoring MediaOptimization so it can easily be turned into a thread-safe class.
BUG=2732
R=stefan@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5322 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-12-19 10:59:48 +00:00
724947b8ef Add SwapFrame() to VideoSendStreamInput.
Optionally prevents doing a frame copy when putting frames into a
VideoSendStream. PutFrame() is still there, which copies the frame.

Also removes time_since_capture_ms as a parameter, since
I420VideoFrame::render_time_ms() denotes when the frame was captured.

BUG=2657
R=mflodman@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5265 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-12-11 16:26:16 +00:00
71f055fb41 Add send frame rate statistics callback
BUG=2235
R=mflodman@webrtc.org, pbos@webrtc.org, stefan@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5213 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-12-04 15:09:27 +00:00
4070935f4f Implement and test EncodedImageCallback in new ViE API.
R=mflodman@webrtc.org, pbos@webrtc.org, stefan@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5179 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-11-26 11:41:59 +00:00
ce8e0936d9 Rename AutoMute to SuspendBelowMinBitrate
Changes all instances throughout the WebRTC stack.

BUG=2436
R=mflodman@webrtc.org, stefan@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5130 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-11-18 12:18:43 +00:00
57eb858698 Remove ".." from include_dirs in build/common.
BUG=1662
TEST=compile on trybots
R=tina.legrand@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5107 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-11-11 10:20:27 +00:00
bde3056567 Fix for video_processor_intergration_tests to run in parallel.
BUG=2601.
R=pbos@webrtc.org, stefan@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5091 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-11-06 20:59:29 +00:00
0aeb22e32c Adding tl0idx consideration for continuity
R=stefan@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5046 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-10-28 22:26:14 +00:00
1a3a6e5340 Removing the threshold from the auto-mute APIs
The threshold is now set equal to the minimum bitrate of the
encoder. The test is also changed to have the REMB values
depend on the minimum bitrate from the encoder.

BUG=2436
R=pbos@webrtc.org, stefan@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5040 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-10-28 10:16:14 +00:00
37bb4974e7 Expose VideoCodingModule's decoder stats up the stack from VCMTiming to chrome://webrtc-internals.
R=juberti@google.com, mikhal@webrtc.org, stefan@webrtc.org, wu@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5027 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-10-23 23:59:45 +00:00
31628aae7e Upgrade scoped_ptr to Chromium's latest version.
Analogous to the recent libjingle change: http://cl/54929753-p10.
This supports scoped_ptr<T[]> and scoped_ptr<C, FreeDeleter> rather
than scoped_array and scoped_ptr_malloc respectively.

- Add Chromium's template-based COMPILE_ASSERT. We didn't have this
previously in order to support the macro in C. Instead, move the
existing macro to compile_assert_c.h.
- Additionally copy the move.h and template_util.h depedencies and add
the WARN_UNUSED_RESULT macro.
- Leave scoped_array and scoped_ptr_malloc for now, but mark as
deprecated.
- Remove scoped_ptr foo(NULL) use. The default constructor handles it.
- Remove the now redundant COMPILE_ASSERT from peerconnection_jni.cc.
- Add a CHECK_ARRAY_SIZE macro to rtp_format_vp8_unittest.cc to remove
some repeated code.

TESTED=trybots
R=pbos@webrtc.org, tommi@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5015 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-10-22 12:50:00 +00:00
943e3b95a6 Add CurrentLayerId() to temporal layers.
same patch as: https://webrtc-codereview.appspot.com/2427004/

TBR=holmer@google.com

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5012 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-10-22 01:55:07 +00:00
be9c560aab Revert r4913 that reverts r4911. Original CL description:
"Adding temporal layer strategy that keeps base layer framerate at an acceptable value."

R=holmer@google.com, stefan@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@4920 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-10-04 13:11:31 +00:00
44db9d1a57 Revert 4911 "Adding temporal layer strategy that keeps base laye..."
> Adding temporal layer strategy that keeps base layer framerate at an acceptable value.
> 
> R=stefan@webrtc.org
> 
> Review URL: https://webrtc-codereview.appspot.com/2272005

TBR=andresp@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@4913 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-10-03 17:42:07 +00:00