Go to file
magjed@webrtc.org c8895aa2f3 Unify underlying frame buffer in I420VideoFrame and WebRtcVideoFrame
Currently, I420VideoFrame uses three webrtc::Plane to store pixel data, and WebRtcVideoFrame uses WebRtcVideoFrame::FrameBuffer/webrtc::VideoFrame. The two subclasses WebRtcTextureVideoFrame and TextureVideoFrame use a NativeHandle to store pixel data, and there is also a class WebRtcVideoRenderFrame that wraps an I420VideoFrame.

This CL replaces these classes with a new interface VideoFrameBuffer that provides the common functionality. This makes it possible to remove deep frame copies between cricket::VideoFrame and I420VideoFrame.

Some additional minor changes are:
* Disallow creation of 0x0 texture frames.
* Remove the half-implemented ref count functions in I420VideoFrame.
* Remove the Alias functionality in WebRtcVideoFrame

The final goal is to eliminate all frame copies, but to limit the scope of this CL, some planned changes are postponed to follow-up CL:s (see planned changes in https://webrtc-codereview.appspot.com/38879004, or https://docs.google.com/document/d/1bxoJZNmlo-Z9GnQwIaWpEG6hDlL_W-bzka8Zb_K2NbA/preview). Specifically, this CL:
* Keeps empty subclasses WebRtcTextureVideoFrame and TextureVideoFrame, and just delegates the construction to the superclass.
* Keeps the deep copies from cricket::VideoFrame to I420VideoFrame.

BUG=1128
R=mflodman@webrtc.org, pbos@webrtc.org, perkj@webrtc.org, tommi@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#8580}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8580 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-03-03 21:22:26 +00:00
chromium Roll chromium_revision 9070a80..cd35af6 (313233:314322) 2015-02-03 15:24:22 +00:00
data audio_processing: Added a new AEC delay metric value that gives the amount of poor delays 2015-02-03 06:07:21 +00:00
resources Offline screenshare quality test, plus loopback. 2015-02-18 12:46:44 +00:00
talk Unify underlying frame buffer in I420VideoFrame and WebRtcVideoFrame 2015-03-03 21:22:26 +00:00
third_party Roll gtest-parallel. 2015-02-05 12:37:42 +00:00
tools Remove suppression for WebRtcVideoFrameTest::TestInit 2015-03-03 09:39:44 +00:00
webrtc Unify underlying frame buffer in I420VideoFrame and WebRtcVideoFrame 2015-03-03 21:22:26 +00:00
.clang-format Style-option file for clang-format. 2013-11-25 15:30:37 +00:00
.gitignore Make Git ignore in resources more fine-grained 2015-02-11 09:59:19 +00:00
all.gyp Revert r7886:7887. 2014-12-15 07:03:04 +00:00
android-webrtc.mk Changed a flag in ARM build for platform build. 2012-09-08 00:32:59 +00:00
AUTHORS Re-land: Add API to get negotiated SSL ciphers 2015-02-11 22:35:30 +00:00
BUILD.gn Initial GN work for WebRTC 2014-06-17 08:54:03 +00:00
check_root_dir.py Remove root_dir variable from DEPS + enforce rename. 2014-10-09 09:11:27 +00:00
codereview.settings Adding TRYSERVER_PROJECT to codereview.settings. 2015-01-19 13:51:59 +00:00
COPYING Libjingle in webrtc needs updated AUTHORS, COPYING, LICENSE_THIRD_PARTY AND README. 2013-07-16 18:04:56 +00:00
DEPS Roll chromium_revision 2c3ffb2..e144d30 (317530:318658) 2015-03-03 07:21:14 +00:00
drover.properties Add a drover.properties file for reference. 2013-05-30 18:15:54 +00:00
libvpx.mk Change android makefile to reflect recent file structure change 2011-07-13 17:49:49 +00:00
LICENSE Updated license path in LICENSE and LICENSE_THIRD_PARTY. 2012-11-22 12:06:21 +00:00
license_template.txt Update template to follow chromium copyright style 2013-04-24 01:01:28 +00:00
LICENSE_THIRD_PARTY Libjingle in webrtc needs updated AUTHORS, COPYING, LICENSE_THIRD_PARTY AND README. 2013-07-16 18:04:56 +00:00
OWNERS Add kjellander as PRESUBMIT.py OWNER 2014-11-04 17:06:31 +00:00
PATENTS Add references to src/ copies for LICENSE etc. 2011-10-26 01:05:07 +00:00
PRESUBMIT.py Add p2p.gyp to rtc_base presubmit check exclusion. 2015-02-26 11:12:47 +00:00
setup_links.py Roll chromium_revision 9070a80..cd35af6 (313233:314322) 2015-02-03 15:24:22 +00:00
sync_chromium.py Roll chromium_revision 9070a80..cd35af6 (313233:314322) 2015-02-03 15:24:22 +00:00
WATCHLISTS Removing giles@mozilla.com from WebRTC watchlist. 2014-12-22 12:49:14 +00:00