diff options
Diffstat (limited to 'chromium/media/cast/audio_receiver/audio_receiver.h')
-rw-r--r-- | chromium/media/cast/audio_receiver/audio_receiver.h | 143 |
1 files changed, 0 insertions, 143 deletions
diff --git a/chromium/media/cast/audio_receiver/audio_receiver.h b/chromium/media/cast/audio_receiver/audio_receiver.h deleted file mode 100644 index c49e1c15c25..00000000000 --- a/chromium/media/cast/audio_receiver/audio_receiver.h +++ /dev/null @@ -1,143 +0,0 @@ -// Copyright 2013 The Chromium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -#ifndef MEDIA_CAST_AUDIO_RECEIVER_AUDIO_RECEIVER_H_ -#define MEDIA_CAST_AUDIO_RECEIVER_AUDIO_RECEIVER_H_ - -#include "base/basictypes.h" -#include "base/callback.h" -#include "base/memory/ref_counted.h" -#include "base/memory/scoped_ptr.h" -#include "base/memory/weak_ptr.h" -#include "base/threading/non_thread_safe.h" -#include "base/time/tick_clock.h" -#include "base/time/time.h" -#include "media/cast/cast_config.h" -#include "media/cast/cast_environment.h" -#include "media/cast/cast_receiver.h" -#include "media/cast/rtcp/rtcp.h" // RtcpCastMessage -#include "media/cast/rtp_receiver/rtp_receiver_defines.h" // RtpCastHeader - -namespace crypto { - class Encryptor; -} - -namespace media { -namespace cast { - -class AudioDecoder; -class Framer; -class LocalRtpAudioData; -class LocalRtpAudioFeedback; -class PacedPacketSender; -class RtpReceiver; -class RtpReceiverStatistics; - -struct DecodedAudioCallbackData { - DecodedAudioCallbackData(); - ~DecodedAudioCallbackData(); - int number_of_10ms_blocks; - int desired_frequency; - AudioFrameDecodedCallback callback; -}; - -// This class is not thread safe. Should only be called from the Main cast -// thread. -class AudioReceiver : public base::NonThreadSafe, - public base::SupportsWeakPtr<AudioReceiver> { - public: - AudioReceiver(scoped_refptr<CastEnvironment> cast_environment, - const AudioReceiverConfig& audio_config, - PacedPacketSender* const packet_sender); - - virtual ~AudioReceiver(); - - // Extract a raw audio frame from the cast receiver. - // Actual decoding will be preformed on a designated audio_decoder thread. - void GetRawAudioFrame(int number_of_10ms_blocks, - int desired_frequency, - const AudioFrameDecodedCallback& callback); - - // Extract an encoded audio frame from the cast receiver. - void GetEncodedAudioFrame(const AudioFrameEncodedCallback& callback); - - // Should only be called from the main cast thread. - void IncomingPacket(const uint8* packet, size_t length, - const base::Closure callback); - - protected: - void IncomingParsedRtpPacket(const uint8* payload_data, - size_t payload_size, - const RtpCastHeader& rtp_header); - private: - friend class LocalRtpAudioData; - friend class LocalRtpAudioFeedback; - - void CastFeedback(const RtcpCastMessage& cast_message); - - // Time to pull out the audio even though we are missing data. - void PlayoutTimeout(); - - bool PostEncodedAudioFrame(const AudioFrameEncodedCallback& callback, - uint32 rtp_timestamp, - bool next_frame, - scoped_ptr<EncodedAudioFrame>* encoded_frame); - - // Actual decoding implementation - should be called under the audio decoder - // thread. - void DecodeAudioFrameThread(int number_of_10ms_blocks, - int desired_frequency, - const AudioFrameDecodedCallback callback); - void ReturnDecodedFrameWithPlayoutDelay( - scoped_ptr<PcmAudioFrame> audio_frame, uint32 rtp_timestamp, - const AudioFrameDecodedCallback callback); - - // Return the playout time based on the current time and rtp timestamp. - base::TimeTicks GetPlayoutTime(base::TimeTicks now, uint32 rtp_timestamp); - - void InitializeTimers(); - - // Decrypts the data within the |audio_frame| and replaces the data with the - // decrypted string. - bool DecryptAudioFrame(scoped_ptr<EncodedAudioFrame>* audio_frame); - - // Schedule the next RTCP report. - void ScheduleNextRtcpReport(); - - // Actually send the next RTCP report. - void SendNextRtcpReport(); - - // Schedule timing for the next cast message. - void ScheduleNextCastMessage(); - - // Actually send the next cast message. - void SendNextCastMessage(); - - scoped_refptr<CastEnvironment> cast_environment_; - base::WeakPtrFactory<AudioReceiver> weak_factory_; - - const AudioCodec codec_; - const int frequency_; - base::TimeDelta target_delay_delta_; - scoped_ptr<Framer> audio_buffer_; - scoped_ptr<AudioDecoder> audio_decoder_; - scoped_ptr<LocalRtpAudioData> incoming_payload_callback_; - scoped_ptr<LocalRtpAudioFeedback> incoming_payload_feedback_; - scoped_ptr<RtpReceiver> rtp_receiver_; - scoped_ptr<Rtcp> rtcp_; - scoped_ptr<RtpReceiverStatistics> rtp_audio_receiver_statistics_; - base::TimeDelta time_offset_; - base::TimeTicks time_first_incoming_packet_; - uint32 first_incoming_rtp_timestamp_; - scoped_ptr<crypto::Encryptor> decryptor_; - std::string iv_mask_; - - std::list<AudioFrameEncodedCallback> queued_encoded_callbacks_; - std::list<DecodedAudioCallbackData> queued_decoded_callbacks_; -}; - -} // namespace cast -} // namespace media - -#endif // MEDIA_CAST_AUDIO_RECEIVER_AUDIO_RECEIVER_H_ |