GoogleChromeLabs / picture-in-picture-chrome-extension

https://chrome.google.com/webstore/detail/hkgfoiooedgoejojocmhlaklaeopbecg
Apache License 2.0
669 stars 152 forks source link

Extension only shows blank box after updating to Chrome 78 #34

Open richardeid opened 4 years ago

richardeid commented 4 years ago

After updating to Chrome 78 when I click on the extension button to pull a video out to PiP all I see is a blank box that I can't interact with or move. The source video stops showing but the audio keeps playing. The only way to back out at that point is to click the extension button again and the video begins showing on the original page again.

The problem started with Chrome 78.3904.70 and continues with 78.3904.87.

XuRulin commented 4 years ago

I also encountered this problem

derN3rd commented 4 years ago

Think this is a bug with Chrome 78, not with this extension, as it also happens when using the native api or js snippet to toggle PIP. This was already reported in the chromium bugtracker: https://bugs.chromium.org/p/chromium/issues/detail?id=1018513&q=pip&colspec=ID%20Pri%20M%20Stars%20ReleaseBlock%20Component%20Status%20Owner%20Summary%20OS%20Modified

Quickfix: enable flash on youtube/the site where you see this white PIP window

beaufortfrancois commented 4 years ago

I wonder if that could be related to SkiaRenderer finch trial. Can you folks disable flag at chrome://flags/#enable-skia-renderer and let us know if that fixes your issue?

richardeid commented 4 years ago

Quick update. I enabled flash on a couple different sites but that didn't change the outcome. Still just a blank PiP window.

Also, I disabled that flag, restarted and still had a blank PiP. And I tried also again allowing Flash while this flag was disabled and no change.

derN3rd commented 4 years ago
Google Chrome 78.0.3904.87 (Official Build) (64-bit)
Revision 20c21f4010010f32462ea8e1d6af30cef66d48c8-refs/branch-heads/3904@{#840}
OS Linux
JavaScript V8 7.8.279.19
Flash 32.0.0.270 /home/max/.config/google-chrome/PepperFlash/32.0.0.270/libpepflashplayer.so
User Agent Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.87 Safari/537.36
Command Line /usr/bin/google-chrome --flag-switches-begin --disable-features=TabHoverCards,UseSkiaRenderer --flag-switches-end

Even with disabled flag, white screen in the PIP window. Allowing flash in the site settings works for m tho

EDIT: nevermind, after trying out with that flag I can't get it to work (even with the flash settings)...

richardeid commented 4 years ago

Was just updated to Chrome 3904.97 that resolved the issue for me.

derN3rd commented 4 years ago

Just tried to update to 78.0.3904.97 on my ubuntu, but the issue still occurs. On Twitch/Youtube I found out that starting a video in lowest resolution (160p on Twitch, 240p on Youtube) opens the correct PiP and changing to higher res than works. So I'm using as a temporary workaround

beaufortfrancois commented 4 years ago

Can you folks still reproduce this issue with latest Chrome stable?

richardeid commented 4 years ago

Weird. This was definitely fixed for me after 3904.97 but I hadn't used it in about a week now and it appears to be broken again. I can reproduce it both by using the extensions button in the toolbar as well as double right-clicking on Youtube and using the menu option from there.

derN3rd commented 4 years ago

Still broken for me on my Linux 78.0.3904.108 (Official Build) (64-bit)

derN3rd commented 4 years ago

I enabled the debug log (https://pastebin.com/UKwab69W) and found something that looks interesting: WARNING:x11_util.cc(1399)] X error received: serial 3840, error_code 3 (BadWindow), request_code 4, minor_code 0 (Unknown)

I had Youtube open on a video. The first line, is the first log after opening PiP (which was a white screen). At line 223 I switched to 240p, which showed the PiP video. After that I switched to 1080p again, and the video was visible from that on.

About my setup. I'm using Ubuntu 18.04 (and 16.04, both have the same behavior), with i3 as desktop manager.

richardeid commented 4 years ago

Interesting. I am on a different PC right now. Still using the latest version of Chrome and the extension as far as I know. And it appears to be working on this machine. As far as I remember this setup of Chrome is mirrored on each machine as I'm logged in to the same Google account in Chrome. I'm not sure what would be different between the two but if anything comes to mind I can check.

inothilmi commented 4 years ago

There is still no improvement in this issue? looks at a black screen.

ghost commented 4 years ago

Works fine if you use the LOWEST possible quality setting (<= 200p on Youtube / <= 160p on Twitch) You DO Need the addon for twitch, unless you use FrankerFaceZ.

richardeid commented 4 years ago

On some sites, such as AT&T TV NOW, there is not a quality selection so there is no way to resolve this issue using that method.

chiumax commented 4 years ago

I'm on Version 79.0.3945.79 on both my PC and my laptop. PC not working even with the quality workaround people are using. Laptop works fine and great. I wonder if it has something to do with my dual-monitor setup

chiumax commented 4 years ago

I have gotten it to work with no problems on a different chrome user - with only this extension installed.

beaufortfrancois commented 4 years ago

Oh really!? Can you re-add your other extensions one by one and see when you can reproduce the original issue?

chiumax commented 4 years ago

Okay, I'm not sure what the problem is. Initially, I thought it was the extensions causing the problem. So on my original account i disabled and removed every single extension, restarted my PC.

I added it back and it still didn't work. Maybe it was because I had multiple windows of chrome open. I merged everything under one window - still didn't work.

Now, I went back on youtube to find the original video I played to make it work on the fresh alt account - it works. But it only seems to work with that video.

derN3rd commented 4 years ago

Just found out, when I disable floating on PiP window with my i3 hotkey, that it shows the video. If I then switch it back to floating it still works. So it might be because of the initial forcing to be a floating window. Will dig into this and test some things out with my i3.conf

chiumax commented 4 years ago

I've done some more testing and this probably sounds crazy.

This is what worked for me to get it to work in the same tab:

This has to happen in the same tab Go to: https://www.youtube.com/watch?v=1nnRC6jDOCI

Open it in PiP, then close it, then on the same tab navigate to any yt video you want, you can even paste the link in.

I think maybe it has something to do with that yt video being vertical or something.

chiumax commented 4 years ago

I'm more curious why it works normally on my laptop but not my PC. Even with different accounts. I disabled my second monitor so it isn't the dual monitor setup that's causing issues. I might go ahead and re install chrome

chiumax commented 4 years ago

I have tried:

None of them work except going to : https://www.youtube.com/watch?v=1nnRC6jDOCI on the same tab.

I am convinced that it either has something to do with the fact that the video is vertical/different resolution but for some reason changing resolution on normal videos doesn't fix anything for me. Or my monitor resolution

chiumax commented 4 years ago

I took a look at my laptop's screen resolution, 1920x1080, and saw that my scaling was 125%.

Changing it on my PC (it was already 1920 x 1080 but 100% scaling) made it work for tabs that already had youtube on them. But the extension doesn't work if I open new tabs with youtube.

Changing it back to 100% scaling also made the tabs that already had youtube on them work. So I'm seeing that whenever I mess with my display, tabs with youtube on them will work.

What doesn't make sense to me is that my laptop can stay on 125% scaling and not have any problems with new tabs or windows with youtube on them. I'm still trying to figure out why.

beaufortfrancois commented 4 years ago

I wonder if you're experiencing some side effects from "calculate-native-win-occlusion" experiment. Please disable flag named "calculate-native-win-occlusion" in about:flags, restart Chrome, and let me know if that changes anything for you.

chiumax commented 4 years ago

Hmm, doesn't seem to be changing anything @beaufortfrancois

beaufortfrancois commented 4 years ago

Argh :( Noted. How about resetting Chrome’s field trial configuration using chrome.exe --reset-variation-state to see if the issue disappears?

chiumax commented 4 years ago

No, I exited chrome before I did chrome.exe --reset-variation-state and the issue still persists. However, for the time being I am completely ok with changing scale to 125% and back to 100% to get it to work for existing tabs with video.

beaufortfrancois commented 4 years ago

If people are still experiencing this issue, I'd love if you could share JavaScript result when running the script below. Here's how to do this:

  1. Go to the website where you're having issue with Picture-in-Picture
  2. Open JavaScript console by pressing Command+Option+J (Mac) or Control+Shift+J (Windows, Linux, Chrome OS) to jump straight into the Console panel.
  3. Copy/paste code below and execute it by pressing Enter.
var videos = Array.from(document.querySelectorAll("video"))
  .filter(video => video.readyState != 0)
  .filter(video => video.disablePictureInPicture == false)
  .sort((v1, v2) => {
    const v1Rect = v1.getClientRects()[0];
    const v2Rect = v2.getClientRects()[0];
    return v2Rect.width * v2Rect.height - v1Rect.width * v1Rect.height;
  });
videos.forEach(video => console.log(video));
  1. Share result. See screenshot below image
derN3rd commented 4 years ago

Before launching PIP screenshot-2020-01-20_17:58:17_Selection_001

After launching PIP screenshot-2020-01-20_17:59:57_Selection_001

Chrome Version 79.0.3945.130 (Official Build) (64-bit)

beaufortfrancois commented 4 years ago

Do you see any improvements when resizing the PiP window, or when toggling play/pause from the YouTube player?

derN3rd commented 4 years ago

No. But closing the PiP window and reopening fixes it.

I still see the same messages as in https://github.com/GoogleChromeLabs/picture-in-picture-chrome-extension/issues/34#issuecomment-557172899

beaufortfrancois commented 4 years ago

Can you reproduce with another window manager?

derN3rd commented 4 years ago

Works fine when I switch to Gnome (Ubuntu 18.04 bionic), only broken on i3

richardeid commented 4 years ago

image

I get this same result if I go to YouTube as well. Am I doing something incorrectly?

beaufortfrancois commented 4 years ago

@richardeid Can you share YouTube screenshot as well? I wonder if "AT&T TV NOW" is intentionally blocking PiP.

Can you execute this new bit of code and let me know what it logs?

var videos = Array.from(document.querySelectorAll("video"));
videos.forEach(video => console.log(video, video.disablePictureInPicture));
richardeid commented 4 years ago

This is with the new code:

image

I've done PiP on ATT before and only started having a problem when everyone else did...but only on this machine. I have another computer at work that I can PiP just fine with from any site. And that's without having to do the YouTube 240p trick or resizing boxes or anything.

Anyway, here's YouTube:

image

And on this machine I can get YT to PiP if I set the resolution to 240p first then back to 1080p. Here's what it shows when I do that:

image

I must be doing something wrong.

beaufortfrancois commented 4 years ago

Can you make sure you select "x message", instead of "No verbose" so that I can see logs for all screenshots you've sent? image

richardeid commented 4 years ago

OK yeah that was it. Sorry. Here's an updated shot:

image

beaufortfrancois commented 4 years ago

I wonder if a video from another context went to PiP... Can you execute same javascript code in all frames? Basically, select "top", then execute code, select second option, then execute code, and so on until the end. I think you can omit options that are extensions.

image

richardeid commented 4 years ago

image

image

image

image

image

image

beaufortfrancois commented 4 years ago

Can you reproduce the PiP issue when clicking "Toggle Picture-in-Picture" button in https://googlechrome.github.io/samples/picture-in-picture/? I'd like to know if it's a PiP issue or a website issue?

richardeid commented 4 years ago

Yeah, same thing. And also I clicked the three dots on the player and clicked PiP from there and same thing.

One other detail I forgot. The first time I click PiP I get just a transparent window with nothing happening in it, unable to be resized or moved. If I toggle off PiP and then back on after that, the PiP window is solid black, but still unresizeable and unmovable. If I toggle off PiP and back on again at that point it's always a solid black PiP window. If I close the tab and reload the page in a new tab I'll get the transparent box again before getting the black box. Not sure if that detail matters.

image

edit: Ooh, yeah. Sorry. I test all this stuff out in regular and Incognito when I troubleshoot, so don't worry about seeing uBlock up there in my extensions. I test without it and the result is the same.

beaufortfrancois commented 4 years ago

Do you have any flags that may conflict? In about:flags internal page, click "Reset all to default" button, and give it a try again.

Thanks for the details!

richardeid commented 4 years ago

I'm not sure if I had any flags changed. I play sometimes. Anyway I reset it and restarted Chrome and no change.

beaufortfrancois commented 4 years ago

Can you share log messages in about:gpu before and after your enter PiP? (we'll get there... sorry ;) )

richardeid commented 4 years ago

Don't be sorry. Bugs, man.

Anyway, before:

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
Out-of-process Rasterization: Unavailable
Hardware Protected Video Decode: Unavailable
Rasterization: Unavailable
Skia Renderer: Disabled
Video Decode: Hardware accelerated
Viz Display Compositor: Enabled
Viz Hit-test Surface Layer: Enabled
WebGL: Hardware accelerated
WebGL2: Hardware accelerated
Driver Bug Workarounds
clear_uniforms_before_first_program_use
decode_encode_srgb_for_generatemipmap
disable_delayed_copy_nv12
disable_direct_composition_video_overlays
disable_discard_framebuffer
disable_vp_scaling
exit_on_context_lost
force_cube_complete
scalarize_vec_and_mat_constructor_args
disabled_extension_GL_KHR_blend_equation_advanced
disabled_extension_GL_KHR_blend_equation_advanced_coherent
Problems Detected
GPU rasterization is blacklisted on NVidia Fermi architecture for now.: 643850
Disabled Features: gpu_rasterization
Protected video decoding with swap chain is for Windows and Intel only
Disabled Features: protected_video_decode
Some drivers are unable to reset the D3D device in the GPU process sandbox
Applied Workarounds: exit_on_context_lost
Clear uniforms before first program use on all platforms: 124764, 349137
Applied Workarounds: clear_uniforms_before_first_program_use
Always rewrite vec/mat constructors to be consistent: 398694
Applied Workarounds: scalarize_vec_and_mat_constructor_args
ANGLE crash on glReadPixels from incomplete cube map texture: 518889
Applied Workarounds: force_cube_complete
Framebuffer discarding can hurt performance on non-tilers: 570897
Applied Workarounds: disable_discard_framebuffer
Disable KHR_blend_equation_advanced until cc shaders are updated: 661715
Applied Workarounds: disable(GL_KHR_blend_equation_advanced), disable(GL_KHR_blend_equation_advanced_coherent)
Decode and Encode before generateMipmap for srgb format textures on Windows: 634519
Applied Workarounds: decode_encode_srgb_for_generatemipmap
Delayed copy NV12 displays incorrect colors on NVIDIA drivers.: 728670
Applied Workarounds: disable_delayed_copy_nv12
Hardware overlays result in black videos on non-Intel GPUs: 932879
Applied Workarounds: disable_direct_composition_video_overlays
Video processor blit to swap chain results in column of black pixels on older NVIDIA drivers at certain scaling factors: 911349
Applied Workarounds: disable_direct_composition_video_overlays
Don't use video processor scaling on non-Intel GPUs.: 993233
Applied Workarounds: disable_vp_scaling
ANGLE Features
disable_program_caching_for_transform_feedback (Frontend workarounds): Disabled
On some GPUs, program binaries don't contain transform feedback varyings
lose_context_on_out_of_memory (Frontend workarounds): Enabled: true
Some users rely on a lost context notification if a GL_OUT_OF_MEMORY error occurs
scalarize_vec_and_mat_constructor_args (Frontend workarounds) 398694: Enabled: true
Always rewrite vec/mat constructors to be consistent
sync_framebuffer_bindings_on_tex_image (Frontend workarounds): Disabled
On some drivers TexImage sometimes seems to interact with the Framebuffer
add_dummy_texture_no_render_target (D3D workarounds) anglebug:2152: Disabled: isIntel && capsVersion < IntelDriverVersion(4815)
On some drivers when rendering with no render target, two bugs lead to incorrect behavior
allow_clear_for_robust_resource_init (D3D workarounds) 941620: Disabled: false
Some drivers corrupt texture data when clearing for robust resource initialization.
call_clear_twice (D3D workarounds) 655534: Disabled: isIntel && isSkylake && capsVersion < IntelDriverVersion(4771)
Using clear() may not take effect
depth_stencil_blit_extra_copy (D3D workarounds) anglebug:1452: Disabled: (part1 <= 13u && part2 < 6881) && isNvidia && driverVersionValid
Bug in some drivers triggers a TDR when using CopySubresourceRegion from a staging texture to a depth/stencil
disable_b5g6r5_support (D3D workarounds): Disabled: (isIntel && capsVersion < IntelDriverVersion(4539)) || isAMD
Textures with the format DXGI_FORMAT_B5G6R5_UNORM have incorrect data
emulate_isnan_float (D3D workarounds) 650547: Disabled: isIntel && isSkylake && capsVersion < IntelDriverVersion(4542)
Using isnan() on highp float will get wrong answer
emulate_tiny_stencil_textures (D3D workarounds): Disabled: isAMD && !(deviceCaps.featureLevel < D3D_FEATURE_LEVEL_10_1)
1x1 and 2x2 mips of depth/stencil textures aren't sampled correctly
expand_integer_pow_expressions (D3D workarounds): Enabled: true
The HLSL optimizer has a bug with optimizing 'pow' in certain integer-valued expressions
flush_after_ending_transform_feedback (D3D workarounds): Enabled: isNvidia
Some drivers sometimes write out-of-order results to StreamOut buffers when transform feedback is used to repeatedly write to the same buffer positions
force_atomic_value_resolution (D3D workarounds) anglebug:3246: Enabled: isNvidia
On some drivers the return value from RWByteAddressBuffer.InterlockedAdd does not resolve when used in the .yzw components of a RWByteAddressBuffer.Store operation
get_dimensions_ignores_base_level (D3D workarounds): Enabled: isNvidia
Some drivers do not take into account the base level of the texture in the results of the HLSL GetDimensions builtin
mrt_perf_workaround (D3D workarounds): Enabled: true
Some drivers have a bug where they ignore null render targets
pre_add_texel_fetch_offsets (D3D workarounds): Disabled: isIntel
HLSL's function texture.Load returns 0 when the parameter Location is negative, even if the sum of Offset and Location is in range
rewrite_unary_minus_operator (D3D workarounds): Disabled: isIntel && (isBroadwell || isHaswell) && capsVersion < IntelDriverVersion(4624)
Evaluating unary minus operator on integer may get wrong answer in vertex shaders
select_view_in_geometry_shader (D3D workarounds): Enabled: !deviceCaps.supportsVpRtIndexWriteFromVertexShader
The viewport or render target slice will be selected in the geometry shader stage for the ANGLE_multiview extension
set_data_faster_than_image_upload (D3D workarounds): Enabled: !(isIvyBridge || isBroadwell || isHaswell)
Set data faster than image upload
skip_vs_constant_register_zero (D3D workarounds): Enabled: isNvidia
In specific cases the driver doesn't handle constant register zero correctly
use_instanced_point_sprite_emulation (D3D workarounds): Disabled: isFeatureLevel9_3
Some D3D11 renderers do not support geometry shaders for pointsprite emulation
use_system_memory_for_constant_buffers (D3D workarounds) 593024: Disabled: isIntel
Copying from staging storage to constant buffer storage does not work
zero_max_lod (D3D workarounds): Disabled: isFeatureLevel9_3
Missing an option to disable mipmaps on a mipmapped texture
Version Information
Data exported   2020-01-22T11:18:21.839Z
Chrome version  Chrome/79.0.3945.117
Operating system    Windows NT 10.0.18363
Software rendering list URL https://chromium.googlesource.com/chromium/src/+/04f0a055010adab4484f7497fbfdbf312c307f1d/gpu/config/software_rendering_list.json
Driver bug list URL https://chromium.googlesource.com/chromium/src/+/04f0a055010adab4484f7497fbfdbf312c307f1d/gpu/config/gpu_driver_bug_list.json
ANGLE commit id 48aa52f7305a
2D graphics backend Skia/79 104d6dd34927d32b92c5f5b2a671b49fbe079080
Command Line    "C:\Program Files (x86)\Google\Chrome\Application\chrome.exe" --enable-audio-service-sandbox --flag-switches-begin --flag-switches-end --enable-audio-service-sandbox
Driver Information
Initialization time 3709
In-process GPU  false
Passthrough Command Decoder true
Sandboxed   true
GPU0    VENDOR= 0x10de, DEVICE=0x1080, SUBSYS=0x15803842, REV=161 *ACTIVE*
GPU1    VENDOR= 0x1414, DEVICE=0x008c
Optimus false
AMD switchable  false
Desktop compositing Aero Glass
Direct composition  true
Supports overlays   false
YUY2 overlay support    NONE
NV12 overlay support    NONE
Diagonal Monitor Size of \\.\DISPLAY1   27.3"
Driver D3D12 feature level  Not supported
Driver Vulkan API version   Not supported
Driver vendor   ANGLE (NVIDIA)
Driver version  23.21.13.9135
GPU CUDA compute capability major version   0
Pixel shader version    5.0
Vertex shader version   5.0
Max. MSAA samples   8
Machine model name  
Machine model version   
GL_VENDOR   Google Inc.
GL_RENDERER ANGLE (NVIDIA GeForce GTX 580 Direct3D11 vs_5_0 ps_5_0)
GL_VERSION  OpenGL ES 2.0.0 (ANGLE 2.1.0.48aa52f7305a)
GL_EXTENSIONS   GL_ANGLE_base_vertex_base_instance GL_ANGLE_client_arrays GL_ANGLE_depth_texture GL_ANGLE_explicit_context GL_ANGLE_explicit_context_gles1 GL_ANGLE_framebuffer_blit GL_ANGLE_framebuffer_multisample GL_ANGLE_instanced_arrays GL_ANGLE_lossy_etc_decode GL_ANGLE_memory_size GL_ANGLE_multi_draw GL_ANGLE_multiview_multisample GL_ANGLE_pack_reverse_row_order GL_ANGLE_program_cache_control GL_ANGLE_provoking_vertex GL_ANGLE_request_extension GL_ANGLE_robust_client_memory GL_ANGLE_texture_compression_dxt3 GL_ANGLE_texture_compression_dxt5 GL_ANGLE_texture_usage GL_ANGLE_translated_shader_source GL_CHROMIUM_bind_generates_resource GL_CHROMIUM_bind_uniform_location GL_CHROMIUM_color_buffer_float_rgb GL_CHROMIUM_color_buffer_float_rgba GL_CHROMIUM_copy_compressed_texture GL_CHROMIUM_copy_texture GL_CHROMIUM_lose_context GL_CHROMIUM_sync_query GL_EXT_blend_func_extended GL_EXT_blend_minmax GL_EXT_color_buffer_half_float GL_EXT_debug_marker GL_EXT_discard_framebuffer GL_EXT_disjoint_timer_query GL_EXT_draw_buffers GL_EXT_float_blend GL_EXT_frag_depth GL_EXT_instanced_arrays GL_EXT_map_buffer_range GL_EXT_multisampled_render_to_texture GL_EXT_occlusion_query_boolean GL_EXT_read_format_bgra GL_EXT_robustness GL_EXT_sRGB GL_EXT_shader_texture_lod GL_EXT_texture_compression_bptc GL_EXT_texture_compression_dxt1 GL_EXT_texture_compression_s3tc_srgb GL_EXT_texture_filter_anisotropic GL_EXT_texture_format_BGRA8888 GL_EXT_texture_rg GL_EXT_texture_storage GL_EXT_unpack_subimage GL_KHR_debug GL_KHR_parallel_shader_compile GL_NV_EGL_stream_consumer_external GL_NV_fence GL_NV_pack_subimage GL_NV_pixel_buffer_object GL_OES_EGL_image GL_OES_EGL_image_external GL_OES_compressed_EAC_R11_signed_texture GL_OES_compressed_EAC_R11_unsigned_texture GL_OES_compressed_EAC_RG11_signed_texture GL_OES_compressed_EAC_RG11_unsigned_texture GL_OES_compressed_ETC2_RGB8_texture GL_OES_compressed_ETC2_RGBA8_texture GL_OES_compressed_ETC2_punchthroughA_RGBA8_texture GL_OES_compressed_ETC2_punchthroughA_sRGB8_alpha_texture GL_OES_compressed_ETC2_sRGB8_alpha8_texture GL_OES_compressed_ETC2_sRGB8_texture GL_OES_depth24 GL_OES_depth32 GL_OES_element_index_uint GL_OES_get_program_binary GL_OES_mapbuffer GL_OES_packed_depth_stencil GL_OES_rgb8_rgba8 GL_OES_standard_derivatives GL_OES_surfaceless_context GL_OES_texture_3D GL_OES_texture_border_clamp GL_OES_texture_float GL_OES_texture_float_linear GL_OES_texture_half_float GL_OES_texture_half_float_linear GL_OES_texture_npot GL_OES_vertex_array_object
Disabled Extensions GL_KHR_blend_equation_advanced GL_KHR_blend_equation_advanced_coherent
Disabled WebGL Extensions   
Window system binding vendor    Google Inc. (adapter LUID: 0000000000009b19)
Window system binding version   1.4 (ANGLE 2.1.0.48aa52f7305a)
Window system binding extensions    EGL_EXT_create_context_robustness EGL_ANGLE_d3d_share_handle_client_buffer EGL_ANGLE_d3d_texture_client_buffer EGL_ANGLE_surface_d3d_texture_2d_share_handle EGL_ANGLE_query_surface_pointer EGL_ANGLE_window_fixed_size EGL_ANGLE_keyed_mutex EGL_ANGLE_surface_orientation EGL_ANGLE_direct_composition EGL_ANGLE_windows_ui_composition EGL_NV_post_sub_buffer EGL_KHR_create_context EGL_EXT_device_query EGL_KHR_image EGL_KHR_image_base EGL_KHR_gl_texture_2D_image EGL_KHR_gl_texture_cubemap_image EGL_KHR_gl_renderbuffer_image EGL_KHR_get_all_proc_addresses EGL_KHR_stream EGL_KHR_stream_consumer_gltexture EGL_NV_stream_consumer_gltexture_yuv EGL_ANGLE_flexible_surface_compatibility EGL_ANGLE_stream_producer_d3d_texture EGL_ANGLE_create_context_webgl_compatibility EGL_CHROMIUM_create_context_bind_generates_resource EGL_CHROMIUM_sync_control EGL_EXT_pixel_format_float EGL_KHR_surfaceless_context EGL_ANGLE_display_texture_share_group EGL_ANGLE_create_context_client_arrays EGL_ANGLE_program_cache_control EGL_ANGLE_robust_resource_initialization EGL_ANGLE_create_context_extensions_enabled EGL_ANDROID_blob_cache EGL_ANDROID_recordable EGL_ANGLE_image_d3d11_texture EGL_ANGLE_create_context_backwards_compatible
Direct rendering version    unknown
Reset notification strategy 0x8252
GPU process crash count 0
gfx::BufferFormats supported for allocation and texturing   R_8: not supported, R_16: not supported, RG_88: not supported, BGR_565: not supported, RGBA_4444: not supported, RGBX_8888: not supported, RGBA_8888: not supported, BGRX_8888: not supported, BGRX_1010102: not supported, RGBX_1010102: not supported, BGRA_8888: not supported, RGBA_F16: not supported, YVU_420: not supported, YUV_420_BIPLANAR: not supported, P010: not supported
Compositor Information
Tile Update Mode    One-copy
Partial Raster  Enabled
GpuMemoryBuffers Status
R_8 Software only
R_16    Software only
RG_88   Software only
BGR_565 Software only
RGBA_4444   Software only
RGBX_8888   GPU_READ, SCANOUT
RGBA_8888   GPU_READ, SCANOUT
BGRX_8888   Software only
BGRX_1010102    Software only
RGBX_1010102    Software only
BGRA_8888   Software only
RGBA_F16    Software only
YVU_420 Software only
YUV_420_BIPLANAR    Software only
P010    Software only
Display(s) Information
Info    Display[2528732444] bounds=[0,0 1920x1080], workarea=[0,0 1920x1080], scale=1, external.
Color space information {primaries_d50_referred: [[0.6565, 0.3301], [0.3212, 0.5978], [0.1564, 0.0916]], transfer:IEC61966_2_1, matrix:RGB, range:FULL}
SDR white level in nits 80
Bits per color component    8
Bits per pixel  24
Refresh Rate in Hz  60
Video Acceleration Information
Decode h264 baseline    48x48 to 1920x1088 pixels
Decode h264 baseline    48x48 to 1088x1920 pixels
Decode h264 main    48x48 to 1920x1088 pixels
Decode h264 main    48x48 to 1088x1920 pixels
Decode h264 high    48x48 to 1920x1088 pixels
Decode h264 high    48x48 to 1088x1920 pixels
Encode h264 baseline    0x0 to 3840x2176 pixels, and/or 30.000 fps
Encode h264 main    0x0 to 3840x2176 pixels, and/or 30.000 fps
Encode h264 high    0x0 to 3840x2176 pixels, and/or 30.000 fps
Diagnostics
0
b3DAccelerationEnabled  true
b3DAccelerationExists   true
bAGPEnabled true
bAGPExistenceValid  true
bAGPExists  true
bCanRenderWindow    true
bDDAccelerationEnabled  true
bDriverBeta false
bDriverDebug    false
bDriverSigned   false
bDriverSignedValid  false
bNoHardware false
dwBpp   32
dwDDIVersion    12
dwHeight    1080
dwRefreshRate   60
dwWHQLLevel 0
dwWidth 1920
iAdapter    0
lDriverSize 949016
lMiniVddSize    0
szAGPStatusEnglish  Enabled
szAGPStatusLocalized    Enabled
szChipType  GeForce GTX 580
szD3DStatusEnglish  Enabled
szD3DStatusLocalized    Enabled
szDACType   Integrated RAMDAC
szDDIVersionEnglish 12
szDDIVersionLocalized   12
szDDStatusEnglish   Enabled
szDDStatusLocalized Enabled
szDXVAHDEnglish Supported
szDXVAModes 
szDescription   NVIDIA GeForce GTX 580
szDeviceId  0x1080
szDeviceIdentifier  {D7B71E3E-53C0-11CF-5D78-8D351BC2DA35}
szDeviceName    \\.\DISPLAY1
szDisplayMemoryEnglish  4546 MB
szDisplayMemoryLocalized    4546 MB
szDisplayModeEnglish    1920 x 1080 (32 bit) (60Hz)
szDisplayModeLocalized  1920 x 1080 (32 bit) (60Hz)
szDriverAssemblyVersion 23.21.13.9135
szDriverAttributes  Final Retail
szDriverDateEnglish 3/22/2018 19:00:00
szDriverDateLocalized   3/22/2018 19:00:00
szDriverLanguageEnglish English
szDriverLanguageLocalized   English
szDriverModelEnglish    WDDM 2.3
szDriverModelLocalized  WDDM 2.3
szDriverName    C:\WINDOWS\System32\DriverStore\FileRepository\nv_dispi.inf_amd64_c1a085cc86772d3f\nvldumdx.dll,C:\WINDOWS\System32\DriverStore\FileRepository\nv_dispi.inf_amd64_c1a085cc86772d3f\nvldumdx.dll,C:\WINDOWS\System32\DriverStore\FileRepository\nv_dispi.inf_amd64_c1a085cc86772d3f\nvldumdx.dll,C:\WINDOWS\System32\DriverStore\FileRepository\nv_dispi.inf_amd64_c1a085cc86772d3f\nvldumdx.dll
szDriverNodeStrongName  oem0.inf:0f066de31c0abd16:Section050:23.21.13.9135:pci\ven_10de&dev_1080
szDriverSignDate    Unknown
szDriverVersion 23.21.0013.9135
szKeyDeviceID   Enum\PCI\VEN_10DE&DEV_1080&SUBSYS_15803842&REV_A1
szKeyDeviceKey  \Registry\Machine\System\CurrentControlSet\Control\Video\{C2E04849-F757-11E9-998D-001FBC01A9A6}\0000
szManufacturer  NVIDIA
szMiniVdd   unknown
szMiniVddDateEnglish    Unknown
szMiniVddDateLocalized  unknown
szMonitorMaxRes Unknown
szMonitorName   SyncMaster P2770H/P2770FH (Digital)
szNotesEnglish  No problems found.
szNotesLocalized    No problems found.
szOverlayEnglish    Supported
szRankOfInstalledDriver 00D12001
szRegHelpText   Unknown
szRevision  Unknown
szRevisionId    0x00A1
szSubSysId  0x15803842
szTestResultD3D7English Not run
szTestResultD3D7Localized   Not run
szTestResultD3D8English Not run
szTestResultD3D8Localized   Not run
szTestResultD3D9English Not run
szTestResultD3D9Localized   Not run
szTestResultDDEnglish   Not run
szTestResultDDLocalized Not run
szVdd   unknown
szVendorId  0x10DE
Log Messages
[14232:14412:0122/055544.049:WARNING:angle_platform_impl.cc(52)] : compileToBinary(256): C:\fakepath(40,7-55): warning X3571: pow(f, e) will not work for negative f, use abs(f) or conditionally handle negative values if you expect them C:\fakepath(52,8-40): warning X3571: pow(f, e) will not work for negative f, use abs(f) or conditionally handle negative values if you expect them
[14232:4920:0122/055544.069:WARNING:angle_platform_impl.cc(52)] : compileToBinary(256): C:\fakepath(60,7-55): warning X3571: pow(f, e) will not work for negative f, use abs(f) or conditionally handle negative values if you expect them C:\fakepath(72,8-40): warning X3571: pow(f, e) will not work for negative f, use abs(f) or conditionally handle negative values if you expect them
GpuProcessHost: The unsandboxed GPU process exited normally. Everything is okay.
[14232:10800:0122/055757.980:WARNING:angle_platform_impl.cc(52)] : compileToBinary(256): C:\fakepath(113,7-55): warning X3571: pow(f, e) will not work for negative f, use abs(f) or conditionally handle negative values if you expect them C:\fakepath(125,8-40): warning X3571: pow(f, e) will not work for negative f, use abs(f) or conditionally handle negative values if you expect them
[14232:4132:0122/061026.454:WARNING:ipc_message_attachment_set.cc(49)] : MessageAttachmentSet destroyed with unconsumed attachments: 0/1
GpuProcessHost: The unsandboxed GPU process exited normally. Everything is okay.
[14232:4132:0122/061253.137:WARNING:ipc_message_attachment_set.cc(49)] : MessageAttachmentSet destroyed with unconsumed attachments: 0/1
[14232:4132:0122/061813.067:WARNING:ipc_message_attachment_set.cc(49)] : MessageAttachmentSet destroyed with unconsumed attachments: 0/1
[14232:13744:0122/061821.817:WARNING:angle_platform_impl.cc(52)] : compileToBinary(256): C:\fakepath(49,7-55): warning X3571: pow(f, e) will not work for negative f, use abs(f) or conditionally handle negative values if you expect them C:\fakepath(61,8-40): warning X3571: pow(f, e) will not work for negative f, use abs(f) or conditionally handle negative values if you expect them

And if you need me to paste it I will, but I ran a compare on the before and after output in Notepad++ and the only difference it showed was the time the data was exported.

beaufortfrancois commented 4 years ago

Thanks. Let's continue investigating then as I don't see anything yet.

Can you go to the internal page chrome://media-internals/, look for the video player of https://googlechrome.github.io/samples/picture-in-picture/, and share logs as well?

richardeid commented 4 years ago

There are two sections here. Player properties:

audio_buffering_state | BUFFERING_HAVE_ENOUGH
-- | --
audio_channels_count | 2
audio_codec_name | aac
audio_dds | false
audio_decoder | FFmpegAudioDecoder
audio_sample_format | Float 32-bit planar
audio_samples_per_second | 44100
bitrate | 613840
duration | 146.099955
event | SUSPENDED
for_suspended_start | false
found_audio_stream | true
found_video_stream | true
frame_title | Picture-in-Picture Sample
frame_url | https://googlechrome.github.io/samples/picture-in-picture/
height | 360
info | Selected MojoVideoDecoder for video decoding, config: codec: h264, profile: h264 baseline, alpha_mode: is_opaque, coded size: [640,360], visible rect: [0,0,640,360], natural size: [640,360], has extra data: true, encryption scheme: Unencrypted, rotation: 0°, flipped: 0, color space: {primaries:BT709, transfer:BT709, matrix:BT709, range:LIMITED}
is_platform_audio_decoder | false
is_platform_video_decoder | true
max_duration | 146.099955
origin_url | https://googlechrome.github.io/
pipeline_buffering_state | BUFFERING_HAVE_ENOUGH
pipeline_state | kSuspended
player_id | 0
range_header_supported | true
render_id | 116
single_origin | true
start_time | 0
streaming | false
surface_layer_mode | kAlways
time_base | 1/24
total_bytes | 11210142
url | https://storage.googleapis.com/media-session/caminandes/short.mp4
video_buffering_state | BUFFERING_HAVE_ENOUGH
video_codec_name | h264
video_dds | false
video_decoder | MojoVideoDecoder
video_is_encrypted | false
width | 640

And Log:

00:00:00.000 | origin_url | https://googlechrome.github.io/
-- | -- | --
00:00:00.000 | frame_url | https://googlechrome.github.io/samples/picture-in-picture/
00:00:00.000 | frame_title | Picture-in-Picture Sample
00:00:00.000 | surface_layer_mode | kAlways
00:01:38.721 | url | https://storage.googleapis.com/media-session/caminandes/short.mp4
00:01:38.755 | total_bytes | 11210142
00:01:38.755 | streaming | false
00:01:38.755 | single_origin | true
00:01:38.755 | range_header_supported | true
00:01:38.781 | pipeline_state | kStarting
00:01:38.793 | info | FFmpegDemuxer: created video stream, config codec: h264, profile: h264 baseline, alpha_mode: is_opaque, coded size: [640,360], visible rect: [0,0,640,360], natural size: [640,360], has extra data: true, encryption scheme: Unencrypted, rotation: 0°, flipped: 0, color space: {primaries:BT709, transfer:BT709, matrix:BT709, range:LIMITED}
00:01:38.794 | info | FFmpegDemuxer: created audio stream, config codec: aac, bytes_per_channel: 4, channel_layout: 3, channels: 2, samples_per_second: 44100, sample_format: 6, bytes_per_frame: 8, seek_preroll: 0us, codec_delay: 0, has extra data: true, encryption scheme: Unencrypted, discard decoder delay: true
00:01:38.794 | audio_channels_count | 2
00:01:38.794 | audio_codec_name | aac
00:01:38.794 | audio_sample_format | Float 32-bit planar
00:01:38.794 | audio_samples_per_second | 44100
00:01:38.794 | bitrate | 613840
00:01:38.794 | found_audio_stream | true
00:01:38.794 | found_video_stream | true
00:01:38.794 | height | 360
00:01:38.794 | max_duration | 146.099955
00:01:38.794 | start_time | 0
00:01:38.794 | time_base | 1/24
00:01:38.794 | video_codec_name | h264
00:01:38.794 | video_is_encrypted | false
00:01:38.794 | width | 640
00:01:38.794 | pipeline_state | kSuspended
00:01:38.794 | event | SUSPENDED
00:01:38.795 | for_suspended_start | true
00:01:38.795 | pipeline_buffering_state | BUFFERING_HAVE_ENOUGH
00:01:38.794 | duration | 146.099955
00:01:40.477 | info | Effective playback rate changed from 0 to 1
00:01:40.477 | event | PLAY
00:01:40.477 | pipeline_state | kResuming
00:01:40.521 | audio_dds | false
00:01:40.521 | audio_decoder | FFmpegAudioDecoder
00:01:40.521 | is_platform_audio_decoder | false
00:01:40.521 | info | Selected FFmpegAudioDecoder for audio decoding, config: codec: aac, bytes_per_channel: 4, channel_layout: 3, channels: 2, samples_per_second: 44100, sample_format: 6, bytes_per_frame: 8, seek_preroll: 0us, codec_delay: 0, has extra data: true, encryption scheme: Unencrypted, discard decoder delay: true
00:01:40.523 | info | Using D3D11 device for DXVA
00:01:40.524 | video_dds | false
00:01:40.524 | video_decoder | MojoVideoDecoder
00:01:40.524 | is_platform_video_decoder | true
00:01:40.524 | info | Selected MojoVideoDecoder for video decoding, config: codec: h264, profile: h264 baseline, alpha_mode: is_opaque, coded size: [640,360], visible rect: [0,0,640,360], natural size: [640,360], has extra data: true, encryption scheme: Unencrypted, rotation: 0°, flipped: 0, color space: {primaries:BT709, transfer:BT709, matrix:BT709, range:LIMITED}
00:01:40.524 | pipeline_state | kPlaying
00:01:40.525 | audio_buffering_state | BUFFERING_HAVE_ENOUGH
00:01:40.548 | height | 360
00:01:40.548 | width | 640
00:01:40.553 | video_buffering_state | BUFFERING_HAVE_ENOUGH
00:01:40.553 | for_suspended_start | false
00:01:40.553 | pipeline_buffering_state | BUFFERING_HAVE_ENOUGH
00:01:44.065 | event | PAUSE
00:02:00.258 | pipeline_state | kSuspending
00:02:00.259 | pipeline_state | kSuspended
00:02:00.259 | event | SUSPENDED
beaufortfrancois commented 4 years ago

Argh... I'm starting to run out of ideas to figure out what is happening... I'll ask friends around and will come back to you.