// Copyright 2018 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_BASE_MEDIA_TYPES_H_
#define MEDIA_BASE_MEDIA_TYPES_H_

#include "media/base/audio_codecs.h"
#include "media/base/audio_decoder_config.h"
#include "media/base/media_export.h"
#include "media/base/video_codecs.h"
#include "media/base/video_color_space.h"
#include "media/base/video_decoder_config.h"

namespace media {

// These structures represent parsed audio/video content types (mime strings).
// These are generally a subset of {Audio|Video}DecoderConfig classes, which can
// only be created after demuxing.

struct MEDIA_EXPORT AudioType {
  static AudioType FromDecoderConfig(const AudioDecoderConfig& config);

  AudioCodec codec;
};

struct MEDIA_EXPORT VideoType {
  static VideoType FromDecoderConfig(const VideoDecoderConfig& config);

  VideoCodec codec;
  VideoCodecProfile profile;
  int level;
  VideoColorSpace color_space;
};

MEDIA_EXPORT bool operator==(const AudioType& x, const AudioType& y);
MEDIA_EXPORT bool operator!=(const AudioType& x, const AudioType& y);
MEDIA_EXPORT bool operator==(const VideoType& x, const VideoType& y);
MEDIA_EXPORT bool operator!=(const VideoType& x, const VideoType& y);

}  // namespace media

#endif  // MEDIA_BASE_MEDIA_TYPES_H_
