diff options
author | Zeno Albisser <zeno.albisser@theqtcompany.com> | 2014-12-05 15:04:29 +0100 |
---|---|---|
committer | Andras Becsi <andras.becsi@theqtcompany.com> | 2014-12-09 10:49:28 +0100 |
commit | af6588f8d723931a298c995fa97259bb7f7deb55 (patch) | |
tree | 060ca707847ba1735f01af2372e0d5e494dc0366 /chromium/media/cast/receiver/frame_receiver.h | |
parent | 2fff84d821cc7b1c785f6404e0f8091333283e74 (diff) | |
download | qtwebengine-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.h | 38 |
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_; |