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 |
28 // Parses a WebM cluster element in |buf|. | 31 // Parses a WebM cluster element in |buf|. |
29 // | 32 // |
30 // Returns -1 if the parse fails. | 33 // Returns -1 if the parse fails. |
31 // Returns 0 if more data is needed. | 34 // Returns 0 if more data is needed. |
32 // Returns the number of bytes parsed on success. | 35 // Returns the number of bytes parsed on success. |
33 int Parse(const uint8* buf, int size); | 36 int Parse(const uint8* buf, int size); |
34 | 37 |
35 const BufferQueue& audio_buffers() const { return audio_buffers_; } | 38 const BufferQueue& audio_buffers() const { return audio_buffers_; } |
36 const BufferQueue& video_buffers() const { return video_buffers_; } | 39 const BufferQueue& video_buffers() const { return video_buffers_; } |
37 | 40 |
(...skipping 22 matching lines...) Expand all Loading... |
60 int64 cluster_timecode_; | 63 int64 cluster_timecode_; |
61 BufferQueue audio_buffers_; | 64 BufferQueue audio_buffers_; |
62 BufferQueue video_buffers_; | 65 BufferQueue video_buffers_; |
63 | 66 |
64 DISALLOW_IMPLICIT_CONSTRUCTORS(WebMClusterParser); | 67 DISALLOW_IMPLICIT_CONSTRUCTORS(WebMClusterParser); |
65 }; | 68 }; |
66 | 69 |
67 } // namespace media | 70 } // namespace media |
68 | 71 |
69 #endif // MEDIA_WEBM_WEBM_CLUSTER_PARSER_H_ | 72 #endif // MEDIA_WEBM_WEBM_CLUSTER_PARSER_H_ |
OLD | NEW |