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

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

Issue 254473006: Add media::StreamParser::StreamParameter struct. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 6 years, 7 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 | « no previous file | media/base/stream_parser.cc » ('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 <map> 9 #include <map>
10 #include <string> 10 #include <string>
(...skipping 28 matching lines...) Expand all
39 // audio, max 1 video, and N text tracks in a map keyed by 39 // audio, max 1 video, and N text tracks in a map keyed by
40 // bytestream-specific-ranged track numbers. See http://crbug.com/341581. 40 // bytestream-specific-ranged track numbers. See http://crbug.com/341581.
41 typedef int TrackId; 41 typedef int TrackId;
42 42
43 // Map of text track ID to the track configuration. 43 // Map of text track ID to the track configuration.
44 typedef std::map<TrackId, TextTrackConfig> TextTrackConfigMap; 44 typedef std::map<TrackId, TextTrackConfig> TextTrackConfigMap;
45 45
46 // Map of text track ID to decode-timestamp-ordered buffers for the track. 46 // Map of text track ID to decode-timestamp-ordered buffers for the track.
47 typedef std::map<TrackId, const BufferQueue> TextBufferQueueMap; 47 typedef std::map<TrackId, const BufferQueue> TextBufferQueueMap;
48 48
49 StreamParser(); 49 // Stream parameters passed in InitCB.
50 virtual ~StreamParser(); 50 struct InitParameters {
51 InitParameters(base::TimeDelta duration);
52
53 // Stream duration.
54 base::TimeDelta duration;
55
56 // Indicates the source time associated with presentation timestamp 0. A
57 // null Time is returned if no mapping to Time exists.
58 base::Time timeline_offset;
59
60 // Indicates that timestampOffset should be updated based on the earliest
61 // end timestamp (audio or video) provided during each NewBuffersCB.
62 bool auto_update_timestamp_offset;
63 };
51 64
52 // Indicates completion of parser initialization. 65 // Indicates completion of parser initialization.
53 // First parameter - Indicates initialization success. Set to true if 66 // success - True if initialization was successful.
54 // initialization was successful. False if an error 67 // params - Stream parameters, in case of successful initialization.
55 // occurred. 68 typedef base::Callback<void(bool success,
56 // Second parameter - Indicates the stream duration. Only contains a valid 69 const InitParameters& params)> InitCB;
57 // value if the first parameter is true.
58 // Third parameter - Indicates the Time associated with
59 // presentation timestamp 0 if such a mapping exists in
60 // the bytestream. If no mapping exists this parameter
61 // contains null Time object. Only contains a valid
62 // value if the first parameter is true.
63 // Fourth parameters - Indicates that timestampOffset should be updated based
64 // on the earliest end timestamp (audio or video) provided
65 // during each NewBuffersCB.
66 typedef base::Callback<void(bool, base::TimeDelta, base::Time, bool)> InitCB;
67 70
68 // Indicates when new stream configurations have been parsed. 71 // Indicates when new stream configurations have been parsed.
69 // First parameter - The new audio configuration. If the config is not valid 72 // First parameter - The new audio configuration. If the config is not valid
70 // then it means that there isn't an audio stream. 73 // then it means that there isn't an audio stream.
71 // Second parameter - The new video configuration. If the config is not valid 74 // Second parameter - The new video configuration. If the config is not valid
72 // then it means that there isn't an audio stream. 75 // then it means that there isn't an audio stream.
73 // Third parameter - The new text tracks configuration. If the map is empty, 76 // Third parameter - The new text tracks configuration. If the map is empty,
74 // then no text tracks were parsed from the stream. 77 // then no text tracks were parsed from the stream.
75 // Return value - True if the new configurations are accepted. 78 // Return value - True if the new configurations are accepted.
76 // False if the new configurations are not supported 79 // False if the new configurations are not supported
(...skipping 19 matching lines...) Expand all
96 // Signals the beginning of a new media segment. 99 // Signals the beginning of a new media segment.
97 typedef base::Callback<void()> NewMediaSegmentCB; 100 typedef base::Callback<void()> NewMediaSegmentCB;
98 101
99 // A new potentially encrypted stream has been parsed. 102 // A new potentially encrypted stream has been parsed.
100 // First parameter - The type of the initialization data associated with the 103 // First parameter - The type of the initialization data associated with the
101 // stream. 104 // stream.
102 // Second parameter - The initialization data associated with the stream. 105 // Second parameter - The initialization data associated with the stream.
103 typedef base::Callback<void(const std::string&, 106 typedef base::Callback<void(const std::string&,
104 const std::vector<uint8>&)> NeedKeyCB; 107 const std::vector<uint8>&)> NeedKeyCB;
105 108
109 StreamParser();
110 virtual ~StreamParser();
111
106 // Initializes the parser with necessary callbacks. Must be called before any 112 // Initializes the parser with necessary callbacks. Must be called before any
107 // data is passed to Parse(). |init_cb| will be called once enough data has 113 // data is passed to Parse(). |init_cb| will be called once enough data has
108 // been parsed to determine the initial stream configurations, presentation 114 // been parsed to determine the initial stream configurations, presentation
109 // start time, and duration. If |ignore_text_track| is true, then no text 115 // start time, and duration. If |ignore_text_track| is true, then no text
110 // buffers should be passed later by the parser to |new_buffers_cb|. 116 // buffers should be passed later by the parser to |new_buffers_cb|.
111 virtual void Init(const InitCB& init_cb, 117 virtual void Init(const InitCB& init_cb,
112 const NewConfigCB& config_cb, 118 const NewConfigCB& config_cb,
113 const NewBuffersCB& new_buffers_cb, 119 const NewBuffersCB& new_buffers_cb,
114 bool ignore_text_track, 120 bool ignore_text_track,
115 const NeedKeyCB& need_key_cb, 121 const NeedKeyCB& need_key_cb,
(...skipping 28 matching lines...) Expand all
144 // subtle issues with tie-breaking. See http://crbug.com/338484. 150 // subtle issues with tie-breaking. See http://crbug.com/338484.
145 MEDIA_EXPORT bool MergeBufferQueues( 151 MEDIA_EXPORT bool MergeBufferQueues(
146 const StreamParser::BufferQueue& audio_buffers, 152 const StreamParser::BufferQueue& audio_buffers,
147 const StreamParser::BufferQueue& video_buffers, 153 const StreamParser::BufferQueue& video_buffers,
148 const StreamParser::TextBufferQueueMap& text_buffers, 154 const StreamParser::TextBufferQueueMap& text_buffers,
149 StreamParser::BufferQueue* merged_buffers); 155 StreamParser::BufferQueue* merged_buffers);
150 156
151 } // namespace media 157 } // namespace media
152 158
153 #endif // MEDIA_BASE_STREAM_PARSER_H_ 159 #endif // MEDIA_BASE_STREAM_PARSER_H_
OLDNEW
« no previous file with comments | « no previous file | media/base/stream_parser.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698