|
|
Created:
4 years, 11 months ago by sandersd (OOO until July 31) Modified:
4 years, 11 months ago CC:
chromium-reviews, creis+watch_chromium.org, darin-cc_chromium.org, jam, mkwst+moarreviews-renderer_chromium.org, mlamouri+watch-content_chromium.org, nasko+codewatch_chromium.org, piman+watch_chromium.org Base URL:
https://chromium.googlesource.com/chromium/src.git@master Target Ref:
refs/pending/heads/master Project:
chromium Visibility:
Public. |
DescriptionImplement fallback from WMPI to WMPA.
With this change, RenderFrameImpl::createMediaPlayer() will select between WMPI and WMPA on Android. Specifically, WMPI will be used unless:
- --disable-accelerated-video-decode is set.
- MediaCodec is not supported (because the API level is too low or the device is blacklisted).
- The URL indicates that the video is HLS.
Additionally, --disable-accelerated-video-decode is now automatically set whenever any of these flags are set:
--disable-gpu
--single-process
--in-process-gpu
Since in these modes VDAs do not currently work (and these flags are not passed to the renderer).
BUG=516765
Committed: https://crrev.com/bcbd85c1c6067e05da5245b7fdabb084c48d5c32
Cr-Commit-Position: refs/heads/master@{#368475}
Patch Set 1 #
Total comments: 2
Patch Set 2 : Remove completed TODO. #
Total comments: 4
Patch Set 3 : #
Total comments: 1
Patch Set 4 : Add comment to gpu_data_manager_impl_private.cc #
Total comments: 4
Patch Set 5 : Move IsHLS* to MediaCodecUtil #
Total comments: 2
Patch Set 6 : Only include MediaCodecUtil on Android. #
Messages
Total messages: 34 (14 generated)
sandersd@chromium.org changed reviewers: + watk@chromium.org
https://codereview.chromium.org/1560953002/diff/1/content/browser/gpu/gpu_dat... File content/browser/gpu/gpu_data_manager_impl_private.cc (right): https://codereview.chromium.org/1560953002/diff/1/content/browser/gpu/gpu_dat... content/browser/gpu/gpu_data_manager_impl_private.cc:920: bool GpuDataManagerImplPrivate::ShouldDisableAcceleratedVideoDecode( I'm not certain that this is the best place. https://codereview.chromium.org/1560953002/diff/1/content/browser/gpu/gpu_dat... content/browser/gpu/gpu_data_manager_impl_private.cc:937: if (command_line->HasSwitch(switches::kDisableGpu) || This one should probably apply to all platforms?
https://codereview.chromium.org/1560953002/diff/20001/content/renderer/render... File content/renderer/render_frame_impl.cc (right): https://codereview.chromium.org/1560953002/diff/20001/content/renderer/render... content/renderer/render_frame_impl.cc:2326: static bool IsHLSURL(GURL& url) { The style guide says refs must be const (https://google.github.io/styleguide/cppguide.html#Reference_Arguments) Did you consider making the isHLSURL in webmediaplayerandroid.cc visible and calling that instead? Or otherwise sharing the implementation? https://codereview.chromium.org/1560953002/diff/20001/content/renderer/render... content/renderer/render_frame_impl.cc:2378: GURL gurl = url; I'm guessing you can delete this and pass url directly if you make isHLSURL take a const ref.
https://codereview.chromium.org/1560953002/diff/20001/content/renderer/render... File content/renderer/render_frame_impl.cc (right): https://codereview.chromium.org/1560953002/diff/20001/content/renderer/render... content/renderer/render_frame_impl.cc:2326: static bool IsHLSURL(GURL& url) { On 2016/01/06 01:17:21, watk wrote: > The style guide says refs must be const > (https://google.github.io/styleguide/cppguide.html#Reference_Arguments) > > Did you consider making the isHLSURL in webmediaplayerandroid.cc visible and > calling that instead? Or otherwise sharing the implementation? Done. https://codereview.chromium.org/1560953002/diff/20001/content/renderer/render... content/renderer/render_frame_impl.cc:2378: GURL gurl = url; On 2016/01/06 01:17:20, watk wrote: > I'm guessing you can delete this and pass url directly if you make isHLSURL take > a const ref. And the world makes sense once again. (Done)
sandersd@chromium.org changed reviewers: + hubbe@chromium.org
lgtm https://codereview.chromium.org/1560953002/diff/40001/content/renderer/media/... File content/renderer/media/android/webmediaplayer_android.cc (right): https://codereview.chromium.org/1560953002/diff/40001/content/renderer/media/... content/renderer/media/android/webmediaplayer_android.cc:189: extra newline or subtle style rule?
lgtm
sandersd@chromium.org changed reviewers: + dalecurtis@chromium.org
+dalecurtis for good measure
Needs a meaningful description about what this is doing and why. Are there any places you can add some tests for this? https://codereview.chromium.org/1560953002/diff/60001/content/browser/gpu/gpu... File content/browser/gpu/gpu_data_manager_impl_private.cc (right): https://codereview.chromium.org/1560953002/diff/60001/content/browser/gpu/gpu... content/browser/gpu/gpu_data_manager_impl_private.cc:943: if (command_line->HasSwitch(switches::kDisableGpu) || This is going to mean no webview support since they use --single-process AFAIK. --in-process-gpu is used by Android One variants I think. Others? I don't think these are reasonable restrictions, so if you want to land this now these need to be marked with a TODO() fix and have a bug attached. Why is this necessary at all? Won't we just fallback if possible during initialize since the factories would be null in the gpu decoding case. https://codereview.chromium.org/1560953002/diff/60001/content/renderer/render... File content/renderer/render_frame_impl.cc (right): https://codereview.chromium.org/1560953002/diff/60001/content/renderer/render... content/renderer/render_frame_impl.cc:2370: WebMediaPlayerAndroid::IsHLSPath(url)) { Should this function be in MediaCodecUtil instead?
https://codereview.chromium.org/1560953002/diff/60001/content/browser/gpu/gpu... File content/browser/gpu/gpu_data_manager_impl_private.cc (right): https://codereview.chromium.org/1560953002/diff/60001/content/browser/gpu/gpu... content/browser/gpu/gpu_data_manager_impl_private.cc:943: if (command_line->HasSwitch(switches::kDisableGpu) || On 2016/01/06 21:03:22, DaleCurtis wrote: > This is going to mean no webview support since they use --single-process AFAIK. > --in-process-gpu is used by Android One variants I think. Others? I don't think > these are reasonable restrictions, so if you want to land this now these need to > be marked with a TODO() fix and have a bug attached. I agree, but I don't think this is going to get fixed soon. TODO added. > Why is this necessary at all? Won't we just fallback if possible during > initialize since the factories would be null in the gpu decoding case. No, by that time we already picked WMPI and it's too late. https://codereview.chromium.org/1560953002/diff/60001/content/renderer/render... File content/renderer/render_frame_impl.cc (right): https://codereview.chromium.org/1560953002/diff/60001/content/renderer/render... content/renderer/render_frame_impl.cc:2370: WebMediaPlayerAndroid::IsHLSPath(url)) { On 2016/01/06 21:03:22, DaleCurtis wrote: > Should this function be in MediaCodecUtil instead? Done.
lgtm % comment q. https://codereview.chromium.org/1560953002/diff/80001/content/browser/gpu/gpu... File content/browser/gpu/gpu_data_manager_impl_private.cc (right): https://codereview.chromium.org/1560953002/diff/80001/content/browser/gpu/gpu... content/browser/gpu/gpu_data_manager_impl_private.cc:944: // --in-process-gpu, at least on Android (necessary to support WebView). Does WebView only use --in-process-gpu and not --single-process?
(Still needs a beefier description though)
https://codereview.chromium.org/1560953002/diff/80001/content/browser/gpu/gpu... File content/browser/gpu/gpu_data_manager_impl_private.cc (right): https://codereview.chromium.org/1560953002/diff/80001/content/browser/gpu/gpu... content/browser/gpu/gpu_data_manager_impl_private.cc:944: // --in-process-gpu, at least on Android (necessary to support WebView). On 2016/01/06 22:54:40, DaleCurtis wrote: > Does WebView only use --in-process-gpu and not --single-process? WebView may use either, depending on other settings and the device. They are slightly different though, in --single-process mode compositing is synchronous (which I understand to be an exposed API feature of WebView).
Description was changed from ========== Implement MediaPlayer fallback. BUG=516765 ========== to ========== Implement fallback from WMPI to WMPA. With this change, RenderFrameImpl::createMediaPlayer() will select between WMPI and WMPA on Android. Specifically, WMPI will be used unless: - --disable-accelerated-video-decode is set. - MediaCodec is not supported (because the API level is too low or the device is blacklisted). - The URL indicates that the video is HLS. Additionally, --disable-accelerated-video-decode is now automatically set whenever any of these flags are set: --disable-gpu --single-process --in-process-gpu Since in these modes VDAs do not currently work (and these flags are not passed to the renderer). BUG=516765 ==========
sandersd@chromium.org changed reviewers: + jochen@chromium.org
jochen@chromium.org: Please review changes in content/
lgtm
The CQ bit was checked by sandersd@chromium.org
The patchset sent to the CQ was uploaded after l-g-t-m from watk@chromium.org, hubbe@chromium.org Link to the patchset: https://codereview.chromium.org/1560953002/#ps80001 (title: "Move IsHLS* to MediaCodecUtil")
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1560953002/80001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1560953002/80001
The CQ bit was unchecked by commit-bot@chromium.org
Try jobs failed on following builders: cast_shell_linux on tryserver.chromium.linux (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.linux/builders/cast_shell_linu...) chromeos_x86-generic_chromium_compile_only_ng on tryserver.chromium.linux (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.linux/builders/chromeos_x86-ge...)
The CQ bit was checked by sandersd@chromium.org
The patchset sent to the CQ was uploaded after l-g-t-m from watk@chromium.org, jochen@chromium.org, hubbe@chromium.org, dalecurtis@chromium.org Link to the patchset: https://codereview.chromium.org/1560953002/#ps100001 (title: "Only include MediaCodecUtil on Android.")
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1560953002/100001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1560953002/100001
The CQ bit was unchecked by sandersd@chromium.org
The CQ bit was checked by sandersd@chromium.org
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1560953002/100001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1560953002/100001
Message was sent while issue was closed.
Description was changed from ========== Implement fallback from WMPI to WMPA. With this change, RenderFrameImpl::createMediaPlayer() will select between WMPI and WMPA on Android. Specifically, WMPI will be used unless: - --disable-accelerated-video-decode is set. - MediaCodec is not supported (because the API level is too low or the device is blacklisted). - The URL indicates that the video is HLS. Additionally, --disable-accelerated-video-decode is now automatically set whenever any of these flags are set: --disable-gpu --single-process --in-process-gpu Since in these modes VDAs do not currently work (and these flags are not passed to the renderer). BUG=516765 ========== to ========== Implement fallback from WMPI to WMPA. With this change, RenderFrameImpl::createMediaPlayer() will select between WMPI and WMPA on Android. Specifically, WMPI will be used unless: - --disable-accelerated-video-decode is set. - MediaCodec is not supported (because the API level is too low or the device is blacklisted). - The URL indicates that the video is HLS. Additionally, --disable-accelerated-video-decode is now automatically set whenever any of these flags are set: --disable-gpu --single-process --in-process-gpu Since in these modes VDAs do not currently work (and these flags are not passed to the renderer). BUG=516765 ==========
Message was sent while issue was closed.
Committed patchset #6 (id:100001)
Message was sent while issue was closed.
Description was changed from ========== Implement fallback from WMPI to WMPA. With this change, RenderFrameImpl::createMediaPlayer() will select between WMPI and WMPA on Android. Specifically, WMPI will be used unless: - --disable-accelerated-video-decode is set. - MediaCodec is not supported (because the API level is too low or the device is blacklisted). - The URL indicates that the video is HLS. Additionally, --disable-accelerated-video-decode is now automatically set whenever any of these flags are set: --disable-gpu --single-process --in-process-gpu Since in these modes VDAs do not currently work (and these flags are not passed to the renderer). BUG=516765 ========== to ========== Implement fallback from WMPI to WMPA. With this change, RenderFrameImpl::createMediaPlayer() will select between WMPI and WMPA on Android. Specifically, WMPI will be used unless: - --disable-accelerated-video-decode is set. - MediaCodec is not supported (because the API level is too low or the device is blacklisted). - The URL indicates that the video is HLS. Additionally, --disable-accelerated-video-decode is now automatically set whenever any of these flags are set: --disable-gpu --single-process --in-process-gpu Since in these modes VDAs do not currently work (and these flags are not passed to the renderer). BUG=516765 Committed: https://crrev.com/bcbd85c1c6067e05da5245b7fdabb084c48d5c32 Cr-Commit-Position: refs/heads/master@{#368475} ==========
Message was sent while issue was closed.
Patchset 6 (id:??) landed as https://crrev.com/bcbd85c1c6067e05da5245b7fdabb084c48d5c32 Cr-Commit-Position: refs/heads/master@{#368475} |