diff options
author | xhwang <xhwang@chromium.org> | 2016-02-22 16:52:44 -0800 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2016-02-23 00:54:53 +0000 |
commit | 409e5355ae1269cde51dc5b73b4592bad4e8c2ea (patch) | |
tree | fcb18200e016245e50ac64833c12ac6031649a82 /media/base/decoder_factory.h | |
parent | fa8b941eb242bc26430d1053d771c624bb45ea10 (diff) | |
download | chromium_src-409e5355ae1269cde51dc5b73b4592bad4e8c2ea.zip chromium_src-409e5355ae1269cde51dc5b73b4592bad4e8c2ea.tar.gz chromium_src-409e5355ae1269cde51dc5b73b4592bad4e8c2ea.tar.bz2 |
media: Support MojoAudioDecoder.
Details:
- Support mojo audio decoder in gn args.
- Add DecoderFactory to help create external decoders.
- Add MojoDecoderFactory that can create MojoAudioDecoder.
- When mojo audio decoder is enabled, enable MojoDecoderFactory.
In the next CL we'll add mojo audio decoder interface and services.
We'll also add real implementation of MojoAudioDecoder.
To test this on Desktop, set the following gn arguments:
enable_mojo_media = true
mojo_media_services = [ "audio_decoder" ]
Then in DecoderSelector, manually disable DecryptingAudioDecoder and
DecryptingDemuxerStream. Now try to play an encrypted audio,
MojoAudioDecoder should be selected. But it'll fail immediately in the
first Decode() call.
BUG=542910
TEST=See above.
Review URL: https://codereview.chromium.org/1717933002
Cr-Commit-Position: refs/heads/master@{#376878}
Diffstat (limited to 'media/base/decoder_factory.h')
-rw-r--r-- | media/base/decoder_factory.h | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/media/base/decoder_factory.h b/media/base/decoder_factory.h new file mode 100644 index 0000000..21d66d2 --- /dev/null +++ b/media/base/decoder_factory.h @@ -0,0 +1,35 @@ +// Copyright 2016 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_BASE_DECODER_FACTORY_H_ +#define MEDIA_BASE_DECODER_FACTORY_H_ + +#include "base/macros.h" +#include "base/memory/scoped_vector.h" +#include "media/base/media_export.h" + +namespace media { + +class AudioDecoder; +class VideoDecoder; + +// A factory class for creating audio and video decoders. +class MEDIA_EXPORT DecoderFactory { + public: + DecoderFactory(); + virtual ~DecoderFactory(); + + // Creates audio decoders and append them to the end of |audio_decoders|. + virtual void CreateAudioDecoders(ScopedVector<AudioDecoder>* audio_decoders); + + // Creates video decoders and append them to the end of |video_decoders|. + virtual void CreateVideoDecoders(ScopedVector<VideoDecoder>* video_decoders); + + private: + DISALLOW_COPY_AND_ASSIGN(DecoderFactory); +}; + +} // namespace media + +#endif // MEDIA_BASE_DECODER_FACTORY_H_ |