From 1ecee9a15a59fd82816bdcd89ecdeb772ec05cf5 Mon Sep 17 00:00:00 2001 From: "pbos@webrtc.org" Date: Wed, 29 May 2013 11:34:32 +0000 Subject: [PATCH] Break video_engine/new_include/common.h into smaller parts. BUG= R=mflodman@webrtc.org Review URL: https://webrtc-codereview.appspot.com/1571005 git-svn-id: http://webrtc.googlecode.com/svn/trunk@4128 4adac7df-926f-26a2-2b94-8c16560cd09d --- webrtc/video_engine/internal/video_call.cc | 1 - webrtc/video_engine/internal/video_call.h | 1 - .../new_include/{common.h => config.h} | 53 ++----------------- .../video_engine/new_include/frame_callback.h | 42 +++++++++++++++ webrtc/video_engine/new_include/transport.h | 30 +++++++++++ .../video_engine/new_include/video_engine.h | 1 - .../new_include/video_receive_stream.h | 5 +- .../video_engine/new_include/video_renderer.h | 34 ++++++++++++ .../new_include/video_send_stream.h | 4 +- .../test/common/direct_transport.h | 2 +- .../video_engine/test/common/gl/gl_renderer.h | 2 + .../test/common/linux/glx_renderer.h | 1 + .../test/common/linux/xv_renderer.h | 2 +- .../test/common/video_renderer.cc | 2 + .../video_engine/test/common/video_renderer.h | 4 +- webrtc/video_engine/video_engine_core.gypi | 13 +++-- 16 files changed, 134 insertions(+), 63 deletions(-) rename webrtc/video_engine/new_include/{common.h => config.h} (64%) create mode 100644 webrtc/video_engine/new_include/frame_callback.h create mode 100644 webrtc/video_engine/new_include/transport.h create mode 100644 webrtc/video_engine/new_include/video_renderer.h diff --git a/webrtc/video_engine/internal/video_call.cc b/webrtc/video_engine/internal/video_call.cc index 3e4d7d7970..4f864b45ca 100644 --- a/webrtc/video_engine/internal/video_call.cc +++ b/webrtc/video_engine/internal/video_call.cc @@ -22,7 +22,6 @@ #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" -#include "webrtc/video_engine/new_include/common.h" #include "webrtc/video_engine/new_include/video_engine.h" namespace webrtc { diff --git a/webrtc/video_engine/internal/video_call.h b/webrtc/video_engine/internal/video_call.h index d8f3ec7ce4..e9b0af2257 100644 --- a/webrtc/video_engine/internal/video_call.h +++ b/webrtc/video_engine/internal/video_call.h @@ -17,7 +17,6 @@ #include "webrtc/modules/rtp_rtcp/source/rtp_utility.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/common.h" #include "webrtc/video_engine/new_include/video_engine.h" namespace webrtc { diff --git a/webrtc/video_engine/new_include/common.h b/webrtc/video_engine/new_include/config.h similarity index 64% rename from webrtc/video_engine/new_include/common.h rename to webrtc/video_engine/new_include/config.h index ca35ecec42..d28243db3e 100644 --- a/webrtc/video_engine/new_include/common.h +++ b/webrtc/video_engine/new_include/config.h @@ -8,60 +8,14 @@ * be found in the AUTHORS file in the root of the source tree. */ -#ifndef WEBRTC_VIDEO_ENGINE_NEW_INCLUDE_COMMON_H_ -#define WEBRTC_VIDEO_ENGINE_NEW_INCLUDE_COMMON_H_ +#ifndef WEBRTC_VIDEO_ENGINE_NEW_INCLUDE_CONFIG_H_ +#define WEBRTC_VIDEO_ENGINE_NEW_INCLUDE_CONFIG_H_ #include -#include "webrtc/common_types.h" - namespace webrtc { - -class I420VideoFrame; - namespace newapi { -struct EncodedFrame; - -class I420FrameCallback { - public: - // This function is called with a I420 frame allowing the user to modify the - // frame content. - virtual void FrameCallback(I420VideoFrame* video_frame) = 0; - - protected: - virtual ~I420FrameCallback() {} -}; - -class EncodedFrameObserver { - public: - virtual void EncodedFrameCallback(const EncodedFrame& encoded_frame) = 0; - - protected: - virtual ~EncodedFrameObserver() {} -}; - -class VideoRenderer { - public: - // This function should return as soon as possible and not block until it's - // time to render the frame. - // TODO(mflodman) Remove time_to_render_ms when I420VideoFrame contains NTP. - virtual void RenderFrame(const I420VideoFrame& video_frame, - int time_to_render_ms) = 0; - - protected: - virtual ~VideoRenderer() {} -}; - -class Transport { - public: - virtual bool SendRTP(const void* packet, size_t length) = 0; - virtual bool SendRTCP(const void* packet, size_t length) = 0; - - protected: - virtual ~Transport() {} -}; - struct RtpStatistics { RtpStatistics() : ssrc(0), @@ -123,8 +77,7 @@ struct RtpExtension { std::string name; int id; }; - } // namespace newapi } // namespace webrtc -#endif // WEBRTC_VIDEO_ENGINE_NEW_INCLUDE_COMMON_H_ +#endif // WEBRTC_VIDEO_ENGINE_NEW_INCLUDE_CONFIG_H_ diff --git a/webrtc/video_engine/new_include/frame_callback.h b/webrtc/video_engine/new_include/frame_callback.h new file mode 100644 index 0000000000..e8006fce9b --- /dev/null +++ b/webrtc/video_engine/new_include/frame_callback.h @@ -0,0 +1,42 @@ +/* + * 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_NEW_INCLUDE_FRAME_CALLBACK_H_ +#define WEBRTC_VIDEO_ENGINE_NEW_INCLUDE_FRAME_CALLBACK_H_ + +namespace webrtc { + +class I420VideoFrame; + +namespace newapi { + +struct EncodedFrame; + +class I420FrameCallback { + public: + // This function is called with a I420 frame allowing the user to modify the + // frame content. + virtual void FrameCallback(I420VideoFrame* video_frame) = 0; + + protected: + virtual ~I420FrameCallback() {} +}; + +class EncodedFrameObserver { + public: + virtual void EncodedFrameCallback(const EncodedFrame& encoded_frame) = 0; + + protected: + virtual ~EncodedFrameObserver() {} +}; +} // namespace newapi +} // namespace webrtc + +#endif // WEBRTC_VIDEO_ENGINE_NEW_INCLUDE_FRAME_CALLBACK_H_ diff --git a/webrtc/video_engine/new_include/transport.h b/webrtc/video_engine/new_include/transport.h new file mode 100644 index 0000000000..6a2577dc99 --- /dev/null +++ b/webrtc/video_engine/new_include/transport.h @@ -0,0 +1,30 @@ +/* + * 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_NEW_INCLUDE_TRANSPORT_H_ +#define WEBRTC_VIDEO_ENGINE_NEW_INCLUDE_TRANSPORT_H_ + +#include + +namespace webrtc { +namespace newapi { + +class Transport { + public: + virtual bool SendRTP(const void* packet, size_t length) = 0; + virtual bool SendRTCP(const void* packet, size_t length) = 0; + + protected: + virtual ~Transport() {} +}; +} // namespace newapi +} // namespace webrtc + +#endif // WEBRTC_VIDEO_ENGINE_NEW_INCLUDE_TRANSPORT_H_ diff --git a/webrtc/video_engine/new_include/video_engine.h b/webrtc/video_engine/new_include/video_engine.h index 60a0a89110..e4b97267ea 100644 --- a/webrtc/video_engine/new_include/video_engine.h +++ b/webrtc/video_engine/new_include/video_engine.h @@ -15,7 +15,6 @@ #include #include "webrtc/common_types.h" -#include "webrtc/video_engine/new_include/common.h" #include "webrtc/video_engine/new_include/video_receive_stream.h" #include "webrtc/video_engine/new_include/video_send_stream.h" diff --git a/webrtc/video_engine/new_include/video_receive_stream.h b/webrtc/video_engine/new_include/video_receive_stream.h index a23b6b6465..c4b324d18a 100644 --- a/webrtc/video_engine/new_include/video_receive_stream.h +++ b/webrtc/video_engine/new_include/video_receive_stream.h @@ -15,7 +15,10 @@ #include #include "webrtc/common_types.h" -#include "webrtc/video_engine/new_include/common.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" namespace webrtc { diff --git a/webrtc/video_engine/new_include/video_renderer.h b/webrtc/video_engine/new_include/video_renderer.h new file mode 100644 index 0000000000..4bb14be0d0 --- /dev/null +++ b/webrtc/video_engine/new_include/video_renderer.h @@ -0,0 +1,34 @@ +/* + * 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_NEW_INCLUDE_VIDEO_RENDERER_H_ +#define WEBRTC_VIDEO_ENGINE_NEW_INCLUDE_VIDEO_RENDERER_H_ + +namespace webrtc { + +class I420VideoFrame; + +namespace newapi { + +class VideoRenderer { + public: + // This function should return as soon as possible and not block until it's + // time to render the frame. + // TODO(mflodman) Remove time_to_render_ms when I420VideoFrame contains NTP. + virtual void RenderFrame(const I420VideoFrame& video_frame, + int time_to_render_ms) = 0; + + protected: + virtual ~VideoRenderer() {} +}; +} // namespace newapi +} // namespace webrtc + +#endif // WEBRTC_VIDEO_ENGINE_NEW_INCLUDE_VIDEO_RENDERER_H_ diff --git a/webrtc/video_engine/new_include/video_send_stream.h b/webrtc/video_engine/new_include/video_send_stream.h index 7899e9cbe4..c57a5df535 100644 --- a/webrtc/video_engine/new_include/video_send_stream.h +++ b/webrtc/video_engine/new_include/video_send_stream.h @@ -15,7 +15,9 @@ #include #include "webrtc/common_types.h" -#include "webrtc/video_engine/new_include/common.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" namespace webrtc { diff --git a/webrtc/video_engine/test/common/direct_transport.h b/webrtc/video_engine/test/common/direct_transport.h index 69de83ef9d..5520153c51 100644 --- a/webrtc/video_engine/test/common/direct_transport.h +++ b/webrtc/video_engine/test/common/direct_transport.h @@ -10,7 +10,7 @@ #ifndef WEBRTC_VIDEO_ENGINE_TEST_COMMON_DIRECT_TRANSPORT_H_ #define WEBRTC_VIDEO_ENGINE_TEST_COMMON_DIRECT_TRANSPORT_H_ -#include "webrtc/video_engine/new_include/common.h" +#include "webrtc/video_engine/new_include/transport.h" namespace webrtc { namespace test { diff --git a/webrtc/video_engine/test/common/gl/gl_renderer.h b/webrtc/video_engine/test/common/gl/gl_renderer.h index e56ac74c9f..cd8ea44118 100644 --- a/webrtc/video_engine/test/common/gl/gl_renderer.h +++ b/webrtc/video_engine/test/common/gl/gl_renderer.h @@ -18,6 +18,8 @@ #endif #include "webrtc/video_engine/test/common/video_renderer.h" +#include "webrtc/typedefs.h" + namespace webrtc { namespace test { diff --git a/webrtc/video_engine/test/common/linux/glx_renderer.h b/webrtc/video_engine/test/common/linux/glx_renderer.h index 0eae9b5182..eb126545a2 100644 --- a/webrtc/video_engine/test/common/linux/glx_renderer.h +++ b/webrtc/video_engine/test/common/linux/glx_renderer.h @@ -15,6 +15,7 @@ #include #include "webrtc/video_engine/test/common/gl/gl_renderer.h" +#include "webrtc/typedefs.h" namespace webrtc { namespace test { diff --git a/webrtc/video_engine/test/common/linux/xv_renderer.h b/webrtc/video_engine/test/common/linux/xv_renderer.h index df6b050261..6c485c2fad 100644 --- a/webrtc/video_engine/test/common/linux/xv_renderer.h +++ b/webrtc/video_engine/test/common/linux/xv_renderer.h @@ -15,8 +15,8 @@ #include #include -#include "webrtc/video_engine/new_include/common.h" #include "webrtc/video_engine/test/common/video_renderer.h" +#include "webrtc/typedefs.h" namespace webrtc { namespace test { diff --git a/webrtc/video_engine/test/common/video_renderer.cc b/webrtc/video_engine/test/common/video_renderer.cc index 1abb35b7f1..62ede3946d 100644 --- a/webrtc/video_engine/test/common/video_renderer.cc +++ b/webrtc/video_engine/test/common/video_renderer.cc @@ -13,6 +13,8 @@ // TODO(pbos): Windows renderer // TODO(pbos): Android renderer +#include "webrtc/typedefs.h" + namespace webrtc { namespace test { diff --git a/webrtc/video_engine/test/common/video_renderer.h b/webrtc/video_engine/test/common/video_renderer.h index ef4168f47f..2d441034e8 100644 --- a/webrtc/video_engine/test/common/video_renderer.h +++ b/webrtc/video_engine/test/common/video_renderer.h @@ -10,7 +10,9 @@ #ifndef WEBRTC_VIDEO_ENGINE_TEST_COMMON_VIDEO_RENDERER_H_ #define WEBRTC_VIDEO_ENGINE_TEST_COMMON_VIDEO_RENDERER_H_ -#include "webrtc/video_engine/new_include/common.h" +#include + +#include "webrtc/video_engine/new_include/video_renderer.h" namespace webrtc { namespace test { diff --git a/webrtc/video_engine/video_engine_core.gypi b/webrtc/video_engine/video_engine_core.gypi index 3f19a469c6..d653300b78 100644 --- a/webrtc/video_engine/video_engine_core.gypi +++ b/webrtc/video_engine/video_engine_core.gypi @@ -120,17 +120,20 @@ 'vie_sync_module.cc', # New VideoEngine API - 'new_include/common.h', - 'new_include/video_engine.h', - 'new_include/video_receive_stream.h', - 'new_include/video_send_stream.h', - 'internal/video_engine.cc', 'internal/video_call.cc', 'internal/video_call.h', + 'internal/video_engine.cc', 'internal/video_receive_stream.cc', 'internal/video_receive_stream.h', 'internal/video_send_stream.cc', 'internal/video_send_stream.h', + 'new_include/config.h', + 'new_include/frame_callback.h', + 'new_include/transport.h', + 'new_include/video_engine.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, ],