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

Side by Side Diff: content/renderer/media/webmediaplayer_impl.cc

Issue 148423005: Use FF_THREAD_SLICE threading mode in FFmpeg for MediaSource streams. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 6 years, 10 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 "content/renderer/media/webmediaplayer_impl.h" 5 #include "content/renderer/media/webmediaplayer_impl.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 #include <limits> 8 #include <limits>
9 #include <string> 9 #include <string>
10 #include <vector> 10 #include <vector>
(...skipping 1121 matching lines...) Expand 10 before | Expand all | Expand 10 after
1132 1132
1133 if (gpu_factories_.get()) { 1133 if (gpu_factories_.get()) {
1134 video_decoders.push_back( 1134 video_decoders.push_back(
1135 new media::GpuVideoDecoder(gpu_factories_, media_log_)); 1135 new media::GpuVideoDecoder(gpu_factories_, media_log_));
1136 } 1136 }
1137 1137
1138 #if !defined(MEDIA_DISABLE_LIBVPX) 1138 #if !defined(MEDIA_DISABLE_LIBVPX)
1139 video_decoders.push_back(new media::VpxVideoDecoder(media_loop_)); 1139 video_decoders.push_back(new media::VpxVideoDecoder(media_loop_));
1140 #endif // !defined(MEDIA_DISABLE_LIBVPX) 1140 #endif // !defined(MEDIA_DISABLE_LIBVPX)
1141 1141
1142 video_decoders.push_back(new media::FFmpegVideoDecoder(media_loop_)); 1142 // Use slice-based threading for MediaSource streams to make sure the decoder
1143 // doesn't retain decoded frames.
1144 media::FFmpegVideoDecoder::ThreadingMode threading_mode =
1145 load_type_ == LoadTypeMediaSource
1146 ? media::FFmpegVideoDecoder::THREADING_SLICE
1147 : media::FFmpegVideoDecoder::THREADING_FRAME;
1148 video_decoders.push_back(new media::FFmpegVideoDecoder(media_loop_,
1149 threading_mode));
Ami GONE FROM CHROMIUM 2014/01/28 07:17:10 git cl format
1143 1150
1144 scoped_ptr<media::VideoRenderer> video_renderer( 1151 scoped_ptr<media::VideoRenderer> video_renderer(
1145 new media::VideoRendererImpl( 1152 new media::VideoRendererImpl(
1146 media_loop_, 1153 media_loop_,
1147 video_decoders.Pass(), 1154 video_decoders.Pass(),
1148 set_decryptor_ready_cb, 1155 set_decryptor_ready_cb,
1149 base::Bind(&WebMediaPlayerImpl::FrameReady, base::Unretained(this)), 1156 base::Bind(&WebMediaPlayerImpl::FrameReady, base::Unretained(this)),
1150 BIND_TO_RENDER_LOOP(&WebMediaPlayerImpl::SetOpaque), 1157 BIND_TO_RENDER_LOOP(&WebMediaPlayerImpl::SetOpaque),
1151 true)); 1158 true));
1152 filter_collection->SetVideoRenderer(video_renderer.Pass()); 1159 filter_collection->SetVideoRenderer(video_renderer.Pass());
(...skipping 153 matching lines...) Expand 10 before | Expand all | Expand 10 after
1306 1313
1307 if (web_cdm_) { 1314 if (web_cdm_) {
1308 decryptor_ready_cb.Run(web_cdm_->GetDecryptor()); 1315 decryptor_ready_cb.Run(web_cdm_->GetDecryptor());
1309 return; 1316 return;
1310 } 1317 }
1311 1318
1312 decryptor_ready_cb_ = decryptor_ready_cb; 1319 decryptor_ready_cb_ = decryptor_ready_cb;
1313 } 1320 }
1314 1321
1315 } // namespace content 1322 } // namespace content
OLDNEW
« no previous file with comments | « no previous file | media/filters/ffmpeg_video_decoder.h » ('j') | media/filters/ffmpeg_video_decoder.h » ('J')

Powered by Google App Engine
This is Rietveld 408576698