Home | History | Annotate | Download | only in android
      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