| Index: webrtc/common_video/include/incoming_video_stream.h
|
| diff --git a/webrtc/common_video/include/incoming_video_stream.h b/webrtc/common_video/include/incoming_video_stream.h
|
| index b6ab917bc18197610e76e583bb10c7cb1d2883bd..072a6b07e62b250ada8ee6c7b71e3993911ef1a9 100644
|
| --- a/webrtc/common_video/include/incoming_video_stream.h
|
| +++ b/webrtc/common_video/include/incoming_video_stream.h
|
| @@ -17,34 +17,26 @@
|
| #include "webrtc/base/platform_thread.h"
|
| #include "webrtc/base/thread_annotations.h"
|
| #include "webrtc/common_video/video_render_frames.h"
|
| +#include "webrtc/media/base/videosinkinterface.h"
|
|
|
| namespace webrtc {
|
| class EventTimerWrapper;
|
|
|
| -class VideoRenderCallback {
|
| - public:
|
| - virtual int32_t RenderFrame(const uint32_t streamId,
|
| - const VideoFrame& videoFrame) = 0;
|
| -
|
| - protected:
|
| - virtual ~VideoRenderCallback() {}
|
| -};
|
|
|
| -class IncomingVideoStream : public VideoRenderCallback {
|
| +class IncomingVideoStream : public rtc::VideoSinkInterface<VideoFrame> {
|
| public:
|
| - IncomingVideoStream(uint32_t stream_id, bool disable_prerenderer_smoothing);
|
| + explicit IncomingVideoStream(bool disable_prerenderer_smoothing);
|
| ~IncomingVideoStream();
|
|
|
| // Get callback to deliver frames to the module.
|
| - VideoRenderCallback* ModuleCallback();
|
| - virtual int32_t RenderFrame(const uint32_t stream_id,
|
| - const VideoFrame& video_frame);
|
| + rtc::VideoSinkInterface<VideoFrame>* ModuleCallback();
|
| + void OnFrame(const VideoFrame& video_frame) override;
|
|
|
| // Set callback to the platform dependent code.
|
| - void SetRenderCallback(VideoRenderCallback* render_callback);
|
| + void SetRenderCallback(rtc::VideoSinkInterface<VideoFrame>* render_callback);
|
|
|
| // Callback for file recording, snapshot, ...
|
| - void SetExternalCallback(VideoRenderCallback* render_object);
|
| + void SetExternalCallback(rtc::VideoSinkInterface<VideoFrame>* render_object);
|
|
|
| // Start/Stop.
|
| int32_t Start();
|
| @@ -54,7 +46,6 @@ class IncomingVideoStream : public VideoRenderCallback {
|
| int32_t Reset();
|
|
|
| // Properties.
|
| - uint32_t StreamId() const;
|
| uint32_t IncomingRate() const;
|
|
|
| void SetStartImage(const VideoFrame& video_frame);
|
| @@ -75,7 +66,6 @@ class IncomingVideoStream : public VideoRenderCallback {
|
|
|
| void DeliverFrame(const VideoFrame& video_frame);
|
|
|
| - uint32_t const stream_id_;
|
| const bool disable_prerenderer_smoothing_;
|
| // Critsects in allowed to enter order.
|
| rtc::CriticalSection stream_critsect_;
|
| @@ -88,8 +78,10 @@ class IncomingVideoStream : public VideoRenderCallback {
|
| std::unique_ptr<EventTimerWrapper> deliver_buffer_event_;
|
|
|
| bool running_ GUARDED_BY(stream_critsect_);
|
| - VideoRenderCallback* external_callback_ GUARDED_BY(thread_critsect_);
|
| - VideoRenderCallback* render_callback_ GUARDED_BY(thread_critsect_);
|
| + rtc::VideoSinkInterface<VideoFrame>* external_callback_
|
| + GUARDED_BY(thread_critsect_);
|
| + rtc::VideoSinkInterface<VideoFrame>* render_callback_
|
| + GUARDED_BY(thread_critsect_);
|
| const std::unique_ptr<VideoRenderFrames> render_buffers_
|
| GUARDED_BY(buffer_critsect_);
|
|
|
|
|