| Index: webrtc/video/video_stream_decoder.h
|
| diff --git a/webrtc/video/vie_channel.h b/webrtc/video/video_stream_decoder.h
|
| similarity index 52%
|
| rename from webrtc/video/vie_channel.h
|
| rename to webrtc/video/video_stream_decoder.h
|
| index 5a653e63a5a09db8b862c42bb3a945a9827480de..f3b8280f58deac3820aa37b763596cfef01ec256 100644
|
| --- a/webrtc/video/vie_channel.h
|
| +++ b/webrtc/video/video_stream_decoder.h
|
| @@ -8,8 +8,8 @@
|
| * be found in the AUTHORS file in the root of the source tree.
|
| */
|
|
|
| -#ifndef WEBRTC_VIDEO_VIE_CHANNEL_H_
|
| -#define WEBRTC_VIDEO_VIE_CHANNEL_H_
|
| +#ifndef WEBRTC_VIDEO_VIDEO_STREAM_DECODER_H_
|
| +#define WEBRTC_VIDEO_VIDEO_STREAM_DECODER_H_
|
|
|
| #include <list>
|
| #include <map>
|
| @@ -20,12 +20,9 @@
|
| #include "webrtc/base/platform_thread.h"
|
| #include "webrtc/base/scoped_ref_ptr.h"
|
| #include "webrtc/modules/remote_bitrate_estimator/include/remote_bitrate_estimator.h"
|
| -#include "webrtc/modules/rtp_rtcp/include/rtp_rtcp.h"
|
| -#include "webrtc/modules/rtp_rtcp/include/rtp_rtcp_defines.h"
|
| #include "webrtc/modules/video_coding/include/video_coding_defines.h"
|
| #include "webrtc/system_wrappers/include/tick_util.h"
|
| #include "webrtc/typedefs.h"
|
| -#include "webrtc/video/rtp_stream_receiver.h"
|
| #include "webrtc/video/vie_sync_module.h"
|
|
|
| namespace webrtc {
|
| @@ -36,12 +33,8 @@ class Config;
|
| class EncodedImageCallback;
|
| class I420FrameCallback;
|
| class IncomingVideoStream;
|
| -class PacedSender;
|
| -class PacketRouter;
|
| -class PayloadRouter;
|
| class ReceiveStatisticsProxy;
|
| -class RtcpRttStats;
|
| -class ViERTPObserver;
|
| +class VideoRenderCallback;
|
| class VoEVideoSync;
|
|
|
| namespace vcm {
|
| @@ -53,39 +46,25 @@ enum StreamType {
|
| kViEStreamTypeRtx = 1 // Retransmission media stream
|
| };
|
|
|
| -class ViEChannel : public VCMFrameTypeCallback,
|
| - public VCMReceiveCallback,
|
| - public VCMReceiveStatisticsCallback,
|
| - public VCMDecoderTimingCallback,
|
| - public VCMPacketRequestCallback {
|
| +class VideoStreamDecoder : public VCMReceiveCallback,
|
| + public VCMReceiveStatisticsCallback,
|
| + public VCMDecoderTimingCallback,
|
| + public CallStatsObserver {
|
| public:
|
| friend class ChannelStatsObserver;
|
|
|
| - ViEChannel(vcm::VideoReceiver* video_receiver,
|
| - RtpStreamReceiver* rtp_stream_receiver);
|
| - ~ViEChannel();
|
| -
|
| - int32_t Init();
|
| -
|
| - RtpRtcp* rtp_rtcp() const { return rtp_rtcp_; }
|
| -
|
| - void SetProtectionMode(bool enable_nack,
|
| - bool enable_fec,
|
| - int payload_type_red,
|
| - int payload_type_fec);
|
| -
|
| - RtpState GetRtpStateForSsrc(uint32_t ssrc) const;
|
| -
|
| -
|
| - CallStatsObserver* GetStatsObserver();
|
| + VideoStreamDecoder(vcm::VideoReceiver* video_receiver,
|
| + VCMFrameTypeCallback* vcm_frame_type_callback,
|
| + VCMPacketRequestCallback* vcm_packet_request_callback,
|
| + bool enable_nack,
|
| + ReceiveStatisticsProxy* receive_statistics_proxy,
|
| + IncomingVideoStream* incoming_video_stream,
|
| + I420FrameCallback* pre_render_callback);
|
| + ~VideoStreamDecoder();
|
|
|
| // Implements VCMReceiveCallback.
|
| int32_t FrameToRender(VideoFrame& video_frame) override; // NOLINT
|
| -
|
| - // Implements VCMReceiveCallback.
|
| int32_t ReceivedDecodedReferenceFrame(const uint64_t picture_id) override;
|
| -
|
| - // Implements VCMReceiveCallback.
|
| void OnIncomingPayloadType(int payload_type) override;
|
| void OnDecoderImplementationName(const char* implementation_name) override;
|
|
|
| @@ -103,58 +82,31 @@ class ViEChannel : public VCMFrameTypeCallback,
|
| int min_playout_delay_ms,
|
| int render_delay_ms) override;
|
|
|
| - // Implements FrameTypeCallback.
|
| - int32_t RequestKeyFrame() override;
|
| -
|
| - // Implements FrameTypeCallback.
|
| - int32_t SliceLossIndicationRequest(
|
| - const uint64_t picture_id) override;
|
| -
|
| - // Implements VideoPacketRequestCallback.
|
| - int32_t ResendPackets(const uint16_t* sequence_numbers,
|
| - uint16_t length) override;
|
|
|
| - void RegisterPreRenderCallback(I420FrameCallback* pre_render_callback);
|
| -
|
| - void RegisterRtcpPacketTypeCounterObserver(
|
| - RtcpPacketTypeCounterObserver* observer);
|
| void RegisterReceiveStatisticsProxy(
|
| ReceiveStatisticsProxy* receive_statistics_proxy);
|
| - void SetIncomingVideoStream(IncomingVideoStream* incoming_video_stream);
|
|
|
| - protected:
|
| - void OnRttUpdate(int64_t avg_rtt_ms, int64_t max_rtt_ms);
|
| + // Implements StatsObserver.
|
| + void OnRttUpdate(int64_t avg_rtt_ms, int64_t max_rtt_ms) override;
|
|
|
| private:
|
| // Assumed to be protected.
|
| void StartDecodeThread();
|
| void StopDecodeThread();
|
|
|
| - void ProcessNACKRequest(const bool enable);
|
| - // Compute NACK list parameters for the buffering mode.
|
| - int GetRequiredNackListSize(int target_delay_ms);
|
| -
|
| // Used for all registered callbacks except rendering.
|
| rtc::CriticalSection crit_;
|
|
|
| vcm::VideoReceiver* const video_receiver_;
|
| - RtpStreamReceiver* const rtp_stream_receiver_;
|
| - RtpRtcp* const rtp_rtcp_;
|
| -
|
| - // Helper to report call statistics.
|
| - std::unique_ptr<ChannelStatsObserver> stats_observer_;
|
|
|
| - // Not owned.
|
| - ReceiveStatisticsProxy* receive_stats_callback_ GUARDED_BY(crit_);
|
| - FrameCounts receive_frame_counts_ GUARDED_BY(crit_);
|
| - IncomingVideoStream* incoming_video_stream_ GUARDED_BY(crit_);
|
| + ReceiveStatisticsProxy* const receive_stats_callback_;
|
| + IncomingVideoStream* const incoming_video_stream_;
|
|
|
| - int max_nack_reordering_threshold_;
|
| - I420FrameCallback* pre_render_callback_ GUARDED_BY(crit_);
|
| + I420FrameCallback* const pre_render_callback_;
|
|
|
| int64_t last_rtt_ms_ GUARDED_BY(crit_);
|
| };
|
|
|
| } // namespace webrtc
|
|
|
| -#endif // WEBRTC_VIDEO_VIE_CHANNEL_H_
|
| +#endif // WEBRTC_VIDEO_VIDEO_STREAM_DECODER_H_
|
|
|