Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(196)

Side by Side Diff: media/base/stream_parser.h

Issue 20123002: Add Chromium-side support for SourceBuffer.appendWindowStart and SourceBuffer.appendWindowEnd. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Rebase and remove URL in comment to make presubmit happy. Created 7 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « content/renderer/media/websourcebuffer_impl.cc ('k') | media/filters/chunk_demuxer.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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_BASE_STREAM_PARSER_H_ 5 #ifndef MEDIA_BASE_STREAM_PARSER_H_
6 #define MEDIA_BASE_STREAM_PARSER_H_ 6 #define MEDIA_BASE_STREAM_PARSER_H_
7 7
8 #include <deque> 8 #include <deque>
9 #include <string> 9 #include <string>
10 10
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after
43 // then it means that there isn't an audio stream. 43 // then it means that there isn't an audio stream.
44 // Second parameter - The new video configuration. If the config is not valid 44 // Second parameter - The new video configuration. If the config is not valid
45 // then it means that there isn't an audio stream. 45 // then it means that there isn't an audio stream.
46 // Return value - True if the new configurations are accepted. 46 // Return value - True if the new configurations are accepted.
47 // False if the new configurations are not supported 47 // False if the new configurations are not supported
48 // and indicates that a parsing error should be signalled. 48 // and indicates that a parsing error should be signalled.
49 typedef base::Callback<bool(const AudioDecoderConfig&, 49 typedef base::Callback<bool(const AudioDecoderConfig&,
50 const VideoDecoderConfig&)> NewConfigCB; 50 const VideoDecoderConfig&)> NewConfigCB;
51 51
52 // New stream buffers have been parsed. 52 // New stream buffers have been parsed.
53 // First parameter - A queue of newly parsed buffers. 53 // First parameter - A queue of newly parsed audio buffers.
54 // Second parameter - A queue of newly parsed video buffers.
54 // Return value - True indicates that the buffers are accepted. 55 // Return value - True indicates that the buffers are accepted.
55 // False if something was wrong with the buffers and a parsing 56 // False if something was wrong with the buffers and a parsing
56 // error should be signalled. 57 // error should be signalled.
57 typedef base::Callback<bool(const BufferQueue&)> NewBuffersCB; 58 typedef base::Callback<bool(const BufferQueue&,
59 const BufferQueue&)> NewBuffersCB;
58 60
59 // New stream buffers of inband text have been parsed. 61 // New stream buffers of inband text have been parsed.
60 // First parameter - The text track to which these cues will be added. 62 // First parameter - The text track to which these cues will be added.
61 // Second parameter - A queue of newly parsed buffers. 63 // Second parameter - A queue of newly parsed buffers.
62 // Return value - True indicates that the buffers are accepted. 64 // Return value - True indicates that the buffers are accepted.
63 // False if something was wrong with the buffers and a parsing 65 // False if something was wrong with the buffers and a parsing
64 // error should be signalled. 66 // error should be signalled.
65 typedef base::Callback<bool(TextTrack*, const BufferQueue&)> NewTextBuffersCB; 67 typedef base::Callback<bool(TextTrack*, const BufferQueue&)> NewTextBuffersCB;
66 68
67 // Signals the beginning of a new media segment. 69 // Signals the beginning of a new media segment.
68 // First parameter - The earliest timestamp of all the streams in the segment. 70 typedef base::Callback<void()> NewMediaSegmentCB;
69 typedef base::Callback<void(base::TimeDelta)> NewMediaSegmentCB;
70 71
71 // A new potentially encrypted stream has been parsed. 72 // A new potentially encrypted stream has been parsed.
72 // First parameter - The type of the initialization data associated with the 73 // First parameter - The type of the initialization data associated with the
73 // stream. 74 // stream.
74 // Second parameter - The initialization data associated with the stream. 75 // Second parameter - The initialization data associated with the stream.
75 // Third parameter - Number of bytes of the initialization data. 76 // Third parameter - Number of bytes of the initialization data.
76 typedef base::Callback<void(const std::string&, 77 typedef base::Callback<void(const std::string&,
77 scoped_ptr<uint8[]>, int)> NeedKeyCB; 78 scoped_ptr<uint8[]>, int)> NeedKeyCB;
78 79
79 // Initialize the parser with necessary callbacks. Must be called before any 80 // Initialize the parser with necessary callbacks. Must be called before any
80 // data is passed to Parse(). |init_cb| will be called once enough data has 81 // data is passed to Parse(). |init_cb| will be called once enough data has
81 // been parsed to determine the initial stream configurations, presentation 82 // been parsed to determine the initial stream configurations, presentation
82 // start time, and duration. 83 // start time, and duration.
83 virtual void Init(const InitCB& init_cb, 84 virtual void Init(const InitCB& init_cb,
84 const NewConfigCB& config_cb, 85 const NewConfigCB& config_cb,
85 const NewBuffersCB& audio_cb, 86 const NewBuffersCB& new_buffers_cb,
86 const NewBuffersCB& video_cb,
87 const NewTextBuffersCB& text_cb, 87 const NewTextBuffersCB& text_cb,
88 const NeedKeyCB& need_key_cb, 88 const NeedKeyCB& need_key_cb,
89 const AddTextTrackCB& add_text_track_cb, 89 const AddTextTrackCB& add_text_track_cb,
90 const NewMediaSegmentCB& new_segment_cb, 90 const NewMediaSegmentCB& new_segment_cb,
91 const base::Closure& end_of_segment_cb, 91 const base::Closure& end_of_segment_cb,
92 const LogCB& log_cb) = 0; 92 const LogCB& log_cb) = 0;
93 93
94 // Called when a seek occurs. This flushes the current parser state 94 // Called when a seek occurs. This flushes the current parser state
95 // and puts the parser in a state where it can receive data for the new seek 95 // and puts the parser in a state where it can receive data for the new seek
96 // point. 96 // point.
97 virtual void Flush() = 0; 97 virtual void Flush() = 0;
98 98
99 // Called when there is new data to parse. 99 // Called when there is new data to parse.
100 // 100 //
101 // Returns true if the parse succeeds. 101 // Returns true if the parse succeeds.
102 virtual bool Parse(const uint8* buf, int size) = 0; 102 virtual bool Parse(const uint8* buf, int size) = 0;
103 103
104 private: 104 private:
105 DISALLOW_COPY_AND_ASSIGN(StreamParser); 105 DISALLOW_COPY_AND_ASSIGN(StreamParser);
106 }; 106 };
107 107
108 } // namespace media 108 } // namespace media
109 109
110 #endif // MEDIA_BASE_STREAM_PARSER_H_ 110 #endif // MEDIA_BASE_STREAM_PARSER_H_
OLDNEW
« no previous file with comments | « content/renderer/media/websourcebuffer_impl.cc ('k') | media/filters/chunk_demuxer.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698