// Copyright 2016 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_PIPELINE_METADATA_H_
#define MEDIA_BASE_PIPELINE_METADATA_H_

#include "base/time/time.h"
#include "media/base/audio_decoder_config.h"
#include "media/base/video_decoder_config.h"
#include "media/base/video_transformation.h"
#include "ui/gfx/geometry/size.h"

namespace media {

// Metadata describing a pipeline once it has been initialized.
struct MEDIA_EXPORT PipelineMetadata {
  PipelineMetadata();
  ~PipelineMetadata();

  // Required by Chromium style: Complex class/struct needs an explicit
  // out-of-line copy constructor.
  PipelineMetadata(const PipelineMetadata&);

  // On Android, when using the MediaPlayerRenderer, |has_video| and |has_audio|
  // will be true, but the respective configs will be empty.
  // Do not make any assumptions on the validity of configs based off of the
  // presence of audio/video.
  bool has_audio;
  bool has_video;
  AudioDecoderConfig audio_decoder_config;
  VideoDecoderConfig video_decoder_config;
  gfx::Size natural_size;  // Rotated according to
                           // |video_decoder_config|.video_rotation().
  base::Time timeline_offset;
};

}  // namespace media

#endif  // MEDIA_BASE_PIPELINE_METADATA_H_
