OLD | NEW |
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 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_WEBM_WEBM_CLUSTER_PARSER_H_ | 5 #ifndef MEDIA_WEBM_WEBM_CLUSTER_PARSER_H_ |
6 #define MEDIA_WEBM_WEBM_CLUSTER_PARSER_H_ | 6 #define MEDIA_WEBM_WEBM_CLUSTER_PARSER_H_ |
7 | 7 |
8 #include <deque> | 8 #include <deque> |
9 #include <string> | 9 #include <string> |
10 | 10 |
11 #include "base/memory/scoped_ptr.h" | 11 #include "base/memory/scoped_ptr.h" |
12 #include "media/base/buffers.h" | 12 #include "media/base/buffers.h" |
13 #include "media/webm/webm_parser.h" | 13 #include "media/webm/webm_parser.h" |
14 | 14 |
15 namespace media { | 15 namespace media { |
16 | 16 |
17 class WebMClusterParser : public WebMParserClient { | 17 class WebMClusterParser : public WebMParserClient { |
18 public: | 18 public: |
19 typedef std::deque<scoped_refptr<Buffer> > BufferQueue; | 19 typedef std::deque<scoped_refptr<Buffer> > BufferQueue; |
20 | 20 |
21 WebMClusterParser(int64 timecode_scale, | 21 WebMClusterParser(int64 timecode_scale, |
22 int audio_track_num, | 22 int audio_track_num, |
23 base::TimeDelta audio_default_duration, | 23 base::TimeDelta audio_default_duration, |
24 int video_track_num, | 24 int video_track_num, |
25 base::TimeDelta video_default_duration); | 25 base::TimeDelta video_default_duration); |
26 virtual ~WebMClusterParser(); | 26 virtual ~WebMClusterParser(); |
27 | 27 |
28 // Resets the parser state so it can accept a new cluster. | |
29 void Reset(); | |
30 | |
31 // Parses a WebM cluster element in |buf|. | 28 // Parses a WebM cluster element in |buf|. |
32 // | 29 // |
33 // Returns -1 if the parse fails. | 30 // Returns -1 if the parse fails. |
34 // Returns 0 if more data is needed. | 31 // Returns 0 if more data is needed. |
35 // Returns the number of bytes parsed on success. | 32 // Returns the number of bytes parsed on success. |
36 int Parse(const uint8* buf, int size); | 33 int Parse(const uint8* buf, int size); |
37 | 34 |
38 const BufferQueue& audio_buffers() const { return audio_buffers_; } | 35 const BufferQueue& audio_buffers() const { return audio_buffers_; } |
39 const BufferQueue& video_buffers() const { return video_buffers_; } | 36 const BufferQueue& video_buffers() const { return video_buffers_; } |
40 | 37 |
(...skipping 22 matching lines...) Expand all Loading... |
63 int64 cluster_timecode_; | 60 int64 cluster_timecode_; |
64 BufferQueue audio_buffers_; | 61 BufferQueue audio_buffers_; |
65 BufferQueue video_buffers_; | 62 BufferQueue video_buffers_; |
66 | 63 |
67 DISALLOW_IMPLICIT_CONSTRUCTORS(WebMClusterParser); | 64 DISALLOW_IMPLICIT_CONSTRUCTORS(WebMClusterParser); |
68 }; | 65 }; |
69 | 66 |
70 } // namespace media | 67 } // namespace media |
71 | 68 |
72 #endif // MEDIA_WEBM_WEBM_CLUSTER_PARSER_H_ | 69 #endif // MEDIA_WEBM_WEBM_CLUSTER_PARSER_H_ |
OLD | NEW |