New issue
Advanced search Search tips

Issue 675787 link

Starred by 1 user

Issue metadata

Status: Duplicate
Merged: issue 671308
Owner:
Closed: Mar 2017
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Mac
Pri: 2
Type: Bug

Blocked on:
issue 671308



Sign in to add a comment

When using my external sound card (Saffire Pro 24), some videos from youtube get muted

Reported by walterc...@gmail.com, Dec 20 2016

Issue description

UserAgent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/57.0.2957.0 Safari/537.36

Example URL:
https://www.youtube.com/watch?v=hWhs2cIj7Cw&feature=youtu.be

Steps to reproduce the problem:
1. Open https://www.youtube.com/watch?v=hWhs2cIj7Cw&feature=youtu.be
2. Play video
3. It's muted on external audio card, and play fine on internal audio. Works fine on both on firefox

What is the expected behavior?
Sounds on both.

What went wrong?
The sound is muted on the external interface

Did this work before? No 

Is it a problem with Flash or HTML5? N/A

Does this work in other browsers? No
 Chrome

Chrome version: 57.0.2957.0  Channel: n/a
OS Version: OS X 10.12.2
Flash Version: 

Contents of chrome://gpu: 
Graphics Feature Status
Canvas: Hardware accelerated
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: Hardware accelerated
Video Decode: Hardware accelerated
Video Encode: Hardware accelerated
VPx Video Decode: Hardware accelerated
WebGL: Hardware accelerated
WebGL2: Hardware accelerated
Driver Bug Workarounds
add_and_true_to_loop_condition
adjust_src_dst_region_for_blitframebuffer
decode_encode_srgb_for_generatemipmap
disable_ext_draw_buffers
disable_framebuffer_cmaa
disable_multimonitor_multisampling
disable_webgl_rgb_multisampling_usage
emulate_abs_int_function
get_frag_data_info_bug
init_two_cube_map_levels_before_copyteximage
msaa_is_slow
pack_parameters_workaround_with_pack_buffer
rebind_transform_feedback_before_resume
regenerate_struct_names
remove_invariant_and_centroid_for_essl3
reset_base_mipmap_level_before_texstorage
rewrite_texelfetchoffset_to_texelfetch
scalarize_vec_and_mat_constructor_args
set_zero_level_before_generating_mipmap
unfold_short_circuit_as_ternary_operation
unpack_alignment_workaround_with_unpack_buffer
unpack_image_height_workaround_with_unpack_buffer
use_intermediary_for_copy_texture_image
use_shadowed_tex_level_params
use_unused_standard_shared_blocks
Problems Detected
Disable EXT_draw_buffers on GeForce GT 650M on Mac OS X due to driver bugs
Applied Workarounds: disable_ext_draw_buffers
Multisampling is buggy on OSX when multiple monitors are connected: 237931
Applied Workarounds: disable_multimonitor_multisampling
Unfold short circuit on Mac OS X: 307751
Applied Workarounds: unfold_short_circuit_as_ternary_operation
Always rewrite vec/mat constructors to be consistent: 398694
Applied Workarounds: scalarize_vec_and_mat_constructor_args
Mac drivers handle struct scopes incorrectly: 403957
Applied Workarounds: regenerate_struct_names
On Intel GPUs MSAA performance is not acceptable for GPU rasterization: 527565
Applied Workarounds: msaa_is_slow
glGenerateMipmap fails if the zero texture level is not set on some Mac drivers: 560499
Applied Workarounds: set_zero_level_before_generating_mipmap
Pack parameters work incorrectly with pack buffer bound: 563714
Applied Workarounds: pack_parameters_workaround_with_pack_buffer
Alignment works incorrectly with unpack buffer bound: 563714
Applied Workarounds: unpack_alignment_workaround_with_unpack_buffer
copyTexImage2D fails when reading from IOSurface on multiple GPU types.: 581777
Applied Workarounds: use_intermediary_for_copy_texture_image
Multisample renderbuffers with format GL_RGB8 have performance issues on Intel GPUs.: 607130
Applied Workarounds: disable_webgl_rgb_multisampling_usage
Mac Drivers store texture level parameters on int16_t that overflow: 610153
Applied Workarounds: use_shadowed_tex_level_params
Limited enabling of Chromium GL_INTEL_framebuffer_CMAA: 535198
Applied Workarounds: disable_framebuffer_cmaa
glGetFragData{Location|Index} works incorrectly on Max: 638340
Applied Workarounds: get_frag_data_info_bug
glResumeTransformFeedback works incorrectly on Intel GPUs: 638514
Applied Workarounds: rebind_transform_feedback_before_resume
glTexStorage* are buggy when base mipmap level is not 0: 640506
Applied Workarounds: reset_base_mipmap_level_before_texstorage
Result of abs(i) where i is an integer in vertex shader is wrong: 642227
Applied Workarounds: emulate_abs_int_function
Rewrite texelFetchOffset to texelFetch for Intel Mac: 642605
Applied Workarounds: rewrite_texelfetchoffset_to_texelfetch
Rewrite condition in for and while loops for Intel Mac: 644669
Applied Workarounds: add_and_true_to_loop_condition
Decode and encode before generateMipmap for srgb format textures on macosx: 634519
Applied Workarounds: decode_encode_srgb_for_generatemipmap
Init first two levels before CopyTexImage2D for cube map texture on Intel Mac 10.12: 648197
Applied Workarounds: init_two_cube_map_levels_before_copyteximage
Insert statements to reference all members in unused std140/shared blocks on Mac: 618464
Applied Workarounds: use_unused_standard_shared_blocks
Tex(Sub)Image3D performs incorrectly when uploading from unpack buffer with GL_UNPACK_IMAGE_HEIGHT greater than zero on Intel Macs: 654258
Applied Workarounds: unpack_image_height_workaround_with_unpack_buffer
adjust src/dst region if blitting pixels outside read framebuffer on Mac: 644740
Applied Workarounds: adjust_src_dst_region_for_blitframebuffer
Mac driver GL 4.1 requires invariant and centroid to match between shaders: 639760, 641129
Applied Workarounds: remove_invariant_and_centroid_for_essl3
Disable KHR_blend_equation_advanced until cc shaders are updated: 661715
Version Information
Data exported	12/19/2016, 10:26:04 PM
Chrome version	Chrome/57.0.2957.0
Operating system	Mac OS X 10.12.2
Software rendering list version	12.07
Driver bug list version	9.25
ANGLE commit id	d9671226c7dd
2D graphics backend	Skia/57 65869fb64b56a4c59d74003c1fac5dffc8a8bf65
Command Line Args	--flag-switches-begin --flag-switches-end
Driver Information
Initialization time	73
In-process GPU	false
Passthrough Command Decoder	false
Sandboxed	true
GPU0	VENDOR = 0x10de, DEVICE= 0x0fd5
GPU1	VENDOR = 0x8086, DEVICE= 0x0166 *ACTIVE*
Optimus	true
AMD switchable	false
Driver vendor	
Driver version	10.22.25
Driver date	
Pixel shader version	4.10
Vertex shader version	4.10
Max. MSAA samples	8
Machine model name	MacBookPro
Machine model version	10.1
GL_VENDOR	Intel Inc.
GL_RENDERER	Intel HD Graphics 4000 OpenGL Engine
GL_VERSION	4.1 INTEL-10.22.25
GL_EXTENSIONS	GL_ARB_blend_func_extended GL_ARB_draw_buffers_blend GL_ARB_draw_indirect GL_ARB_ES2_compatibility GL_ARB_explicit_attrib_location GL_ARB_gpu_shader_fp64 GL_ARB_gpu_shader5 GL_ARB_instanced_arrays GL_ARB_internalformat_query GL_ARB_occlusion_query2 GL_ARB_sample_shading GL_ARB_sampler_objects GL_ARB_separate_shader_objects GL_ARB_shader_bit_encoding GL_ARB_shader_subroutine GL_ARB_shading_language_include GL_ARB_tessellation_shader GL_ARB_texture_buffer_object_rgb32 GL_ARB_texture_cube_map_array GL_ARB_texture_gather GL_ARB_texture_query_lod GL_ARB_texture_rgb10_a2ui GL_ARB_texture_storage GL_ARB_texture_swizzle GL_ARB_timer_query GL_ARB_transform_feedback2 GL_ARB_transform_feedback3 GL_ARB_vertex_attrib_64bit GL_ARB_vertex_type_2_10_10_10_rev GL_ARB_viewport_array GL_EXT_debug_label GL_EXT_debug_marker GL_EXT_framebuffer_multisample_blit_scaled GL_EXT_texture_compression_s3tc GL_EXT_texture_filter_anisotropic GL_EXT_texture_sRGB_decode GL_APPLE_client_storage GL_APPLE_container_object_shareable GL_APPLE_flush_render GL_APPLE_object_purgeable GL_APPLE_rgb_422 GL_APPLE_row_bytes GL_APPLE_texture_range GL_ATI_texture_mirror_once GL_NV_texture_barrier
Disabled Extensions	GL_KHR_blend_equation_advanced GL_KHR_blend_equation_advanced_coherent
Window system binding vendor	
Window system binding version	
Window system binding extensions	
Direct rendering	Yes
Reset notification strategy	0x0000
GPU process crash count	0
Compositor Information
Tile Update Mode	Zero-copy
Partial Raster	Enabled
GpuMemoryBuffers Status
ATC	Software only
ATCIA	Software only
DXT1	Software only
DXT5	Software only
ETC1	Software only
R_8	GPU_READ_CPU_READ_WRITE, GPU_READ_CPU_READ_WRITE_PERSISTENT
RG_88	Software only
BGR_565	Software only
RGBA_4444	Software only
RGBX_8888	Software only
RGBA_8888	GPU_READ, SCANOUT
BGRX_8888	GPU_READ, SCANOUT
BGRA_8888	GPU_READ, SCANOUT, GPU_READ_CPU_READ_WRITE, GPU_READ_CPU_READ_WRITE_PERSISTENT
YVU_420	Software only
YUV_420_BIPLANAR	GPU_READ_CPU_READ_WRITE, GPU_READ_CPU_READ_WRITE_PERSISTENT
UYVY_422	GPU_READ_CPU_READ_WRITE, GPU_READ_CPU_READ_WRITE_PERSISTENT
 

Comment 1 by ajha@chromium.org, Dec 20 2016

Labels: M-57
Labels: TE-Hardware-Dependency

Comment 3 by shrike@chromium.org, Jan 14 2017

Labels: Needs-Feedback
How are you connecting an external sound card to a MacBook Pro?

Does it start working again if while it's happening you switch to internal audio, then back to external?
Using a firewire to thunderbolt adapter.

When opening the same videos on firefox, the audio plays normally.
Can you report what chrome://media-internals says for the audio controller and stream when connected to the external device?
Sure!

Opened a tab with this video: https://www.youtube.com/watch?v=maCJfOPnBXw

that gets muted on chrome/chromium, but plays on firefox.

Players tab:

audio_codec_name	opus
audio_dds	false
audio_decoder	FFmpegAudioDecoder
duration	15.141
event	PAUSE
found_audio_stream	true
found_video_stream	true
info	Estimating WebM block duration to be 40ms for the last (Simple)Block in the Cluster for this Track. Use BlockGroups with BlockDurations at the end of each Track in a Cluster to avoid estimation.
pipeline_state	kSuspended
player_id	21
render_id	5
url	blob:https://www.youtube.com/b9acaeab-b80f-4000-8e84-0b3ab2c55f8a
video_codec_name	vp9
video_dds	false
video_decoder	VpxVideoDecoder

00:00:00 00	pipeline_state	kCreated
00:00:00 00	event	WEBMEDIAPLAYER_CREATED
00:00:00 01	url	blob:https://www.youtube.com/b9acaeab-b80f-4000-8e84-0b3ab2c55f8a
00:00:00 08	pipeline_state	kStarting
00:00:00 472	duration	15
00:00:00 535	found_audio_stream	true
00:00:00 535	audio_codec_name	opus
00:00:00 537	found_video_stream	true
00:00:00 537	video_codec_name	vp9
00:00:00 559	duration	15.121
00:00:00 606	info	Estimating WebM block duration to be 40ms for the last (Simple)Block in the Cluster for this Track. Use BlockGroups with BlockDurations at the end of each Track in a Cluster to avoid estimation.
00:00:00 624	audio_dds	false
00:00:00 624	audio_decoder	FFmpegAudioDecoder
00:00:00 625	video_dds	false
00:00:00 625	video_decoder	VpxVideoDecoder
00:00:00 625	pipeline_state	kPlaying
00:00:00 681	event	PLAY
00:00:00 722	info	Estimating WebM block duration to be 40ms for the last (Simple)Block in the Cluster for this Track. Use BlockGroups with BlockDurations at the end of each Track in a Cluster to avoid estimation.
00:00:00 722	info	Estimating WebM block duration to be 40ms for the last (Simple)Block in the Cluster for this Track. Use BlockGroups with BlockDurations at the end of each Track in a Cluster to avoid estimation.
00:00:00 723	info	Estimating WebM block duration to be 40ms for the last (Simple)Block in the Cluster for this Track. Use BlockGroups with BlockDurations at the end of each Track in a Cluster to avoid estimation.
00:00:00 865	info	Estimating WebM block duration to be 40ms for the last (Simple)Block in the Cluster for this Track. Use BlockGroups with BlockDurations at the end of each Track in a Cluster to avoid estimation.
00:00:00 913	duration	15.141
00:00:16 333	event	ENDED
00:00:16 334	event	PAUSE
00:00:22 764	pipeline_state	kSeeking
00:00:22 766	pipeline_state	kPlaying
00:00:22 814	event	PLAY
00:00:38 08	event	ENDED
00:00:38 08	event	PAUSE
00:00:53 79	pipeline_state	kSuspending
00:00:53 81	pipeline_state	kSuspended

Audio tab: nothing

Video tab: nothing


oh chrome, it's slightly different, as something appears on the Audio Tab.

Players Tab:

channel_layout: 7.1
channels: 8
component_id: 1
component_type: 1
device_id: default
device_type: pcm_low_latency
effects: NO_EFFECTS
frames_per_buffer: 1024
owner_id: 15
sample_rate: 44100
status: stopped
render_process_id: 22
web_contents_title: Musical Garbage Truck, Taiwan (Für Elise) - YouTube

Timestamp	Property	Value
00:00:00 00	pipeline_state	kCreated
00:00:00 00	event	WEBMEDIAPLAYER_CREATED
00:00:00 16	url	blob:https://www.youtube.com/30621a4e-6378-4bac-b8b6-8445852613db
00:00:00 25	pipeline_state	kStarting
00:00:00 623	duration	15
00:00:00 627	duration	15.18585
00:00:00 886	info	Video codec: avc1.4D400D
00:00:00 886	found_video_stream	true
00:00:00 886	video_codec_name	h264
00:00:00 887	info	Audio codec: mp4a.40.2. Sampling frequency: 44100Hz. Sampling frequency(Extension): 0Hz. Channel layout: 2.
00:00:00 887	found_audio_stream	true
00:00:00 887	audio_codec_name	aac
00:00:00 990	audio_dds	false
00:00:00 990	audio_decoder	FFmpegAudioDecoder
00:00:00 991	video_dds	false
00:00:00 991	video_decoder	GpuVideoDecoder
00:00:00 991	pipeline_state	kPlaying
00:00:01 108	event	PLAY
00:00:02 132	duration	15.185849
00:00:16 438	event	ENDED
00:00:16 438	event	PAUSE

Audio Tab:

channel_layout: 7.1
channels: 8
component_id: 1
component_type: 1
device_id: default
device_type: pcm_low_latency
effects: NO_EFFECTS
frames_per_buffer: 1024
owner_id: 15
sample_rate: 44100
status: stopped
render_process_id: 22
web_contents_title: Musical Garbage Truck, Taiwan (Für Elise) - YouTube

Video tab: nothing

Aaah, ok, just found something.

My audio board has 8 outputs. On the software mixer of Saffire (Saffire Mix Control), they are called DAW1 to DAW8.

I use the other outputs only when working with music. When working on daily usage, only the 2 first outputs (L and R on the system). By some reason, this last video that I seent you here (https://www.youtube.com/watch?v=maCJfOPnBXw) plays the audio on the output 3 (DAW3), and not in the DAW1 as expected.
The first video (from Khan Academy) also plays on DAW3.
Blockedon: 671308
Components: -Internals>Media Internals>Media>Audio
Owner: dalecur...@chromium.org
Status: Assigned (was: Unconfirmed)
Ah, I think this is  issue 671308  then. I need to buy one of these cards or figure out a software hack to experiment with OSX channel layout manipulation.


Something like that. It seems that when the audio from video is mono, it's using the DAW3 output.
Project Member

Comment 12 by bugdroid1@chromium.org, Feb 10 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/30068b4b24fc18a1a6473866dcc9a8ff28d4ec30

commit 30068b4b24fc18a1a6473866dcc9a8ff28d4ec30
Author: dalecurtis <dalecurtis@chromium.org>
Date: Fri Feb 10 19:39:44 2017

Tell CoreAudio how to interpret Chrome's channel layout.

Previously we always assumed the default layout which causes channels
to be mapped incorrectly if the user has manually assigned channels.

Instead, configure the AUHAL with our known channel layout, or in the
case of discrete the most likely layout so that macOS will remap the
channels in the appropriate order during playout.

BUG= 671308 , 675787 
TEST=5.1 virtual device configured with mixed channels plays the
correct order.
https://storage.googleapis.com/dalecurtis/dolby6.mp4
CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_optional_gpu_tests_rel;master.tryserver.chromium.mac:mac_optional_gpu_tests_rel;master.tryserver.chromium.win:win_optional_gpu_tests_rel

Review-Url: https://codereview.chromium.org/2683033003
Cr-Commit-Position: refs/heads/master@{#449694}

[modify] https://crrev.com/30068b4b24fc18a1a6473866dcc9a8ff28d4ec30/media/audio/mac/audio_auhal_mac.cc
[modify] https://crrev.com/30068b4b24fc18a1a6473866dcc9a8ff28d4ec30/media/audio/mac/audio_auhal_mac.h
[modify] https://crrev.com/30068b4b24fc18a1a6473866dcc9a8ff28d4ec30/media/base/channel_layout.h

Tomorrow's Chrome Canary should have this issue fixed (the likely version will be 58.0.3009.0); please check it out and let me know if it resolves your issues.
waltercruz@ did Chrome Canary resolve your issue?
No, still broken. When video is mono, audio is sent to Audio Output 3 of my audio board.

Tested with  58.0.3012.0 canary (64-bit)
Project Member

Comment 16 by bugdroid1@chromium.org, Mar 29 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/5285d00f561827da882c8faaa7bda1d571c4fc60

commit 5285d00f561827da882c8faaa7bda1d571c4fc60
Author: dalecurtis <dalecurtis@chromium.org>
Date: Wed Mar 29 00:27:30 2017

Use AudioUnit instead of AudioDevice properties to get channel count.

On some devices kAudioDevicePropertyPreferredChannelLayout is not available
or lists the channel types as unknown. kAudioUnitProperty_AudioChannelLayout
instead seems to always be set and correct, so use it instead.

To do this, I've introduced a new helper class ScopedAudioUnit which helps
with the allocation and deallocation of AudioUnits. In a followup patch set
I'll convert the input and output streams to use this new mechanism.

BUG= 671308 ,  675787 
TEST=user verified success.
CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.android:android_optional_gpu_tests_rel;master.tryserver.chromium.linux:linux_optional_gpu_tests_rel;master.tryserver.chromium.mac:mac_optional_gpu_tests_rel;master.tryserver.chromium.win:win_optional_gpu_tests_rel

Review-Url: https://codereview.chromium.org/2771093002
Cr-Commit-Position: refs/heads/master@{#460250}

[modify] https://crrev.com/5285d00f561827da882c8faaa7bda1d571c4fc60/media/audio/BUILD.gn
[modify] https://crrev.com/5285d00f561827da882c8faaa7bda1d571c4fc60/media/audio/mac/audio_auhal_mac.cc
[modify] https://crrev.com/5285d00f561827da882c8faaa7bda1d571c4fc60/media/audio/mac/audio_manager_mac.cc
[modify] https://crrev.com/5285d00f561827da882c8faaa7bda1d571c4fc60/media/audio/mac/audio_manager_mac.h
[add] https://crrev.com/5285d00f561827da882c8faaa7bda1d571c4fc60/media/audio/mac/scoped_audio_unit.cc
[add] https://crrev.com/5285d00f561827da882c8faaa7bda1d571c4fc60/media/audio/mac/scoped_audio_unit.h

waltercruz@ can you please try the latest Chrome Canary to see if your issue is resolved? 59.0.3055.0 or higher will have the above fix.
yes, it worked now! 
Mergedinto: 671308
Status: Duplicate (was: Assigned)
Great, going to dupe this into the other issue. I'll update there if we end up merging this back, it's a big change in how we count channels unfortunately, so might have to just roll out with M59.

Sign in to add a comment