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_
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"
19 struct MEDIA_EXPORT DemuxerConfigs
{
23 AudioCodec audio_codec
;
25 int audio_sampling_rate
;
26 bool is_audio_encrypted
;
27 std::vector
<uint8
> audio_extra_data
;
29 VideoCodec video_codec
;
31 bool is_video_encrypted
;
32 std::vector
<uint8
> video_extra_data
;
34 base::TimeDelta duration
;
37 struct MEDIA_EXPORT AccessUnit
{
41 DemuxerStream::Status status
;
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
;
48 std::vector
<media::SubsampleEntry
> subsamples
;
51 struct MEDIA_EXPORT 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
;
67 #endif // MEDIA_BASE_ANDROID_DEMUXER_STREAM_PLAYER_PARAMS_H_