Index: media/filters/chunk_demuxer.cc |
diff --git a/media/filters/chunk_demuxer.cc b/media/filters/chunk_demuxer.cc |
index 0a90e5ce2affc843dadaa0ee315bec845165a2de..ef4f792cbe47837221cc7fffbd72f0dd4182123d 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 const AudioDecoderConfig& audio_decoder_config(); |
private: |
static void RunCallback(ReadCallback cb, scoped_refptr<Buffer> buffer); |
Type type_; |
AVStream* av_stream_; |
+ 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) { |
+ AVCodecContextToAudioDecoderConfig(stream->codec, &audio_config_); |
+ } |
} |
ChunkDemuxerStream::~ChunkDemuxerStream() {} |
@@ -281,6 +286,11 @@ void ChunkDemuxerStream::EnableBitstreamConverter() {} |
AVStream* ChunkDemuxerStream::GetAVStream() { return av_stream_; } |
+const AudioDecoderConfig& ChunkDemuxerStream::audio_decoder_config() { |
+ CHECK_EQ(type_, AUDIO); |
+ return audio_config_; |
+} |
+ |
ChunkDemuxer::ChunkDemuxer(ChunkDemuxerClient* client) |
: state_(WAITING_FOR_INIT), |
client_(client), |