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

Unified Diff: content/renderer/media/rtc_video_decoder.cc

Issue 850993002: gpu video: optimize HW video to SW canvas and implement it for WebRTC. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 11 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 side-by-side diff with in-line comments
Download patch
Index: content/renderer/media/rtc_video_decoder.cc
diff --git a/content/renderer/media/rtc_video_decoder.cc b/content/renderer/media/rtc_video_decoder.cc
index 0cc66a7453f4e59e5af08ee0eed9803bdcb66239..f3acbc622e4be9718f441ae478cdae3588a815cd 100644
--- a/content/renderer/media/rtc_video_decoder.cc
+++ b/content/renderer/media/rtc_video_decoder.cc
@@ -408,33 +408,6 @@ void RTCVideoDecoder::PictureReady(const media::Picture& picture) {
}
}
-static void ReadPixelsSyncInner(
- const scoped_refptr<media::GpuVideoAcceleratorFactories>& factories,
- uint32 texture_id,
- const gfx::Rect& visible_rect,
- const SkBitmap& pixels,
- base::WaitableEvent* event) {
- factories->ReadPixels(texture_id, visible_rect, pixels);
- event->Signal();
-}
-
-static void ReadPixelsSync(
- const scoped_refptr<media::GpuVideoAcceleratorFactories>& factories,
- uint32 texture_id,
- const gfx::Rect& visible_rect,
- const SkBitmap& pixels) {
- base::WaitableEvent event(true, false);
dshwang 2015/01/14 20:32:13 similar impl to GpuVideoDecoder.
- if (!factories->GetTaskRunner()->PostTask(FROM_HERE,
- base::Bind(&ReadPixelsSyncInner,
- factories,
- texture_id,
- visible_rect,
- pixels,
- &event)))
- return;
- event.Wait();
-}
-
scoped_refptr<media::VideoFrame> RTCVideoDecoder::CreateVideoFrame(
const media::Picture& picture,
const media::PictureBuffer& pb,
@@ -445,18 +418,12 @@ scoped_refptr<media::VideoFrame> RTCVideoDecoder::CreateVideoFrame(
base::TimeDelta timestamp_ms = base::TimeDelta::FromInternalValue(
base::checked_cast<uint64_t>(timestamp) * 1000 / 90);
return media::VideoFrame::WrapNativeTexture(
- make_scoped_ptr(new gpu::MailboxHolder(
- pb.texture_mailbox(), decoder_texture_target_, 0)),
- media::BindToCurrentLoop(base::Bind(&RTCVideoDecoder::ReleaseMailbox,
- weak_factory_.GetWeakPtr(),
- factories_,
- picture.picture_buffer_id(),
- pb.texture_id())),
- pb.size(),
- visible_rect,
- visible_rect.size(),
- timestamp_ms,
- base::Bind(&ReadPixelsSync, factories_, pb.texture_id(), visible_rect));
+ make_scoped_ptr(new gpu::MailboxHolder(pb.texture_mailbox(),
+ decoder_texture_target_, 0)),
+ media::BindToCurrentLoop(base::Bind(
+ &RTCVideoDecoder::ReleaseMailbox, weak_factory_.GetWeakPtr(),
+ factories_, picture.picture_buffer_id(), pb.texture_id())),
+ pb.size(), visible_rect, visible_rect.size(), timestamp_ms);
}
void RTCVideoDecoder::NotifyEndOfBitstreamBuffer(int32 id) {

Powered by Google App Engine
This is Rietveld 408576698