Use vcm::VideoReceiver on the receive side.
BUG=
R=perkj@webrtc.org
Review URL: https://codereview.webrtc.org/1905983002 .
Cr-Commit-Position: refs/heads/master@{#12473}
diff --git a/webrtc/modules/video_coding/receiver.cc b/webrtc/modules/video_coding/receiver.cc
index a02fd01..abe8ede 100644
--- a/webrtc/modules/video_coding/receiver.cc
+++ b/webrtc/modules/video_coding/receiver.cc
@@ -42,12 +42,17 @@
EventFactory* event_factory,
NackSender* nack_sender,
KeyFrameRequestSender* keyframe_request_sender)
- : VCMReceiver(timing,
- clock,
- std::unique_ptr<EventWrapper>(event_factory->CreateEvent()),
- std::unique_ptr<EventWrapper>(event_factory->CreateEvent()),
- nack_sender,
- keyframe_request_sender) {}
+ : VCMReceiver(
+ timing,
+ clock,
+ std::unique_ptr<EventWrapper>(event_factory
+ ? event_factory->CreateEvent()
+ : EventWrapper::Create()),
+ std::unique_ptr<EventWrapper>(event_factory
+ ? event_factory->CreateEvent()
+ : EventWrapper::Create()),
+ nack_sender,
+ keyframe_request_sender) {}
VCMReceiver::VCMReceiver(VCMTiming* timing,
Clock* clock,
diff --git a/webrtc/modules/video_coding/video_coding_impl.cc b/webrtc/modules/video_coding/video_coding_impl.cc
index a9a4724..5e9b0d4 100644
--- a/webrtc/modules/video_coding/video_coding_impl.cc
+++ b/webrtc/modules/video_coding/video_coding_impl.cc
@@ -73,7 +73,6 @@
public:
VideoCodingModuleImpl(Clock* clock,
EventFactory* event_factory,
- bool owns_event_factory,
VideoEncoderRateObserver* encoder_rate_observer,
VCMQMSettingsCallback* qm_settings_callback,
NackSender* nack_sender,
@@ -88,10 +87,9 @@
event_factory,
pre_decode_image_callback,
nack_sender,
- keyframe_request_sender),
- own_event_factory_(owns_event_factory ? event_factory : NULL) {}
+ keyframe_request_sender) {}
- virtual ~VideoCodingModuleImpl() { own_event_factory_.reset(); }
+ virtual ~VideoCodingModuleImpl() {}
int64_t TimeUntilNextProcess() override {
int64_t sender_time = sender_.TimeUntilNextProcess();
@@ -286,7 +284,6 @@
EncodedImageCallbackWrapper post_encode_callback_;
vcm::VideoSender sender_;
vcm::VideoReceiver receiver_;
- std::unique_ptr<EventFactory> own_event_factory_;
};
} // namespace
@@ -315,10 +312,9 @@
NackSender* nack_sender,
KeyFrameRequestSender* keyframe_request_sender,
EncodedImageCallback* pre_decode_image_callback) {
- return new VideoCodingModuleImpl(clock, new EventFactoryImpl, true,
- encoder_rate_observer, qm_settings_callback,
- nack_sender, keyframe_request_sender,
- pre_decode_image_callback);
+ return new VideoCodingModuleImpl(
+ clock, nullptr, encoder_rate_observer, qm_settings_callback, nack_sender,
+ keyframe_request_sender, pre_decode_image_callback);
}
// Create method for current interface, will be removed when the
@@ -338,9 +334,9 @@
KeyFrameRequestSender* keyframe_request_sender) {
assert(clock);
assert(event_factory);
- return new VideoCodingModuleImpl(clock, event_factory, false, nullptr,
- nullptr, nack_sender,
- keyframe_request_sender, nullptr);
+ return new VideoCodingModuleImpl(clock, event_factory, nullptr, nullptr,
+ nack_sender, keyframe_request_sender,
+ nullptr);
}
} // namespace webrtc
diff --git a/webrtc/modules/video_coding/video_coding_impl.h b/webrtc/modules/video_coding/video_coding_impl.h
index e3184a8..f449632 100644
--- a/webrtc/modules/video_coding/video_coding_impl.h
+++ b/webrtc/modules/video_coding/video_coding_impl.h
@@ -128,7 +128,7 @@
std::vector<FrameType> next_frame_types_ GUARDED_BY(params_crit_);
};
-class VideoReceiver {
+class VideoReceiver : public Module {
public:
typedef VideoCodingModule::ReceiverRobustness ReceiverRobustness;
@@ -179,8 +179,8 @@
int32_t SetReceiveChannelParameters(int64_t rtt);
int32_t SetVideoProtection(VCMVideoProtection videoProtection, bool enable);
- int64_t TimeUntilNextProcess();
- void Process();
+ int64_t TimeUntilNextProcess() override;
+ void Process() override;
void TriggerDecoderShutdown();