Move videosinkinterface.h to common_video to solve a circular dep.

I updated some dependency enforcement rules to allow examples and pc
to depend on common_video. I reckoned depending on common_video is
not controversial when they already dependend on media/base, which
is a lower-level abstraction.

Bug: webrtc:6828
Change-Id: I77dbeb10187b4e70dda1d873a29994fa76070758
Reviewed-on: https://webrtc-review.googlesource.com/34187
Reviewed-by: Stefan Holmer <stefan@webrtc.org>
Commit-Queue: Patrik Höglund <phoglund@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#21495}
This commit is contained in:
Patrik Höglund
2018-01-04 12:14:35 +01:00
committed by Commit Bot
parent 085bb64c85
commit be214a26f8
32 changed files with 70 additions and 47 deletions

View File

@ -72,6 +72,7 @@ rtc_static_library("libjingle_peerconnection_api") {
"turncustomizer.h",
"umametrics.cc",
"umametrics.h",
"videosinkinterface.h",
"videosourceproxy.h",
]

View File

@ -27,7 +27,7 @@
// TODO(zhihuang): Remove unrelated headers once downstream applications stop
// relying on them; they were previously transitively included by
// mediachannel.h, which is no longer a dependency of this file.
#include "media/base/videosinkinterface.h"
#include "api/videosinkinterface.h"
#include "media/base/videosourceinterface.h"
#include "modules/audio_processing/include/audio_processing_statistics.h"
#include "rtc_base/ratetracker.h"

32
api/videosinkinterface.h Normal file
View File

@ -0,0 +1,32 @@
/*
* Copyright (c) 2016 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 API_VIDEOSINKINTERFACE_H_
#define API_VIDEOSINKINTERFACE_H_
#include <rtc_base/checks.h>
namespace rtc {
template <typename VideoFrameT>
class VideoSinkInterface {
public:
virtual ~VideoSinkInterface() {}
virtual void OnFrame(const VideoFrameT& frame) = 0;
// Should be called by the source when it discards the frame due to rate
// limiting.
virtual void OnDiscardedFrame() {}
};
} // namespace rtc
#endif // API_VIDEOSINKINTERFACE_H_

View File

@ -21,10 +21,10 @@
#include "api/rtpparameters.h"
#include "api/video/video_content_type.h"
#include "api/video/video_timing.h"
#include "api/videosinkinterface.h"
#include "call/rtp_config.h"
#include "common_types.h" // NOLINT(build/include)
#include "common_video/include/frame_callback.h"
#include "media/base/videosinkinterface.h"
#include "modules/rtp_rtcp/include/rtp_rtcp_defines.h"
#include "rtc_base/platform_file.h"

View File

@ -19,11 +19,11 @@
#include "api/call/transport.h"
#include "api/rtpparameters.h"
#include "api/rtp_headers.h"
#include "api/videosinkinterface.h"
#include "call/rtp_config.h"
#include "call/video_config.h"
#include "common_types.h" // NOLINT(build/include)
#include "common_video/include/frame_callback.h"
#include "media/base/videosinkinterface.h"
#include "media/base/videosourceinterface.h"
#include "modules/rtp_rtcp/include/rtp_rtcp_defines.h"
#include "rtc_base/platform_file.h"

View File

@ -13,13 +13,6 @@ config("common_video_config") {
}
rtc_static_library("common_video") {
# TODO(bugs.webrtc.org/6828): Remove dependency cycle:
# //common_video:common_video ->
# //media:rtc_media_base ->
# //call:call_interfaces ->
# //call:video_stream_api ->
# //common_video:common_video
check_includes = false
sources = [
"bitrate_adjuster.cc",
"h264/h264_bitstream_parser.cc",
@ -61,14 +54,18 @@ rtc_static_library("common_video") {
deps = [
"..:webrtc_common",
"../:typedefs",
"../api:libjingle_peerconnection_api",
"../api:optional",
"../api:video_frame_api",
"../api:video_frame_api_i420",
"../media:rtc_h264_profile_id",
"../modules:module_api",
"../rtc_base:checks",
"../rtc_base:rtc_base",
"../rtc_base:rtc_task_queue",
"../system_wrappers",
"//third_party/libyuv",
]
}

View File

@ -11,8 +11,8 @@
#ifndef COMMON_VIDEO_INCLUDE_INCOMING_VIDEO_STREAM_H_
#define COMMON_VIDEO_INCLUDE_INCOMING_VIDEO_STREAM_H_
#include "api/videosinkinterface.h"
#include "common_video/video_render_frames.h"
#include "media/base/videosinkinterface.h"
#include "rtc_base/race_checker.h"
#include "rtc_base/task_queue.h"

View File

@ -673,6 +673,7 @@ if (is_win || is_android) {
"../api:video_frame_api",
"../api/audio_codecs:builtin_audio_decoder_factory",
"../api/audio_codecs:builtin_audio_encoder_factory",
"../common_video",
"../media:rtc_media",
"../media:rtc_media_base",
"../modules/audio_device:audio_device",

View File

@ -1,6 +1,7 @@
include_rules = [
"+WebRTC",
"+api",
"+common_video",
"+media",
"+modules/audio_device",
"+modules/video_capture",

View File

@ -14,8 +14,8 @@
#include <mutex>
#include "api/mediastreaminterface.h"
#include "api/videosinkinterface.h"
#include "examples/unityplugin/unity_plugin_apis.h"
#include "media/base/videosinkinterface.h"
class VideoObserver : public rtc::VideoSinkInterface<webrtc::VideoFrame> {
public:

View File

@ -90,7 +90,6 @@ rtc_static_library("rtc_media_base") {
"base/videocapturerfactory.h",
"base/videocommon.cc",
"base/videocommon.h",
"base/videosinkinterface.h",
"base/videosourcebase.cc",
"base/videosourcebase.h",
"base/videosourceinterface.cc",
@ -112,6 +111,7 @@ rtc_static_library("rtc_media_base") {
"../api/video_codecs:video_codecs_api",
"../call:call_interfaces",
"../call:video_stream_api",
"../common_video",
"../modules/audio_processing:audio_processing_statistics",
"../p2p",
"../rtc_base:rtc_base",
@ -341,8 +341,10 @@ if (rtc_include_tests) {
include_dirs = []
public_deps = []
deps = [
"../api:libjingle_peerconnection_api",
"../api:video_frame_api_i420",
"../call:video_stream_api",
"../common_video:common_video",
"../modules/audio_coding:rent_a_codec",
"../modules/audio_processing:audio_processing",
"../modules/rtp_rtcp:rtp_rtcp_format",

View File

@ -12,7 +12,7 @@
#define MEDIA_BASE_FAKEVIDEORENDERER_H_
#include "api/video/video_frame.h"
#include "media/base/videosinkinterface.h"
#include "api/videosinkinterface.h"
#include "rtc_base/criticalsection.h"
#include "rtc_base/logging.h"

View File

@ -23,11 +23,11 @@
#include "api/rtpreceiverinterface.h"
#include "api/video/video_content_type.h"
#include "api/video/video_timing.h"
#include "api/videosinkinterface.h"
#include "call/video_config.h"
#include "media/base/codec.h"
#include "media/base/mediaconstants.h"
#include "media/base/streamparams.h"
#include "media/base/videosinkinterface.h"
#include "media/base/videosourceinterface.h"
#include "modules/audio_processing/include/audio_processing_statistics.h"
#include "rtc_base/asyncpacketsocket.h"

View File

@ -16,7 +16,7 @@
#include <vector>
#include "api/video/video_frame.h"
#include "media/base/videosinkinterface.h"
#include "api/videosinkinterface.h"
#include "media/base/videosourcebase.h"
#include "rtc_base/criticalsection.h"
#include "rtc_base/thread_checker.h"

View File

@ -11,24 +11,7 @@
#ifndef MEDIA_BASE_VIDEOSINKINTERFACE_H_
#define MEDIA_BASE_VIDEOSINKINTERFACE_H_
#include <rtc_base/checks.h>
// TODO(nisse): Consider moving this interface (and possibly
// VideoSourceInterface too) from media/base to common_video, to
// reduce dependency cycles.
namespace rtc {
template <typename VideoFrameT>
class VideoSinkInterface {
public:
virtual ~VideoSinkInterface() {}
virtual void OnFrame(const VideoFrameT& frame) = 0;
// Should be called by the source when it discards the frame due to rate
// limiting.
virtual void OnDiscardedFrame() {}
};
} // namespace rtc
// TODO(bugs.webrtc.org/6828): Remove this once downstream is updated.
#include "api/videosinkinterface.h"
#endif // MEDIA_BASE_VIDEOSINKINTERFACE_H_

View File

@ -14,7 +14,7 @@
#include <limits>
#include "api/optional.h"
#include "media/base/videosinkinterface.h"
#include "api/videosinkinterface.h"
namespace rtc {

View File

@ -21,12 +21,12 @@
#include "api/optional.h"
#include "api/video/video_frame.h"
#include "api/video_codecs/sdp_video_format.h"
#include "api/videosinkinterface.h"
#include "call/call.h"
#include "call/flexfec_receive_stream.h"
#include "call/video_receive_stream.h"
#include "call/video_send_stream.h"
#include "media/base/mediaengine.h"
#include "media/base/videosinkinterface.h"
#include "media/base/videosourceinterface.h"
#include "media/engine/webrtcvideodecoderfactory.h"
#include "media/engine/webrtcvideoencoderfactory.h"

View File

@ -29,6 +29,7 @@ rtc_static_library("video_capture_module") {
"..:module_api",
"../..:webrtc_common",
"../../:typedefs",
"../../api:libjingle_peerconnection_api",
"../../api:video_frame_api",
"../../api:video_frame_api_i420",
"../../common_video",

View File

@ -12,7 +12,7 @@
#define MODULES_VIDEO_CAPTURE_VIDEO_CAPTURE_H_
#include "api/video/video_rotation.h"
#include "media/base/videosinkinterface.h"
#include "api/videosinkinterface.h"
#include "modules/include/module.h"
#include "modules/video_capture/video_capture_defines.h"

View File

@ -75,6 +75,7 @@ rtc_static_library("rtc_pc_base") {
"../api:libjingle_peerconnection_api",
"../api:optional",
"../api:ortc_api",
"../common_video:common_video",
"../media:rtc_data",
"../media:rtc_h264_profile_id",
"../media:rtc_media_base",
@ -184,6 +185,7 @@ rtc_static_library("peerconnection") {
"../api:rtc_stats_api",
"../api/video_codecs:video_codecs_api",
"../call:call_interfaces",
"../common_video:common_video",
"../logging:rtc_event_log_api",
"../media:rtc_data",
"../media:rtc_media_base",

View File

@ -2,7 +2,7 @@ include_rules = [
"+third_party/libsrtp",
"+api",
"+call",
"+common_video/h264",
"+common_video",
"+logging/rtc_event_log",
"+logging/rtc_event_log",
"+media",

View File

@ -21,10 +21,10 @@
#include "api/call/audio_sink.h"
#include "api/jsep.h"
#include "api/rtpreceiverinterface.h"
#include "api/videosinkinterface.h"
#include "media/base/mediachannel.h"
#include "media/base/mediaengine.h"
#include "media/base/streamparams.h"
#include "media/base/videosinkinterface.h"
#include "media/base/videosourceinterface.h"
#include "p2p/base/dtlstransportinternal.h"
#include "p2p/base/packettransportinternal.h"

View File

@ -13,8 +13,8 @@
#include "api/mediastreaminterface.h"
#include "api/notifier.h"
#include "api/videosinkinterface.h"
#include "media/base/mediachannel.h"
#include "media/base/videosinkinterface.h"
#include "rtc_base/thread_checker.h"
// VideoTrackSource implements VideoTrackSourceInterface.

View File

@ -11,7 +11,7 @@
#include <jni.h>
#include "api/video/video_frame.h"
#include "media/base/videosinkinterface.h"
#include "api/videosinkinterface.h"
#include "sdk/android/generated_video_jni/jni/VideoRenderer_jni.h"
#include "sdk/android/src/jni/jni_helpers.h"
#include "sdk/android/src/jni/videoframe.h"

View File

@ -574,6 +574,7 @@ rtc_source_set("test_common") {
":video_test_common",
"..:webrtc_common",
"../:typedefs",
"../api:libjingle_peerconnection_api",
"../api:transport_api",
"../api:video_frame_api",
"../api:video_frame_api_i420",
@ -678,6 +679,7 @@ rtc_source_set("test_renderer_generic") {
":test_support",
"..:webrtc_common",
"../:typedefs",
"../api:libjingle_peerconnection_api",
"../common_video",
"../media:rtc_media_base",
"../modules/media_file",

View File

@ -12,7 +12,7 @@
#define TEST_FAKE_VIDEORENDERER_H_
#include "api/video/video_frame.h"
#include "media/base/videosinkinterface.h"
#include "api/videosinkinterface.h"
namespace webrtc {
namespace test {

View File

@ -12,7 +12,7 @@
#include <stddef.h>
#include "media/base/videosinkinterface.h"
#include "api/videosinkinterface.h"
namespace webrtc {
class VideoFrame;

View File

@ -56,6 +56,7 @@ rtc_static_library("video") {
deps = [
"..:webrtc_common",
"../:typedefs",
"../api:libjingle_peerconnection_api",
"../api:optional",
"../api:transport_api",
"../api:video_frame_api",

View File

@ -22,6 +22,7 @@
#include "common_types.h" // NOLINT(build/include)
#include "common_video/h264/profile_level_id.h"
#include "common_video/libyuv/include/webrtc_libyuv.h"
#include "common_video/include/incoming_video_stream.h"
#include "modules/rtp_rtcp/include/rtp_receiver.h"
#include "modules/rtp_rtcp/include/rtp_rtcp.h"
#include "modules/utility/include/process_thread.h"

View File

@ -17,7 +17,6 @@
#include "call/rtp_packet_sink_interface.h"
#include "call/syncable.h"
#include "call/video_receive_stream.h"
#include "common_video/include/incoming_video_stream.h"
#include "common_video/libyuv/include/webrtc_libyuv.h"
#include "modules/rtp_rtcp/include/flexfec_receiver.h"
#include "modules/video_coding/frame_buffer2.h"

View File

@ -16,7 +16,7 @@
#include <memory>
#include <vector>
#include "media/base/videosinkinterface.h"
#include "api/videosinkinterface.h"
#include "modules/remote_bitrate_estimator/include/remote_bitrate_estimator.h"
#include "modules/video_coding/include/video_coding_defines.h"
#include "rtc_base/criticalsection.h"

View File

@ -19,10 +19,10 @@
#include "api/video/video_rotation.h"
#include "api/video_codecs/video_encoder.h"
#include "api/videosinkinterface.h"
#include "call/call.h"
#include "common_types.h" // NOLINT(build/include)
#include "common_video/include/video_bitrate_allocator.h"
#include "media/base/videosinkinterface.h"
#include "modules/video_coding/include/video_coding_defines.h"
#include "modules/video_coding/utility/quality_scaler.h"
#include "modules/video_coding/video_coding_impl.h"