webrtc/talk/media/base
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
..
audioframe.h Adds trunk/talk folder of revision 359 from libjingles google code to 2013-07-10 00:45:36 +00:00
audiorenderer.h Unrevert 5590 "description"(=(Auto)update libjingle 61834300->61901702). 2014-02-21 15:51:43 +00:00
capturemanager_unittest.cc Update libjingle license statements at top of talk files for consistency 2015-01-20 21:36:13 +00:00
capturemanager.cc Add thread checks to the CaptureManager. 2015-02-25 10:09:45 +00:00
capturemanager.h Add thread checks to the CaptureManager. 2015-02-25 10:09:45 +00:00
capturerenderadapter.cc Update libjingle license statements at top of talk files for consistency 2015-01-20 21:36:13 +00:00
capturerenderadapter.h Update libjingle license statements at top of talk files for consistency 2015-01-20 21:36:13 +00:00
codec_unittest.cc (Auto)update libjingle 73222930-> 73226398 2014-08-13 17:26:08 +00:00
codec.cc Misc. cleanup split out of https://webrtc-codereview.appspot.com/37699004/ : 2015-02-23 21:29:45 +00:00
codec.h Make webrtc 50 KB smaller by not inlining Codec. 2015-02-19 17:55:50 +00:00
constants.cc Misc. cleanup split out of https://webrtc-codereview.appspot.com/37699004/ : 2015-02-23 21:29:45 +00:00
constants.h Misc. cleanup split out of https://webrtc-codereview.appspot.com/37699004/ : 2015-02-23 21:29:45 +00:00
cpuid_unittest.cc (Auto)update libjingle 72097588-> 72159069 2014-07-29 17:36:52 +00:00
cpuid.cc Remove DISABLE_YUV flag 2015-02-18 08:47:43 +00:00
cpuid.h (Auto)update libjingle 72097588-> 72159069 2014-07-29 17:36:52 +00:00
cryptoparams.h Adds trunk/talk folder of revision 359 from libjingles google code to 2013-07-10 00:45:36 +00:00
device.h Update libjingle license statements at top of talk files for consistency 2015-01-20 21:36:13 +00:00
executablehelpers.h Fix webrtcvideoframe tests. 2014-09-05 16:34:13 +00:00
fakecapturemanager.h Adds trunk/talk folder of revision 359 from libjingles google code to 2013-07-10 00:45:36 +00:00
fakemediaengine.h Remove WebRtcVideoEngine::SetVoiceEngine. 2015-03-02 13:30:46 +00:00
fakemediaprocessor.h Adds trunk/talk folder of revision 359 from libjingles google code to 2013-07-10 00:45:36 +00:00
fakenetworkinterface.h (Auto)update libjingle 73222930-> 73226398 2014-08-13 17:26:08 +00:00
fakertp.h Adds trunk/talk folder of revision 359 from libjingles google code to 2013-07-10 00:45:36 +00:00
fakescreencapturerfactory.h (Auto)update libjingle 72839629-> 72847605 2014-08-07 22:09:08 +00:00
fakevideocapturer.h CVO capturer feature: allow unrotated frame flows through the capture pipeline. 2015-02-11 18:38:53 +00:00
fakevideorenderer.h Reland of: "Implement elapsed time and capture start NTP time estimation." revision @8139 2015-01-27 09:57:01 +00:00
filemediaengine_unittest.cc Convert FileMediaEngineTest to use more expects. 2015-01-07 18:01:29 +00:00
filemediaengine.cc Use std::min and std::max instead of self-defined functions such as rtc::_min/_max. 2015-02-12 11:55:32 +00:00
filemediaengine.h Update libjingle license statements at top of talk files for consistency 2015-01-20 21:36:13 +00:00
hybriddataengine.h Update libjingle license statements at top of talk files for consistency 2015-01-20 21:36:13 +00:00
mediachannel.h Revert r8430 "Remove dead stats from Video{Sender,Receiver}Info." 2015-02-19 13:57:43 +00:00
mediacommon.h (Auto)update libjingle 72097588-> 72159069 2014-07-29 17:36:52 +00:00
mediaengine.cc Update libjingle license statements at top of talk files for consistency 2015-01-20 21:36:13 +00:00
mediaengine.h Remove WebRtcVideoEngine::SetVoiceEngine. 2015-03-02 13:30:46 +00:00
mutedvideocapturer.cc (Auto)update libjingle 72682155-> 72785180 2014-08-07 04:47:36 +00:00
nullvideoframe.h Cleanup: unify rotation to be enum based instead of int for degree. 2015-02-09 01:29:45 +00:00
nullvideorenderer.h Adds trunk/talk folder of revision 359 from libjingles google code to 2013-07-10 00:45:36 +00:00
rtpdataengine_unittest.cc Initialize SSL in unittest_main.cc. 2014-09-28 11:36:45 +00:00
rtpdataengine.cc Change GetStreamBySsrc to not copy StreamParams. 2015-01-22 23:00:41 +00:00
rtpdataengine.h (Auto)update libjingle 77263371-> 77296420 2014-10-08 22:24:30 +00:00
rtpdump_unittest.cc Misc. cleanup split out of https://webrtc-codereview.appspot.com/37699004/ : 2015-02-23 21:29:45 +00:00
rtpdump.cc (Auto)update libjingle 73222930-> 73226398 2014-08-13 17:26:08 +00:00
rtpdump.h (Auto)update libjingle 72097588-> 72159069 2014-07-29 17:36:52 +00:00
rtputils_unittest.cc Avoid implicit type truncations by inserting explicit casts or modifying prototypes to avoid needless up- and then down-casting. 2015-02-02 23:54:40 +00:00
rtputils.cc Add range checks in a variety of places where the values will subsequently be 2015-02-17 20:37:35 +00:00
rtputils.h Add range checks in a variety of places where the values will subsequently be 2015-02-17 20:37:35 +00:00
screencastid.h Update libjingle license statements at top of talk files for consistency 2015-01-20 21:36:13 +00:00
streamparams_unittest.cc (Auto)update libjingle 73222930-> 73226398 2014-08-13 17:26:08 +00:00
streamparams.cc Change GetStreamBySsrc to not copy StreamParams. 2015-01-22 23:00:41 +00:00
streamparams.h Change GetStreamBySsrc to not copy StreamParams. 2015-01-22 23:00:41 +00:00
testutils.cc Use std::min and std::max instead of self-defined functions such as rtc::_min/_max. 2015-02-12 11:55:32 +00:00
testutils.h Remove DISABLE_YUV flag 2015-02-18 08:47:43 +00:00
videoadapter_unittest.cc Reland "Fix CVO in androidvideocapturer". 2015-03-03 06:44:40 +00:00
videoadapter.cc Remove {Is,Set}BlackOutput from VideoAdapter. 2015-02-27 08:56:42 +00:00
videoadapter.h Remove {Is,Set}BlackOutput from VideoAdapter. 2015-02-27 08:56:42 +00:00
videocapturer_unittest.cc CVO capturer feature: allow unrotated frame flows through the capture pipeline. 2015-02-11 18:38:53 +00:00
videocapturer.cc Remove {Is,Set}BlackOutput from VideoAdapter. 2015-02-27 08:56:42 +00:00
videocapturer.h Use std::min and std::max instead of self-defined functions such as rtc::_min/_max. 2015-02-12 11:55:32 +00:00
videocapturerfactory.h Update libjingle license statements at top of talk files for consistency 2015-01-20 21:36:13 +00:00
videocommon_unittest.cc (Auto)update libjingle 73222930-> 73226398 2014-08-13 17:26:08 +00:00
videocommon.cc Update libjingle license statements at top of talk files for consistency 2015-01-20 21:36:13 +00:00
videocommon.h Update libjingle license statements at top of talk files for consistency 2015-01-20 21:36:13 +00:00
videoengine_unittest.h Remove WebRtcVideoEngine::SetVoiceEngine. 2015-03-02 13:30:46 +00:00
videoframe_unittest.h Reland "Fix CVO in androidvideocapturer". 2015-03-03 06:44:40 +00:00
videoframe.cc WebRtcVideoFrame: DCHECK exclusive ownership for non-const pixel access 2015-02-25 14:50:19 +00:00
videoframe.h Reland "Fix CVO in androidvideocapturer". 2015-03-03 06:44:40 +00:00
videoframefactory.cc Make sure VideoFrameFactory handles rotated frames when scaling. 2015-03-03 10:48:46 +00:00
videoframefactory.h Unify underlying frame buffer in I420VideoFrame and WebRtcVideoFrame 2015-03-03 21:22:26 +00:00
videoprocessor.h (Auto)update libjingle 73222930-> 73226398 2014-08-13 17:26:08 +00:00
videorenderer.h (Auto)update libjingle 72097588-> 72159069 2014-07-29 17:36:52 +00:00
voiceprocessor.h (Auto)update libjingle 73222930-> 73226398 2014-08-13 17:26:08 +00:00
yuvframegenerator.cc Update libjingle license statements at top of talk files for consistency 2015-01-20 21:36:13 +00:00
yuvframegenerator.h Update libjingle license statements at top of talk files for consistency 2015-01-20 21:36:13 +00:00