// Copyright 2014 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_BASE_RENDERER_H_ #define MEDIA_BASE_RENDERER_H_ #include <optional> #include "base/functional/callback.h" #include "base/time/time.h" #include "media/base/buffering_state.h" #include "media/base/demuxer_stream.h" #include "media/base/media_export.h" #include "media/base/pipeline_status.h" namespace media { class CdmContext; class MediaResource; class RendererClient; // Types of media::Renderer. // WARNING: These values are reported to metrics. Entries should not be // renumbered and numeric values should not be reused. When adding new entries, // also update media::mojom::RendererType & tools/metrics/histograms/enums.xml. enum class RendererType { … }; // Get the name of the Renderer for `renderer_type`. The returned name could be // the actual Renderer class name or a descriptive name. std::string MEDIA_EXPORT GetRendererName(RendererType renderer_type); class MEDIA_EXPORT Renderer { … }; } // namespace media #endif // MEDIA_BASE_RENDERER_H_