chromium/chromecast/starboard/media/media/mime_utils.h

// Copyright 2024 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#ifndef CHROMECAST_STARBOARD_MEDIA_MEDIA_MIME_UTILS_H_
#define CHROMECAST_STARBOARD_MEDIA_MEDIA_MIME_UTILS_H_

#include <cstdint>
#include <string>

#include "chromecast/public/media/decoder_config.h"

namespace chromecast {
namespace media {

// TODO(b/275430044): Add support for all codecs here. For now, we only need
// this for Dolby Vision.
//
// Returns the MIME string for the given codec/profile/level. Container is
// guessed in a way that should be compatible with Starboard's checks (e.g. for
// HEVC we guess MP4). Ideally Starboard should not care about the container,
// since they do not handle demuxing.
//
// If a MIME type cannot be determined, an empty string is returned.
std::string GetMimeType(VideoCodec codec, VideoProfile profile, uint32_t level);

}  // namespace media
}  // namespace chromecast

#endif  // CHROMECAST_STARBOARD_MEDIA_MEDIA_MIME_UTILS_H_