[M120 Migration][MM] Framerate calculation
[platform/framework/web/chromium-efl.git] / media / mojo / mojom / media_foundation_cdm_data_mojom_traits.h
1 // Copyright 2021 The Chromium Authors
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 #ifndef MEDIA_MOJO_MOJOM_MEDIA_FOUNDATION_CDM_DATA_MOJOM_TRAITS_H_
6 #define MEDIA_MOJO_MOJOM_MEDIA_FOUNDATION_CDM_DATA_MOJOM_TRAITS_H_
7
8 #include <vector>
9
10 #include "base/files/file_path.h"
11 #include "base/unguessable_token.h"
12 #include "media/cdm/media_foundation_cdm_data.h"
13 #include "media/mojo/mojom/cdm_document_service.mojom.h"
14
15 namespace mojo {
16
17 template <>
18 struct StructTraits<media::mojom::MediaFoundationCdmDataDataView,
19                     std::unique_ptr<media::MediaFoundationCdmData>> {
20   static const base::UnguessableToken& origin_id(
21       const std::unique_ptr<media::MediaFoundationCdmData>& input) {
22     return input->origin_id;
23   }
24
25   static const absl::optional<std::vector<uint8_t>>& client_token(
26       const std::unique_ptr<media::MediaFoundationCdmData>& input) {
27     return input->client_token;
28   }
29
30   static const base::FilePath& cdm_store_path_root(
31       const std::unique_ptr<media::MediaFoundationCdmData>& input) {
32     return input->cdm_store_path_root;
33   }
34
35   static bool Read(media::mojom::MediaFoundationCdmDataDataView input,
36                    std::unique_ptr<media::MediaFoundationCdmData>* output);
37 };
38
39 }  // namespace mojo
40
41 #endif  // MEDIA_MOJO_MOJOM_MEDIA_FOUNDATION_CDM_DATA_MOJOM_TRAITS_H_