chromium/chromecast/media/cma/base/decoder_config_adapter.h

// Copyright 2015 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_MEDIA_CMA_BASE_DECODER_CONFIG_ADAPTER_H_
#define CHROMECAST_MEDIA_CMA_BASE_DECODER_CONFIG_ADAPTER_H_

#include "chromecast/public/media/decoder_config.h"
#include "media/base/audio_decoder_config.h"
#include "media/base/video_decoder_config.h"

namespace chromecast {
namespace media {

class DecoderConfigAdapter {
 public:
  static ChannelLayout ToChannelLayout(::media::ChannelLayout channel_layout);
  static ::media::ChannelLayout ToMediaChannelLayout(
      ChannelLayout channel_layout);

  // Converts ::media::AudioDecoderConfig to chromecast::media::AudioConfig.
  static AudioConfig ToCastAudioConfig(
      StreamId id,
      const ::media::AudioDecoderConfig& config);

  // Converts chromecast::media::AudioConfig to ::media::AudioDecoderConfig.
  static ::media::AudioDecoderConfig ToMediaAudioDecoderConfig(
      const AudioConfig& config);

  // Converts ::media::VideoDecoderConfig to chromecast::media::VideoConfig.
  static VideoConfig ToCastVideoConfig(
      StreamId id,
      const ::media::VideoDecoderConfig& config);
};

}  // namespace media
}  // namespace chromecast

#endif  // CHROMECAST_MEDIA_CMA_BASE_DECODER_CONFIG_ADAPTER_H_