• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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 
20 namespace media {
21 
22 struct 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 
44 struct 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 
58 struct 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