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

Side by Side Diff: media/cast/audio_receiver/audio_receiver.h

Issue 192843002: Cast:Adding signaling and infrastructure for adjustable delay (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: nit Created 6 years, 9 months 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 unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « no previous file | media/cast/audio_receiver/audio_receiver.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #ifndef MEDIA_CAST_AUDIO_RECEIVER_AUDIO_RECEIVER_H_ 5 #ifndef MEDIA_CAST_AUDIO_RECEIVER_AUDIO_RECEIVER_H_
6 #define MEDIA_CAST_AUDIO_RECEIVER_AUDIO_RECEIVER_H_ 6 #define MEDIA_CAST_AUDIO_RECEIVER_AUDIO_RECEIVER_H_
7 7
8 #include "base/basictypes.h" 8 #include "base/basictypes.h"
9 #include "base/callback.h" 9 #include "base/callback.h"
10 #include "base/macros.h" 10 #include "base/macros.h"
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after
46 public base::SupportsWeakPtr<AudioReceiver> { 46 public base::SupportsWeakPtr<AudioReceiver> {
47 public: 47 public:
48 AudioReceiver(scoped_refptr<CastEnvironment> cast_environment, 48 AudioReceiver(scoped_refptr<CastEnvironment> cast_environment,
49 const AudioReceiverConfig& audio_config, 49 const AudioReceiverConfig& audio_config,
50 transport::PacedPacketSender* const packet_sender); 50 transport::PacedPacketSender* const packet_sender);
51 51
52 virtual ~AudioReceiver(); 52 virtual ~AudioReceiver();
53 53
54 // Extract a raw audio frame from the cast receiver. 54 // Extract a raw audio frame from the cast receiver.
55 // Actual decoding will be preformed on a designated audio_decoder thread. 55 // Actual decoding will be preformed on a designated audio_decoder thread.
56 void GetRawAudioFrame(int number_of_10ms_blocks, int desired_frequency, 56 void GetRawAudioFrame(int number_of_10ms_blocks,
57 int desired_frequency,
57 const AudioFrameDecodedCallback& callback); 58 const AudioFrameDecodedCallback& callback);
58 59
59 // Extract an encoded audio frame from the cast receiver. 60 // Extract an encoded audio frame from the cast receiver.
60 void GetEncodedAudioFrame(const AudioFrameEncodedCallback& callback); 61 void GetEncodedAudioFrame(const AudioFrameEncodedCallback& callback);
61 62
62 // Should only be called from the main cast thread. 63 // Should only be called from the main cast thread.
63 void IncomingPacket(scoped_ptr<Packet> packet); 64 void IncomingPacket(scoped_ptr<Packet> packet);
64 65
66 // Update target audio delay used to compute the playout time. Rtcp
67 // will also be updated (will be included in all outgoing reports).
68 void SetTargetDelay(base::TimeDelta target_delay);
69
65 protected: 70 protected:
66 void IncomingParsedRtpPacket(const uint8* payload_data, size_t payload_size, 71 void IncomingParsedRtpPacket(const uint8* payload_data,
72 size_t payload_size,
67 const RtpCastHeader& rtp_header); 73 const RtpCastHeader& rtp_header);
68 74
69 private: 75 private:
70 friend class LocalRtpAudioData; 76 friend class LocalRtpAudioData;
71 friend class LocalRtpAudioFeedback; 77 friend class LocalRtpAudioFeedback;
72 78
73 void CastFeedback(const RtcpCastMessage& cast_message); 79 void CastFeedback(const RtcpCastMessage& cast_message);
74 80
75 // Time to pull out the audio even though we are missing data. 81 // Time to pull out the audio even though we are missing data.
76 void PlayoutTimeout(); 82 void PlayoutTimeout();
77 83
78 bool PostEncodedAudioFrame( 84 bool PostEncodedAudioFrame(
79 const AudioFrameEncodedCallback& callback, 85 const AudioFrameEncodedCallback& callback,
80 bool next_frame, 86 bool next_frame,
81 scoped_ptr<transport::EncodedAudioFrame>* encoded_frame); 87 scoped_ptr<transport::EncodedAudioFrame>* encoded_frame);
82 88
83 // Actual decoding implementation - should be called under the audio decoder 89 // Actual decoding implementation - should be called under the audio decoder
84 // thread. 90 // thread.
85 void DecodeAudioFrameThread(int number_of_10ms_blocks, int desired_frequency, 91 void DecodeAudioFrameThread(int number_of_10ms_blocks,
92 int desired_frequency,
86 const AudioFrameDecodedCallback callback); 93 const AudioFrameDecodedCallback callback);
87 void ReturnDecodedFrameWithPlayoutDelay( 94 void ReturnDecodedFrameWithPlayoutDelay(
88 scoped_ptr<PcmAudioFrame> audio_frame, uint32 rtp_timestamp, 95 scoped_ptr<PcmAudioFrame> audio_frame,
96 uint32 rtp_timestamp,
89 const AudioFrameDecodedCallback callback); 97 const AudioFrameDecodedCallback callback);
90 98
91 // Return the playout time based on the current time and rtp timestamp. 99 // Return the playout time based on the current time and rtp timestamp.
92 base::TimeTicks GetPlayoutTime(base::TimeTicks now, uint32 rtp_timestamp); 100 base::TimeTicks GetPlayoutTime(base::TimeTicks now, uint32 rtp_timestamp);
93 101
94 void InitializeTimers(); 102 void InitializeTimers();
95 103
96 // Decrypts the data within the |audio_frame| and replaces the data with the 104 // Decrypts the data within the |audio_frame| and replaces the data with the
97 // decrypted string. 105 // decrypted string.
98 bool DecryptAudioFrame(scoped_ptr<transport::EncodedAudioFrame>* audio_frame); 106 bool DecryptAudioFrame(scoped_ptr<transport::EncodedAudioFrame>* audio_frame);
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after
140 // it allows the event to be transmitted via RTCP. 148 // it allows the event to be transmitted via RTCP.
141 RtpTimestamp frame_id_to_rtp_timestamp_[256]; 149 RtpTimestamp frame_id_to_rtp_timestamp_[256];
142 150
143 DISALLOW_COPY_AND_ASSIGN(AudioReceiver); 151 DISALLOW_COPY_AND_ASSIGN(AudioReceiver);
144 }; 152 };
145 153
146 } // namespace cast 154 } // namespace cast
147 } // namespace media 155 } // namespace media
148 156
149 #endif // MEDIA_CAST_AUDIO_RECEIVER_AUDIO_RECEIVER_H_ 157 #endif // MEDIA_CAST_AUDIO_RECEIVER_AUDIO_RECEIVER_H_
OLDNEW
« no previous file with comments | « no previous file | media/cast/audio_receiver/audio_receiver.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698