Index: media/filters/chunk_demuxer.cc |
diff --git a/media/filters/chunk_demuxer.cc b/media/filters/chunk_demuxer.cc |
index 89efadbbbcd1e2a19febbf6704b55c9cc6582df3..88a7f20769ba6c698ac3293a1f958597238f23fa 100644 |
--- a/media/filters/chunk_demuxer.cc |
+++ b/media/filters/chunk_demuxer.cc |
@@ -80,12 +80,14 @@ class ChunkDemuxerStream : public DemuxerStream { |
virtual Type type(); |
virtual void EnableBitstreamConverter(); |
virtual AVStream* GetAVStream(); |
+ virtual AudioDecoderConfig* audio_decoder_config(); |
private: |
static void RunCallback(ReadCallback cb, scoped_refptr<Buffer> buffer); |
Type type_; |
AVStream* av_stream_; |
+ scoped_ptr<AudioDecoderConfig> audio_config_; |
mutable base::Lock lock_; |
ReadCBQueue read_cbs_; |
@@ -107,6 +109,9 @@ ChunkDemuxerStream::ChunkDemuxerStream(Type type, AVStream* stream) |
shutdown_called_(false), |
received_end_of_stream_(false), |
last_buffer_timestamp_(kNoTimestamp) { |
+ if (type_ == AUDIO) { |
+ audio_config_.reset(AVCodecContextToAudioDecoderConfig(stream->codec)); |
+ } |
} |
ChunkDemuxerStream::~ChunkDemuxerStream() {} |
@@ -281,6 +286,10 @@ void ChunkDemuxerStream::EnableBitstreamConverter() {} |
AVStream* ChunkDemuxerStream::GetAVStream() { return av_stream_; } |
+AudioDecoderConfig* ChunkDemuxerStream::audio_decoder_config() { |
+ return audio_config_.get(); |
+} |
+ |
ChunkDemuxer::ChunkDemuxer(ChunkDemuxerClient* client) |
: state_(WAITING_FOR_INIT), |
client_(client), |