// Copyright 2014 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. #include "media/filters/decoder_stream_traits.h" #include "base/logging.h" #include "media/base/audio_buffer.h" #include "media/base/audio_decoder.h" #include "media/base/audio_decoder_config.h" #include "media/base/video_decoder.h" #include "media/base/video_decoder_config.h" #include "media/base/video_frame.h" namespace media { std::string DecoderStreamTraits::ToString() { return "audio"; } void DecoderStreamTraits::InitializeDecoder( DecoderType* decoder, DemuxerStream* stream, CdmContext* cdm_context, const InitCB& init_cb, const OutputCB& output_cb) { DCHECK(stream->audio_decoder_config().IsValidConfig()); decoder->Initialize(stream->audio_decoder_config(), cdm_context, init_cb, output_cb); } bool DecoderStreamTraits::NeedsBitstreamConversion( DecoderType* decoder) { return decoder->NeedsBitstreamConversion(); } void DecoderStreamTraits::ReportStatistics( const StatisticsCB& statistics_cb, int bytes_decoded) { PipelineStatistics statistics; statistics.audio_bytes_decoded = bytes_decoded; statistics_cb.Run(statistics); } scoped_refptr::OutputType> DecoderStreamTraits::CreateEOSOutput() { return OutputType::CreateEOSBuffer(); } std::string DecoderStreamTraits::ToString() { return "video"; } void DecoderStreamTraits::InitializeDecoder( DecoderType* decoder, DemuxerStream* stream, CdmContext* cdm_context, const InitCB& init_cb, const OutputCB& output_cb) { DCHECK(stream->video_decoder_config().IsValidConfig()); decoder->Initialize(stream->video_decoder_config(), stream->liveness() == DemuxerStream::LIVENESS_LIVE, cdm_context, init_cb, output_cb); } bool DecoderStreamTraits::NeedsBitstreamConversion( DecoderType* decoder) { return decoder->NeedsBitstreamConversion(); } void DecoderStreamTraits::ReportStatistics( const StatisticsCB& statistics_cb, int bytes_decoded) { PipelineStatistics statistics; statistics.video_bytes_decoded = bytes_decoded; statistics_cb.Run(statistics); } scoped_refptr::OutputType> DecoderStreamTraits::CreateEOSOutput() { return OutputType::CreateEOSFrame(); } } // namespace media