diff options
Diffstat (limited to 'chromium/media/mojo/mojom')
24 files changed, 217 insertions, 70 deletions
diff --git a/chromium/media/mojo/mojom/BUILD.gn b/chromium/media/mojo/mojom/BUILD.gn index 341e26de457..2caa8635a66 100644 --- a/chromium/media/mojo/mojom/BUILD.gn +++ b/chromium/media/mojo/mojom/BUILD.gn @@ -18,6 +18,7 @@ mojom("mojom") { "audio_output_stream.mojom", "audio_parameters.mojom", "audio_stream_factory.mojom", + "capture_handle.mojom", "cdm_service.mojom", "cdm_storage.mojom", "content_decryption_module.mojom", @@ -536,6 +537,17 @@ mojom("mojom") { "//ui/gfx/geometry/mojom", ] }, + { + types = [ + { + mojom = "media.mojom.CdmCapability" + cpp = "::media::CdmCapability" + }, + ] + traits_headers = [ "cdm_capability_mojom_traits.h" ] + traits_sources = [ "cdm_capability_mojom_traits.cc" ] + traits_public_deps = [ "//media" ] + }, ] cpp_typemaps += shared_typemaps @@ -554,8 +566,7 @@ source_set("shared_mojom_traits") { public_deps = [ ":mojom_shared", - "//gpu/ipc/common:common", - "//gpu/ipc/common:mojom_traits", + "//gpu/ipc/common", "//media", "//media/base/ipc:ipc", "//mojo/public/mojom/base", diff --git a/chromium/media/mojo/mojom/audio_input_stream.mojom b/chromium/media/mojo/mojom/audio_input_stream.mojom index f77ac9dde6f..9f48a3aab08 100644 --- a/chromium/media/mojo/mojom/audio_input_stream.mojom +++ b/chromium/media/mojo/mojom/audio_input_stream.mojom @@ -21,7 +21,7 @@ interface AudioInputStream { // An interface for receiving notifications of state changes of an // AudioInputStream. interface AudioInputStreamClient { - OnError(); + OnError(InputStreamErrorCode code); OnMutedStateChanged(bool is_muted); }; @@ -42,6 +42,7 @@ interface AudioInputStreamObserver { kTerminatedByClient = 2, kStreamCreationFailed = 3, kDocumentDestroyed = 4, + kSystemPermissions = 5, }; // It will be called only once when input stream starts recording. diff --git a/chromium/media/mojo/mojom/capture_handle.mojom b/chromium/media/mojo/mojom/capture_handle.mojom new file mode 100644 index 00000000000..7dc157bd82d --- /dev/null +++ b/chromium/media/mojo/mojom/capture_handle.mojom @@ -0,0 +1,13 @@ +// Copyright 2021 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. + +module media.mojom; + +import "mojo/public/mojom/base/string16.mojom"; +import "url/mojom/origin.mojom"; + +struct CaptureHandle { + url.mojom.Origin origin; + mojo_base.mojom.String16 capture_handle; +}; diff --git a/chromium/media/mojo/mojom/cdm_capability_mojom_traits.cc b/chromium/media/mojo/mojom/cdm_capability_mojom_traits.cc new file mode 100644 index 00000000000..f72a0d32b7e --- /dev/null +++ b/chromium/media/mojo/mojom/cdm_capability_mojom_traits.cc @@ -0,0 +1,39 @@ +// Copyright 2021 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/mojo/mojom/cdm_capability_mojom_traits.h" + +#include <utility> + +namespace mojo { + +// static +bool StructTraits<media::mojom::CdmCapabilityDataView, media::CdmCapability>:: + Read(media::mojom::CdmCapabilityDataView input, + media::CdmCapability* output) { + std::vector<media::AudioCodec> audio_codecs; + if (!input.ReadAudioCodecs(&audio_codecs)) + return false; + + std::vector<media::VideoCodec> video_codecs; + if (!input.ReadVideoCodecs(&video_codecs)) + return false; + + std::vector<media::EncryptionScheme> encryption_schemes; + if (!input.ReadEncryptionSchemes(&encryption_schemes)) + return false; + + std::vector<media::CdmSessionType> session_types; + if (!input.ReadSessionTypes(&session_types)) + return false; + + // |encryption_schemes| and |session_types| are convert to a base::flat_map + // implicitly. + *output = media::CdmCapability( + std::move(audio_codecs), std::move(video_codecs), + std::move(encryption_schemes), std::move(session_types)); + return true; +} + +} // namespace mojo diff --git a/chromium/media/mojo/mojom/cdm_capability_mojom_traits.h b/chromium/media/mojo/mojom/cdm_capability_mojom_traits.h new file mode 100644 index 00000000000..178b17a7863 --- /dev/null +++ b/chromium/media/mojo/mojom/cdm_capability_mojom_traits.h @@ -0,0 +1,50 @@ +// Copyright 2021 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_MOJO_MOJOM_CDM_CAPABILITY_MOJOM_TRAITS_H_ +#define MEDIA_MOJO_MOJOM_CDM_CAPABILITY_MOJOM_TRAITS_H_ + +#include <vector> + +#include "base/containers/flat_set.h" +#include "media/base/audio_codecs.h" +#include "media/base/content_decryption_module.h" +#include "media/base/encryption_scheme.h" +#include "media/base/video_codecs.h" +#include "media/cdm/cdm_capability.h" +#include "media/mojo/mojom/key_system_support.mojom.h" + +namespace mojo { + +template <> +struct StructTraits<media::mojom::CdmCapabilityDataView, media::CdmCapability> { + static const std::vector<media::AudioCodec>& audio_codecs( + const media::CdmCapability& input) { + return input.audio_codecs; + } + + static const std::vector<media::VideoCodec>& video_codecs( + const media::CdmCapability& input) { + return input.video_codecs; + } + + // List of encryption schemes supported by the CDM (e.g. cenc). + static const base::flat_set<media::EncryptionScheme>& encryption_schemes( + const media::CdmCapability& input) { + return input.encryption_schemes; + } + + // List of session types supported by the CDM. + static const base::flat_set<media::CdmSessionType>& session_types( + const media::CdmCapability& input) { + return input.session_types; + } + + static bool Read(media::mojom::CdmCapabilityDataView input, + media::CdmCapability* output); +}; + +} // namespace mojo + +#endif // MEDIA_MOJO_MOJOM_CDM_CAPABILITY_MOJOM_TRAITS_H_ diff --git a/chromium/media/mojo/mojom/display_media_information.mojom b/chromium/media/mojo/mojom/display_media_information.mojom index ad441305339..387d8cb8a96 100644 --- a/chromium/media/mojo/mojom/display_media_information.mojom +++ b/chromium/media/mojo/mojom/display_media_information.mojom @@ -4,6 +4,8 @@ module media.mojom; +import "media/mojo/mojom/capture_handle.mojom"; + // Mojo equivalent to media::DisplayMediaInformation. See also // media/base/display_media_information.h @@ -24,4 +26,5 @@ struct DisplayMediaInformation { DisplayCaptureSurfaceType display_surface; bool logical_surface; CursorCaptureType cursor; + CaptureHandle? capture_handle; }; diff --git a/chromium/media/mojo/mojom/key_system_support.mojom b/chromium/media/mojo/mojom/key_system_support.mojom index ce6267224bd..371c259a7f4 100644 --- a/chromium/media/mojo/mojom/key_system_support.mojom +++ b/chromium/media/mojo/mojom/key_system_support.mojom @@ -10,20 +10,19 @@ import "media/mojo/mojom/media_types.mojom"; // TODO(xhwang): Use "set" instead of "array" if supported by mojom. // TODO(crbug.com/796725) Find a way to include profiles and levels for // supported codecs. -struct KeySystemCapability { - // Software secure codecs and encryption schemes supported by the CDM. +struct CdmCapability { + array<AudioCodec> audio_codecs; array<VideoCodec> video_codecs; array<EncryptionScheme> encryption_schemes; - - // Hardware secure codecs and encryption schemes supported by the CDM. - array<VideoCodec> hw_secure_video_codecs; - array<EncryptionScheme> hw_secure_encryption_schemes; - - // Session types supported in software secure mode if no - // |hw_secure_video_codecs| is supported, or in both modes otherwise. array<CdmSessionType> session_types; }; +struct KeySystemCapability { + CdmCapability? sw_secure_capability; + CdmCapability? hw_secure_capability; +}; + +// Used to query the browser to see if a specific key system is supported. interface KeySystemSupport { // Query to determine if the browser supports the |key_system|. If supported, // |key_system_capability| is non-null indicating supported capability. diff --git a/chromium/media/mojo/mojom/media_types.mojom b/chromium/media/mojo/mojom/media_types.mojom index 1db4788ed02..f9d24e84613 100644 --- a/chromium/media/mojo/mojom/media_types.mojom +++ b/chromium/media/mojo/mojom/media_types.mojom @@ -471,3 +471,10 @@ enum MediaStreamType { kRemote = 5, // The source is a remote peer connection. kNone = 6, // Not a media stream. }; + +// Error codes propagated by Input media streams OnError methods to indicate the +// reason for an error. +enum InputStreamErrorCode { + kUnknown = 0, + kSystemPermissions = 1, +}; diff --git a/chromium/media/mojo/mojom/output_protection.mojom b/chromium/media/mojo/mojom/output_protection.mojom index 87dc10d37bf..0d09055e9c7 100644 --- a/chromium/media/mojo/mojom/output_protection.mojom +++ b/chromium/media/mojo/mojom/output_protection.mojom @@ -8,14 +8,16 @@ module media.mojom; // on links that support it. interface OutputProtection { + [Stable, Extensible] enum ProtectionType { - NONE = 0, + [Default] NONE = 0, HDCP = 1, }; // Video output link types. + [Stable, Extensible] enum LinkType { - NONE = 0, + [Default] NONE = 0, UNKNOWN = 1, INTERNAL = 2, VGA = 4, diff --git a/chromium/media/mojo/mojom/pipeline_status_mojom_traits.h b/chromium/media/mojo/mojom/pipeline_status_mojom_traits.h index d2893e209d9..220323d75ce 100644 --- a/chromium/media/mojo/mojom/pipeline_status_mojom_traits.h +++ b/chromium/media/mojo/mojom/pipeline_status_mojom_traits.h @@ -5,8 +5,6 @@ #ifndef MEDIA_MOJO_MOJOM_PIPELINE_STATUS_MOJOM_TRAITS_H_ #define MEDIA_MOJO_MOJOM_PIPELINE_STATUS_MOJOM_TRAITS_H_ -#include <string> - #include "media/base/pipeline_status.h" #include "media/mojo/mojom/media_types.mojom.h" diff --git a/chromium/media/mojo/mojom/platform_verification.mojom b/chromium/media/mojo/mojom/platform_verification.mojom index c96c33bb887..c3cf5b7ab5f 100644 --- a/chromium/media/mojo/mojom/platform_verification.mojom +++ b/chromium/media/mojo/mojom/platform_verification.mojom @@ -33,6 +33,6 @@ interface PlatformVerification { GetStorageId(uint32 version) => (uint32 version, array<uint8> storage_id); // Returns true if Verified Access is enabled in settings, false otherwise. - [EnableIf=is_chromeos] + [EnableIf=is_chromeos_ash] IsVerifiedAccessEnabled() => (bool enabled); }; diff --git a/chromium/media/mojo/mojom/speech_recognition_service.mojom b/chromium/media/mojo/mojom/speech_recognition_service.mojom index ab4d55221b5..55cf313f7c7 100644 --- a/chromium/media/mojo/mojom/speech_recognition_service.mojom +++ b/chromium/media/mojo/mojom/speech_recognition_service.mojom @@ -30,7 +30,8 @@ interface SpeechRecognitionContext { // indicating whether multichannel audio is supported by the speech // recognition service. BindRecognizer(pending_receiver<SpeechRecognitionRecognizer> receiver, - pending_remote<SpeechRecognitionRecognizerClient> client) + pending_remote<SpeechRecognitionRecognizerClient> client, + SpeechRecognitionOptions options) => (bool is_multichannel_supported); // Prepares microphone audio to be captured from within the @@ -38,7 +39,8 @@ interface SpeechRecognitionContext { // SpeechRecognitionRecognizerClient. BindAudioSourceFetcher( pending_receiver<AudioSourceFetcher> fetcher_receiver, - pending_remote<SpeechRecognitionRecognizerClient> client) + pending_remote<SpeechRecognitionRecognizerClient> client, + SpeechRecognitionOptions options) => (bool is_multichannel_supported); }; @@ -94,26 +96,21 @@ interface SpeechRecognitionRecognizer { // to the originating media. SendAudioToSpeechRecognitionService(AudioDataS16 buffer); - // Notify the speech recognition recognizer that the caption bubble was - // closed. Used to determine whether the caption bubble was visible when - // recording watch time. - OnCaptionBubbleClosed(); - - // Notify the speech recognition recognizer that audio was received by the - // renderer after the caption bubble was closed. - AudioReceivedAfterBubbleClosed(mojo_base.mojom.TimeDelta duration); - // Notify the speech recognition recognizer that the language changed. Takes // in the locale string (e.g. "en-US"). OnLanguageChanged(string language); }; // The interface used to return speech recognition events from the speech -// recognition service back to the originating media. The remote lives in the -// speech recognition process and the receiver lives in the renderer process. +// recognition service to the client that will display the results to the user. +// The remote lives in the speech recognition process and the receiver lives in +// the browser process. interface SpeechRecognitionRecognizerClient { // Triggered by speech recognition process on a speech recognition event. - OnSpeechRecognitionRecognitionEvent(SpeechRecognitionResult result); + // Returns whether the result was received successfully. Speech recognition + // will halt if this returns false. + OnSpeechRecognitionRecognitionEvent(SpeechRecognitionResult result) + => (bool success); // Triggered by an error within the speech recognition service. OnSpeechRecognitionError(); @@ -123,7 +120,7 @@ interface SpeechRecognitionRecognizerClient { }; // A speech recognition result created by the speech service and passed to the -// renderer. +// browser. struct SpeechRecognitionResult { string transcription; @@ -164,3 +161,23 @@ interface SpeechRecognitionClientBrowserInterface { BindSpeechRecognitionBrowserObserver( pending_remote<SpeechRecognitionBrowserObserver> observer); }; + +// Corresponds to ExtendedSodaConfigMsg in +// chrome/services/speech/soda/proto/soda_api.proto. +enum SpeechRecognitionMode { + kUnknown, + // Intended for voice input for keyboard usage. + kIme, + // Intended to caption a stream of audio. + kCaption, +}; + +// Options for speech recognition. +// TODO(crbug.com/1195916): Add language identifier. +// TODO(crbug.com/1165437): Add option to include timing metrics in the result. +struct SpeechRecognitionOptions { + // What kind of recognition to use. + // In the case of web fallback (not for launch, used for development only), + // this option will be ignored. + SpeechRecognitionMode recognition_mode; +}; diff --git a/chromium/media/mojo/mojom/status_mojom_traits.cc b/chromium/media/mojo/mojom/status_mojom_traits.cc index 9efb4af6e57..639e8462643 100644 --- a/chromium/media/mojo/mojom/status_mojom_traits.cc +++ b/chromium/media/mojo/mojom/status_mojom_traits.cc @@ -24,7 +24,7 @@ bool StructTraits<media::mojom::StatusDataView, media::Status>::Read( if (media::StatusCode::kOk == code) return true; - base::Optional<std::string> optional_message; + absl::optional<std::string> optional_message; if (!data.ReadMessage(&optional_message)) return false; message = std::move(optional_message).value_or(std::string()); @@ -38,7 +38,7 @@ bool StructTraits<media::mojom::StatusDataView, media::Status>::Read( if (!data.ReadCauses(&output->data_->causes)) return false; - base::Optional<base::Value> optional_data; + absl::optional<base::Value> optional_data; if (!data.ReadData(&optional_data)) return false; output->data_->data = std::move(optional_data).value_or(base::Value()); diff --git a/chromium/media/mojo/mojom/status_mojom_traits.h b/chromium/media/mojo/mojom/status_mojom_traits.h index 03eb5ab36ed..8896ea76130 100644 --- a/chromium/media/mojo/mojom/status_mojom_traits.h +++ b/chromium/media/mojo/mojom/status_mojom_traits.h @@ -6,11 +6,11 @@ #define MEDIA_MOJO_MOJOM_STATUS_MOJOM_TRAITS_H_ #include "base/containers/span.h" -#include "base/optional.h" #include "base/values.h" #include "media/base/ipc/media_param_traits.h" #include "media/base/status.h" #include "media/mojo/mojom/media_types.mojom.h" +#include "third_party/abseil-cpp/absl/types/optional.h" namespace mojo { @@ -20,9 +20,9 @@ struct StructTraits<media::mojom::StatusDataView, media::Status> { return input.code(); } - static base::Optional<std::string> message(const media::Status& input) { + static absl::optional<std::string> message(const media::Status& input) { if (input.is_ok()) - return base::nullopt; + return absl::nullopt; DCHECK(input.data_); return input.message(); } @@ -41,12 +41,12 @@ struct StructTraits<media::mojom::StatusDataView, media::Status> { return input.data_->causes; } - static base::Optional<base::Value> data(const media::Status& input) { + static absl::optional<base::Value> data(const media::Status& input) { if (!input.is_ok()) { DCHECK(input.data_); return input.data_->data.Clone(); } - return base::nullopt; + return absl::nullopt; } static bool Read(media::mojom::StatusDataView data, media::Status* output); diff --git a/chromium/media/mojo/mojom/video_decoder_config_mojom_traits.cc b/chromium/media/mojo/mojom/video_decoder_config_mojom_traits.cc index 4699902207f..f968638da35 100644 --- a/chromium/media/mojo/mojom/video_decoder_config_mojom_traits.cc +++ b/chromium/media/mojo/mojom/video_decoder_config_mojom_traits.cc @@ -47,7 +47,7 @@ bool StructTraits<media::mojom::VideoDecoderConfigDataView, if (!input.ReadColorSpaceInfo(&color_space)) return false; - base::Optional<gfx::HDRMetadata> hdr_metadata; + absl::optional<gfx::HDRMetadata> hdr_metadata; if (!input.ReadHdrMetadata(&hdr_metadata)) return false; diff --git a/chromium/media/mojo/mojom/video_decoder_config_mojom_traits.h b/chromium/media/mojo/mojom/video_decoder_config_mojom_traits.h index f89cfcc2f87..19a0d2f61a1 100644 --- a/chromium/media/mojo/mojom/video_decoder_config_mojom_traits.h +++ b/chromium/media/mojo/mojom/video_decoder_config_mojom_traits.h @@ -64,7 +64,7 @@ struct StructTraits<media::mojom::VideoDecoderConfigDataView, return input.video_transformation(); } - static const base::Optional<gfx::HDRMetadata>& hdr_metadata( + static const absl::optional<gfx::HDRMetadata>& hdr_metadata( const media::VideoDecoderConfig& input) { return input.hdr_metadata(); } diff --git a/chromium/media/mojo/mojom/video_encode_accelerator.mojom b/chromium/media/mojo/mojom/video_encode_accelerator.mojom index 3516920dd39..82cf95f9a6a 100644 --- a/chromium/media/mojo/mojom/video_encode_accelerator.mojom +++ b/chromium/media/mojo/mojom/video_encode_accelerator.mojom @@ -101,6 +101,7 @@ struct VideoEncodeAcceleratorConfig { bool has_storage_type; // Whether or not config has storage type config ContentType content_type; array<SpatialLayer> spatial_layers; + bool require_low_delay; }; interface VideoEncodeAccelerator { diff --git a/chromium/media/mojo/mojom/video_encode_accelerator_mojom_traits.cc b/chromium/media/mojo/mojom/video_encode_accelerator_mojom_traits.cc index df744f70048..506a38e71f7 100644 --- a/chromium/media/mojo/mojom/video_encode_accelerator_mojom_traits.cc +++ b/chromium/media/mojo/mojom/video_encode_accelerator_mojom_traits.cc @@ -5,10 +5,10 @@ #include "media/mojo/mojom/video_encode_accelerator_mojom_traits.h" #include "base/notreached.h" -#include "base/optional.h" #include "media/base/video_bitrate_allocation.h" #include "media/mojo/mojom/video_encode_accelerator.mojom.h" #include "mojo/public/cpp/base/time_mojom_traits.h" +#include "third_party/abseil-cpp/absl/types/optional.h" namespace mojo { @@ -258,21 +258,21 @@ bool StructTraits<media::mojom::VideoEncodeAcceleratorConfigDataView, if (!input.ReadOutputProfile(&output_profile)) return false; - base::Optional<uint32_t> initial_framerate; + absl::optional<uint32_t> initial_framerate; if (input.has_initial_framerate()) initial_framerate = input.initial_framerate(); - base::Optional<uint32_t> gop_length; + absl::optional<uint32_t> gop_length; if (input.has_gop_length()) gop_length = input.gop_length(); - base::Optional<uint8_t> h264_output_level; + absl::optional<uint8_t> h264_output_level; if (input.has_h264_output_level()) h264_output_level = input.h264_output_level(); bool is_constrained_h264 = input.is_constrained_h264(); - base::Optional<media::VideoEncodeAccelerator::Config::StorageType> + absl::optional<media::VideoEncodeAccelerator::Config::StorageType> storage_type; if (input.has_storage_type()) { if (!input.ReadStorageType(&storage_type)) @@ -292,6 +292,8 @@ bool StructTraits<media::mojom::VideoEncodeAcceleratorConfigDataView, input_format, input_visible_size, output_profile, input.initial_bitrate(), initial_framerate, gop_length, h264_output_level, is_constrained_h264, storage_type, content_type, spatial_layers); + + output->require_low_delay = input.require_low_delay(); return true; } diff --git a/chromium/media/mojo/mojom/video_encode_accelerator_mojom_traits.h b/chromium/media/mojo/mojom/video_encode_accelerator_mojom_traits.h index 569b7f912a3..7cc9dc720d0 100644 --- a/chromium/media/mojo/mojom/video_encode_accelerator_mojom_traits.h +++ b/chromium/media/mojo/mojom/video_encode_accelerator_mojom_traits.h @@ -304,6 +304,11 @@ struct StructTraits<media::mojom::VideoEncodeAcceleratorConfigDataView, return input.spatial_layers; } + static bool require_low_delay( + const media::VideoEncodeAccelerator::Config& input) { + return input.require_low_delay; + } + static bool Read(media::mojom::VideoEncodeAcceleratorConfigDataView input, media::VideoEncodeAccelerator::Config* output); }; diff --git a/chromium/media/mojo/mojom/video_encode_accelerator_mojom_traits_unittest.cc b/chromium/media/mojo/mojom/video_encode_accelerator_mojom_traits_unittest.cc index 15d59d1d76a..57dc0256efb 100644 --- a/chromium/media/mojo/mojom/video_encode_accelerator_mojom_traits_unittest.cc +++ b/chromium/media/mojo/mojom/video_encode_accelerator_mojom_traits_unittest.cc @@ -67,7 +67,7 @@ TEST(VideoEncodeAcceleratorConfigStructTraitTest, RoundTrip) { } ::media::VideoEncodeAccelerator::Config input_config( ::media::PIXEL_FORMAT_NV12, kBaseSize, ::media::VP9PROFILE_PROFILE0, - kBaseBitrateBps, kBaseFramerate, base::nullopt, base::nullopt, false, + kBaseBitrateBps, kBaseFramerate, absl::nullopt, absl::nullopt, false, ::media::VideoEncodeAccelerator::Config::StorageType::kGpuMemoryBuffer, ::media::VideoEncodeAccelerator::Config::ContentType::kCamera, input_spatial_layers); diff --git a/chromium/media/mojo/mojom/video_frame_metadata_mojom_traits.cc b/chromium/media/mojo/mojom/video_frame_metadata_mojom_traits.cc index 0e77001b970..95666aaf226 100644 --- a/chromium/media/mojo/mojom/video_frame_metadata_mojom_traits.cc +++ b/chromium/media/mojo/mojom/video_frame_metadata_mojom_traits.cc @@ -14,13 +14,13 @@ namespace mojo { -// Deserializes has_field and field into a base::Optional. +// Deserializes has_field and field into a absl::optional. #define DESERIALIZE_INTO_OPT(field) \ if (input.has_##field()) \ output->field = input.field() #define READ_AND_ASSIGN_OPT(type, field, FieldInCamelCase) \ - base::Optional<type> field; \ + absl::optional<type> field; \ if (!input.Read##FieldInCamelCase(&field)) \ return false; \ \ diff --git a/chromium/media/mojo/mojom/video_frame_metadata_mojom_traits.h b/chromium/media/mojo/mojom/video_frame_metadata_mojom_traits.h index 06b7cf3ebc8..c545248edb1 100644 --- a/chromium/media/mojo/mojom/video_frame_metadata_mojom_traits.h +++ b/chromium/media/mojo/mojom/video_frame_metadata_mojom_traits.h @@ -6,7 +6,6 @@ #define MEDIA_MOJO_MOJOM_VIDEO_FRAME_METADATA_MOJOM_TRAITS_H_ #include "base/memory/ref_counted.h" -#include "base/optional.h" #include "media/base/ipc/media_param_traits_macros.h" #include "media/base/video_frame_metadata.h" #include "media/base/video_transformation.h" @@ -14,11 +13,12 @@ #include "media/mojo/mojom/media_types_enum_mojom_traits.h" #include "media/mojo/mojom/video_transformation_mojom_traits.h" #include "mojo/public/cpp/bindings/struct_traits.h" +#include "third_party/abseil-cpp/absl/types/optional.h" #include "ui/gfx/geometry/mojom/geometry_mojom_traits.h" namespace mojo { -// Creates a has_foo() and a foo() to serialize a foo base::Optional<>. +// Creates a has_foo() and a foo() to serialize a foo absl::optional<>. #define GENERATE_OPT_SERIALIZATION(type, field, default_value) \ static bool has_##field(const media::VideoFrameMetadata& input) { \ return input.field.has_value(); \ @@ -79,7 +79,7 @@ struct StructTraits<media::mojom::VideoFrameMetadataDataView, copy_mode, media::VideoFrameMetadata::CopyMode::kCopyToNewTexture) - static base::Optional<media::VideoTransformation> transformation( + static absl::optional<media::VideoTransformation> transformation( const media::VideoFrameMetadata& input) { return input.transformation; } @@ -92,57 +92,57 @@ struct StructTraits<media::mojom::VideoFrameMetadataDataView, GENERATE_OPT_SERIALIZATION(double, frame_rate, 0.0) GENERATE_OPT_SERIALIZATION(double, rtp_timestamp, 0.0) - static base::Optional<gfx::Rect> capture_update_rect( + static absl::optional<gfx::Rect> capture_update_rect( const media::VideoFrameMetadata& input) { return input.capture_update_rect; } - static base::Optional<base::UnguessableToken> overlay_plane_id( + static absl::optional<base::UnguessableToken> overlay_plane_id( const media::VideoFrameMetadata& input) { return input.overlay_plane_id; } - static base::Optional<base::TimeTicks> receive_time( + static absl::optional<base::TimeTicks> receive_time( const media::VideoFrameMetadata& input) { return input.receive_time; } - static base::Optional<base::TimeTicks> capture_begin_time( + static absl::optional<base::TimeTicks> capture_begin_time( const media::VideoFrameMetadata& input) { return input.capture_begin_time; } - static base::Optional<base::TimeTicks> capture_end_time( + static absl::optional<base::TimeTicks> capture_end_time( const media::VideoFrameMetadata& input) { return input.capture_end_time; } - static base::Optional<base::TimeTicks> decode_begin_time( + static absl::optional<base::TimeTicks> decode_begin_time( const media::VideoFrameMetadata& input) { return input.decode_begin_time; } - static base::Optional<base::TimeTicks> decode_end_time( + static absl::optional<base::TimeTicks> decode_end_time( const media::VideoFrameMetadata& input) { return input.decode_end_time; } - static base::Optional<base::TimeTicks> reference_time( + static absl::optional<base::TimeTicks> reference_time( const media::VideoFrameMetadata& input) { return input.reference_time; } - static base::Optional<base::TimeDelta> processing_time( + static absl::optional<base::TimeDelta> processing_time( const media::VideoFrameMetadata& input) { return input.processing_time; } - static base::Optional<base::TimeDelta> frame_duration( + static absl::optional<base::TimeDelta> frame_duration( const media::VideoFrameMetadata& input) { return input.frame_duration; } - static base::Optional<base::TimeDelta> wallclock_frame_duration( + static absl::optional<base::TimeDelta> wallclock_frame_duration( const media::VideoFrameMetadata& input) { return input.wallclock_frame_duration; } diff --git a/chromium/media/mojo/mojom/video_frame_mojom_traits.cc b/chromium/media/mojo/mojom/video_frame_mojom_traits.cc index 08ad8fc66ef..268def5e1c8 100644 --- a/chromium/media/mojo/mojom/video_frame_mojom_traits.cc +++ b/chromium/media/mojo/mojom/video_frame_mojom_traits.cc @@ -174,7 +174,7 @@ bool StructTraits<media::mojom::VideoFrameDataView, for (size_t i = 0; i < mailbox_holder.size(); i++) mailbox_holder_array[i] = mailbox_holder[i]; - base::Optional<gfx::BufferFormat> buffer_format = + absl::optional<gfx::BufferFormat> buffer_format = VideoPixelFormatToGfxBufferFormat(format); if (!buffer_format) return false; @@ -203,7 +203,7 @@ bool StructTraits<media::mojom::VideoFrameDataView, for (size_t i = 0; i < media::VideoFrame::kMaxPlanes; i++) mailbox_holder_array[i] = mailbox_holder[i]; - base::Optional<gpu::VulkanYCbCrInfo> ycbcr_info; + absl::optional<gpu::VulkanYCbCrInfo> ycbcr_info; if (!mailbox_data.ReadYcbcrData(&ycbcr_info)) return false; @@ -231,7 +231,7 @@ bool StructTraits<media::mojom::VideoFrameDataView, return false; frame->set_color_space(color_space); - base::Optional<gfx::HDRMetadata> hdr_metadata; + absl::optional<gfx::HDRMetadata> hdr_metadata; if (!input.ReadHdrMetadata(&hdr_metadata)) return false; frame->set_hdr_metadata(std::move(hdr_metadata)); diff --git a/chromium/media/mojo/mojom/video_frame_mojom_traits.h b/chromium/media/mojo/mojom/video_frame_mojom_traits.h index 9071089bd2e..93c515276e5 100644 --- a/chromium/media/mojo/mojom/video_frame_mojom_traits.h +++ b/chromium/media/mojo/mojom/video_frame_mojom_traits.h @@ -6,14 +6,13 @@ #define MEDIA_MOJO_MOJOM_VIDEO_FRAME_MOJOM_TRAITS_H_ #include "base/memory/ref_counted.h" -#include "base/optional.h" -#include "base/values.h" #include "gpu/ipc/common/mailbox_holder_mojom_traits.h" #include "gpu/ipc/common/vulkan_ycbcr_info_mojom_traits.h" #include "media/base/ipc/media_param_traits_macros.h" #include "media/base/video_frame.h" #include "media/mojo/mojom/media_types.mojom.h" #include "mojo/public/cpp/bindings/struct_traits.h" +#include "third_party/abseil-cpp/absl/types/optional.h" #include "ui/gfx/geometry/mojom/geometry_mojom_traits.h" #include "ui/gfx/ipc/color/gfx_param_traits.h" @@ -62,12 +61,12 @@ struct StructTraits<media::mojom::VideoFrameDataView, return input->ColorSpace(); } - static const base::Optional<gfx::HDRMetadata>& hdr_metadata( + static const absl::optional<gfx::HDRMetadata>& hdr_metadata( const scoped_refptr<media::VideoFrame>& input) { return input->hdr_metadata(); } - static const base::Optional<gpu::VulkanYCbCrInfo>& ycbcr_info( + static const absl::optional<gpu::VulkanYCbCrInfo>& ycbcr_info( const scoped_refptr<media::VideoFrame>& input) { return input->ycbcr_info(); } |