blob: ef573a2d33fcb2635ec9ecb8052fadefc06e458f [file] [log] [blame]
// Copyright 2020 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef MEDIA_CAST_OPENSCREEN_CONFIG_CONVERSIONS_H_
#define MEDIA_CAST_OPENSCREEN_CONFIG_CONVERSIONS_H_
#include <vector>
#include "media/base/audio_decoder_config.h"
#include "media/base/video_decoder_config.h"
#include "third_party/openscreen/src/cast/streaming/capture_configs.h"
namespace media::cast {
// Utility functions to convert between media and Open Screen types.
openscreen::cast::AudioCaptureConfig ToAudioCaptureConfig(
const media::AudioDecoderConfig& audio_config);
openscreen::cast::VideoCaptureConfig ToVideoCaptureConfig(
const media::VideoDecoderConfig& video_config);
media::AudioDecoderConfig ToAudioDecoderConfig(
const openscreen::cast::AudioCaptureConfig& audio_capture_config);
media::VideoDecoderConfig ToVideoDecoderConfig(
const openscreen::cast::VideoCaptureConfig& video_capture_config);
openscreen::cast::AudioCodec ToAudioCaptureConfigCodec(media::AudioCodec codec);
openscreen::cast::VideoCodec ToVideoCaptureConfigCodec(media::VideoCodec codec);
template <typename... TCodecs>
std::vector<openscreen::cast::AudioCodec> ToAudioCaptureConfigCodecs(
TCodecs... codecs) {
return std::vector<openscreen::cast::AudioCodec>{
ToAudioCaptureConfigCodec(codecs)...};
}
template <typename... TCodecs>
std::vector<openscreen::cast::VideoCodec> ToVideoCaptureConfigCodecs(
TCodecs... codecs) {
return std::vector<openscreen::cast::VideoCodec>{
ToVideoCaptureConfigCodec(codecs)...};
}
} // namespace media::cast
#endif // MEDIA_CAST_OPENSCREEN_CONFIG_CONVERSIONS_H_