chromium/media/remoting/device_capability_checker.h

// Copyright 2022 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_REMOTING_DEVICE_CAPABILITY_CHECKER_H_
#define MEDIA_REMOTING_DEVICE_CAPABILITY_CHECKER_H_

#include <string>

namespace media {
enum class AudioCodec;
enum class VideoCodec;

namespace remoting {
// Return true if the Cast receiver device is known to support media remoting
// according to its `model_name`.  Note that this does not include all Cast
// receivers that support remoting.
bool IsKnownToSupportRemoting(const std::string& model_name);

// Return true if the Cast receiver with `model_name` is compatible to render
// `video_codec`.
bool IsVideoCodecCompatible(const std::string& model_name,
                            media::VideoCodec video_codec);

// Return true if the Cast receiver with `model_name` is compatible to render
// `audio_codec`.
bool IsAudioCodecCompatible(const std::string& model_name,
                            media::AudioCodec audio_codec);

// Custom codec parsing function for media remoting.
media::VideoCodec ParseVideoCodec(const std::string& codec_str);
media::AudioCodec ParseAudioCodec(const std::string& codec_str);

}  // namespace remoting
}  // namespace media

#endif  // MEDIA_REMOTING_DEVICE_CAPABILITY_CHECKER_H_