Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(836)

Unified Diff: webrtc/call/flexfec_receive_stream.h

Issue 2561123002: Move FlexfecReceiveStream from api/call/ to call/. (Closed)
Patch Set: Rebase. Created 4 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « webrtc/call/call.cc ('k') | webrtc/call/flexfec_receive_stream.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: webrtc/call/flexfec_receive_stream.h
diff --git a/webrtc/call/flexfec_receive_stream.h b/webrtc/call/flexfec_receive_stream.h
index 384a94d1d58091e386b39344ae54888a236e5f92..83b212bad6a6b84c53715d6463195cb4dd7355a1 100644
--- a/webrtc/call/flexfec_receive_stream.h
+++ b/webrtc/call/flexfec_receive_stream.h
@@ -11,40 +11,69 @@
#ifndef WEBRTC_CALL_FLEXFEC_RECEIVE_STREAM_H_
#define WEBRTC_CALL_FLEXFEC_RECEIVE_STREAM_H_
-#include <memory>
#include <string>
+#include <vector>
-#include "webrtc/api/call/flexfec_receive_stream.h"
-#include "webrtc/base/basictypes.h"
-#include "webrtc/base/criticalsection.h"
-#include "webrtc/modules/rtp_rtcp/include/flexfec_receiver.h"
+#include "webrtc/api/call/transport.h"
+#include "webrtc/config.h"
namespace webrtc {
-namespace internal {
-
-class FlexfecReceiveStream : public webrtc::FlexfecReceiveStream {
+class FlexfecReceiveStream {
public:
- FlexfecReceiveStream(const Config& config,
- RecoveredPacketReceiver* recovered_packet_callback);
- ~FlexfecReceiveStream();
+ struct Stats {
+ std::string ToString(int64_t time_ms) const;
- bool AddAndProcessReceivedPacket(const uint8_t* packet, size_t length);
+ // TODO(brandtr): Add appropriate stats here.
+ int flexfec_bitrate_bps;
+ };
- // Implements webrtc::FlexfecReceiveStream.
- void Start() override;
- void Stop() override;
- Stats GetStats() const override;
+ struct Config {
+ std::string ToString() const;
- private:
- rtc::CriticalSection crit_;
- bool started_ GUARDED_BY(crit_);
+ // Payload type for FlexFEC.
+ int payload_type = -1;
- const Config config_;
- const std::unique_ptr<FlexfecReceiver> receiver_;
-};
+ // SSRC for FlexFEC stream to be received.
+ uint32_t remote_ssrc = 0;
+
+ // Vector containing a single element, corresponding to the SSRC of the
+ // media stream being protected by this FlexFEC stream. The vector MUST have
+ // size 1.
+ //
+ // TODO(brandtr): Update comment above when we support multistream
+ // protection.
+ std::vector<uint32_t> protected_media_ssrcs;
+
+ // SSRC for RTCP reports to be sent.
+ uint32_t local_ssrc = 0;
+
+ // What RTCP mode to use in the reports.
+ RtcpMode rtcp_mode = RtcpMode::kCompound;
+
+ // Transport for outgoing RTCP packets.
+ Transport* rtcp_send_transport = nullptr;
-} // namespace internal
+ // |transport_cc| is true whenever the send-side BWE RTCP feedback message
+ // has been negotiated. This is a prerequisite for enabling send-side BWE.
+ bool transport_cc = false;
+
+ // RTP header extensions that have been negotiated for this track.
+ std::vector<RtpExtension> extensions;
+ };
+
+ // Starts stream activity.
+ // When a stream is active, it can receive and process packets.
+ virtual void Start() = 0;
+ // Stops stream activity.
+ // When a stream is stopped, it can't receive nor process packets.
+ virtual void Stop() = 0;
+
+ virtual Stats GetStats() const = 0;
+
+ protected:
+ virtual ~FlexfecReceiveStream() = default;
+};
} // namespace webrtc
« no previous file with comments | « webrtc/call/call.cc ('k') | webrtc/call/flexfec_receive_stream.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698