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

Side by Side Diff: chrome/renderer/media/cast_rtp_stream.cc

Issue 388663003: Cast: Reshuffle files under media/cast (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: missing includes Created 6 years, 5 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
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 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 "chrome/renderer/media/cast_rtp_stream.h" 5 #include "chrome/renderer/media/cast_rtp_stream.h"
6 6
7 #include "base/bind.h" 7 #include "base/bind.h"
8 #include "base/debug/trace_event.h" 8 #include "base/debug/trace_event.h"
9 #include "base/logging.h" 9 #include "base/logging.h"
10 #include "base/memory/weak_ptr.h" 10 #include "base/memory/weak_ptr.h"
11 #include "base/sys_info.h" 11 #include "base/sys_info.h"
12 #include "chrome/renderer/media/cast_session.h" 12 #include "chrome/renderer/media/cast_session.h"
13 #include "chrome/renderer/media/cast_udp_transport.h" 13 #include "chrome/renderer/media/cast_udp_transport.h"
14 #include "content/public/renderer/media_stream_audio_sink.h" 14 #include "content/public/renderer/media_stream_audio_sink.h"
15 #include "content/public/renderer/media_stream_video_sink.h" 15 #include "content/public/renderer/media_stream_video_sink.h"
16 #include "content/public/renderer/render_thread.h" 16 #include "content/public/renderer/render_thread.h"
17 #include "content/public/renderer/video_encode_accelerator.h" 17 #include "content/public/renderer/video_encode_accelerator.h"
18 #include "media/audio/audio_parameters.h" 18 #include "media/audio/audio_parameters.h"
19 #include "media/base/audio_bus.h" 19 #include "media/base/audio_bus.h"
20 #include "media/base/audio_fifo.h" 20 #include "media/base/audio_fifo.h"
21 #include "media/base/bind_to_current_loop.h" 21 #include "media/base/bind_to_current_loop.h"
22 #include "media/base/multi_channel_resampler.h" 22 #include "media/base/multi_channel_resampler.h"
23 #include "media/base/video_frame.h" 23 #include "media/base/video_frame.h"
24 #include "media/cast/cast_config.h" 24 #include "media/cast/cast_config.h"
25 #include "media/cast/cast_defines.h" 25 #include "media/cast/cast_defines.h"
26 #include "media/cast/cast_sender.h" 26 #include "media/cast/cast_sender.h"
27 #include "media/cast/transport/cast_transport_config.h" 27 #include "media/cast/net/cast_transport_config.h"
28 #include "third_party/WebKit/public/platform/WebMediaStreamSource.h" 28 #include "third_party/WebKit/public/platform/WebMediaStreamSource.h"
29 #include "ui/gfx/geometry/size.h" 29 #include "ui/gfx/geometry/size.h"
30 30
31 using media::cast::AudioSenderConfig; 31 using media::cast::AudioSenderConfig;
32 using media::cast::VideoSenderConfig; 32 using media::cast::VideoSenderConfig;
33 33
34 namespace { 34 namespace {
35 35
36 const char kCodecNameOpus[] = "OPUS"; 36 const char kCodecNameOpus[] = "OPUS";
37 const char kCodecNameVp8[] = "VP8"; 37 const char kCodecNameVp8[] = "VP8";
(...skipping 123 matching lines...) Expand 10 before | Expand all | Expand 10 after
161 config->rtp_payload_type = params.payload.payload_type; 161 config->rtp_payload_type = params.payload.payload_type;
162 config->use_external_encoder = false; 162 config->use_external_encoder = false;
163 config->frequency = params.payload.clock_rate; 163 config->frequency = params.payload.clock_rate;
164 if (config->frequency < 8000) 164 if (config->frequency < 8000)
165 return false; 165 return false;
166 config->channels = params.payload.channels; 166 config->channels = params.payload.channels;
167 if (config->channels < 1) 167 if (config->channels < 1)
168 return false; 168 return false;
169 config->bitrate = params.payload.max_bitrate * kBitrateMultiplier; 169 config->bitrate = params.payload.max_bitrate * kBitrateMultiplier;
170 if (params.payload.codec_name == kCodecNameOpus) 170 if (params.payload.codec_name == kCodecNameOpus)
171 config->codec = media::cast::transport::CODEC_AUDIO_OPUS; 171 config->codec = media::cast::CODEC_AUDIO_OPUS;
172 else 172 else
173 return false; 173 return false;
174 config->aes_key = params.payload.aes_key; 174 config->aes_key = params.payload.aes_key;
175 config->aes_iv_mask = params.payload.aes_iv_mask; 175 config->aes_iv_mask = params.payload.aes_iv_mask;
176 return true; 176 return true;
177 } 177 }
178 178
179 bool ToVideoSenderConfig(const CastRtpParams& params, 179 bool ToVideoSenderConfig(const CastRtpParams& params,
180 VideoSenderConfig* config) { 180 VideoSenderConfig* config) {
181 config->ssrc = params.payload.ssrc; 181 config->ssrc = params.payload.ssrc;
(...skipping 12 matching lines...) Expand all
194 // TODO(miu): Should the frame rate be parsed from the |params|? 194 // TODO(miu): Should the frame rate be parsed from the |params|?
195 config->max_frame_rate = 30; 195 config->max_frame_rate = 30;
196 config->min_bitrate = config->start_bitrate = 196 config->min_bitrate = config->start_bitrate =
197 params.payload.min_bitrate * kBitrateMultiplier; 197 params.payload.min_bitrate * kBitrateMultiplier;
198 config->max_bitrate = params.payload.max_bitrate * kBitrateMultiplier; 198 config->max_bitrate = params.payload.max_bitrate * kBitrateMultiplier;
199 if (config->min_bitrate > config->max_bitrate) 199 if (config->min_bitrate > config->max_bitrate)
200 return false; 200 return false;
201 config->start_bitrate = config->min_bitrate; 201 config->start_bitrate = config->min_bitrate;
202 if (params.payload.codec_name == kCodecNameVp8) { 202 if (params.payload.codec_name == kCodecNameVp8) {
203 config->use_external_encoder = IsHardwareVP8EncodingSupported(); 203 config->use_external_encoder = IsHardwareVP8EncodingSupported();
204 config->codec = media::cast::transport::CODEC_VIDEO_VP8; 204 config->codec = media::cast::CODEC_VIDEO_VP8;
205 } else if (params.payload.codec_name == kCodecNameH264) { 205 } else if (params.payload.codec_name == kCodecNameH264) {
206 config->use_external_encoder = IsHardwareH264EncodingSupported(); 206 config->use_external_encoder = IsHardwareH264EncodingSupported();
207 config->codec = media::cast::transport::CODEC_VIDEO_H264; 207 config->codec = media::cast::CODEC_VIDEO_H264;
208 } else { 208 } else {
209 return false; 209 return false;
210 } 210 }
211 if (!config->use_external_encoder) { 211 if (!config->use_external_encoder) {
212 config->number_of_encode_threads = NumberOfEncodeThreads(); 212 config->number_of_encode_threads = NumberOfEncodeThreads();
213 } 213 }
214 config->aes_key = params.payload.aes_key; 214 config->aes_key = params.payload.aes_key;
215 config->aes_iv_mask = params.payload.aes_iv_mask; 215 config->aes_iv_mask = params.payload.aes_iv_mask;
216 return true; 216 return true;
217 } 217 }
(...skipping 340 matching lines...) Expand 10 before | Expand all | Expand 10 after
558 } 558 }
559 559
560 void CastRtpStream::DidEncounterError(const std::string& message) { 560 void CastRtpStream::DidEncounterError(const std::string& message) {
561 // Save the WeakPtr first because the error callback might delete this object. 561 // Save the WeakPtr first because the error callback might delete this object.
562 base::WeakPtr<CastRtpStream> ptr = weak_factory_.GetWeakPtr(); 562 base::WeakPtr<CastRtpStream> ptr = weak_factory_.GetWeakPtr();
563 error_callback_.Run(message); 563 error_callback_.Run(message);
564 content::RenderThread::Get()->GetMessageLoop()->PostTask( 564 content::RenderThread::Get()->GetMessageLoop()->PostTask(
565 FROM_HERE, 565 FROM_HERE,
566 base::Bind(&CastRtpStream::Stop, ptr)); 566 base::Bind(&CastRtpStream::Stop, ptr));
567 } 567 }
OLDNEW
« no previous file with comments | « chrome/renderer/media/cast_ipc_dispatcher.cc ('k') | chrome/renderer/media/cast_session_delegate.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698