Separate Call API/build files from video_engine/.

BUG=2535
R=andrew@webrtc.org, mflodman@webrtc.org, niklas.enbom@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5042 4adac7df-926f-26a2-2b94-8c16560cd09d
This commit is contained in:
pbos@webrtc.org 2013-10-28 16:32:01 +00:00
parent 850bcbe855
commit 16e03b7bd8
73 changed files with 449 additions and 408 deletions

View File

@ -180,7 +180,7 @@
'input_shlib_path': '<(SHARED_LIB_DIR)/<(SHARED_LIB_PREFIX)video_engine_tests<(SHARED_LIB_SUFFIX)',
},
'dependencies': [
'<(webrtc_root)/video_engine/video_engine.gyp:video_engine_tests',
'<(webrtc_root)/webrtc.gyp:video_engine_tests',
],
'includes': [
'../../../build/apk_test.gypi',

View File

@ -8,24 +8,78 @@
* be found in the AUTHORS file in the root of the source tree.
*/
#include "webrtc/video_engine/internal/call.h"
#include <assert.h>
#include <string.h>
#include <map>
#include <vector>
#include "webrtc/call.h"
#include "webrtc/modules/rtp_rtcp/interface/rtp_header_parser.h"
#include "webrtc/system_wrappers/interface/critical_section_wrapper.h"
#include "webrtc/system_wrappers/interface/rw_lock_wrapper.h"
#include "webrtc/system_wrappers/interface/scoped_ptr.h"
#include "webrtc/system_wrappers/interface/trace.h"
#include "webrtc/video/video_receive_stream.h"
#include "webrtc/video/video_send_stream.h"
#include "webrtc/video_engine/include/vie_base.h"
#include "webrtc/video_engine/include/vie_codec.h"
#include "webrtc/video_engine/include/vie_rtp_rtcp.h"
#include "webrtc/video_engine/internal/video_receive_stream.h"
#include "webrtc/video_engine/internal/video_send_stream.h"
namespace webrtc {
namespace internal {
class Call : public webrtc::Call, public PacketReceiver {
public:
Call(webrtc::VideoEngine* video_engine, const Call::Config& config);
virtual ~Call();
virtual PacketReceiver* Receiver() OVERRIDE;
virtual std::vector<VideoCodec> GetVideoCodecs() OVERRIDE;
virtual VideoSendStream::Config GetDefaultSendConfig() OVERRIDE;
virtual VideoSendStream* CreateSendStream(
const VideoSendStream::Config& config) OVERRIDE;
virtual SendStreamState* DestroySendStream(
webrtc::VideoSendStream* send_stream) OVERRIDE;
virtual VideoReceiveStream::Config GetDefaultReceiveConfig() OVERRIDE;
virtual VideoReceiveStream* CreateReceiveStream(
const VideoReceiveStream::Config& config) OVERRIDE;
virtual void DestroyReceiveStream(
webrtc::VideoReceiveStream* receive_stream) OVERRIDE;
virtual uint32_t SendBitrateEstimate() OVERRIDE;
virtual uint32_t ReceiveBitrateEstimate() OVERRIDE;
virtual bool DeliverPacket(const uint8_t* packet, size_t length) OVERRIDE;
private:
bool DeliverRtcp(const uint8_t* packet, size_t length);
bool DeliverRtp(const RTPHeader& header,
const uint8_t* packet,
size_t length);
Call::Config config_;
std::map<uint32_t, VideoReceiveStream*> receive_ssrcs_;
scoped_ptr<RWLockWrapper> receive_lock_;
std::map<uint32_t, VideoSendStream*> send_ssrcs_;
scoped_ptr<RWLockWrapper> send_lock_;
scoped_ptr<RtpHeaderParser> rtp_header_parser_;
webrtc::VideoEngine* video_engine_;
ViERTP_RTCP* rtp_rtcp_;
ViECodec* codec_;
DISALLOW_COPY_AND_ASSIGN(Call);
};
} // internal
class TraceDispatcher : public TraceCallback {
public:
@ -91,7 +145,7 @@ class TraceDispatcher : public TraceCallback {
};
namespace internal {
TraceDispatcher* global_trace_dispatcher = NULL;
TraceDispatcher* global_trace_dispatcher = NULL;
} // internal
Call* Call::Create(const Call::Config& config) {
@ -145,7 +199,7 @@ std::vector<VideoCodec> Call::GetVideoCodecs() {
VideoCodec codec;
for (size_t i = 0; i < static_cast<size_t>(codec_->NumberOfCodecs()); ++i) {
if (codec_->GetCodec(i, codec) == 0) {
if (codec_->GetCodec(static_cast<unsigned char>(i), codec) == 0) {
codecs.push_back(codec);
}
}

View File

@ -14,8 +14,8 @@
#include <vector>
#include "webrtc/common_types.h"
#include "webrtc/video_engine/new_include/video_receive_stream.h"
#include "webrtc/video_engine/new_include/video_send_stream.h"
#include "webrtc/video_receive_stream.h"
#include "webrtc/video_send_stream.h"
namespace webrtc {

View File

@ -13,19 +13,19 @@
#include "testing/gtest/include/gtest/gtest.h"
#include "webrtc/call.h"
#include "webrtc/common_video/test/frame_generator.h"
#include "webrtc/modules/rtp_rtcp/interface/rtp_header_parser.h"
#include "webrtc/modules/rtp_rtcp/source/rtcp_utility.h"
#include "webrtc/system_wrappers/interface/critical_section_wrapper.h"
#include "webrtc/system_wrappers/interface/event_wrapper.h"
#include "webrtc/system_wrappers/interface/scoped_ptr.h"
#include "webrtc/video_engine/new_include/call.h"
#include "webrtc/video_engine/test/common/direct_transport.h"
#include "webrtc/video_engine/test/common/fake_decoder.h"
#include "webrtc/video_engine/test/common/fake_encoder.h"
#include "webrtc/video_engine/test/common/frame_generator_capturer.h"
#include "webrtc/video_engine/test/common/generate_ssrcs.h"
#include "webrtc/video_engine/test/common/rtp_rtcp_observer.h"
#include "webrtc/test/direct_transport.h"
#include "webrtc/test/fake_decoder.h"
#include "webrtc/test/fake_encoder.h"
#include "webrtc/test/frame_generator_capturer.h"
#include "webrtc/test/generate_ssrcs.h"
#include "webrtc/test/rtp_rtcp_observer.h"
namespace webrtc {

View File

@ -8,6 +8,8 @@
* be found in the AUTHORS file in the root of the source tree.
*/
// TODO(pbos): Move Config from common.h to here.
#ifndef WEBRTC_VIDEO_ENGINE_NEW_INCLUDE_CONFIG_H_
#define WEBRTC_VIDEO_ENGINE_NEW_INCLUDE_CONFIG_H_

View File

@ -14,17 +14,17 @@
#include "testing/gtest/include/gtest/gtest.h"
#include "webrtc/call.h"
#include "webrtc/system_wrappers/interface/clock.h"
#include "webrtc/system_wrappers/interface/scoped_ptr.h"
#include "webrtc/test/direct_transport.h"
#include "webrtc/test/flags.h"
#include "webrtc/test/generate_ssrcs.h"
#include "webrtc/test/run_loop.h"
#include "webrtc/test/run_tests.h"
#include "webrtc/test/video_capturer.h"
#include "webrtc/test/video_renderer.h"
#include "webrtc/typedefs.h"
#include "webrtc/video_engine/new_include/call.h"
#include "webrtc/video_engine/test/common/direct_transport.h"
#include "webrtc/video_engine/test/common/flags.h"
#include "webrtc/video_engine/test/common/generate_ssrcs.h"
#include "webrtc/video_engine/test/common/run_loop.h"
#include "webrtc/video_engine/test/common/run_tests.h"
#include "webrtc/video_engine/test/common/video_capturer.h"
#include "webrtc/video_engine/test/common/video_renderer.h"
namespace webrtc {

View File

@ -7,10 +7,11 @@
* in the file PATENTS. All contributing project authors may
* be found in the AUTHORS file in the root of the source tree.
*/
#include "webrtc/video_engine/test/common/direct_transport.h"
#include "webrtc/test/direct_transport.h"
#include "testing/gtest/include/gtest/gtest.h"
#include "webrtc/video_engine/new_include/call.h"
#include "webrtc/call.h"
namespace webrtc {
namespace test {

View File

@ -18,7 +18,7 @@
#include "webrtc/system_wrappers/interface/event_wrapper.h"
#include "webrtc/system_wrappers/interface/scoped_ptr.h"
#include "webrtc/system_wrappers/interface/thread_wrapper.h"
#include "webrtc/video_engine/new_include/transport.h"
#include "webrtc/transport.h"
namespace webrtc {

View File

@ -8,7 +8,7 @@
* be found in the AUTHORS file in the root of the source tree.
*/
#include "webrtc/video_engine/test/common/fake_decoder.h"
#include "webrtc/test/fake_decoder.h"
#include "testing/gtest/include/gtest/gtest.h"

View File

@ -8,7 +8,7 @@
* be found in the AUTHORS file in the root of the source tree.
*/
#include "webrtc/video_engine/test/common/fake_encoder.h"
#include "webrtc/test/fake_encoder.h"
#include "testing/gtest/include/gtest/gtest.h"

View File

@ -8,7 +8,7 @@
* be found in the AUTHORS file in the root of the source tree.
*/
#include "webrtc/video_engine/test/common/flags.h"
#include "webrtc/test/flags.h"
#include "gflags/gflags.h"

View File

@ -8,7 +8,7 @@
* be found in the AUTHORS file in the root of the source tree.
*/
#include "webrtc/video_engine/test/common/frame_generator_capturer.h"
#include "webrtc/test/frame_generator_capturer.h"
#include "webrtc/common_video/test/frame_generator.h"
#include "webrtc/system_wrappers/interface/clock.h"
@ -16,7 +16,7 @@
#include "webrtc/system_wrappers/interface/event_wrapper.h"
#include "webrtc/system_wrappers/interface/sleep.h"
#include "webrtc/system_wrappers/interface/thread_wrapper.h"
#include "webrtc/video_engine/new_include/video_send_stream.h"
#include "webrtc/video_send_stream.h"
namespace webrtc {
namespace test {

View File

@ -11,8 +11,8 @@
#define WEBRTC_VIDEO_ENGINE_TEST_COMMON_FRAME_GENERATOR_CAPTURER_H_
#include "webrtc/system_wrappers/interface/scoped_ptr.h"
#include "webrtc/test/video_capturer.h"
#include "webrtc/typedefs.h"
#include "webrtc/video_engine/test/common/video_capturer.h"
namespace webrtc {

View File

@ -8,12 +8,12 @@
* be found in the AUTHORS file in the root of the source tree.
*/
#include "webrtc/video_engine/test/common/generate_ssrcs.h"
#include "webrtc/test/generate_ssrcs.h"
#include <assert.h>
#include <stdlib.h>
#include "webrtc/video_engine/new_include/video_send_stream.h"
#include "webrtc/video_send_stream.h"
namespace webrtc {
namespace test {

View File

@ -15,7 +15,7 @@
#include <vector>
#include "webrtc/typedefs.h"
#include "webrtc/video_engine/new_include/video_send_stream.h"
#include "webrtc/video_send_stream.h"
namespace webrtc {
namespace test {

View File

@ -8,7 +8,7 @@
* be found in the AUTHORS file in the root of the source tree.
*/
#include "webrtc/video_engine/test/common/gl/gl_renderer.h"
#include "webrtc/test/gl/gl_renderer.h"
#include <string.h>

View File

@ -17,8 +17,8 @@
#include <GL/gl.h>
#endif
#include "webrtc/test/video_renderer.h"
#include "webrtc/typedefs.h"
#include "webrtc/video_engine/test/common/video_renderer.h"
namespace webrtc {

View File

@ -8,7 +8,7 @@
* be found in the AUTHORS file in the root of the source tree.
*/
#include "webrtc/video_engine/test/common/linux/glx_renderer.h"
#include "webrtc/test/linux/glx_renderer.h"
#include <assert.h>

View File

@ -14,8 +14,8 @@
#include <GL/glx.h>
#include <X11/Xlib.h>
#include "webrtc/test/gl/gl_renderer.h"
#include "webrtc/typedefs.h"
#include "webrtc/video_engine/test/common/gl/gl_renderer.h"
namespace webrtc {
namespace test {

View File

@ -7,9 +7,9 @@
* in the file PATENTS. All contributing project authors may
* be found in the AUTHORS file in the root of the source tree.
*/
#include "webrtc/video_engine/test/common/video_renderer.h"
#include "webrtc/test/video_renderer.h"
#include "webrtc/video_engine/test/common/linux/glx_renderer.h"
#include "webrtc/test/linux/glx_renderer.h"
namespace webrtc {
namespace test {

View File

@ -11,8 +11,8 @@
#ifndef WEBRTC_VIDEO_ENGINE_TEST_COMMON_MAC_VIDEO_RENDERER_MAC_H_
#define WEBRTC_VIDEO_ENGINE_TEST_COMMON_MAC_VIDEO_RENDERER_MAC_H_
#include "webrtc/test/gl/gl_renderer.h"
#include "webrtc/system_wrappers/interface/constructor_magic.h"
#include "webrtc/video_engine/test/common/gl/gl_renderer.h"
@class CocoaWindow;

View File

@ -8,7 +8,7 @@
* be found in the AUTHORS file in the root of the source tree.
*/
#include "webrtc/video_engine/test/common/mac/video_renderer_mac.h"
#include "webrtc/test/mac/video_renderer_mac.h"
#import <Cocoa/Cocoa.h>

View File

@ -8,7 +8,7 @@
* be found in the AUTHORS file in the root of the source tree.
*/
#include "webrtc/video_engine/test/common/video_renderer.h"
#include "webrtc/test/video_renderer.h"
namespace webrtc {
namespace test {

View File

@ -7,7 +7,7 @@
* in the file PATENTS. All contributing project authors may
* be found in the AUTHORS file in the root of the source tree.
*/
#include "webrtc/video_engine/test/common/null_transport.h"
#include "webrtc/test/null_transport.h"
namespace webrtc {
namespace test {

View File

@ -10,7 +10,7 @@
#ifndef WEBRTC_VIDEO_ENGINE_TEST_COMMON_NULL_TRANSPORT_H_
#define WEBRTC_VIDEO_ENGINE_TEST_COMMON_NULL_TRANSPORT_H_
#include "webrtc/video_engine/new_include/transport.h"
#include "webrtc/transport.h"
namespace webrtc {

View File

@ -14,7 +14,7 @@
#include <vector>
#include "webrtc/typedefs.h"
#include "webrtc/video_engine/new_include/video_send_stream.h"
#include "webrtc/video_send_stream.h"
namespace webrtc {
namespace test {

View File

@ -7,7 +7,7 @@
* in the file PATENTS. All contributing project authors may
* be found in the AUTHORS file in the root of the source tree.
*/
#include "webrtc/video_engine/test/common/run_loop.h"
#include "webrtc/test/run_loop.h"
#include <stdio.h>

View File

@ -7,7 +7,7 @@
* in the file PATENTS. All contributing project authors may
* be found in the AUTHORS file in the root of the source tree.
*/
#include "webrtc/video_engine/test/common/statistics.h"
#include "webrtc/test/statistics.h"
#include <math.h>

View File

@ -10,9 +10,9 @@
#include "testing/gtest/include/gtest/gtest.h"
#include "webrtc/test/flags.h"
#include "webrtc/test/run_tests.h"
#include "webrtc/test/testsupport/fileutils.h"
#include "webrtc/video_engine/test/common/flags.h"
#include "webrtc/video_engine/test/common/run_tests.h"
int main(int argc, char* argv[]) {
::testing::InitGoogleTest(&argc, argv);

View File

@ -8,10 +8,10 @@
* be found in the AUTHORS file in the root of the source tree.
*/
#include "webrtc/video_engine/test/common/vcm_capturer.h"
#include "webrtc/test/vcm_capturer.h"
#include "webrtc/modules/video_capture/include/video_capture_factory.h"
#include "webrtc/video_engine/new_include/video_send_stream.h"
#include "webrtc/video_send_stream.h"
namespace webrtc {
namespace test {

View File

@ -13,7 +13,7 @@
#include "webrtc/common_types.h"
#include "webrtc/common_video/libyuv/include/webrtc_libyuv.h"
#include "webrtc/modules/video_capture/include/video_capture.h"
#include "webrtc/video_engine/test/common/video_capturer.h"
#include "webrtc/test/video_capturer.h"
namespace webrtc {
namespace test {

View File

@ -8,11 +8,11 @@
* be found in the AUTHORS file in the root of the source tree.
*/
#include "webrtc/video_engine/test/common/video_capturer.h"
#include "webrtc/test/video_capturer.h"
#include "webrtc/test/testsupport/fileutils.h"
#include "webrtc/video_engine/test/common/frame_generator_capturer.h"
#include "webrtc/video_engine/test/common/vcm_capturer.h"
#include "webrtc/test/frame_generator_capturer.h"
#include "webrtc/test/vcm_capturer.h"
namespace webrtc {
namespace test {

View File

@ -7,7 +7,7 @@
* in the file PATENTS. All contributing project authors may
* be found in the AUTHORS file in the root of the source tree.
*/
#include "webrtc/video_engine/test/common/video_renderer.h"
#include "webrtc/test/video_renderer.h"
// TODO(pbos): Android renderer

View File

@ -12,7 +12,7 @@
#include <stddef.h>
#include "webrtc/video_engine/new_include/video_renderer.h"
#include "webrtc/video_renderer.h"
namespace webrtc {
namespace test {

View File

@ -0,0 +1,123 @@
# Copyright (c) 2013 The WebRTC project authors. All Rights Reserved.
#
# Use of this source code is governed by a BSD-style license
# that can be found in the LICENSE file in the root of the source
# tree. An additional intellectual property rights grant can be found
# in the file PATENTS. All contributing project authors may
# be found in the AUTHORS file in the root of the source tree.
{
'includes': [
'../build/common.gypi',
],
'targets': [
{
'target_name': 'webrtc_test_common',
'type': 'static_library',
'sources': [
'direct_transport.cc',
'direct_transport.h',
'fake_decoder.cc',
'fake_decoder.h',
'fake_encoder.cc',
'fake_encoder.h',
'flags.cc',
'flags.h',
'frame_generator_capturer.cc',
'frame_generator_capturer.h',
'generate_ssrcs.cc',
'generate_ssrcs.h',
'gl/gl_renderer.cc',
'gl/gl_renderer.h',
'linux/glx_renderer.cc',
'linux/glx_renderer.h',
'linux/video_renderer_linux.cc',
'mac/run_tests.mm',
'mac/video_renderer_mac.h',
'mac/video_renderer_mac.mm',
'null_platform_renderer.cc',
'null_transport.cc',
'null_transport.h',
'rtp_rtcp_observer.h',
'run_tests.cc',
'run_tests.h',
'run_loop.cc',
'run_loop.h',
'statistics.cc',
'statistics.h',
'vcm_capturer.cc',
'vcm_capturer.h',
'video_capturer.cc',
'video_capturer.h',
'video_renderer.cc',
'video_renderer.h',
'win/d3d_renderer.cc',
'win/d3d_renderer.h',
'win/run_loop_win.cc',
],
'conditions': [
['OS=="linux"', {
'sources!': [
'null_platform_renderer.cc',
],
}],
['OS=="mac"', {
'sources!': [
'null_platform_renderer.cc',
'run_tests.cc',
],
}],
['OS!="linux" and OS!="mac"', {
'sources!' : [
'gl/gl_renderer.cc',
'gl/gl_renderer.h',
],
}],
['OS=="win"', {
'sources!': [
'null_platform_renderer.cc',
'run_loop.cc',
],
}],
],
'direct_dependent_settings': {
'conditions': [
['OS=="linux"', {
'libraries': [
'-lXext',
'-lX11',
'-lGL',
],
}],
#TODO(pbos) : These dependencies should not have to be here, they
# aren't used by test code directly, only by components
# used by the tests.
['OS=="android"', {
'libraries' : [
'-lGLESv2', '-llog',
],
}],
['OS=="mac"', {
'xcode_settings' : {
'OTHER_LDFLAGS' : [
'-framework Foundation',
'-framework AppKit',
'-framework Cocoa',
'-framework OpenGL',
'-framework CoreVideo',
'-framework CoreAudio',
'-framework AudioToolbox',
],
},
}],
],
},
'dependencies': [
'<(DEPTH)/testing/gtest.gyp:gtest',
'<(DEPTH)/third_party/gflags/gflags.gyp:gflags',
'<(webrtc_root)/modules/modules.gyp:video_capture_module',
'<(webrtc_root)/test/test.gyp:test_support',
'<(webrtc_root)/common_video/common_video.gyp:frame_generator',
],
},
],
}

View File

@ -7,7 +7,7 @@
* in the file PATENTS. All contributing project authors may
* be found in the AUTHORS file in the root of the source tree.
*/
#include "webrtc/video_engine/test/common/win/d3d_renderer.h"
#include "webrtc/test/win/d3d_renderer.h"
#include "webrtc/common_video/libyuv/include/webrtc_libyuv.h"

View File

@ -14,8 +14,8 @@
#include <d3d9.h>
#include "webrtc/system_wrappers/interface/scoped_refptr.h"
#include "webrtc/test/video_renderer.h"
#include "webrtc/typedefs.h"
#include "webrtc/video_engine/test/common/video_renderer.h"
namespace webrtc {
namespace test {

View File

@ -7,7 +7,7 @@
* in the file PATENTS. All contributing project authors may
* be found in the AUTHORS file in the root of the source tree.
*/
#include "webrtc/video_engine/test/common/run_loop.h"
#include "webrtc/test/run_loop.h"
#include <assert.h>

4
webrtc/video/OWNERS Normal file
View File

@ -0,0 +1,4 @@
mflodman@webrtc.org
stefan@webrtc.org
wu@webrtc.org
mallinath@webrtc.org

View File

@ -15,6 +15,7 @@
#include "gflags/gflags.h"
#include "testing/gtest/include/gtest/gtest.h"
#include "webrtc/call.h"
#include "webrtc/common_video/libyuv/include/webrtc_libyuv.h"
#include "webrtc/modules/rtp_rtcp/interface/rtp_header_parser.h"
#include "webrtc/system_wrappers/interface/clock.h"
@ -23,13 +24,12 @@
#include "webrtc/system_wrappers/interface/scoped_ptr.h"
#include "webrtc/system_wrappers/interface/sleep.h"
#include "webrtc/test/testsupport/fileutils.h"
#include "webrtc/test/direct_transport.h"
#include "webrtc/test/frame_generator_capturer.h"
#include "webrtc/test/generate_ssrcs.h"
#include "webrtc/test/statistics.h"
#include "webrtc/test/video_renderer.h"
#include "webrtc/typedefs.h"
#include "webrtc/video_engine/new_include/call.h"
#include "webrtc/video_engine/test/common/direct_transport.h"
#include "webrtc/video_engine/test/common/frame_generator_capturer.h"
#include "webrtc/video_engine/test/common/generate_ssrcs.h"
#include "webrtc/video_engine/test/common/statistics.h"
#include "webrtc/video_engine/test/common/video_renderer.h"
DEFINE_int32(seconds, 10, "Seconds to run each clip.");

View File

@ -13,6 +13,7 @@
#include "testing/gtest/include/gtest/gtest.h"
#include "webrtc/call.h"
#include "webrtc/modules/remote_bitrate_estimator/include/remote_bitrate_estimator.h"
#include "webrtc/modules/rtp_rtcp/interface/receive_statistics.h"
#include "webrtc/modules/rtp_rtcp/interface/rtp_header_parser.h"
@ -21,12 +22,11 @@
#include "webrtc/system_wrappers/interface/critical_section_wrapper.h"
#include "webrtc/system_wrappers/interface/event_wrapper.h"
#include "webrtc/system_wrappers/interface/scoped_ptr.h"
#include "webrtc/video_engine/new_include/call.h"
#include "webrtc/video_engine/test/common/direct_transport.h"
#include "webrtc/video_engine/test/common/fake_decoder.h"
#include "webrtc/video_engine/test/common/fake_encoder.h"
#include "webrtc/video_engine/test/common/frame_generator_capturer.h"
#include "webrtc/video_engine/test/common/generate_ssrcs.h"
#include "webrtc/test/direct_transport.h"
#include "webrtc/test/fake_decoder.h"
#include "webrtc/test/fake_encoder.h"
#include "webrtc/test/frame_generator_capturer.h"
#include "webrtc/test/generate_ssrcs.h"
namespace webrtc {

View File

@ -8,7 +8,7 @@
* be found in the AUTHORS file in the root of the source tree.
*/
#include "webrtc/video_engine/internal/transport_adapter.h"
#include "webrtc/video/transport_adapter.h"
namespace webrtc {
namespace internal {

View File

@ -11,7 +11,7 @@
#define WEBRTC_VIDEO_ENGINE_INTERNAL_TRANSPORT_ADAPTER_H_
#include "webrtc/common_types.h"
#include "webrtc/video_engine/new_include/transport.h"
#include "webrtc/transport.h"
namespace webrtc {
namespace internal {

View File

@ -8,7 +8,7 @@
* be found in the AUTHORS file in the root of the source tree.
*/
#include "webrtc/video_engine/internal/video_receive_stream.h"
#include "webrtc/video/video_receive_stream.h"
#include <assert.h>
#include <stdlib.h>
@ -23,7 +23,7 @@
#include "webrtc/video_engine/include/vie_network.h"
#include "webrtc/video_engine/include/vie_render.h"
#include "webrtc/video_engine/include/vie_rtp_rtcp.h"
#include "webrtc/video_engine/new_include/video_receive_stream.h"
#include "webrtc/video_receive_stream.h"
namespace webrtc {
namespace internal {
@ -140,11 +140,13 @@ void VideoReceiveStream::GetCurrentReceiveCodec(VideoCodec* receive_codec) {
}
bool VideoReceiveStream::DeliverRtcp(const uint8_t* packet, size_t length) {
return network_->ReceivedRTCPPacket(channel_, packet, length) == 0;
return network_->ReceivedRTCPPacket(
channel_, packet, static_cast<int>(length)) == 0;
}
bool VideoReceiveStream::DeliverRtp(const uint8_t* packet, size_t length) {
return network_->ReceivedRTPPacket(channel_, packet, length) == 0;
return network_->ReceivedRTPPacket(
channel_, packet, static_cast<int>(length)) == 0;
}
int VideoReceiveStream::FrameSizeChange(unsigned int width,

View File

@ -15,9 +15,9 @@
#include "webrtc/common_video/libyuv/include/webrtc_libyuv.h"
#include "webrtc/system_wrappers/interface/clock.h"
#include "webrtc/video/transport_adapter.h"
#include "webrtc/video_engine/include/vie_render.h"
#include "webrtc/video_engine/internal/transport_adapter.h"
#include "webrtc/video_engine/new_include/video_receive_stream.h"
#include "webrtc/video_receive_stream.h"
namespace webrtc {

View File

@ -8,7 +8,7 @@
* be found in the AUTHORS file in the root of the source tree.
*/
#include "webrtc/video_engine/internal/video_send_stream.h"
#include "webrtc/video/video_send_stream.h"
#include <string.h>
@ -23,7 +23,7 @@
#include "webrtc/video_engine/include/vie_image_process.h"
#include "webrtc/video_engine/include/vie_network.h"
#include "webrtc/video_engine/include/vie_rtp_rtcp.h"
#include "webrtc/video_engine/new_include/video_send_stream.h"
#include "webrtc/video_send_stream.h"
namespace webrtc {
namespace internal {
@ -101,16 +101,20 @@ VideoSendStream::VideoSendStream(newapi::Transport* transport,
rtp_rtcp_->SetLocalSSRC(channel_, config_.rtp.ssrcs[0]);
} else {
for (size_t i = 0; i < config_.rtp.ssrcs.size(); ++i) {
rtp_rtcp_->SetLocalSSRC(channel_, config_.rtp.ssrcs[i],
kViEStreamTypeNormal, i);
rtp_rtcp_->SetLocalSSRC(channel_,
config_.rtp.ssrcs[i],
kViEStreamTypeNormal,
static_cast<unsigned char>(i));
}
}
rtp_rtcp_->SetTransmissionSmoothingStatus(channel_, config_.pacing);
if (!config_.rtp.rtx.ssrcs.empty()) {
assert(config_.rtp.rtx.ssrcs.size() == config_.rtp.ssrcs.size());
for (size_t i = 0; i < config_.rtp.rtx.ssrcs.size(); ++i) {
rtp_rtcp_->SetLocalSSRC(
channel_, config_.rtp.rtx.ssrcs[i], kViEStreamTypeRtx, i);
rtp_rtcp_->SetLocalSSRC(channel_,
config_.rtp.rtx.ssrcs[i],
kViEStreamTypeRtx,
static_cast<unsigned char>(i));
}
if (config_.rtp.rtx.rtx_payload_type != 0) {
@ -169,7 +173,8 @@ VideoSendStream::VideoSendStream(newapi::Transport* transport,
network_->RegisterSendTransport(channel_, transport_adapter_);
// 28 to match packet overhead in ModuleRtpRtcpImpl.
network_->SetMTU(channel_, config_.rtp.max_packet_size + 28);
network_->SetMTU(channel_,
static_cast<unsigned int>(config_.rtp.max_packet_size + 28));
if (config.encoder) {
external_codec_ = ViEExternalCodec::GetInterface(video_engine);

View File

@ -14,9 +14,9 @@
#include <vector>
#include "webrtc/common_video/libyuv/include/webrtc_libyuv.h"
#include "webrtc/video_engine/internal/transport_adapter.h"
#include "webrtc/video_engine/new_include/video_receive_stream.h"
#include "webrtc/video_engine/new_include/video_send_stream.h"
#include "webrtc/video/transport_adapter.h"
#include "webrtc/video_receive_stream.h"
#include "webrtc/video_send_stream.h"
namespace webrtc {

View File

@ -10,7 +10,10 @@
#include <algorithm> // max
#include "testing/gtest/include/gtest/gtest.h"
#include "webrtc/call.h"
#include "webrtc/common_video/interface/i420_video_frame.h"
#include "webrtc/frame_callback.h"
#include "webrtc/modules/rtp_rtcp/interface/rtp_header_parser.h"
#include "webrtc/modules/rtp_rtcp/source/rtcp_sender.h"
#include "webrtc/modules/rtp_rtcp/source/rtcp_utility.h"
@ -19,14 +22,12 @@
#include "webrtc/system_wrappers/interface/scoped_ptr.h"
#include "webrtc/system_wrappers/interface/sleep.h"
#include "webrtc/system_wrappers/interface/thread_wrapper.h"
#include "webrtc/video_engine/internal/transport_adapter.h"
#include "webrtc/video_engine/new_include/call.h"
#include "webrtc/video_engine/new_include/frame_callback.h"
#include "webrtc/video_engine/new_include/video_send_stream.h"
#include "webrtc/video_engine/test/common/direct_transport.h"
#include "webrtc/video_engine/test/common/fake_encoder.h"
#include "webrtc/video_engine/test/common/frame_generator_capturer.h"
#include "webrtc/video_engine/test/common/null_transport.h"
#include "webrtc/test/direct_transport.h"
#include "webrtc/test/fake_encoder.h"
#include "webrtc/test/frame_generator_capturer.h"
#include "webrtc/test/null_transport.h"
#include "webrtc/video/transport_adapter.h"
#include "webrtc/video_send_stream.h"
namespace webrtc {

View File

@ -0,0 +1,22 @@
# Copyright (c) 2013 The WebRTC project authors. All Rights Reserved.
#
# Use of this source code is governed by a BSD-style license
# that can be found in the LICENSE file in the root of the source
# tree. An additional intellectual property rights grant can be found
# in the file PATENTS. All contributing project authors may
# be found in the AUTHORS file in the root of the source tree.
{
'variables': {
'webrtc_video_dependencies': [
'<(webrtc_root)/video_engine/video_engine.gyp:*',
],
'webrtc_video_sources': [
'video/transport_adapter.cc',
'video/transport_adapter.h',
'video/video_receive_stream.cc',
'video/video_receive_stream.h',
'video/video_send_stream.cc',
'video/video_send_stream.h',
],
},
}

View File

@ -1,87 +0,0 @@
/*
* Copyright (c) 2013 The WebRTC project authors. All Rights Reserved.
*
* Use of this source code is governed by a BSD-style license
* that can be found in the LICENSE file in the root of the source
* tree. An additional intellectual property rights grant can be found
* in the file PATENTS. All contributing project authors may
* be found in the AUTHORS file in the root of the source tree.
*/
#ifndef WEBRTC_VIDEO_ENGINE_INTERNAL_CALL_H_
#define WEBRTC_VIDEO_ENGINE_INTERNAL_CALL_H_
#include <map>
#include <vector>
#include "webrtc/modules/rtp_rtcp/interface/rtp_header_parser.h"
#include "webrtc/system_wrappers/interface/rw_lock_wrapper.h"
#include "webrtc/system_wrappers/interface/scoped_ptr.h"
#include "webrtc/video_engine/internal/video_receive_stream.h"
#include "webrtc/video_engine/internal/video_send_stream.h"
#include "webrtc/video_engine/new_include/call.h"
namespace webrtc {
class VideoEngine;
class ViERTP_RTCP;
class ViECodec;
namespace internal {
// TODO(pbos): Split out the packet receiver, should be sharable between
// VideoEngine and VoiceEngine.
class Call : public webrtc::Call, public PacketReceiver {
public:
Call(webrtc::VideoEngine* video_engine, const Call::Config& config);
virtual ~Call();
virtual PacketReceiver* Receiver() OVERRIDE;
virtual std::vector<VideoCodec> GetVideoCodecs() OVERRIDE;
virtual VideoSendStream::Config GetDefaultSendConfig() OVERRIDE;
virtual VideoSendStream* CreateSendStream(
const VideoSendStream::Config& config) OVERRIDE;
virtual SendStreamState* DestroySendStream(
webrtc::VideoSendStream* send_stream) OVERRIDE;
virtual VideoReceiveStream::Config GetDefaultReceiveConfig() OVERRIDE;
virtual VideoReceiveStream* CreateReceiveStream(
const VideoReceiveStream::Config& config) OVERRIDE;
virtual void DestroyReceiveStream(
webrtc::VideoReceiveStream* receive_stream) OVERRIDE;
virtual uint32_t SendBitrateEstimate() OVERRIDE;
virtual uint32_t ReceiveBitrateEstimate() OVERRIDE;
virtual bool DeliverPacket(const uint8_t* packet, size_t length) OVERRIDE;
private:
bool DeliverRtcp(const uint8_t* packet, size_t length);
bool DeliverRtp(const RTPHeader& header,
const uint8_t* packet,
size_t length);
Call::Config config_;
std::map<uint32_t, VideoReceiveStream*> receive_ssrcs_;
scoped_ptr<RWLockWrapper> receive_lock_;
std::map<uint32_t, VideoSendStream*> send_ssrcs_;
scoped_ptr<RWLockWrapper> send_lock_;
scoped_ptr<RtpHeaderParser> rtp_header_parser_;
webrtc::VideoEngine* video_engine_;
ViERTP_RTCP* rtp_rtcp_;
ViECodec* codec_;
DISALLOW_COPY_AND_ASSIGN(Call);
};
} // namespace internal
} // namespace webrtc
#endif // WEBRTC_VIDEO_ENGINE_INTERNAL_CALL_H_

View File

@ -1,183 +0,0 @@
# Copyright (c) 2013 The WebRTC project authors.All Rights Reserved.
#
# Use of this source code is governed by a BSD-style license
# that can be found in the LICENSE file in the root of the source
# tree. An additional intellectual property rights grant can be found
# in the file PATENTS.All contributing project authors may
# be found in the AUTHORS file in the root of the source tree.
{
'targets': [
{
'target_name': 'video_tests_common',
'type': 'static_library',
'sources': [
'common/direct_transport.cc',
'common/direct_transport.h',
'common/fake_decoder.cc',
'common/fake_decoder.h',
'common/fake_encoder.cc',
'common/fake_encoder.h',
'common/flags.cc',
'common/flags.h',
'common/frame_generator_capturer.cc',
'common/frame_generator_capturer.h',
'common/generate_ssrcs.cc',
'common/generate_ssrcs.h',
'common/gl/gl_renderer.cc',
'common/gl/gl_renderer.h',
'common/linux/glx_renderer.cc',
'common/linux/glx_renderer.h',
'common/linux/video_renderer_linux.cc',
'common/mac/run_tests.mm',
'common/mac/video_renderer_mac.h',
'common/mac/video_renderer_mac.mm',
'common/null_platform_renderer.cc',
'common/null_transport.cc',
'common/null_transport.h',
'common/rtp_rtcp_observer.h',
'common/run_tests.cc',
'common/run_tests.h',
'common/run_loop.cc',
'common/run_loop.h',
'common/statistics.cc',
'common/statistics.h',
'common/vcm_capturer.cc',
'common/vcm_capturer.h',
'common/video_capturer.cc',
'common/video_capturer.h',
'common/video_renderer.cc',
'common/video_renderer.h',
'common/win/d3d_renderer.cc',
'common/win/d3d_renderer.h',
'common/win/run_loop_win.cc',
],
'conditions': [
['OS=="linux"', {
'sources!': [
'common/null_platform_renderer.cc',
],
}],
['OS=="mac"', {
'sources!': [
'common/null_platform_renderer.cc',
'common/run_tests.cc',
],
}],
['OS!="linux" and OS!="mac"', {
'sources!' : [
'common/gl/gl_renderer.cc',
'common/gl/gl_renderer.h',
],
}],
['OS=="win"', {
'sources!': [
'common/null_platform_renderer.cc',
'common/run_loop.cc',
],
}],
],
'direct_dependent_settings': {
'conditions': [
['OS=="linux"', {
'libraries': [
'-lXext',
'-lX11',
'-lGL',
],
}],
#TODO(pbos) : These dependencies should not have to be here, they
# aren't used by test code directly, only by components
# used by the tests.
['OS=="android"', {
'libraries' : [
'-lGLESv2', '-llog',
],
}],
['OS=="mac"', {
'xcode_settings' : {
'OTHER_LDFLAGS' : [
'-framework Foundation',
'-framework AppKit',
'-framework Cocoa',
'-framework OpenGL',
'-framework CoreVideo',
'-framework CoreAudio',
'-framework AudioToolbox',
],
},
}],
],
},
'dependencies': [
'<(DEPTH)/testing/gtest.gyp:gtest',
'<(DEPTH)/third_party/gflags/gflags.gyp:gflags',
'<(webrtc_root)/modules/modules.gyp:video_capture_module',
'<(webrtc_root)/test/test.gyp:test_support',
'video_engine_core',
'<(webrtc_root)/common_video/common_video.gyp:frame_generator',
],
},
{
'target_name': 'video_loopback',
'type': 'executable',
'sources': [
'loopback.cc',
'test_main.cc',
],
'dependencies': [
'<(DEPTH)/testing/gtest.gyp:gtest',
'video_tests_common',
],
},
{
'target_name': 'video_engine_tests',
'type': '<(gtest_target_type)',
'sources': [
'call_tests.cc',
'full_stack.cc',
'rampup_tests.cc',
'send_stream_tests.cc',
'test_main.cc',
],
'dependencies': [
'<(DEPTH)/testing/gtest.gyp:gtest',
'<(DEPTH)/third_party/gflags/gflags.gyp:gflags',
'video_tests_common',
],
},
], # targets
'conditions': [
# TODO(henrike): remove build_with_chromium==1 when the bots are using
# Chromium's buildbots.
['build_with_chromium==1 and OS=="android" and gtest_target_type=="shared_library"', {
'targets': [
{
'target_name': 'video_engine_tests_apk_target',
'type': 'none',
'dependencies': [
'<(apk_tests_path):video_engine_tests_apk',
],
},
],
}],
['test_isolation_mode != "noop"', {
'targets': [
{
'target_name': 'video_engine_tests_run',
'type': 'none',
'dependencies': [
'video_engine_tests',
],
'includes': [
'../../build/isolate.gypi',
'video_engine_tests.isolate',
],
'sources': [
'video_engine_tests.isolate',
],
},
],
}],
], # conditions
}

View File

@ -17,7 +17,6 @@
'includes': [
'test/libvietest/libvietest.gypi',
'test/auto_test/vie_auto_test.gypi',
'test/tests.gypi',
],
'conditions': [
['OS=="android"', {

View File

@ -113,23 +113,6 @@
'vie_render_manager.cc',
'vie_sender.cc',
'vie_sync_module.cc',
# New VideoEngine API
'internal/call.cc',
'internal/call.h',
'internal/transport_adapter.cc',
'internal/transport_adapter.h',
'internal/video_receive_stream.cc',
'internal/video_receive_stream.h',
'internal/video_send_stream.cc',
'internal/video_send_stream.h',
'new_include/call.h',
'new_include/config.h',
'new_include/frame_callback.h',
'new_include/transport.h',
'new_include/video_receive_stream.h',
'new_include/video_renderer.h',
'new_include/video_send_stream.h',
], # source
# TODO(jschuh): Bug 1348: fix size_t to int truncations.
'msvs_disabled_warnings': [ 4267, ],

View File

@ -29,7 +29,7 @@
#include "webrtc/video_engine/include/vie_errors.h"
#include "webrtc/video_engine/include/vie_image_process.h"
#include "webrtc/video_engine/include/vie_rtp_rtcp.h"
#include "webrtc/video_engine/new_include/frame_callback.h"
#include "webrtc/frame_callback.h"
#include "webrtc/video_engine/vie_defines.h"
namespace webrtc {

View File

@ -28,7 +28,7 @@
#include "webrtc/system_wrappers/interface/trace_event.h"
#include "webrtc/video_engine/include/vie_codec.h"
#include "webrtc/video_engine/include/vie_image_process.h"
#include "webrtc/video_engine/new_include/frame_callback.h"
#include "webrtc/frame_callback.h"
#include "webrtc/video_engine/vie_defines.h"
namespace webrtc {

View File

@ -21,7 +21,7 @@
#include "webrtc/modules/video_processing/main/interface/video_processing.h"
#include "webrtc/system_wrappers/interface/scoped_ptr.h"
#include "webrtc/typedefs.h"
#include "webrtc/video_engine/new_include/frame_callback.h"
#include "webrtc/frame_callback.h"
#include "webrtc/video_engine/vie_defines.h"
#include "webrtc/video_engine/vie_frame_provider_base.h"

View File

@ -12,24 +12,24 @@
# of a Chromium checkout, this is one level above the standalone build.
'variables': {
'isolate_dependency_untracked': [
'../../../../data/',
'../../../../resources/',
'../../data/',
'../../resources/',
],
},
}],
['OS=="linux" or OS=="mac" or OS=="win"', {
'variables': {
'command': [
'../../../testing/test_env.py',
'../../../tools/swarm_client/googletest/run_test_cases.py',
'../testing/test_env.py',
'../tools/swarm_client/googletest/run_test_cases.py',
'<(PRODUCT_DIR)/video_engine_tests<(EXECUTABLE_SUFFIX)',
],
'isolate_dependency_tracked': [
'../../../testing/test_env.py',
'../testing/test_env.py',
'<(PRODUCT_DIR)/video_engine_tests<(EXECUTABLE_SUFFIX)',
],
'isolate_dependency_untracked': [
'../../../tools/swarm_client/',
'../tools/swarm_client/',
],
},
}],

View File

@ -15,10 +15,10 @@
#include <vector>
#include "webrtc/common_types.h"
#include "webrtc/video_engine/new_include/config.h"
#include "webrtc/video_engine/new_include/frame_callback.h"
#include "webrtc/video_engine/new_include/transport.h"
#include "webrtc/video_engine/new_include/video_renderer.h"
#include "webrtc/config.h"
#include "webrtc/frame_callback.h"
#include "webrtc/transport.h"
#include "webrtc/video_renderer.h"
namespace webrtc {

View File

@ -15,9 +15,9 @@
#include <vector>
#include "webrtc/common_types.h"
#include "webrtc/video_engine/new_include/config.h"
#include "webrtc/video_engine/new_include/frame_callback.h"
#include "webrtc/video_engine/new_include/video_renderer.h"
#include "webrtc/config.h"
#include "webrtc/frame_callback.h"
#include "webrtc/video_renderer.h"
namespace webrtc {

View File

@ -5,9 +5,18 @@
# tree. An additional intellectual property rights grant can be found
# in the file PATENTS. All contributing project authors may
# be found in the AUTHORS file in the root of the source tree.
{
'includes': ['build/common.gypi',],
'conditions': [
['include_tests==1', {
'includes': [
'webrtc_tests.gypi',
],
}],
],
'includes': [
'build/common.gypi',
'video/webrtc_video.gypi',
],
'variables': {
'webrtc_all_dependencies': [
'common_audio/common_audio.gyp:*',
@ -21,10 +30,11 @@
},
'targets': [
{
'target_name': 'webrtc',
'target_name': 'webrtc_all',
'type': 'none',
'dependencies': [
'<@(webrtc_all_dependencies)',
'webrtc',
],
'conditions': [
['include_tests==1', {
@ -33,6 +43,7 @@
'test/metrics.gyp:*',
'test/test.gyp:*',
'tools/tools.gyp:*',
'webrtc_tests',
],
}],
['build_with_chromium==0 and OS=="android"', {
@ -42,5 +53,26 @@
}],
],
},
{
# TODO(pbos): This is intended to contain audio parts as well as soon as
# VoiceEngine moves to the same new API format.
'target_name': 'webrtc',
'type': 'static_library',
'sources': [
'call.cc',
'call.h',
'config.h',
'frame_callback.h',
'transport.h',
'video_receive_stream.h',
'video_renderer.h',
'video_send_stream.h',
'<@(webrtc_video_sources)',
],
'dependencies': [
'<@(webrtc_video_dependencies)',
],
},
],
}

83
webrtc/webrtc_tests.gypi Normal file
View File

@ -0,0 +1,83 @@
# Copyright (c) 2013 The WebRTC project authors. All Rights Reserved.
#
# Use of this source code is governed by a BSD-style license
# that can be found in the LICENSE file in the root of the source
# tree. An additional intellectual property rights grant can be found
# in the file PATENTS. All contributing project authors may
# be found in the AUTHORS file in the root of the source tree.
{
'targets': [
{
'target_name': 'webrtc_tests',
'type': 'none',
'dependencies': [
'video_engine_tests',
'video_loopback',
],
},
{
'target_name': 'video_loopback',
'type': 'executable',
'sources': [
'loopback.cc',
'test/test_main.cc',
],
'dependencies': [
'<(DEPTH)/testing/gtest.gyp:gtest',
'test/webrtc_test_common.gyp:webrtc_test_common',
'webrtc',
],
},
{
'target_name': 'video_engine_tests',
'type': '<(gtest_target_type)',
'sources': [
'call_tests.cc',
'video/full_stack.cc',
'video/rampup_tests.cc',
'video/video_send_stream_tests.cc',
'test/test_main.cc',
],
'dependencies': [
'<(DEPTH)/testing/gtest.gyp:gtest',
'<(DEPTH)/third_party/gflags/gflags.gyp:gflags',
'modules/modules.gyp:rtp_rtcp',
'test/webrtc_test_common.gyp:webrtc_test_common',
'webrtc',
],
},
],
'conditions': [
# TODO(henrike): remove build_with_chromium==1 when the bots are using
# Chromium's buildbots.
['build_with_chromium==1 and OS=="android" and gtest_target_type=="shared_library"', {
'targets': [
{
'target_name': 'video_engine_tests_apk_target',
'type': 'none',
'dependencies': [
'<(apk_tests_path):video_engine_tests_apk',
],
},
],
}],
['test_isolation_mode != "noop"', {
'targets': [
{
'target_name': 'video_engine_tests_run',
'type': 'none',
'dependencies': [
'video_engine_tests',
],
'includes': [
'../build/isolate.gypi',
'video_engine_tests.isolate',
],
'sources': [
'video_engine_tests.isolate',
],
},
],
}],
],
}