blob: 5055a8f09f39f985082cb3bca20de4b7af85960a [file] [log] [blame]
// 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_MEDIA_FOUNDATION_CDM_DATA_MOJOM_TRAITS_H_
#define MEDIA_MOJO_MOJOM_MEDIA_FOUNDATION_CDM_DATA_MOJOM_TRAITS_H_
#include <vector>
#include "base/files/file_path.h"
#include "base/unguessable_token.h"
#include "media/cdm/media_foundation_cdm_data.h"
#include "media/mojo/mojom/cdm_document_service.mojom.h"
namespace mojo {
template <>
struct StructTraits<media::mojom::MediaFoundationCdmDataDataView,
std::unique_ptr<media::MediaFoundationCdmData>> {
static const base::UnguessableToken& origin_id(
const std::unique_ptr<media::MediaFoundationCdmData>& input) {
return input->origin_id;
}
static const absl::optional<std::vector<uint8_t>>& client_token(
const std::unique_ptr<media::MediaFoundationCdmData>& input) {
return input->client_token;
}
static const base::FilePath& cdm_store_path_root(
const std::unique_ptr<media::MediaFoundationCdmData>& input) {
return input->cdm_store_path_root;
}
static bool Read(media::mojom::MediaFoundationCdmDataDataView input,
std::unique_ptr<media::MediaFoundationCdmData>* output);
};
} // namespace mojo
#endif // MEDIA_MOJO_MOJOM_MEDIA_FOUNDATION_CDM_DATA_MOJOM_TRAITS_H_