Index: media/cast/audio_receiver/audio_decoder.h |
diff --git a/media/cast/audio_receiver/audio_decoder.h b/media/cast/audio_receiver/audio_decoder.h |
index d7c6a792c13ee8765dcfa68f42f5243c7caf8163..78bb623a0118130ca22ea4ba6e6b8b70992a2f41 100644 |
--- a/media/cast/audio_receiver/audio_decoder.h |
+++ b/media/cast/audio_receiver/audio_decoder.h |
@@ -6,7 +6,7 @@ |
#define MEDIA_CAST_AUDIO_RECEIVER_AUDIO_DECODER_H_ |
#include "base/callback.h" |
-#include "base/memory/ref_counted.h" |
+#include "base/synchronization/lock.h" |
#include "media/cast/cast_config.h" |
#include "media/cast/rtp_common/rtp_defines.h" |
@@ -18,9 +18,10 @@ namespace media { |
namespace cast { |
// Thread safe class. |
-class AudioDecoder : public base::RefCountedThreadSafe<AudioDecoder> { |
+class AudioDecoder { |
public: |
explicit AudioDecoder(const AudioReceiverConfig& audio_config); |
+ virtual ~AudioDecoder(); |
// Extract a raw audio frame from the decoder. |
// Set the number of desired 10ms blocks and frequency. |
@@ -37,13 +38,12 @@ class AudioDecoder : public base::RefCountedThreadSafe<AudioDecoder> { |
size_t payload_size, |
const RtpCastHeader& rtp_header); |
- protected: |
- virtual ~AudioDecoder(); |
- |
private: |
- friend class base::RefCountedThreadSafe<AudioDecoder>; |
- |
+ // The webrtc AudioCodingModule is threadsafe. |
scoped_ptr<webrtc::AudioCodingModule> audio_decoder_; |
+ // TODO(pwestin): Refactor to avoid this. Call IncomingParsedRtpPacket from |
+ // audio decoder thread that way this class does not have to be thread safe. |
+ base::Lock lock_; |
bool have_received_packets_; |
DISALLOW_COPY_AND_ASSIGN(AudioDecoder); |