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

Issue 2363303002: [WIP] Proxy RtcVideoDecoder calls to a media::VideoDecoder.

Created:
4 years, 2 months ago by slan
Modified:
4 years, 2 months ago
Reviewers:
CC:
chromium-reviews, mlamouri+watch-content_chromium.org, posciak+watch_chromium.org, jam, feature-media-reviews_chromium.org, darin-cc_chromium.org, piman+watch_chromium.org
Target Ref:
refs/pending/heads/master
Project:
chromium
Visibility:
Public.

Description

[WIP] Proxy RtcVideoDecoder calls to a media::VideoDecoder. RtcVideoDecoder talks directly to a media::VideoDecodeAccelerator, managing all of the state necessary to do hardware decoding with a remote VDA. Instead, proxy calls to a media::GpuVideoDecoder, which manages this state properly, making RtcVideoDecoder a much-simpler shim class. This allows us to remove a significant amount of brittle, dupliucated code, and prepares for the deprecation of VDA in favor of media::MojoVideoDecoder. BUG= Change-Id: I9c36347b44dd7e7f62bd2b6a3380c98892827173

Patch Set 1 #

Patch Set 2 : Works with local FFMPEG VideoDecoder. #

Patch Set 3 : Now working with remote ffmpeg decoder #

Unified diffs Side-by-side diffs Delta from patch set Stats (+559 lines, -763 lines) Patch
M chrome/browser/BUILD.gn View 1 2 1 chunk +1 line, -0 lines 0 comments Download
M chrome/browser/chrome_content_browser_client.cc View 1 2 2 chunks +33 lines, -0 lines 0 comments Download
M chromecast/browser/cast_content_browser_client.h View 1 2 2 chunks +5 lines, -0 lines 0 comments Download
M chromecast/browser/cast_content_browser_client.cc View 1 2 2 chunks +25 lines, -13 lines 0 comments Download
M components/policy/core/common/schema_registry.cc View 1 2 1 chunk +1 line, -1 line 0 comments Download
M content/public/app/mojo/content_browser_manifest.json View 1 2 1 chunk +1 line, -0 lines 0 comments Download
M content/renderer/media/gpu/rtc_video_decoder.h View 1 2 7 chunks +52 lines, -142 lines 0 comments Download
M content/renderer/media/gpu/rtc_video_decoder.cc View 1 2 11 chunks +291 lines, -584 lines 0 comments Download
M content/renderer/media/gpu/rtc_video_decoder_factory.h View 1 2 4 chunks +18 lines, -5 lines 0 comments Download
M content/renderer/media/gpu/rtc_video_decoder_factory.cc View 1 2 2 chunks +30 lines, -6 lines 0 comments Download
M content/renderer/media/webrtc/peer_connection_dependency_factory.h View 1 2 3 chunks +8 lines, -0 lines 0 comments Download
M content/renderer/media/webrtc/peer_connection_dependency_factory.cc View 1 2 6 chunks +52 lines, -8 lines 0 comments Download
M media/filters/ffmpeg_video_decoder.cc View 1 2 chunks +2 lines, -1 line 0 comments Download
M media/filters/gpu_video_decoder.cc View 1 1 chunk +1 line, -0 lines 0 comments Download
M media/mojo/services/mojo_video_decoder_service.h View 1 2 2 chunks +2 lines, -1 line 0 comments Download
M media/mojo/services/mojo_video_decoder_service.cc View 1 2 2 chunks +37 lines, -2 lines 0 comments Download

Messages

Total messages: 1 (0 generated)
slan
4 years, 2 months ago (2016-10-06 00:58:18 UTC) #1
PS2 works by using an FFMPEG VideoDecoder in the render procress, by enforcing
that VP8 is used:

Sender:   https://apprtc.appspot.com/r/foo?vsc=VP8
Receiver: https://apprtc.appspot.com/r/foo?vrc=VP8

The next step is to host a Mojo Media Service in a remote process (browser),
which is backed by FFMPEG Decoder.

Powered by Google App Engine
This is Rietveld 408576698