summaryrefslogtreecommitdiff
path: root/chromium/media/cast/receiver/frame_receiver.h
diff options
context:
space:
mode:
authorZeno Albisser <zeno.albisser@theqtcompany.com>2014-12-05 15:04:29 +0100
committerAndras Becsi <andras.becsi@theqtcompany.com>2014-12-09 10:49:28 +0100
commitaf6588f8d723931a298c995fa97259bb7f7deb55 (patch)
tree060ca707847ba1735f01af2372e0d5e494dc0366 /chromium/media/cast/receiver/frame_receiver.h
parent2fff84d821cc7b1c785f6404e0f8091333283e74 (diff)
downloadqtwebengine-chromium-af6588f8d723931a298c995fa97259bb7f7deb55.tar.gz
BASELINE: Update chromium to 40.0.2214.28 and ninja to 1.5.3.
Change-Id: I759465284fd64d59ad120219cbe257f7402c4181 Reviewed-by: Andras Becsi <andras.becsi@theqtcompany.com>
Diffstat (limited to 'chromium/media/cast/receiver/frame_receiver.h')
-rw-r--r--chromium/media/cast/receiver/frame_receiver.h38
1 files changed, 24 insertions, 14 deletions
diff --git a/chromium/media/cast/receiver/frame_receiver.h b/chromium/media/cast/receiver/frame_receiver.h
index ac14ab1e0fb..4d673f34a7e 100644
--- a/chromium/media/cast/receiver/frame_receiver.h
+++ b/chromium/media/cast/receiver/frame_receiver.h
@@ -9,17 +9,17 @@
#include "base/memory/scoped_ptr.h"
#include "base/memory/weak_ptr.h"
#include "base/time/time.h"
-#include "media/cast/base/clock_drift_smoother.h"
#include "media/cast/cast_config.h"
#include "media/cast/cast_receiver.h"
-#include "media/cast/framer/framer.h"
+#include "media/cast/common/clock_drift_smoother.h"
+#include "media/cast/common/transport_encryption_handler.h"
#include "media/cast/logging/logging_defines.h"
-#include "media/cast/rtcp/receiver_rtcp_event_subscriber.h"
-#include "media/cast/rtcp/rtcp.h"
-#include "media/cast/rtp_receiver/receiver_stats.h"
-#include "media/cast/rtp_receiver/rtp_parser/rtp_parser.h"
-#include "media/cast/rtp_receiver/rtp_receiver_defines.h"
-#include "media/cast/transport/utility/transport_encryption_handler.h"
+#include "media/cast/net/rtcp/receiver_rtcp_event_subscriber.h"
+#include "media/cast/net/rtcp/rtcp.h"
+#include "media/cast/net/rtp/framer.h"
+#include "media/cast/net/rtp/receiver_stats.h"
+#include "media/cast/net/rtp/rtp_parser.h"
+#include "media/cast/net/rtp/rtp_receiver_defines.h"
namespace media {
namespace cast {
@@ -50,9 +50,9 @@ class FrameReceiver : public RtpPayloadFeedback,
FrameReceiver(const scoped_refptr<CastEnvironment>& cast_environment,
const FrameReceiverConfig& config,
EventMediaType event_media_type,
- transport::PacedPacketSender* const packet_sender);
+ PacedPacketSender* const packet_sender);
- virtual ~FrameReceiver();
+ ~FrameReceiver() override;
// Request an encoded frame.
//
@@ -76,7 +76,7 @@ class FrameReceiver : public RtpPayloadFeedback,
size_t payload_size);
// RtpPayloadFeedback implementation.
- virtual void CastFeedback(const RtcpCastMessage& cast_message) OVERRIDE;
+ void CastFeedback(const RtcpCastMessage& cast_message) override;
private:
// Processes ready-to-consume packets from |framer_|, decrypting each packet's
@@ -89,10 +89,17 @@ class FrameReceiver : public RtpPayloadFeedback,
// EmitAvailableEncodedFrames().
void EmitAvailableEncodedFramesAfterWaiting();
+ // Helper that runs |callback|, passing ownership of |encoded_frame| to it.
+ // This method is used by EmitAvailableEncodedFrames() to return to the event
+ // loop, but make sure that FrameReceiver is still alive before the callback
+ // is run.
+ void EmitOneFrame(const ReceiveEncodedFrameCallback& callback,
+ scoped_ptr<EncodedFrame> encoded_frame) const;
+
// Computes the playout time for a frame with the given |rtp_timestamp|.
// Because lip-sync info is refreshed regularly, calling this method with the
// same argument may return different results.
- base::TimeTicks GetPlayoutTime(uint32 rtp_timestamp) const;
+ base::TimeTicks GetPlayoutTime(const EncodedFrame& frame) const;
// Schedule timing for the next cast message.
void ScheduleNextCastMessage();
@@ -130,7 +137,7 @@ class FrameReceiver : public RtpPayloadFeedback,
// transmit/retransmit, receive, decode, and render; given its run-time
// environment (sender/receiver hardware performance, network conditions,
// etc.).
- const base::TimeDelta target_playout_delay_;
+ base::TimeDelta target_playout_delay_;
// Hack: This is used in logic that determines whether to skip frames.
// TODO(miu): Revisit this. Logic needs to also account for expected decode
@@ -152,7 +159,7 @@ class FrameReceiver : public RtpPayloadFeedback,
Rtcp rtcp_;
// Decrypts encrypted frames.
- transport::TransportEncryptionHandler decryptor_;
+ TransportEncryptionHandler decryptor_;
// Outstanding callbacks to run to deliver on client requests for frames.
std::list<ReceiveEncodedFrameCallback> frame_request_queue_;
@@ -172,6 +179,9 @@ class FrameReceiver : public RtpPayloadFeedback,
base::TimeTicks lip_sync_reference_time_;
ClockDriftSmoother lip_sync_drift_;
+ // Time interval for sending a RTCP report.
+ const base::TimeDelta rtcp_interval_;
+
// NOTE: Weak pointers must be invalidated before all other member variables.
base::WeakPtrFactory<FrameReceiver> weak_factory_;