1// Copyright (c) 2013 The Chromium Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
5#ifndef MEDIA_BASE_ANDROID_DEMUXER_STREAM_PLAYER_PARAMS_H_
6#define MEDIA_BASE_ANDROID_DEMUXER_STREAM_PLAYER_PARAMS_H_
7
8#if defined(GOOGLE_TV)
9#include <string>
10#endif  // defined(GOOGLE_TV)
11#include <vector>
12
13#include "media/base/audio_decoder_config.h"
14#include "media/base/decrypt_config.h"
15#include "media/base/demuxer_stream.h"
16#include "media/base/media_export.h"
17#include "media/base/video_decoder_config.h"
18#include "ui/gfx/size.h"
19
20namespace media {
21
22struct MEDIA_EXPORT DemuxerConfigs {
23  DemuxerConfigs();
24  ~DemuxerConfigs();
25
26  AudioCodec audio_codec;
27  int audio_channels;
28  int audio_sampling_rate;
29  bool is_audio_encrypted;
30  std::vector<uint8> audio_extra_data;
31
32  VideoCodec video_codec;
33  gfx::Size video_size;
34  bool is_video_encrypted;
35  std::vector<uint8> video_extra_data;
36
37  int duration_ms;
38
39#if defined(GOOGLE_TV)
40  std::string key_system;
41#endif  // defined(GOOGLE_TV)
42};
43
44struct MEDIA_EXPORT AccessUnit {
45  AccessUnit();
46  ~AccessUnit();
47
48  DemuxerStream::Status status;
49  bool end_of_stream;
50  // TODO(ycheo): Use the shared memory to transfer the block data.
51  std::vector<uint8> data;
52  base::TimeDelta timestamp;
53  std::vector<char> key_id;
54  std::vector<char> iv;
55  std::vector<media::SubsampleEntry> subsamples;
56};
57
58struct MEDIA_EXPORT DemuxerData {
59  DemuxerData();
60  ~DemuxerData();
61
62  DemuxerStream::Type type;
63  std::vector<AccessUnit> access_units;
64};
65
66};  // namespace media
67
68#endif  // MEDIA_BASE_ANDROID_DEMUXER_STREAM_PLAYER_PARAMS_H_
69