Blink roll 25b6bd3a7a131ffe68d809546ad1a20707915cdc:3a503f41ae42e5b79cfcd2ff10e65afde...
[chromium-blink-merge.git] / media / base / android / demuxer_stream_player_params.h
blob0b8886eb3b1403eee70bc83928d398d3932b680f
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.
5 #ifndef MEDIA_BASE_ANDROID_DEMUXER_STREAM_PLAYER_PARAMS_H_
6 #define MEDIA_BASE_ANDROID_DEMUXER_STREAM_PLAYER_PARAMS_H_
8 #include <vector>
10 #include "media/base/audio_decoder_config.h"
11 #include "media/base/decrypt_config.h"
12 #include "media/base/demuxer_stream.h"
13 #include "media/base/media_export.h"
14 #include "media/base/video_decoder_config.h"
15 #include "ui/gfx/size.h"
17 namespace media {
19 struct MEDIA_EXPORT DemuxerConfigs {
20 DemuxerConfigs();
21 ~DemuxerConfigs();
23 AudioCodec audio_codec;
24 int audio_channels;
25 int audio_sampling_rate;
26 bool is_audio_encrypted;
27 std::vector<uint8> audio_extra_data;
29 VideoCodec video_codec;
30 gfx::Size video_size;
31 bool is_video_encrypted;
32 std::vector<uint8> video_extra_data;
34 base::TimeDelta duration;
37 struct MEDIA_EXPORT AccessUnit {
38 AccessUnit();
39 ~AccessUnit();
41 DemuxerStream::Status status;
42 bool end_of_stream;
43 // TODO(ycheo): Use the shared memory to transfer the block data.
44 std::vector<uint8> data;
45 base::TimeDelta timestamp;
46 std::vector<char> key_id;
47 std::vector<char> iv;
48 std::vector<media::SubsampleEntry> subsamples;
51 struct MEDIA_EXPORT DemuxerData {
52 DemuxerData();
53 ~DemuxerData();
55 DemuxerStream::Type type;
56 std::vector<AccessUnit> access_units;
57 // If the last entry in |access_units| has a status equal to |kConfigChanged|,
58 // a corresponding DemuxerConfigs is added into this vector. The
59 // DemuxerConfigs should only contain information of the stream that is
60 // specified by |type|. This solves the issue that we need multiple IPCs when
61 // demuxer configs change.
62 std::vector<DemuxerConfigs> demuxer_configs;
65 }; // namespace media
67 #endif // MEDIA_BASE_ANDROID_DEMUXER_STREAM_PLAYER_PARAMS_H_