OLD | NEW |
1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #ifndef MEDIA_FORMATS_MP4_TRACK_RUN_ITERATOR_H_ | 5 #ifndef MEDIA_FORMATS_MP4_TRACK_RUN_ITERATOR_H_ |
6 #define MEDIA_FORMATS_MP4_TRACK_RUN_ITERATOR_H_ | 6 #define MEDIA_FORMATS_MP4_TRACK_RUN_ITERATOR_H_ |
7 | 7 |
8 #include <vector> | 8 #include <vector> |
9 | 9 |
10 #include "base/memory/scoped_ptr.h" | 10 #include "base/memory/scoped_ptr.h" |
11 #include "base/time/time.h" | 11 #include "base/time/time.h" |
12 #include "media/base/media_export.h" | 12 #include "media/base/media_export.h" |
13 #include "media/base/media_log.h" | 13 #include "media/base/media_log.h" |
| 14 #include "media/base/stream_parser_buffer.h" |
14 #include "media/formats/mp4/box_definitions.h" | 15 #include "media/formats/mp4/box_definitions.h" |
15 #include "media/formats/mp4/cenc.h" | 16 #include "media/formats/mp4/cenc.h" |
16 | 17 |
17 namespace media { | 18 namespace media { |
18 | 19 |
19 class DecryptConfig; | 20 class DecryptConfig; |
20 | 21 |
21 namespace mp4 { | 22 namespace mp4 { |
22 | 23 |
23 using base::TimeDelta; | |
24 base::TimeDelta MEDIA_EXPORT TimeDeltaFromRational(int64 numer, int64 denom); | 24 base::TimeDelta MEDIA_EXPORT TimeDeltaFromRational(int64 numer, int64 denom); |
| 25 DecodeTimestamp MEDIA_EXPORT DecodeTimestampFromRational(int64 numer, |
| 26 int64 denom); |
25 | 27 |
26 struct SampleInfo; | 28 struct SampleInfo; |
27 struct TrackRunInfo; | 29 struct TrackRunInfo; |
28 | 30 |
29 class MEDIA_EXPORT TrackRunIterator { | 31 class MEDIA_EXPORT TrackRunIterator { |
30 public: | 32 public: |
31 // Create a new TrackRunIterator. A reference to |moov| will be retained for | 33 // Create a new TrackRunIterator. A reference to |moov| will be retained for |
32 // the lifetime of this object. | 34 // the lifetime of this object. |
33 TrackRunIterator(const Movie* moov, const LogCB& log_cb); | 35 TrackRunIterator(const Movie* moov, const LogCB& log_cb); |
34 ~TrackRunIterator(); | 36 ~TrackRunIterator(); |
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
67 int aux_info_size() const; | 69 int aux_info_size() const; |
68 bool is_encrypted() const; | 70 bool is_encrypted() const; |
69 bool is_audio() const; | 71 bool is_audio() const; |
70 // Only one is valid, based on the value of is_audio(). | 72 // Only one is valid, based on the value of is_audio(). |
71 const AudioSampleEntry& audio_description() const; | 73 const AudioSampleEntry& audio_description() const; |
72 const VideoSampleEntry& video_description() const; | 74 const VideoSampleEntry& video_description() const; |
73 | 75 |
74 // Properties of the current sample. Only valid if IsSampleValid(). | 76 // Properties of the current sample. Only valid if IsSampleValid(). |
75 int64 sample_offset() const; | 77 int64 sample_offset() const; |
76 int sample_size() const; | 78 int sample_size() const; |
77 TimeDelta dts() const; | 79 DecodeTimestamp dts() const; |
78 TimeDelta cts() const; | 80 base::TimeDelta cts() const; |
79 TimeDelta duration() const; | 81 base::TimeDelta duration() const; |
80 bool is_keyframe() const; | 82 bool is_keyframe() const; |
81 bool is_random_access_point() const; | 83 bool is_random_access_point() const; |
82 | 84 |
83 // Only call when is_encrypted() is true and AuxInfoNeedsToBeCached() is | 85 // Only call when is_encrypted() is true and AuxInfoNeedsToBeCached() is |
84 // false. Result is owned by caller. | 86 // false. Result is owned by caller. |
85 scoped_ptr<DecryptConfig> GetDecryptConfig(); | 87 scoped_ptr<DecryptConfig> GetDecryptConfig(); |
86 | 88 |
87 private: | 89 private: |
88 void ResetRun(); | 90 void ResetRun(); |
89 const TrackEncryption& track_encryption() const; | 91 const TrackEncryption& track_encryption() const; |
(...skipping 19 matching lines...) Expand all Loading... |
109 int64 sample_dts_; | 111 int64 sample_dts_; |
110 int64 sample_offset_; | 112 int64 sample_offset_; |
111 | 113 |
112 DISALLOW_COPY_AND_ASSIGN(TrackRunIterator); | 114 DISALLOW_COPY_AND_ASSIGN(TrackRunIterator); |
113 }; | 115 }; |
114 | 116 |
115 } // namespace mp4 | 117 } // namespace mp4 |
116 } // namespace media | 118 } // namespace media |
117 | 119 |
118 #endif // MEDIA_FORMATS_MP4_TRACK_RUN_ITERATOR_H_ | 120 #endif // MEDIA_FORMATS_MP4_TRACK_RUN_ITERATOR_H_ |
OLD | NEW |