[M120 Migration][MM] Framerate calculation
[platform/framework/web/chromium-efl.git] / media / mojo / mojom / media_foundation_cdm_data_mojom_traits.cc
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 #include "media/mojo/mojom/media_foundation_cdm_data_mojom_traits.h"
6
7 #include "third_party/abseil-cpp/absl/types/optional.h"
8
9 namespace mojo {
10
11 // static
12 bool StructTraits<media::mojom::MediaFoundationCdmDataDataView,
13                   std::unique_ptr<media::MediaFoundationCdmData>>::
14     Read(media::mojom::MediaFoundationCdmDataDataView input,
15          std::unique_ptr<media::MediaFoundationCdmData>* output) {
16   base::UnguessableToken origin_id;
17   if (!input.ReadOriginId(&origin_id))
18     return false;
19
20   absl::optional<std::vector<uint8_t>> client_token;
21   if (!input.ReadClientToken(&client_token))
22     return false;
23
24   base::FilePath cdm_store_path_root;
25   if (!input.ReadCdmStorePathRoot(&cdm_store_path_root))
26     return false;
27
28   *output = std::make_unique<media::MediaFoundationCdmData>(
29       origin_id, std::move(client_token), std::move(cdm_store_path_root));
30   return true;
31 }
32
33 }  // namespace mojo