31 Commits

Author SHA1 Message Date
Thiago Farina
9bfe3daf73 Cleanup: Remove i420_video_frame.h header.
It is just a pass through to webrtc/video_frame.h. Updated the callers
to include webrtc/video_frame.h instead and removed i420_video_frame.h.

This should fix pbos' TODO in i420_video_frame.h.

Tested on Linux with the following command lines:

$ rm -rf out/
$ ./webrtc/build/gyp_webrtc
$ ninja -C out/Debug

BUG=None
TEST=see above
R=magjed@webrtc.org, pbos@webrtc.org, tommi@webrtc.org
TBR=tommi@webrtc.org

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

Patch from Thiago Farina <tfarina@chromium.org>.

Cr-Commit-Position: refs/heads/master@{#8973}
2015-04-10 10:52:15 +00:00
perkj@webrtc.org
af612d5e07 Reland "Make the entry point for VideoFrames to webrtc const ref I420VideoFrame.""
Original cl description:
This removes the none const pointer entry and SwapFrame.
Since frames delivered using VideoSendStream no longer use the external capture module, VideoSendStream will not get an incoming framerate callback. VideoSendStream now uses a rtc::RateTracker.
Also, the video engine must ensure that time stamps are always increasing.

With this, time stamps (ntp, render_time and rtp timestamps ) are checked and set in ViECapturer::OnIncomingCapturedFrame

This cl was previously reverted in https://webrtc-codereview.appspot.com/46549004/.

Patchset 1 contains the original patch after rebase.
Patshet 2 fix webrtc_perf_tests reported in chromium:465306

Note that chromium:465287 is being fixed in https://webrtc-codereview.appspot.com/43829004/

BUG=1128
R=magjed@webrtc.org, mflodman@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#8776}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8776 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-03-18 09:51:44 +00:00
magjed@webrtc.org
2056ee3e3c Revert "Changed argument occurences of const I420VideoFrame* to const I420VideoFrame& and non-const I420VideoFrame& to I420VideoFrame*."
This reverts commit r8731.

Reason for revert: Breakes Chromium FYI bots.

TBR=hbos, tommi

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

Cr-Commit-Position: refs/heads/master@{#8733}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8733 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-03-16 13:48:18 +00:00
hbos@webrtc.org
2dc5fa69b2 Changed argument occurences of const I420VideoFrame* to const I420VideoFrame& and non-const I420VideoFrame& to I420VideoFrame*.
R=magjed@webrtc.org, tommi@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#8731}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8731 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-03-16 13:02:19 +00:00
magjed@webrtc.org
d7452a0168 Revert "Make the entry point for VideoFrames to webrtc const ref I420VideoFrame."
This reverts commit r8633.

Reason for revert: Performance regressions in browser_tests_new_vie and webrtc_perf_tests.

BUG=1128,chromium:465287,chromium:465306
TBR=pbos,mflodman,perkj

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

Cr-Commit-Position: refs/heads/master@{#8670}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8670 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-03-10 15:13:13 +00:00
perkj@webrtc.org
bcead305a2 Make the entry point for VideoFrames to webrtc const ref I420VideoFrame.
This removes the none const pointer entry and SwapFrame.

Since frames delivered using VideoSendStream no longer use the external capture module, VideoSendStream will not get an incoming framerate callback. VideoSendStream now uses a rtc::RateTracker.
Also, the video engine must ensure that time stamps are always increasing.

With this, time stamps (ntp, render_time and rtp timestamps ) are checked and set in ViECapturer::OnIncomingCapturedFrame

BUG=1128
R=magjed@webrtc.org, mflodman@webrtc.org, pbos@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#8633}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8633 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-03-06 12:38:22 +00:00
guoweis@webrtc.org
5a7dc39277 This is a code clean up. No functional change intended.
Consolidate the enum for capturer/frame rotation we use through out the code base.

BUG=4145
R=mflodman@webrtc.org, perkj@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#8365}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8365 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-02-13 14:32:13 +00:00
guoweis@webrtc.org
1226e926e6 CVO capturer feature: allow unrotated frame flows through the capture pipeline.
split from https://webrtc-codereview.appspot.com/37029004/

This is based on clean up code change at https://webrtc-codereview.appspot.com/37129004

BUG=4145
R=perkj@webrtc.org, pthatcher@webrtc.org, stefan@webrtc.org, tommi@webrtc.org

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

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

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

Cr-Commit-Position: refs/heads/master@{#8339}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8339 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-02-11 18:38:53 +00:00
guoweis@webrtc.org
dc7b02277c CVO capturer feature: allow unrotated frame flows through the capture pipeline.
split from https://webrtc-codereview.appspot.com/37029004/

This is based on clean up code change at https://webrtc-codereview.appspot.com/37129004

BUG=4145
R=perkj@webrtc.org, pthatcher@webrtc.org, stefan@webrtc.org, tommi@webrtc.org

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

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

Cr-Commit-Position: refs/heads/master@{#8338}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8338 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-02-11 18:06:10 +00:00
guoweis@webrtc.org
20e8f22766 CVO capturer feature: allow unrotated frame flows through the capture pipeline.
split from https://webrtc-codereview.appspot.com/37029004/

This is based on clean up code change at https://webrtc-codereview.appspot.com/37129004

BUG=4145
R=perkj@webrtc.org, pthatcher@webrtc.org, stefan@webrtc.org, tommi@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#8337}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8337 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-02-11 17:51:46 +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
pkasting@chromium.org
0b1534c52e Use int64_t for milliseconds more often, primarily for TimeUntilNextProcess.
This fixes a variety of MSVC warnings about value truncations when implicitly
storing the 64-bit values we get back from e.g. TimeTicks in 32-bit objects, and
removes the need for a number of explicit casts.

This also moves a number of constants so they're declared right where they're used, which is easier to read and maintain, and makes some of them of integral type rather than using the "enum hack".

BUG=chromium:81439
TEST=none
R=tommi@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@7905 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-12-15 22:09:40 +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
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
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
wuchengli@chromium.org
637c55f45b Add support of texture frames for video capturer.
This is a reland of r6252. The video_capture_tests failure on
builder Android Chromium-APK Tests should be flaky.

- Add ViECapturer unittest.
- Add CloneFrame function in I420VideoFrame.
- Encoders do not support texture yet and texture frames
are dropped in ViEEncoder for now.

Corresponding CLs:
https://codereview.chromium.org/277943002
http://cl/66620352

BUG=chromium:362437
TEST=WebRTC video stream forwarding, video_engine_core_unittests,
     common_video_unittests and video_capture_tests_apk.
TBR=fischman@webrtc.org, perkj@webrtc.org, stefan@webrtc.org, wu@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@6258 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-05-28 07:00:51 +00:00
wuchengli@chromium.org
89e8ffb395 Revert "Add support of texture frames for video capturer."
This reverts commit 83c89cd003be75d7d06ef9a2b139588f08d280ca.

Reason: The Buildbot has detected a new failure on builder
Android Chromium-APK Tests.

BUG=chromium:362437
TBR=fischman@webrtc.org, perkj@webrtc.org, stefan@webrtc.org, wu@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@6253 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-05-27 14:12:58 +00:00
wuchengli@chromium.org
efe15355ee Add support of texture frames for video capturer.
- Add ViECapturer unittest.
- Add CloneFrame function in I420VideoFrame.
- Encoders do not support texture yet and texture frames
  are dropped in ViEEncoder for now.

Corresponding CLs:
https://codereview.chromium.org/277943002
http://cl/66620352

BUG=chromium:362437
TEST=WebRTC video stream forwarding. Run video_engine_core_unittests and common_video_unittests.
R=fischman@webrtc.org, perkj@webrtc.org, stefan@webrtc.org, wu@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@6252 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-05-27 12:40:27 +00:00
fischman@webrtc.org
b0b135e4c2 VideoCaptureAndroid: support multiple frame-rates per resolution.
Also enables running video_capture_tests_apk on the WebRTC/Chromium APK bots,
assuming GYP_DEFINES includes include_tests=1 and
include_internal_video_capture=1.
This required running VideoCaptureAndroid's camera capture on a dedicated thread, matching other platform's video_capture impls.

BUG=2974,3152
R=wu@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5868 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-04-09 01:18:32 +00:00
mallinath@webrtc.org
7433a088d2 Revert 5444 "Revert 5421 "Fix deadlock on register/unregister ob..."
We reverted the r5421 to allow us roll webrtc to chrome without any modifications
to libjingle. Since webrtc is rolled with r5444, we can add back the original CL
and changes to libjingle will be upstreamed in the next roll.

TBR=andresp@webrtc.org

> Revert 5421 "Fix deadlock on register/unregister observer while ..."
> 
> Failure to compile on Chromium Internal bots, because of API changes.
> 
> http://chromegw.corp.google.com/i/internal.chromium.webrtc.fyi/builders/Mac/builds/2805/steps/compile/logs/stdio
> 
> You need to follow the steps mentioned in 
> https://docs.google.com/a/google.com/document/d/1aHrmXECnu3-Jovc2-zYI267EaQCYz-IclYyBp9iA9Fc/edit that of a API changer.
> 
> Since I will be rolling the libjingle this week, I can push your changes along with libjingle roll, if you prepare the CLs
> as mentioned in the doc.
> 
> > Fix deadlock on register/unregister observer while there is a an going callback.
> > 
> > BUG=2835
> > R=mallinath@webrtc.org
> > 
> > Review URL: https://webrtc-codereview.appspot.com/7119005
> 
> TBR=andresp@webrtc.org
> 
> Review URL: https://webrtc-codereview.appspot.com/7679004

TBR=mallinath@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5453 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-01-29 00:56:02 +00:00
mallinath@webrtc.org
18586d38bc Revert 5421 "Fix deadlock on register/unregister observer while ..."
Failure to compile on Chromium Internal bots, because of API changes.

http://chromegw.corp.google.com/i/internal.chromium.webrtc.fyi/builders/Mac/builds/2805/steps/compile/logs/stdio

You need to follow the steps mentioned in 
https://docs.google.com/a/google.com/document/d/1aHrmXECnu3-Jovc2-zYI267EaQCYz-IclYyBp9iA9Fc/edit that of a API changer.

Since I will be rolling the libjingle this week, I can push your changes along with libjingle roll, if you prepare the CLs
as mentioned in the doc.

> Fix deadlock on register/unregister observer while there is a an going callback.
> 
> BUG=2835
> R=mallinath@webrtc.org
> 
> Review URL: https://webrtc-codereview.appspot.com/7119005

TBR=andresp@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5444 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-01-27 22:00:57 +00:00
andresp@webrtc.org
8d375c95b7 Fix deadlock on register/unregister observer while there is a an going callback.
BUG=2835
R=mallinath@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5421 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-01-23 23:09:25 +00:00
pbos@webrtc.org
2ffb149c2c Replace VideoFrameI420 with I420VideoFrame.
Gives one less struct/class for I420 video frames.

BUG=2657
R=mflodman@webrtc.org, wu@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5160 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-11-22 13:10:13 +00:00
fischman@webrtc.org
4e65e07e41 VideoCaptureAndroid: rewrote the (standalone) implementation of video capture on Android.
Besides being ~40% the size of the previous implementation, this makes it so
that VideoCaptureAndroid can stop and restart capture, which is necessary to
support onPause/onResume reasonably on Android.

BUG=1407
R=henrike@webrtc.org, wu@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@4915 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-10-03 18:23:13 +00:00
pbos@webrtc.org
a9b74ad716 Include files from webrtc/.. paths in video_capture/.
BUG=1662
R=wu@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@4337 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-07-12 10:03:52 +00:00
pbos@webrtc.org
d900e8bea8 Proper spacing for end-of-namespace comments.
BUG=
R=mflodman@webrtc.org, tina.legrand@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@4293 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-07-03 15:12:26 +00:00
mflodman@webrtc.org
3ba883f0fc Removing functionality for inserting pre-encoded frames instead of raw
video frames. The functionality hasn't been used for a long time and
should be done properly if used in the future.

This is a pre-step for implementing CPU overload control.

R=pbos@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@4194 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-06-07 13:57:57 +00:00
stefan@webrtc.org
b8e7f4cc97 Change capture interface to use NTP capture time.
Move NTP functionality to Clock.

BUG=1563
TEST=trybots and vie_auto_test --automated

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@3842 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-04-12 11:56:23 +00:00
pbos@webrtc.org
dfc5bb9c97 WebRtc_Word32 -> int32_t in video_capture/
BUG=314

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@3811 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-04-10 08:23:13 +00:00
mikhal@webrtc.org
ac993fef2c Adding codecType to OnIncomingCapturedEncodedFrame
partially reverting r3013.

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@3055 4adac7df-926f-26a2-2b94-8c16560cd09d
2012-11-07 17:18:04 +00:00
andrew@webrtc.org
94caca7105 Reorganize modules/video_capture.
- The usual elimination of main/source etc.
- Fully qualify "public" includes.
- Use lowercase for all directory names.

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@3025 4adac7df-926f-26a2-2b94-8c16560cd09d
2012-10-30 21:58:00 +00:00