// Copyright 2018 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #ifndef MEDIA_RENDERERS_DECRYPTING_RENDERER_H_ #define MEDIA_RENDERERS_DECRYPTING_RENDERER_H_ #include <memory> #include "base/functional/callback.h" #include "base/memory/raw_ptr.h" #include "base/memory/scoped_refptr.h" #include "base/memory/weak_ptr.h" #include "base/task/sequenced_task_runner.h" #include "base/task/single_thread_task_runner.h" #include "media/base/pipeline.h" #include "media/base/renderer.h" namespace media { class CdmContext; class DemuxerStream; class MediaLog; class MediaResource; class DecryptingMediaResource; class RendererClient; // DecryptingRenderer is used as a wrapper around a Renderer // implementation that decrypts streams when an AesDecryptor is available. In // this case only clear streams are passed on to the internally owned renderer // implementation. // // All methods are pass-through except Initialize() and SetCdm(). // // The caller must guarantee that DecryptingRenderer will never be initialized // with a |media_resource| of type MediaResource::Type::URL. class MEDIA_EXPORT DecryptingRenderer : public Renderer { … }; } // namespace media #endif // MEDIA_RENDERERS_DECRYPTING_RENDERER_H_