123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135 |
- // Copyright 2019 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_MEDIA_LOG_PROPERTIES_H_
- #define MEDIA_BASE_MEDIA_LOG_PROPERTIES_H_
- #include <string>
- #include <vector>
- #include "base/time/time.h"
- #include "media/base/audio_decoder_config.h"
- #include "media/base/media_export.h"
- #include "media/base/media_log_type_enforcement.h"
- #include "media/base/renderer_factory_selector.h"
- #include "media/base/text_track_config.h"
- #include "media/base/video_decoder_config.h"
- #include "ui/gfx/geometry/size.h"
- namespace media {
- // A list of all properties that can be set by a MediaLog. To add a new
- // property, it must be added in this enum and have it's type defined below
- // using MEDIA_LOG_PROPERTY_SUPPORTS_TYPE(<name>, <type>) or with a custom
- // specializer. See MEDIA_LOG_PROEPRTY_SUPPORTS_GFX_SIZE as an example.
- enum class MediaLogProperty {
- // Video resolution.
- kResolution,
- // Size of the media content in bytes.
- kTotalBytes,
- // How many bits-per-second this media uses.
- kBitrate,
- // The maximum duration of the media in seconds.
- kMaxDuration,
- // The time at which media starts, in seconds.
- kStartTime,
- // If the video decoder is using a decrypting decoder to playback media.
- kIsVideoEncrypted,
- // Represents whether the media source supports range requests. A truthful
- // value here means that range requests aren't supported and seeking probably
- // wont be supported.
- kIsStreaming,
- // The url and title of the frame containing the document that this media
- // player is loaded into.
- kFrameUrl,
- kFrameTitle,
- // Whether the media content coming from the same origin as the frame in which
- // the player is loaded.
- kIsSingleOrigin,
- // Can the url loading the data support the range http header, allowing chunks
- // to be sent rather than entire file.
- kIsRangeHeaderSupported,
- // The name of media::Renderer currently being used to play the media stream.
- kRendererName,
- // The name of the decoder implementation currently being used to play the
- // media stream. All audio/video decoders have id numbers defined in
- // decoder.h.
- kVideoDecoderName,
- kAudioDecoderName,
- // Whether this decoder is using hardware accelerated decoding.
- kIsPlatformVideoDecoder,
- kIsPlatformAudioDecoder,
- // Webcodecs supports encoding video streams.
- kVideoEncoderName,
- kIsPlatformVideoEncoder,
- // Whether this media player is using a decrypting demuxer for the given
- // audio or video stream.
- kIsVideoDecryptingDemuxerStream,
- kIsAudioDecryptingDemuxerStream,
- // Track metadata.
- kAudioTracks,
- kTextTracks,
- kVideoTracks,
- // Effective video playback frame rate adjusted for the playback speed.
- // Updated along with kVideoPlaybackRoughness (i.e. not very often)
- kFramerate,
- // A playback quality metric calculated by VideoPlaybackRoughnessReporter
- kVideoPlaybackRoughness,
- // A playback quality metric that tries to account for large pauses and/or
- // discontinuities during playback.
- kVideoPlaybackFreezing,
- };
- MEDIA_LOG_PROPERTY_SUPPORTS_TYPE(kResolution, gfx::Size);
- MEDIA_LOG_PROPERTY_SUPPORTS_TYPE(kTotalBytes, int64_t);
- MEDIA_LOG_PROPERTY_SUPPORTS_TYPE(kBitrate, int);
- MEDIA_LOG_PROPERTY_SUPPORTS_TYPE(kMaxDuration, float);
- MEDIA_LOG_PROPERTY_SUPPORTS_TYPE(kStartTime, float);
- MEDIA_LOG_PROPERTY_SUPPORTS_TYPE(kIsVideoEncrypted, bool);
- MEDIA_LOG_PROPERTY_SUPPORTS_TYPE(kIsVideoEncrypted, std::string);
- MEDIA_LOG_PROPERTY_SUPPORTS_TYPE(kIsStreaming, bool);
- MEDIA_LOG_PROPERTY_SUPPORTS_TYPE(kFrameUrl, std::string);
- MEDIA_LOG_PROPERTY_SUPPORTS_TYPE(kFrameTitle, std::string);
- MEDIA_LOG_PROPERTY_SUPPORTS_TYPE(kIsSingleOrigin, bool);
- MEDIA_LOG_PROPERTY_SUPPORTS_TYPE(kRendererName, RendererType);
- MEDIA_LOG_PROPERTY_SUPPORTS_TYPE(kVideoDecoderName, VideoDecoderType);
- MEDIA_LOG_PROPERTY_SUPPORTS_TYPE(kIsPlatformVideoDecoder, bool);
- MEDIA_LOG_PROPERTY_SUPPORTS_TYPE(kIsRangeHeaderSupported, bool);
- MEDIA_LOG_PROPERTY_SUPPORTS_TYPE(kIsVideoDecryptingDemuxerStream, bool);
- MEDIA_LOG_PROPERTY_SUPPORTS_TYPE(kAudioDecoderName, AudioDecoderType);
- MEDIA_LOG_PROPERTY_SUPPORTS_TYPE(kIsPlatformAudioDecoder, bool);
- MEDIA_LOG_PROPERTY_SUPPORTS_TYPE(kVideoEncoderName, std::string);
- MEDIA_LOG_PROPERTY_SUPPORTS_TYPE(kIsPlatformVideoEncoder, bool);
- MEDIA_LOG_PROPERTY_SUPPORTS_TYPE(kIsAudioDecryptingDemuxerStream, bool);
- MEDIA_LOG_PROPERTY_SUPPORTS_TYPE(kAudioTracks, std::vector<AudioDecoderConfig>);
- MEDIA_LOG_PROPERTY_SUPPORTS_TYPE(kTextTracks, std::vector<TextTrackConfig>);
- MEDIA_LOG_PROPERTY_SUPPORTS_TYPE(kVideoTracks, std::vector<VideoDecoderConfig>);
- MEDIA_LOG_PROPERTY_SUPPORTS_TYPE(kFramerate, double);
- MEDIA_LOG_PROPERTY_SUPPORTS_TYPE(kVideoPlaybackRoughness, double);
- MEDIA_LOG_PROPERTY_SUPPORTS_TYPE(kVideoPlaybackFreezing, base::TimeDelta);
- // Convert the enum to a string (used for the front-end enum matching).
- MEDIA_EXPORT std::string MediaLogPropertyKeyToString(MediaLogProperty property);
- } // namespace media
- #endif // MEDIA_BASE_MEDIA_LOG_PROPERTIES_H_
|