New issue
Advanced search Search tips

Issue 792443 link

Starred by 1 user

Issue metadata

Status: WontFix
Owner:
Closed: Dec 2017
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Windows
Pri: 2
Type: Bug



Sign in to add a comment

Media Source MP4 stream parser fails on parsing empty avcC box

Reported by g.wo...@samsung.com, Dec 6 2017

Issue description

UserAgent: Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:55.0) Gecko/20100101 Firefox/55.0

Example URL:
testcase attached

Steps to reproduce the problem:
1. open attached play_media.html via http protocol

What is the expected behavior?
A video is played.

What went wrong?
Video is not played.
After first appendBuffer an error occurs. Source buffer is removed.

Did this work before? No 

Is it a problem with Flash or HTML5? HTML5

Does this work in other browsers? Yes

Chrome version: 64.0.3278.0 (Official Build) dev (32-bit) (cohort: Dev)  Channel: n/a
OS Version: 7
Flash Version: 

Contents of chrome://gpu: 
Note: To properly save this page, select the "Webpage, Complete" option in the Save File dialog.   

Graphics Feature Status
•Canvas: Hardware accelerated
•CheckerImaging: Disabled
•Flash: Hardware accelerated
•Flash Stage3D: Hardware accelerated
•Flash Stage3D Baseline profile: Hardware accelerated
•Compositing: Hardware accelerated
•Multiple Raster Threads: Enabled
•Native GpuMemoryBuffers: Software only. Hardware acceleration disabled
•Rasterization: Hardware accelerated
•Video Decode: Hardware accelerated
•WebGL: Hardware accelerated
•WebGL2: Hardware accelerated

Driver Bug Workarounds
•clear_uniforms_before_first_program_use
•decode_encode_srgb_for_generatemipmap
•disable_accelerated_vpx_decode
•disable_delayed_copy_nv12
•disable_direct_composition
•disable_discard_framebuffer
•disable_dxgi_zero_copy_video
•disable_framebuffer_cmaa
•disable_larger_than_screen_overlays
•exit_on_context_lost
•force_cube_complete
•msaa_is_slow
•scalarize_vec_and_mat_constructor_args
•texsubimage_faster_than_teximage

Problems Detected
•Some drivers are unable to reset the D3D device in the GPU process sandbox
Applied Workarounds: exit_on_context_lost
•TexSubImage is faster for full uploads on ANGLE
Applied Workarounds: texsubimage_faster_than_teximage
•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
•On Intel GPUs MSAA performance is not acceptable for GPU rasterization: 527565
Applied Workarounds: msaa_is_slow
•Framebuffer discarding can hurt performance on non-tilers: 570897
Applied Workarounds: disable_discard_framebuffer
•Direct composition flashes black initially on Win <10: 588588
Applied Workarounds: disable_direct_composition
•Zero copy DXGI video hangs on shutdown on Win < 8.1: 621190
Applied Workarounds: disable_dxgi_zero_copy_video
•Use GL_INTEL_framebuffer_CMAA on ChromeOS: 535198
Applied Workarounds: disable_framebuffer_cmaa
•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
•VPx decoding isn't supported well before Windows 10 creators update.: 616318, 667532
Applied Workarounds: disable_accelerated_vpx_decode
•Accelerated VPx decoding is hanging on some videos.: 654111
Applied Workarounds: disable_accelerated_vpx_decode
•Overlay sizes bigger than screen aren't accelerated on some Intel drivers: 720059
Applied Workarounds: disable_larger_than_screen_overlays
•Delayed copy NV12 crashes on Intel on Windows <= 8.1.: 727216
Applied Workarounds: disable_delayed_copy_nv12
•Native GpuMemoryBuffers have been disabled, either via about:flags or command line.
Disabled Features: native_gpu_memory_buffers
•Checker-imaging has been disabled via finch trial or the command line.
Disabled Features: checker_imaging

Version Information

Data exported  12/6/2017, 2:52:04 PM  

Chrome version  Chrome/64.0.3278.0  

Operating system  Windows NT 6.1.7601 SP1  

Software rendering list URL  https://chromium.googlesource.com/chromium/src/+/6218872807f9d8f9e64630c7cefe0ab18954585a/gpu/config/software_rendering_list.json  

Driver bug list URL  https://chromium.googlesource.com/chromium/src/+/6218872807f9d8f9e64630c7cefe0ab18954585a/gpu/config/gpu_driver_bug_list.json  

ANGLE commit id  0250fd4a78ae  

2D graphics backend  Skia/64 405eeb9f4b2b21ce2b6a6e6182cc59c5138162ca-  

Command Line  "C:\Program Files (x86)\Google\Chrome Dev\Application\chrome.exe" --flag-switches-begin --flag-switches-end  

Driver Information

Initialization time  48  

In-process GPU  false  

Passthrough Command Decoder  false  

Supports overlays  false  

Sandboxed  false  

GPU0  VENDOR = 0x8086, DEVICE= 0x0166 *ACTIVE*  

GPU1  VENDOR = 0x10de, DEVICE= 0x1140  

Optimus  true  

Optimus  true  

AMD switchable  false  

Desktop compositing  none  

Diagonal Monitor Size of \\.\DISPLAY1  15.5"  

Diagonal Monitor Size of \\.\DISPLAY2  15.5"  

Diagonal Monitor Size of \\.\DISPLAY3  15.5"  

Diagonal Monitor Size of \\.\DISPLAY1  21.5"  

Driver vendor  Intel Corporation  

Driver version  10.18.10.3958  

Driver date  9-30-2014  

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 (Intel(R) HD Graphics 4000 Direct3D11 vs_5_0 ps_5_0)  

GL_VERSION  OpenGL ES 3.0 (ANGLE 2.1.0.0250fd4a78ae)  

GL_EXTENSIONS  GL_ANGLE_client_arrays GL_ANGLE_depth_texture GL_ANGLE_framebuffer_blit GL_ANGLE_framebuffer_multisample GL_ANGLE_instanced_arrays GL_ANGLE_lossy_etc_decode GL_ANGLE_multiview GL_ANGLE_pack_reverse_row_order GL_ANGLE_program_cache_control 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_sync_query GL_EXT_blend_minmax GL_EXT_color_buffer_float 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_frag_depth GL_EXT_map_buffer_range 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_dxt1 GL_EXT_texture_compression_s3tc_srgb GL_EXT_texture_filter_anisotropic GL_EXT_texture_format_BGRA8888 GL_EXT_texture_norm16 GL_EXT_texture_rg GL_EXT_texture_storage GL_EXT_unpack_subimage GL_KHR_debug 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_EGL_image_external_essl3 GL_OES_compressed_ETC1_RGB8_texture 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_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  

Window system binding vendor  Google Inc. (adapter LUID: 00000000000081e5)  

Window system binding version  1.4 (ANGLE 2.1.0.0250fd4a78ae)  

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_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_create_context_webgl_compatibility EGL_CHROMIUM_create_context_bind_generates_resource 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   

Direct rendering  Yes  

Reset notification strategy  0x8252  

GPU process crash count  0  

Compositor Information

Tile Update Mode  One-copy  

Partial Raster  Enabled  

GpuMemoryBuffers Status

ATC  Software only  

ATCIA  Software only  

DXT1  Software only  

DXT5  Software only  

ETC1  Software only  

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  

BGRA_8888  Software only  

RGBA_F16  Software only  

YVU_420  Software only  

YUV_420_BIPLANAR  Software only  

UYVY_422  Software only  

Display(s) Information

Info   Display[2528732444] bounds=0,0 1920x1080, workarea=0,0 1920x1040, scale=1, external  

Color space information  {primaries:BT709, transfer:IEC61966_2_1, matrix:RGB, range:FULL}  

Bits per color component  8  

Bits per pixel  24  

Video Acceleration Information

Decode h264 baseline  up to 1920x1088 pixels   

Decode h264 main  up to 1920x1088 pixels   

Decode h264 high  up to 1920x1088 pixels   

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  11  

dwHeight  1080  

dwRefreshRate  59  

dwWHQLLevel  0  

dwWidth  1920  

iAdapter  0  

lDriverSize  10956576  

lMiniVddSize  0  

szAGPStatusEnglish  Enabled  

szAGPStatusLocalized  Enabled  

szChipType  Intel(R) HD Graphics Family  

szD3DStatusEnglish  Enabled  

szD3DStatusLocalized  Enabled  

szDACType  Internal  

szDDIVersionEnglish  11  

szDDIVersionLocalized  11  

szDDStatusEnglish  Enabled  

szDDStatusLocalized  Enabled  

szDXVAHDEnglish  Supported  

szDXVAModes  ModeMPEG2_A ModeMPEG2_C ModeWMV9_C ModeVC1_C   

szDescription  Intel(R) HD Graphics 4000  

szDeviceId  0x0166  

szDeviceIdentifier  {D7B78E66-4226-11CF-8666-04E7B4C2C435}  

szDeviceName  \\.\DISPLAY1  

szDisplayMemoryEnglish  1696 MB  

szDisplayMemoryLocalized  1696 MB  

szDisplayModeEnglish  1920 x 1080 (32 bit) (59Hz)  

szDisplayModeLocalized  1920 x 1080 (32 bit) (59Hz)  

szDriverAssemblyVersion  10.18.10.3958  

szDriverAttributes  Final Retail  

szDriverDateEnglish  11/22/2014 11:38:51  

szDriverDateLocalized  2014-11-22 11:38:51  

szDriverLanguageEnglish  English  

szDriverLanguageLocalized  English  

szDriverModelEnglish  WDDM 1.1  

szDriverModelLocalized  WDDM 1.1  

szDriverName  igdumdim64.dll,igd10iumd64.dll,igd10iumd64.dll,igdumdim32,igd10iumd32,igd10iumd32  

szDriverNodeStrongName  oem27.inf:IntelGfx.NTamd64.6.1:iIVBM_w7:10.18.10.3958:pci\ven_8086&dev_0166  

szDriverSignDate    

szDriverVersion  10.18.0010.3958  

szKeyDeviceID  Enum\PCI\VEN_8086&DEV_0166&SUBSYS_C709144D&REV_09  

szKeyDeviceKey  \Registry\Machine\System\CurrentControlSet\Control\Video\{C7AA8350-7901-4356-997E-CAD35AF338DB}\0000  

szManufacturer  Intel Corporation  

szMiniVdd  n/a  

szMiniVddDateEnglish  n/a  

szMiniVddDateLocalized  n/a  

szMonitorMaxRes    

szMonitorName  Generic PnP Monitor  

szNotesEnglish  No problems found.   

szNotesLocalized  No problems found.   

szOverlayEnglish  Supported  

szRankOfInstalledDriver  00E62001  

szRegHelpText    

szRevision    

szRevisionId  0x0009  

szSubSysId  0xC709144D  

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  n/a  

szVendorId  0x8086  

Log Messages
• GpuProcessHostUIShim: The GPU process exited normally. Everything is okay. 

The root cause of this issue seems to be a parsing of avcC box in AVCDecoderConfigurationRecord::ParseInternal()
Parser expects content of avcC box despite of the box payload length is 0.
In firefox the attached testcase works fine. Checked on firefox 55
 
simple_test_for_chrome_avcC_box_issue.zip
6.2 MB Download
Cc: wolenetz@chromium.org
Components: -Internals>Media Internals>Media>Source
Owner: sande...@chromium.org
Status: Assigned (was: Unconfirmed)
Status: WontFix (was: Assigned)
By my reading of ISO/IEC 14496-15:2004, an "empty" avcC is invalid.

In general, the avcC atom contains critical configuration information which is not guaranteed to be (and in most cases technically should not be) in-band.

If you believe that this sort of corruption is likely to be common enough on the open web to warrant a workaround in Chrome, fell free to re-open this bug. (However, in that case it would probably turn into an MSE spec bug.)
Thank you for prompt answer

Sign in to add a comment