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

Side by Side Diff: media/cast/receiver/cast_receiver_impl.cc

Issue 1515433002: Replace uses of raw uint32's with a type-checked RtpTimeTicks data type. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years 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
OLDNEW
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 #include "media/cast/receiver/cast_receiver_impl.h" 5 #include "media/cast/receiver/cast_receiver_impl.h"
6 6
7 #include "base/bind.h" 7 #include "base/bind.h"
8 #include "base/bind_helpers.h" 8 #include "base/bind_helpers.h"
9 #include "base/callback.h" 9 #include "base/callback.h"
10 #include "base/logging.h" 10 #include "base/logging.h"
(...skipping 106 matching lines...) Expand 10 before | Expand all | Expand 10 after
117 return; 117 return;
118 } 118 }
119 119
120 if (!audio_decoder_) { 120 if (!audio_decoder_) {
121 audio_decoder_.reset(new AudioDecoder(cast_environment_, 121 audio_decoder_.reset(new AudioDecoder(cast_environment_,
122 num_audio_channels_, 122 num_audio_channels_,
123 audio_sampling_rate_, 123 audio_sampling_rate_,
124 audio_codec_)); 124 audio_codec_));
125 } 125 }
126 const uint32 frame_id = encoded_frame->frame_id; 126 const uint32 frame_id = encoded_frame->frame_id;
127 const uint32 rtp_timestamp = encoded_frame->rtp_timestamp; 127 const RtpTimeTicks rtp_timestamp = encoded_frame->rtp_timestamp;
128 const base::TimeTicks playout_time = encoded_frame->reference_time; 128 const base::TimeTicks playout_time = encoded_frame->reference_time;
129 audio_decoder_->DecodeFrame( 129 audio_decoder_->DecodeFrame(
130 encoded_frame.Pass(), 130 encoded_frame.Pass(),
131 base::Bind(&CastReceiverImpl::EmitDecodedAudioFrame, 131 base::Bind(&CastReceiverImpl::EmitDecodedAudioFrame,
132 cast_environment_, 132 cast_environment_,
133 callback, 133 callback,
134 frame_id, 134 frame_id,
135 rtp_timestamp, 135 rtp_timestamp,
136 playout_time)); 136 playout_time));
137 } 137 }
138 138
139 void CastReceiverImpl::DecodeEncodedVideoFrame( 139 void CastReceiverImpl::DecodeEncodedVideoFrame(
140 const VideoFrameDecodedCallback& callback, 140 const VideoFrameDecodedCallback& callback,
141 scoped_ptr<EncodedFrame> encoded_frame) { 141 scoped_ptr<EncodedFrame> encoded_frame) {
142 DCHECK(cast_environment_->CurrentlyOn(CastEnvironment::MAIN)); 142 DCHECK(cast_environment_->CurrentlyOn(CastEnvironment::MAIN));
143 if (!encoded_frame) { 143 if (!encoded_frame) {
144 callback.Run( 144 callback.Run(
145 make_scoped_refptr<VideoFrame>(NULL), base::TimeTicks(), false); 145 make_scoped_refptr<VideoFrame>(NULL), base::TimeTicks(), false);
146 return; 146 return;
147 } 147 }
148 148
149 // Used by chrome/browser/extension/api/cast_streaming/performance_test.cc 149 // Used by chrome/browser/extension/api/cast_streaming/performance_test.cc
150 TRACE_EVENT_INSTANT2( 150 TRACE_EVENT_INSTANT2(
151 "cast_perf_test", "PullEncodedVideoFrame", 151 "cast_perf_test", "PullEncodedVideoFrame",
152 TRACE_EVENT_SCOPE_THREAD, 152 TRACE_EVENT_SCOPE_THREAD,
153 "rtp_timestamp", encoded_frame->rtp_timestamp, 153 "rtp_timestamp", encoded_frame->rtp_timestamp.lower_32_bits(),
154 "render_time", encoded_frame->reference_time.ToInternalValue()); 154 "render_time", encoded_frame->reference_time.ToInternalValue());
155 155
156 if (!video_decoder_) 156 if (!video_decoder_)
157 video_decoder_.reset(new VideoDecoder(cast_environment_, video_codec_)); 157 video_decoder_.reset(new VideoDecoder(cast_environment_, video_codec_));
158 const uint32 frame_id = encoded_frame->frame_id; 158 const uint32 frame_id = encoded_frame->frame_id;
159 const uint32 rtp_timestamp = encoded_frame->rtp_timestamp; 159 const RtpTimeTicks rtp_timestamp = encoded_frame->rtp_timestamp;
160 const base::TimeTicks playout_time = encoded_frame->reference_time; 160 const base::TimeTicks playout_time = encoded_frame->reference_time;
161 video_decoder_->DecodeFrame( 161 video_decoder_->DecodeFrame(
162 encoded_frame.Pass(), 162 encoded_frame.Pass(),
163 base::Bind(&CastReceiverImpl::EmitDecodedVideoFrame, 163 base::Bind(&CastReceiverImpl::EmitDecodedVideoFrame,
164 cast_environment_, 164 cast_environment_,
165 callback, 165 callback,
166 frame_id, 166 frame_id,
167 rtp_timestamp, 167 rtp_timestamp,
168 playout_time)); 168 playout_time));
169 } 169 }
170 170
171 // static 171 // static
172 void CastReceiverImpl::EmitDecodedAudioFrame( 172 void CastReceiverImpl::EmitDecodedAudioFrame(
173 const scoped_refptr<CastEnvironment>& cast_environment, 173 const scoped_refptr<CastEnvironment>& cast_environment,
174 const AudioFrameDecodedCallback& callback, 174 const AudioFrameDecodedCallback& callback,
175 uint32 frame_id, 175 uint32 frame_id,
176 uint32 rtp_timestamp, 176 RtpTimeTicks rtp_timestamp,
177 const base::TimeTicks& playout_time, 177 const base::TimeTicks& playout_time,
178 scoped_ptr<AudioBus> audio_bus, 178 scoped_ptr<AudioBus> audio_bus,
179 bool is_continuous) { 179 bool is_continuous) {
180 DCHECK(cast_environment->CurrentlyOn(CastEnvironment::MAIN)); 180 DCHECK(cast_environment->CurrentlyOn(CastEnvironment::MAIN));
181 181
182 if (audio_bus.get()) { 182 if (audio_bus.get()) {
183 // TODO(miu): This is reporting incorrect timestamp and delay. 183 // TODO(miu): This is reporting incorrect timestamp and delay.
184 // http://crbug.com/547251 184 // http://crbug.com/547251
185 scoped_ptr<FrameEvent> playout_event(new FrameEvent()); 185 scoped_ptr<FrameEvent> playout_event(new FrameEvent());
186 playout_event->timestamp = cast_environment->Clock()->NowTicks(); 186 playout_event->timestamp = cast_environment->Clock()->NowTicks();
187 playout_event->type = FRAME_PLAYOUT; 187 playout_event->type = FRAME_PLAYOUT;
188 playout_event->media_type = AUDIO_EVENT; 188 playout_event->media_type = AUDIO_EVENT;
189 playout_event->rtp_timestamp = rtp_timestamp; 189 playout_event->rtp_timestamp = rtp_timestamp;
190 playout_event->frame_id = frame_id; 190 playout_event->frame_id = frame_id;
191 playout_event->delay_delta = playout_time - playout_event->timestamp; 191 playout_event->delay_delta = playout_time - playout_event->timestamp;
192 cast_environment->logger()->DispatchFrameEvent(playout_event.Pass()); 192 cast_environment->logger()->DispatchFrameEvent(playout_event.Pass());
193 } 193 }
194 194
195 callback.Run(audio_bus.Pass(), playout_time, is_continuous); 195 callback.Run(audio_bus.Pass(), playout_time, is_continuous);
196 } 196 }
197 197
198 // static 198 // static
199 void CastReceiverImpl::EmitDecodedVideoFrame( 199 void CastReceiverImpl::EmitDecodedVideoFrame(
200 const scoped_refptr<CastEnvironment>& cast_environment, 200 const scoped_refptr<CastEnvironment>& cast_environment,
201 const VideoFrameDecodedCallback& callback, 201 const VideoFrameDecodedCallback& callback,
202 uint32 frame_id, 202 uint32 frame_id,
203 uint32 rtp_timestamp, 203 RtpTimeTicks rtp_timestamp,
204 const base::TimeTicks& playout_time, 204 const base::TimeTicks& playout_time,
205 const scoped_refptr<VideoFrame>& video_frame, 205 const scoped_refptr<VideoFrame>& video_frame,
206 bool is_continuous) { 206 bool is_continuous) {
207 DCHECK(cast_environment->CurrentlyOn(CastEnvironment::MAIN)); 207 DCHECK(cast_environment->CurrentlyOn(CastEnvironment::MAIN));
208 208
209 if (video_frame.get()) { 209 if (video_frame.get()) {
210 // TODO(miu): This is reporting incorrect timestamp and delay. 210 // TODO(miu): This is reporting incorrect timestamp and delay.
211 // http://crbug.com/547251 211 // http://crbug.com/547251
212 scoped_ptr<FrameEvent> playout_event(new FrameEvent()); 212 scoped_ptr<FrameEvent> playout_event(new FrameEvent());
213 playout_event->timestamp = cast_environment->Clock()->NowTicks(); 213 playout_event->timestamp = cast_environment->Clock()->NowTicks();
214 playout_event->type = FRAME_PLAYOUT; 214 playout_event->type = FRAME_PLAYOUT;
215 playout_event->media_type = VIDEO_EVENT; 215 playout_event->media_type = VIDEO_EVENT;
216 playout_event->rtp_timestamp = rtp_timestamp; 216 playout_event->rtp_timestamp = rtp_timestamp;
217 playout_event->frame_id = frame_id; 217 playout_event->frame_id = frame_id;
218 playout_event->delay_delta = playout_time - playout_event->timestamp; 218 playout_event->delay_delta = playout_time - playout_event->timestamp;
219 cast_environment->logger()->DispatchFrameEvent(playout_event.Pass()); 219 cast_environment->logger()->DispatchFrameEvent(playout_event.Pass());
220 220
221 // Used by chrome/browser/extension/api/cast_streaming/performance_test.cc 221 // Used by chrome/browser/extension/api/cast_streaming/performance_test.cc
222 TRACE_EVENT_INSTANT1( 222 TRACE_EVENT_INSTANT1(
223 "cast_perf_test", "FrameDecoded", 223 "cast_perf_test", "FrameDecoded",
224 TRACE_EVENT_SCOPE_THREAD, 224 TRACE_EVENT_SCOPE_THREAD,
225 "rtp_timestamp", rtp_timestamp); 225 "rtp_timestamp", rtp_timestamp.lower_32_bits());
226 } 226 }
227 227
228 callback.Run(video_frame, playout_time, is_continuous); 228 callback.Run(video_frame, playout_time, is_continuous);
229 } 229 }
230 230
231 } // namespace cast 231 } // namespace cast
232 } // namespace media 232 } // namespace media
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698