New issue
Advanced search Search tips

Issue 820024 link

Starred by 2 users

Issue metadata

Status: Duplicate
Merged: issue 794782
Owner:
Closed: Mar 2018
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Linux , Windows , Mac
Pri: 2
Type: Bug-Regression



Sign in to add a comment

PIPELINE_ERROR_DECODE: Failed to send audio packet for decoding

Reported by liuhao...@gmail.com, Mar 8 2018

Issue description

UserAgent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.146 Safari/537.36

Example URL:

Steps to reproduce the problem:
1. Open link https://www.bilibili.com/bangumi/play/ep173184
2. Select 1080p quality and open developer tools(console)
3. Run below js code in console
```
var videoElement = $('video')[0]; // $ is jQuery lib name.
videoElement.onerror = e => console.log(videoElement.error.message)
```
4. Seek to 17:30, then let video playing to ~17:36
5. look errors and message in console

What is the expected behavior?
the video can be play to ended.

What went wrong?
the video ended at ~17:36

Did this work before? Yes Chrome 49 (maybe not latest)

Is it a problem with Flash or HTML5? HTML5

Does this work in other browsers? Yes

Chrome version: 65.0.3325.146  Channel: stable
OS Version: 10.0
Flash Version: 

Contents of chrome://gpu: 

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_discard_framebuffer
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
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
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
Don't expose disjoint_timer_query extensions to WebGL: 808744
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	2018-03-08T11:24:11.776Z
Chrome version	Chrome/65.0.3325.146
Operating system	Windows NT 10.0.16299
Software rendering list URL	https://chromium.googlesource.com/chromium/src/+/f926414266f7aecb5ec1bf1b5f93f8716976ceef/gpu/config/software_rendering_list.json
Driver bug list URL	https://chromium.googlesource.com/chromium/src/+/f926414266f7aecb5ec1bf1b5f93f8716976ceef/gpu/config/gpu_driver_bug_list.json
ANGLE commit id	2c9cc8b6e810
2D graphics backend	Skia/65 bd0dafbc8112f6cfa92a8096d8cb5696d8535ef9-
Command Line	"C:\Program Files (x86)\Google\Chrome\Application\chrome.exe" --flag-switches-begin --flag-switches-end
Driver Information
Initialization time	129
In-process GPU	false
Passthrough Command Decoder	false
Direct Composition	true
Supports overlays	false
Sandboxed	false
GPU0	VENDOR = 0x8086, DEVICE= 0x0412 *ACTIVE*
Optimus	false
Optimus	false
AMD switchable	false
Desktop compositing	Aero Glass
Diagonal Monitor Size of \\.\DISPLAY2	23.5"
Diagonal Monitor Size of \\.\DISPLAY1	23.5"
Driver vendor	Intel Corporation
Driver version	20.19.15.4835
Driver date	10-16-2017
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 4600 Direct3D11 vs_5_0 ps_5_0)
GL_VERSION	OpenGL ES 2.0 (ANGLE 2.1.0.2c9cc8b6e810)
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_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_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_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_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
Disabled WebGL Extensions	EXT_disjoint_timer_query EXT_disjoint_timer_query_webgl2
Window system binding vendor	Google Inc. (adapter LUID: 0000000000007dc2)
Window system binding version	1.4 (ANGLE 2.1.0.2c9cc8b6e810)
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_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
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=1920,0 1920x1080, workarea=1920,0 1920x1040, scale=1, external
Color space information	{primaries:[[0.4355,0.3885,0.1402,],[0.2217,0.7220,0.0563,],[0.0135,0.0879,0.7235,],], transfer:0.0835*x + 0.0000 if x < 0.0431 else (0.9479*x + 0.0550)**2.3998 + 0.0000, matrix:RGB, range:FULL}
Bits per color component	8
Bits per pixel	24
Info	Display[2779098405] 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 4096x2304 pixels
Decode h264 main	up to 4096x2304 pixels
Decode h264 high	up to 4096x2304 pixels
Encode h264 baseline	up to 3840x2176 pixels and/or 30.000 fps
Encode h264 main	up to 3840x2176 pixels and/or 30.000 fps
Encode h264 high	up to 3840x2176 pixels and/or 30.000 fps
Diagnostics
... loading ...

error logs in chrome://media-internals/
00:00:00 863	height	1080
00:00:00 863	width	1920
00:00:00 869	video_buffering_state	BUFFERING_HAVE_ENOUGH
00:00:00 869	pipeline_buffering_state	BUFFERING_HAVE_ENOUGH
00:00:00 371	duration	1350.055
00:00:15 872	pipeline_state	kSuspending
00:00:15 872	pipeline_state	kSuspended

----
I can reproduce this issue on Chrome 67.0.3364.0 (Official Build) canary (64-bit) (cohort: Clang-64).

It works fine on Chrome 49, Firefox 58.0.2 and MSEdge 41.16299.15.0.

---
Additional Infos:
The video use flv.js to transform .flv to .mp4.
GitHub project: https://github.com/Bilibili/flv.js
 
Video_2018-03-08_193849.wmv
9.7 MB Download
Hmm, I think that site has geoblocking. I can't load any videos. Do you have a non-geo blocked link?

What audio decoder config do you see in chrome://media-internals ? Is this AAC or mp3? This is effectively a dupe of  issue 794782 .

That library seems like MSE, which should be enforcing that audio/video packets are correctly coded, but since I can't access the site I can't test what's going wrong.
Sorry, I haven't a non-geo blocked link. You can try install `Unblock Youku` chrome extension, then open above link. You should use a Chinese proxy server if `Unblock Youku` chrome extension didn't work.

audio_codec_name: aac

----
logs of chrome://media-internals/

render_id: 42
player_id: 4
origin_url: https://www.bilibili.com/
frame_url: https://www.bilibili.com/bangumi/play/ep173184
frame_title: 龙王的工作!:第4话_番剧_bilibili_哔哩哔哩
url: blob:https://www.bilibili.com/a629aa44-0e13-4070-b370-471d3a1d4225
info: Selected GpuVideoDecoder for video decoding, config: codec: h264 format: 1 profile: h264 high coded size: [1920,1080] visible rect: [0,0,1920,1080] natural size: [1920,1080] has extra data? false encrypted? false rotation: 0°
pipeline_state: kStopped
found_video_stream: true
video_codec_name: h264
found_audio_stream: true
audio_codec_name: aac
seek_target: 1058.591788
audio_dds: false
audio_decoder: FFmpegAudioDecoder
video_dds: false
video_decoder: GpuVideoDecoder
audio_buffering_state: BUFFERING_HAVE_ENOUGH
height: 1080
width: 1920
video_buffering_state: BUFFERING_HAVE_ENOUGH
pipeline_buffering_state: BUFFERING_HAVE_ENOUGH
duration: 1350.055
event: WEBMEDIAPLAYER_DESTROYED


Timestamp	Property	Value
00:00:00 00	origin_url	https://www.bilibili.com/
00:00:00 00	frame_url	https://www.bilibili.com/bangumi/play/ep173184
00:00:00 00	frame_title	龙王的工作!:第4话_番剧_bilibili_哔哩哔哩
00:00:00 00	url	blob:https://www.bilibili.com/a629aa44-0e13-4070-b370-471d3a1d4225
00:00:00 00	info	ChunkDemuxer: buffering by DTS
00:00:00 00	pipeline_state	kStarting
00:00:00 149	found_video_stream	true
00:00:00 149	video_codec_name	h264
00:00:00 149	found_audio_stream	true
00:00:00 149	audio_codec_name	aac
00:00:00 149	seek_target	1055.591788
00:00:00 151	audio_dds	false
00:00:00 151	audio_decoder	FFmpegAudioDecoder
00:00:00 151	info	Selected FFmpegAudioDecoder for audio decoding, config: codec: aac bytes_per_channel: 2 channel_layout: 3 channels: 2 samples_per_second: 44100 sample_format: 2 bytes_per_frame: 4 seek_preroll: 0ms codec_delay: 0 has extra data? false encrypted? false discard decoder delay? false
00:00:00 151	seek_target	1058.591788
00:00:00 153	video_dds	false
00:00:00 153	video_decoder	GpuVideoDecoder
00:00:00 153	info	Selected GpuVideoDecoder for video decoding, config: codec: h264 format: 1 profile: h264 high coded size: [1920,1080] visible rect: [0,0,1920,1080] natural size: [1920,1080] has extra data? false encrypted? false rotation: 0°
00:00:00 153	pipeline_state	kPlaying
00:00:00 153	pipeline_state	kSeeking
00:00:00 280	seek_target	1058.591788
00:00:00 281	pipeline_state	kPlaying
00:00:00 282	pipeline_state	kSeeking
00:00:00 580	pipeline_state	kPlaying
00:00:00 581	audio_buffering_state	BUFFERING_HAVE_ENOUGH
00:00:00 782	height	1080
00:00:00 782	width	1920
00:00:00 788	video_buffering_state	BUFFERING_HAVE_ENOUGH
00:00:00 788	pipeline_buffering_state	BUFFERING_HAVE_ENOUGH
00:00:00 149	duration	1350.055
00:00:16 481	pipeline_state	kSuspending
00:00:16 482	pipeline_state	kSuspended
00:02:56 700	pipeline_state	kStopping
00:02:56 700	pipeline_state	kStopped
00:02:56 700	event	WEBMEDIAPLAYER_DESTROYED
Labels: Needs-Bisect Needs-Triage-M65
Cc: susan.boorgula@chromium.org
Labels: -Pri-2 -Needs-Bisect hasbisect-per-revision Target-66 Target-67 Triaged-ET RegressedIn-64 M-67 FoundIn-66 FoundIn-67 Target-65 FoundIn-65 OS-Linux OS-Mac Pri-1
Owner: dalecur...@chromium.org
Status: Assigned (was: Unconfirmed)
liuhao.me@ Thanks for the issue.

Tested this issue on Mac OS 10.12.6, Windows 10 and Ubuntu 14.04 on the latest Canary 67.0.3366.0 and Stable 65.0.3325.146 and able to reproduce the issue by following the steps mentioned in the original comment.

Bisect Information:
===================
Good Build: 64.0.3257.0 (Revision - 513642)
Bad Build : 64.0.3258.0 (Revision - 513994)

On executing the per-revision bisect script, below is the Changelog URL:

https://chromium.googlesource.com/chromium/src/+log/7642e1c5fc5715dc1894eaf828ef85ae0a5d1fb7..9f57237995f7921b4dcd8855f1f6fe98874218d2

From the above Changelog, suspecting the below change:
Reviewed-on: https://chromium-review.googlesource.com/738626

dalecurtis@ Please check and confirm if this issue is related to your change, else help us in assigning to the right owner.

Thanks.
Yes, it is definitely my change, but without access to the stream I can't tell if it's due to a bad encoding or not. liuhao.me@ do you have access to the raw streams? If so you can try checking them with

ffmpeg -i <file> -f wav -vn -y /dev/null to see if there are any errors spit out from the converted stream.

Comment 6 Deleted

Comment 7 Deleted

Comment 8 by liuhao...@gmail.com, Mar 12 2018

warns and errors:
---
[wav @ 0000000004bb1980] Non-monotonous DTS in output stream 0:0; previous: 18297847, current: 18297840; changing to 18297847. This may result in incorrect timestamps in the output file.
[aac @ 0000000005320900] Number of bands (41) exceeds limit (37).x
Error while decoding stream #0:1: Invalid data found when processing input


logs
---
PS D:\Packages\ffmpeg\bin> .\ffmpeg.exe -i .\ep173184.flv -f wav -vn -y .\audio.mp4
ffmpeg version 3.3.2 Copyright (c) 2000-2017 the FFmpeg developers
  built with gcc 7.1.0 (GCC)
  configuration: --enable-gpl --enable-version3 --enable-cuda --enable-cuvid --enable-d3d11va --enable-dxva2 --enable-libmfx --enable-nvenc --enable-avisynth --enable-bzlib --enable-fontconfig --enable-frei0r --enable-gnutls --enable-iconv --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libfreetype --enable-libgme --enable-libgsm --enable-libilbc --enable-libmodplug --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenh264 --enable-libopenjpeg --enable-libopus --enable-librtmp --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvo-amrwbenc --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxavs --enable-libxvid --enable-libzimg --enable-lzma --enable-zlib
  libavutil      55. 58.100 / 55. 58.100
  libavcodec     57. 89.100 / 57. 89.100
  libavformat    57. 71.100 / 57. 71.100
  libavdevice    57.  6.100 / 57.  6.100
  libavfilter     6. 82.100 /  6. 82.100
  libswscale      4.  6.100 /  4.  6.100
  libswresample   2.  7.100 /  2.  7.100
  libpostproc    54.  5.100 / 54.  5.100
Input #0, flv, from '.\ep173184.flv':
  Metadata:
    description     : Packed by Bilibili XCoder (Bilibili XCode Worker v4.1.0)(fixed_gap:False)
    metadatacreator : Yet Another Metadata Injector for FLV - Version 1.9
    hasKeyframes    : false
    hasVideo        : true
    hasAudio        : true
    hasMetadata     : true
    canSeekToEnd    : false
    datasize        : 112845844
    videosize       : 103332797
    audiosize       : 9401727
    lasttimestamp   : 415
    lastkeyframetimestamp: 409
    lastkeyframelocation: 110591964
  Duration: 00:22:30.06, start: 0.000000, bitrate: 1948 kb/s
    Stream #0:0: Video: h264 (High), yuv420p(progressive), 1920x1080 [SAR 1:1 DAR 16:9], 1990 kb/s, 24 fps, 24 tbr, 1k tbn, 48 tbc
    Stream #0:1: Audio: aac (LC), 44100 Hz, stereo, fltp, 177 kb/s
Stream mapping:
  Stream #0:1 -> #0:0 (aac (native) -> pcm_s16le (native))
Press [q] to stop, [?] for help
Output #0, wav, to '.\audio.mp4':
  Metadata:
    description     : Packed by Bilibili XCoder (Bilibili XCode Worker v4.1.0)(fixed_gap:False)
    metadatacreator : Yet Another Metadata Injector for FLV - Version 1.9
    hasKeyframes    : false
    hasVideo        : true
    hasAudio        : true
    hasMetadata     : true
    canSeekToEnd    : false
    datasize        : 112845844
    videosize       : 103332797
    audiosize       : 9401727
    lasttimestamp   : 415
    lastkeyframetimestamp: 409
    lastkeyframelocation: 110591964
    ISFT            : Lavf57.71.100
    Stream #0:0: Audio: pcm_s16le ([1][0][0][0] / 0x0001), 44100 Hz, stereo, s16, 1411 kb/s
    Metadata:
      encoder         : Lavc57.89.100 pcm_s16le
[wav @ 0000000004bb1980] Non-monotonous DTS in output stream 0:0; previous: 18297847, current: 18297840; changing to 18297847. This may result in incorrect timestamps in the output file.
[aac @ 0000000005320900] Number of bands (41) exceeds limit (37).x
Error while decoding stream #0:1: Invalid data found when processing input
size=  232580kB time=00:22:30.07 bitrate=1411.2kbits/s speed= 689x
video:0kB audio:232580kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 0.000033%

Labels: -Pri-1 Pri-2
The error "[aac @ 0000000005320900] Number of bands (41) exceeds limit (37)." is the cause of failures. Re-encoding the audio stream should fix the errors. 

It's also technically possible to replace the bad packet with a silent AAC packet as well, to do that you'll have to encode a silent AAC packet into adts at the same sample rate, demux the bad file into ADTS, identify the bad packet and then replace it with your silent packet. Then remux it all back with the video stream into the appropriate container.
Mergedinto: 794782
Status: Duplicate (was: Assigned)

Sign in to add a comment