Upstream version 5.34.104.0
[platform/framework/web/crosswalk.git] / src / media / cast / transport / transport_audio_sender.h
index 90127cc..c988714 100644 (file)
 #include "base/memory/scoped_ptr.h"
 #include "base/threading/non_thread_safe.h"
 #include "media/cast/transport/rtp_sender/rtp_sender.h"
-
-namespace crypto {
-class Encryptor;
-class SymmetricKey;
-}
+#include "media/cast/transport/utility/transport_encryption_handler.h"
 
 namespace media {
 namespace cast {
@@ -25,9 +21,11 @@ class PacedSender;
 // It's only called from the main cast transport thread.
 class TransportAudioSender : public base::NonThreadSafe {
  public:
-  TransportAudioSender(const CastTransportConfig& config,
-                       base::TickClock* clock,
-                       PacedSender* const paced_packet_sender);
+  TransportAudioSender(
+      const CastTransportConfig& config,
+      base::TickClock* clock,
+      const scoped_refptr<base::TaskRunner>& transport_task_runner,
+      PacedSender* const paced_packet_sender);
 
   virtual ~TransportAudioSender();
 
@@ -36,15 +34,16 @@ class TransportAudioSender : public base::NonThreadSafe {
   void InsertCodedAudioFrame(const EncodedAudioFrame* audio_frame,
                              const base::TimeTicks& recorded_time);
 
-  // Retrieves audio RTP statistics.
-  void GetStatistics(const base::TimeTicks& now, RtcpSenderInfo* sender_info);
-
   // Retransmision request.
   void ResendPackets(
       const MissingFramesAndPacketsMap& missing_frames_and_packets);
 
   bool initialized() const { return initialized_; }
 
+  // Subscribe callback to get RTP Audio stats.
+  void SubscribeAudioRtpStatsCallback(
+      const CastTransportRtpStatistics& callback);
+
  private:
   friend class LocalRtcpAudioSenderFeedback;
 
@@ -54,10 +53,8 @@ class TransportAudioSender : public base::NonThreadSafe {
                          EncodedAudioFrame* encrypted_frame);
 
   RtpSender rtp_sender_;
+  TransportEncryptionHandler encryptor_;
   bool initialized_;
-  scoped_ptr<crypto::SymmetricKey> key_;
-  scoped_ptr<crypto::Encryptor> encryptor_;
-  std::string iv_mask_;
 
   DISALLOW_IMPLICIT_CONSTRUCTORS(TransportAudioSender);
 };