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
This commit is contained in:
wuchengli@chromium.org
2014-05-27 12:40:27 +00:00
parent 59336e85fb
commit efe15355ee
19 changed files with 513 additions and 81 deletions

View File

@ -17,26 +17,17 @@
#include "webrtc/common.h"
#include "webrtc/modules/rtp_rtcp/interface/rtp_rtcp_defines.h"
#include "webrtc/modules/utility/interface/process_thread.h"
#include "webrtc/modules/utility/interface/mock/mock_process_thread.h"
#include "webrtc/system_wrappers/interface/scoped_ptr.h"
#include "webrtc/video_engine/vie_encoder.h"
namespace webrtc {
using ::testing::NiceMock;
// TODO(mflodman) Create a common mock in module utility.
class TestProcessThread : public ProcessThread {
public:
TestProcessThread() {}
~TestProcessThread() {}
virtual int32_t Start() { return 0; }
virtual int32_t Stop() { return 0; }
virtual int32_t RegisterModule(Module* module) { return 0; }
virtual int32_t DeRegisterModule(const Module* module) { return 0; }
};
namespace webrtc {
class MockVieEncoder : public ViEEncoder {
public:
explicit MockVieEncoder(TestProcessThread* process_thread)
explicit MockVieEncoder(ProcessThread* process_thread)
: ViEEncoder(1, 1, 1, config_, *process_thread, NULL) {}
~MockVieEncoder() {}
@ -55,10 +46,10 @@ class MockVieEncoder : public ViEEncoder {
class VieKeyRequestTest : public ::testing::Test {
protected:
virtual void SetUp() {
process_thread_.reset(new TestProcessThread());
process_thread_.reset(new NiceMock<MockProcessThread>);
encoder_state_feedback_.reset(new EncoderStateFeedback());
}
scoped_ptr<TestProcessThread> process_thread_;
scoped_ptr<MockProcessThread> process_thread_;
scoped_ptr<EncoderStateFeedback> encoder_state_feedback_;
};