New issue
Advanced search Search tips

Issue 806474 link

Starred by 4 users

Issue metadata

Status: Assigned
Owner:
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Mac
Pri: 3
Type: Bug



Sign in to add a comment

Hardware decode doesn't work on all macOS hardware.

Project Member Reported by mfo...@chromium.org, Jan 27 2018

Issue description

Chrome Version: 64.0.3282.119 (Official Build) beta (64-bit)
OS: Mac OS X 10.11.6 (15G18013)
GPU: NVIDIA GeForce GTX 950

What steps will reproduce the problem?
(1) Browse to https://vimeo.com/134530201
(2) Click "play" then the gear to select 4K stream
(3) Go fullscreen

What is the expected result?
Smooth playback, enjoy the beautiful scenery

What happens instead?
Video freezes every ~10 seconds with audio dropping out. It's not regular, sometimes the freezes are 5 seconds apart, sometimes they are closer to 15.  The freezes last 1 second or so.   

Note: I was able to watch all the way through with Safari 11.0.3 without any freezes on the same hardware

Part of chrome://gpu (can paste all if interested):

Graphics Feature Status
Canvas: Hardware accelerated
CheckerImaging: Enabled
Flash: Hardware accelerated
Flash Stage3D: Hardware accelerated
Flash Stage3D Baseline profile: Hardware accelerated
Compositing: Hardware accelerated
Multiple Raster Threads: Enabled
Native GpuMemoryBuffers: Hardware accelerated
Rasterization: Software only, hardware acceleration unavailable
Video Decode: Hardware accelerated
WebGL: Hardware accelerated
WebGL2: Hardware accelerated

 

Comment 1 by mfo...@chromium.org, Jan 27 2018

At the bottom of chrome://gpu:

Video Acceleration Information
Decode h264 baseline	up to 4096x2160 pixels
Decode h264 extended	up to 4096x2160 pixels
Decode h264 main	up to 4096x2160 pixels
Decode h264 high	up to 4096x2160 pixels
Log Messages
[21906:775:0126/085803.008017:ERROR:gpu_video_decode_accelerator.cc(367)] : HW video decode not available for profile h264 main
[21906:775:0126/085916.723439:ERROR:gpu_video_decode_accelerator.cc(367)] : HW video decode not available for profile h264 main
[21906:775:0126/085930.528757:ERROR:gpu_video_decode_accelerator.cc(367)] : HW video decode not available for profile h264 main
[21906:775:0126/085937.422757:ERROR:gpu_video_decode_accelerator.cc(367)] : HW video decode not available for profile h264 main
[21906:775:0126/085939.054155:ERROR:gpu_video_decode_accelerator.cc(367)] : HW video decode not available for profile h264 main
[21906:775:0126/231631.551199:ERROR:gpu_video_decode_accelerator.cc(367)] : HW video decode not available for profile h264 main
[21906:775:0126/231636.706074:ERROR:gpu_video_decode_accelerator.cc(367)] : HW video decode not available for profile h264 baseline
[21906:775:0126/231700.652635:ERROR:gpu_video_decode_accelerator.cc(367)] : HW video decode not available for profile h264 high
[21906:775:0126/232204.140562:ERROR:gpu_video_decode_accelerator.cc(367)] : HW video decode not available for profile h264 high

Is there a problem with HW acceleration on this particular PC?
Cc: sande...@chromium.org ccameron@chromium.org
Owner: dalecur...@chromium.org
Status: Assigned (was: Untriaged)
Summary: macOS hardware video decode is limited to 4K. (was: 4K video playback is not smooth in Chrome (Safari is fine))
Looks like Safari is allowing hardware decode for 8K content, but we're not getting it in Chrome. Might just need to increase these values:

https://cs.chromium.org/chromium/src/media/gpu/vt_video_decode_accelerator_mac.c?l=1349

I don't have a Mac to test with today, but will try on Wednesday and land an update to these values if it works. Generally the risks with updating these values are if they trigger some bad OS path, so +ccameron in case he's aware of any worries here.

Comment 4 by mfo...@chromium.org, Jan 29 2018

To clarify:  The video in question was *shot* in 8K.  The bitstream is 4K.  Here is a grab from chrome://media-internals.

render_id: 212
player_id: 0
origin_url: https://vimeo.com/
frame_url: https://vimeo.com/134530201
frame_title: PATAGONIA 8K on Vimeo
url: blob:https://vimeo.com/b6fc44c5-689c-4327-a592-fc3a67ff35f4
info: video decoder config changed midstream, new config: codec: h264 format: 2 profile: h264 high coded size: [3840,2160] visible rect: [0,0,3840,2160] natural size: [3840,2160] has extra data? false encrypted? false rotation: 0°
pipeline_state: kPlaying
found_video_stream: true
video_codec_name: h264
found_audio_stream: true
audio_codec_name: aac
audio_dds: false
audio_decoder: FFmpegAudioDecoder
debug: (Log limit reached. Further similar entries may be suppressed): Parsed video frame has DTS 734066us, which is after the frame's PTS 667333us
video_dds: false
video_decoder: FFmpegVideoDecoder
duration: 271.96
video_buffering_state: BUFFERING_HAVE_ENOUGH
height: 2160
width: 3840
audio_buffering_state: BUFFERING_HAVE_ENOUGH
pipeline_buffering_state: BUFFERING_HAVE_ENOUGH
event: PAUSE

Ah, thanks; that would mean macOS is rejecting our attempt to create a 4K hardware decoder then for some reason. It's possible something is wrong with your computer. I'll check what happens on my mac on Wednesday.
tguilbert@ just tested and it's working on his macbook pro. What mac device do you have that has a GTX 950 in it?

Comment 7 by mfo...@chromium.org, Jan 29 2018

The GTX 950 is my own build.  Maybe this is a bug with the NVidia drivers for it.

However I saw similar symptoms with my corp Mac Pro (AMD FirePro D500 3072 MB).  Here is what chrome://gpu has to say about it.

Video Acceleration Information
Decode h264 baseline	up to 4096x2160 pixels
Decode h264 extended	up to 4096x2160 pixels
Decode h264 main	up to 4096x2160 pixels
Decode h264 high	up to 4096x2160 pixels
Log Messages
[34363:775:0129/095122.976724:WARNING:ipc_message_attachment_set.cc(49)] : MessageAttachmentSet destroyed with unconsumed attachments: 0/1
[34363:775:0129/095155.827418:WARNING:ipc_message_attachment_set.cc(49)] : MessageAttachmentSet destroyed with unconsumed attachments: 0/1
[34363:775:0129/095454.769028:WARNING:ipc_message_attachment_set.cc(49)] : MessageAttachmentSet destroyed with unconsumed attachments: 0/1
[34363:775:0129/110649.239516:ERROR:gpu_video_decode_accelerator.cc(367)] : HW video decode not available for profile h264 baseline
[34363:775:0129/113325.632034:WARNING:ipc_message_attachment_set.cc(49)] : MessageAttachmentSet destroyed with unconsumed attachments: 0/1
[34363:775:0129/114211.029082:WARNING:ipc_message_attachment_set.cc(49)] : MessageAttachmentSet destroyed with unconsumed attachments: 0/1
[34363:775:0129/115232.194103:WARNING:ipc_message_attachment_set.cc(49)] : MessageAttachmentSet destroyed with unconsumed attachments: 0/1
[34363:775:0129/125024.448092:ERROR:gpu_video_decode_accelerator.cc(367)] : HW video decode not available for profile h264 high



Comment 8 by mfo...@chromium.org, Jan 29 2018

If you are testing, make sure you click the gear icon and manually pick the 4K stream.  Vimeo will choose a lower resolution stream by default.

Comment 9 by mfo...@chromium.org, Jan 29 2018

Another data point:  The full 8K stream at https://www.youtube.com/watch?v=ChOhcHD8fBA plays fine (fullscreen at 2560 x 1600) on the corp Mac pro.  So software decode of VP9 seems to not be a bottleneck.

render_id: 537
player_id: 38
origin_url: https://www.youtube.com/
frame_url: https://www.youtube.com/watch?v=ChOhcHD8fBA
frame_title: PATAGONIA 8K - YouTube
url: blob:https://www.youtube.com/70e99365-8285-4d24-a374-cd9cfb707c4b
info: Selected video track: []
pipeline_state: kSuspended
found_video_stream: true
video_codec_name: vp9
found_audio_stream: true
audio_codec_name: opus
audio_dds: false
audio_decoder: FFmpegAudioDecoder
video_dds: false
video_decoder: VpxVideoDecoder
height: 4320
width: 7680
video_buffering_state: BUFFERING_HAVE_ENOUGH
audio_buffering_state: BUFFERING_HAVE_ENOUGH
pipeline_buffering_state: BUFFERING_HAVE_ENOUGH
event: PAUSE
duration: 271.901
seek_target: 5.773504

Yes we manually selected the 4K stream.

That's definitely unusual that the same machine can play 2160p30 VP9 but has trouble with equivalent H264 content. Vimeo does tend to use higher bitrate material though, so it may be that the 4K stream there is higher in overall complexity.

You might check http://xorax.sea/short/star2160p.mp4 to see if you get GpuVideoDecoder/smooth playback on the corp machine.
Checked my macbook today and had the same results as Thomas. Does your corp Mac Pro actually have hardware decode in Safari? ISTR something about the Mac Pros not getting hardware decode at all for some reason.
I've abandoned the 8K H264 CL above, trying it on a Macbook results in worse performance than the ffmpeg software decoder, so it seems likely macOS is also trying a software decoder under the hood.
Cc: -sande...@chromium.org dalecur...@chromium.org
Owner: sande...@chromium.org
Summary: Hardware decode doesn't work on all macOS hardware. (was: macOS hardware video decode is limited to 4K.)
Updating title to reflect what seems to be going on.
#11: The exact condition is that hardware accelerated video decode on OS X is performed by Intel GPUs only. Hybrid graphics are supported.

Apple does ship some Mac Pros that are AMD-only, and consequently do not support hardware decode. I am not aware of any NVidia-only configurations, but perhaps this one is unusual.

mfoltz@: Can you provide the full chrome://gpu information?
Labels: Needs-Feedback
Thank you so much
Thank you so much

Sign in to add a comment