#ifndef CHROMECAST_MEDIA_BASE_SUPPORTED_CODEC_PROFILE_LEVELS_MEMO_H_
#define CHROMECAST_MEDIA_BASE_SUPPORTED_CODEC_PROFILE_LEVELS_MEMO_H_
#include <vector>
#include "base/synchronization/lock.h"
#include "chromecast/public/media/decoder_config.h"
namespace chromecast {
namespace media {
class SupportedCodecProfileLevelsMemo {
public:
SupportedCodecProfileLevelsMemo();
SupportedCodecProfileLevelsMemo(const SupportedCodecProfileLevelsMemo&) =
delete;
SupportedCodecProfileLevelsMemo& operator=(
const SupportedCodecProfileLevelsMemo&) = delete;
~SupportedCodecProfileLevelsMemo();
void AddSupportedCodecProfileLevel(CodecProfileLevel codec_profile_level);
bool IsSupportedVideoConfig(VideoCodec codec,
VideoProfile profile,
int level) const;
private:
mutable base::Lock lock_;
std::vector<CodecProfileLevel> codec_profile_levels_;
};
}
}
#endif