f35072019b
VP9: Add automaticeResize to codec setting.
...
Added unittest.
This setting allows for dynamic resizing at low bitrates.
Setting is off by default for now.
BUG=
R=mflodman@webrtc.org , stefan@webrtc.org
TBR=stefan@webrtc.org
Review URL: https://codereview.webrtc.org/1323943007 .
Cr-Commit-Position: refs/heads/master@{#9976}
2015-09-17 19:16:16 +00:00
91d6edef35
Add RTC_ prefix to (D)CHECKs and related macros.
...
We must remove dependency on Chromium, i.e. we can't use Chromium's base/logging.h. That means we need to define these macros in WebRTC also when doing Chromium builds. And this causes redefinition.
Alternative solutions:
* Check if we already have defined e.g. CHECK, and don't define them in that case. This makes us depend on include order in Chromium, which is not acceptable.
* Don't allow using the macros in WebRTC headers. Error prone since if someone adds it there by mistake it may compile fine, but later break if a header in added or order is changed in Chromium. That will be confusing and hard to enforce.
* Ensure that headers that are included by an embedder don't include our macros. This would require some heavy refactoring to be maintainable and enforcable.
* Changes in Chromium for this is obviously not an option.
BUG=chromium:468375
NOTRY=true
Review URL: https://codereview.webrtc.org/1335923002
Cr-Commit-Position: refs/heads/master@{#9964}
2015-09-17 07:24:51 +00:00
2520e7200e
VP9: Enable static threshold for non-screen content.
...
Encoder control was currently on for screen-content mode,
use it also for normal video.
BUG=
TBR=stefan@webrtc.org
Review URL: https://codereview.webrtc.org/1351523005 .
Cr-Commit-Position: refs/heads/master@{#9958}
2015-09-16 21:05:12 +00:00
7f6a6fc0b2
Enabling spatial layers in VP9Impl. Filter layers in the loopback test.
...
Handling the case when encoder drops only the higher layer.
Added options to screenshare loopback test to discard high temporal or spatial layers (to view the lower layers).
Review URL: https://codereview.webrtc.org/1287643002
Cr-Commit-Position: refs/heads/master@{#9883}
2015-09-08 09:40:36 +00:00
242d6384c4
VP9 codec controls for screensharing
...
Telling the encoder to adjust the parameters for the screen content.
Also, telling the encoder to skip the encoding of very flat/low content blocks. For now only for screensharing. (number 8 in VP8E_SET_STATIC_THRESHOLD is correct)
Review URL: https://codereview.webrtc.org/1308753006
Cr-Commit-Position: refs/heads/master@{#9860}
2015-09-04 13:13:29 +00:00
7fabd46a89
Don't set V bit in flexible mode
...
BUG=webrtc:4914
Review URL: https://codereview.webrtc.org/1291163007
Cr-Commit-Position: refs/heads/master@{#9848}
2015-09-03 11:42:37 +00:00
c464f504dc
AndroidVideoCapturerJni: Fix threading issues
...
The primary fix in this CL is to remove the dangling |thread_| pointer in AndroidVideoCapturerJni. That thread is not safe to use after Stop() has been called. Even after Stop() has been called, we must still be able to return late frames to Java in order to not leak them, so that path has been made thread safe instead. To make sure that we always return frames, the Java frame should be wrapped in a scoped_refptr as quickly as possible, so this CL moves the wrapping from AndroidVideoCapturer to AndroidVideoCapturerJni. This also removes the need for the interface function AndroidVideoCapturerDelegate::ReturnBuffer().
Some other minor changes are:
* Remove |valid_global_refs_| and all logic related to that. Now that rtc::Bind() captures method objects as scoped_refptr, the destructor of AndroidVideoCapturerJni will not be called before all frames are returned.
* Remove global ref |j_frame_observer_|. No need for this, we don’t call it and it is kept alive with standard Java memory management.
* Add helper function ShallowCenterCrop() for VideoFrameBuffers. This functionality already exists in the constructor of WrappedI420Buffer, but it’s more convenient to have it as a separate function.
BUG=webrtc:4742,webrtc:4909
R=glaznev@webrtc.org , tommi@webrtc.org
Review URL: https://codereview.webrtc.org/1307973002 .
Cr-Commit-Position: refs/heads/master@{#9784}
2015-08-25 21:22:24 +00:00
a9455ab235
Integration of VP9 packetization.
...
Supports running 1 spatial and 1-3 temporal layers in non-flexible mode.
BUG=webrtc:4148, webrtc:4168, chromium:500602
TBR=mflodman
Review URL: https://codereview.webrtc.org/1211353002
Cr-Commit-Position: refs/heads/master@{#9665}
2015-07-31 13:10:16 +00:00
6e89b25143
VP9 wrapper: Adjust speed setting.
...
Use lower speed setting for smaller resolutions.
R=stefan@webrtc.org
TBR=stefan@webrtc.org
BUG=
Review URL: https://codereview.webrtc.org/1192173003 .
Cr-Commit-Position: refs/heads/master@{#9549}
2015-07-07 21:40:51 +00:00
4765070b8d
Rename I420VideoFrame to VideoFrame.
...
This is a mechanical change since it affects so many
files.
I420VideoFrame -> VideoFrame
and reformatted.
Rationale: in the next CL I420VideoFrame will
get an indication of Pixel Format (I420 for
starters) and of storage type: usually
UNOWNED, could be SHMEM, and in the near
future will be possibly TEXTURE. See
https://codereview.chromium.org/1154153003
for the change that happened in Cr.
BUG=4730, chromium:440843
R=jiayl@webrtc.org , niklas.enbom@webrtc.org , pthatcher@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/52629004
Cr-Commit-Position: refs/heads/master@{#9339}
2015-05-30 00:21:56 +00:00
e87d48719f
Fix ARM64 detection for VP8 and VP9 wrappers.
...
BUG=4702
R=marpan@google.com , stefan@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/57459004
Cr-Commit-Position: refs/heads/master@{#9287}
2015-05-26 20:10:38 +00:00
9695d8523b
Added VP9FrameBufferPool, a memory pool that is shared between libvpx and webrtc. Using the VP9 codec, the libvpx decoder will obtain its buffers from our memory pool. This lets us reuse the same buffers for our I420VideoFrames and not have to copy a frame for every decode (from libvpx buffers to webrtc/I420VideoFrame buffers).
...
(This is similar to chromium's MemoryPool in vpx_video_decoder.cc.)
BUG=1128
R=kjellander@webrtc.org , magjed@webrtc.org , stefan@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/48149004
Cr-Commit-Position: refs/heads/master@{#9141}
2015-05-06 08:42:22 +00:00
b8cfa68323
Update speed setting in VP9.
...
TBR=stefan@webrtc.org
BUG=
Review URL: https://webrtc-codereview.appspot.com/44919004
Cr-Commit-Position: refs/heads/master@{#8870}
2015-03-26 20:20:40 +00:00
e155dbeae9
VP8/9EncoderImpl::Encode: Check resolution of input I420VideoFrame
...
This CL adds checks in Encode to guard against memory reads out of bounds.
R=pbos@webrtc.org , stefan@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/46429008
Cr-Commit-Position: refs/heads/master@{#8750}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8750 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-03-17 12:27:40 +00:00
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
93d9d6503e
I420VideoFrame.CreateFrame: Removed unnecessary buffer size arguments.
...
R=magjed@webrtc.org , tommi@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/45629004
Cr-Commit-Position: refs/heads/master@{#8732}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8732 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-03-16 13:26:41 +00:00
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
16a87b97f9
Add VP9 denoiser test to videoprocessor_integrationtest.
...
TBR=stefan@webrtc.org
BUG=
Review URL: https://webrtc-codereview.appspot.com/43599004
Cr-Commit-Position: refs/heads/master@{#8622}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8622 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-03-05 22:19:15 +00:00
dc8a9da386
Adjust qp-max settinhg in VP9 wrapper.
...
More closely matches the qp-max setting used in VP8.
TBR=stefan@webrtc.org
BUG=
Review URL: https://webrtc-codereview.appspot.com/39709004
Cr-Commit-Position: refs/heads/master@{#8177}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8177 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-01-27 23:08:39 +00:00
38d11b8529
Enable encoder multi-threading for VP9.
...
R=stefan@webrtc.org
TBR=stefan@webrtc.org
BUG=
Review URL: https://webrtc-codereview.appspot.com/41489004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8150 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-01-26 15:21:36 +00:00
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
e728ee03ba
Remove or rename typedefs with _t prefixes.
...
_t prefixes are reserved for additional typenames in POSIX.
R=henrik.lundin@webrtc.org , hta@webrtc.org , stefan@webrtc.org
BUG=162
Review URL: https://webrtc-codereview.appspot.com/36559004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@7931 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-12-17 13:43:55 +00:00
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
5f1e2e42a8
Increase speed setting for VP9 (from 5 to 6) and re-enable end_to_end test.
...
TBR=stefan@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/28949004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@7637 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-11-06 02:02:28 +00:00
5b88317820
Add VP9 codec to VCM and vie_auto_test.
...
Include VP9 tests in videoprocessor_integrationtests.
Include end-to-end send/receiveVP9 test.
This is the same patch as https://code.google.com/p/webrtc/source/detail?r=7422 , which was reverted when rolled into chrome (due to bss size increase). Relanding this again as we now have the clear to get this in:
see https://code.google.com/p/webrtc/issues/detail?id=3932
R=kjellander@webrtc.org , mflodman@webrtc.org , stefan@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/31829004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@7588 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-11-01 06:10:48 +00:00
b1dac33cac
Revert cls (original cl + fixes) 7422-7424 "Add VP9 codec to VCM..."
...
BUG=3932
R=marpan@google.com
Review URL: https://webrtc-codereview.appspot.com/27779004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@7470 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-10-17 18:54:46 +00:00
573c78e31c
Add VP9 codec to VCM and vie_auto_test.
...
Include VP9 tests in videoprocessor_integrationtests.
Include end-to-end send/receiveVP9 test.
Passes trybots.
R=kjellander@webrtc.org , mflodman@webrtc.org , stefan@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/29449004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@7422 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-10-10 16:44:47 +00:00