WebKit Bugzilla
New
Browse
Log In
×
Sign in with GitHub
or
Remember my login
Create Account
·
Forgot Password
Forgotten password account recovery
RESOLVED MOVED
203465
[GStreamer] Frequent, reproducible crashes in gst_openh264dec_handle_frame()
https://bugs.webkit.org/show_bug.cgi?id=203465
Summary
[GStreamer] Frequent, reproducible crashes in gst_openh264dec_handle_frame()
Michael Catanzaro
Reported
2019-10-26 18:37:51 PDT
Visit
https://www.reddit.com/r/StLouis/comments/dmznic/alderwoman_tell_st_louisans_they_better_pay_in/
in Tech Preview (with 2.26.1) and play the video. It always crashes at 19s. Looks like something going wrong inside GstOpenh264Dec, but I'll leave it to multimedia folks to forward upstream if required.... Program terminated with signal SIGSEGV, Segmentation fault. #0 __memmove_avx_unaligned_erms () at ../sysdeps/x86_64/multiarch/memmove-vec-unaligned-erms.S:436 436 VMOVU (%rsi), %VEC(4) (gdb) bt full #0 0x00007effb7499515 in __memmove_avx_unaligned_erms () at ../sysdeps/x86_64/multiarch/memmove-vec-unaligned-erms.S:436 #1 0x00007efe0c76c694 in memcpy (__len=1280, __src=<optimized out>, __dest=<optimized out>) at /usr/include/x86_64-linux-gnu/bits/string_fortified.h:34 openh264dec = <optimized out> map_info = {memory = 0x7efe04028b40 [GstMemory], flags = GST_MAP_READ, data = 0x7efe04704a00 "", size = 48637, maxsize = 48637, user_data = {0x7efe046f6000, 0x7effb43fa940 <_gst_debug_min>, 0xc2ca7764d3988600, 0x7efe0406e580}, _gst_reserved = {0x320e, 0x7efe040714b0, 0x7efd8c189aa8, 0x7efe0406e580}} state = 0x7efd8c0c8540 dst_buf_info = {iBufferStatus = 1, uiInBsTimeStamp = 598, uiOutYuvTimeStamp = 598, UsrData = {sSystemBuffer = {iWidth = 1280, iHeight = 720, iFormat = 23, iStride = {1344, 672}}}} ret = <optimized out> yuvdata = {0x7efd959e0840 <error: Cannot access memory at address 0x7efd959e0840>, 0x7efd95adf230 <error: Cannot access memory at address 0x7efd95adf230>, 0x7efd95b20c30 <error: Cannot access memory at address 0x7efd95b20c30>} flow_status = <optimized out> video_frame = {info = {finfo = 0x7effb41a8008 <formats+488>, interlace_mode = 0, flags = (unknown: 0), width = 1280, height = 720, size = 1382400, views = 1, chroma_site = 2, colorimetry = {<No data fields>}, par_n = 1, par_d = 1, fps_n = 30, fps_d = 1, offset = {0, 921600, 1152000, 0}, stride = {1280, 640, 640, 0}, ABI = {abi = {multiview_mode = 0, multiview_flags = (unknown: 0), field_order = (unknown: 0)}, _gst_reserved = {0x0, 0x0, 0x0, 0x0}}}, flags = GST_VIDEO_FRAME_FLAG_NONE, buffer = 0x7efe040b35a0 [GstBuffer], meta = 0x55614d894c20, id = 0, data = {0x7efd9c1d3320, 0x7efd9c2ec740, 0x7efd9c35cf60, 0x55614d48a920}, map = {{memory = 0x7efe04650f20 [GstMemory], flags = GST_MAP_WRITE, data = 0x7efd9c1d3320 "\020\020\022\024\024\026\026\027\026\026\033\037#&)++++,,----.//", '0' <repeats 68 times>, '1' <repeats 16 times>, "2222222233333333", '4' <repeats 11 times>, '5' <repeats 18 times>, '6' <repeats 12 times>, '7' <repeats 15 times>, '6' <repeats 16 times>..., size = 921600, maxsize = 921600, user_data = {0x7efd9c3b2280, 0x7efe0f7fca98, 0x5561000000bc, 0x7effb42f2e18 <gst_object_dispatch_properties_changed+312>}, _gst_reserved = {0x7effb43b2da2, 0x100000001, 0x7efe0f7fca90, 0xc2ca7764d3988600}}, {memory = 0x7efe04651d30 [GstMemory], flags = GST_MAP_WRITE, data = 0x7efd9c2ec740 "\177\177\177\177", '\200' <repeats 36 times>, '\177' <repeats 56 times>, "\200", '\177' <repeats 15 times>, "\200", '\177' <repeats 35 times>, '\200' <repeats 27 times>, '\177' <repeats 23 times>, "\200\201"..., size = 230400, maxsize = 230400, user_data = {0x7efd9c3b2210, 0x7efe0f7fcae0, 0x7efd8c189840, 0x3}, _gst_reserved = {0x7efe0404def0, 0x1, 0xc2ca7764d3988600, 0x7efe0f7fcae0}}, {memory = 0x7efe04651f60 [GstMemory], flags = GST_MAP_WRITE, data = 0x7efd9c35cf60 "\203\203\204\204\206\207\210\210\211\212\213\214\214\214\215\215\215\215\215\215\216\216\216\216", '\217' <repeats 24 times>, "\216\216\216\216\217\217", '\216' <repeats 52 times>, '\215' <repeats 42 times>, "\214\214\214\214\214\214\214\214\214\213\213\212\213\212\211\211\212\212\212\212\212\212\212\212\211", '\212' <repeats 15 times>, "\213\213\213\213\214\213\213\213\213\213\213\213"..., size = 230400, maxsize = 230400, user_data = {0x7efd9c3b21a0, 0x55614d57f530, 0x7effb43fa940 <_gst_debug_min>, 0x7efe0f7fcc68}, _gst_reserved = {0x55614be5db30, 0x7efe0f7fcc68, 0x55614d48a920, 0x7effb6513a23 <g_signal_emit+147>}}, {memory = 0x3000000018, flags = (GST_MAP_FLAG_LAST | unknown: 259968000), data = 0x7efe0f7fcb40 " \241\377KaU", size = 14036162463583995392, maxsize = 93876375232800, user_data = {0x84bf6d0c0, 0x0, 0x55614c000a80, 0x55614be62d30}, _gst_reserved = {0x7effb64288c1 <g_slice_alloc+33>, 0x7efe046f5f70, 0x7effb63f935d <g_str_equal+13>, 0x7efe046f5f70}}}, _gst_reserved = {0x7efe0406e3e0, 0x7efe0406e580, 0x55614c000a80, 0x55614be62d30}} actual_width = <optimized out> actual_height = <optimized out> i = <optimized out> p = <optimized out> row_stride = 1280 component_width = 1280 component_height = 720 src_width = 1344 row = 0 __FUNCTION__ = "gst_openh264dec_handle_frame" #2 0x00007efe0c76c694 in gst_openh264dec_handle_frame(GstVideoDecoder*, GstVideoCodecFrame*) (decoder=0x7efe0406e580 [GstOpenh264Dec], frame=0x7efe04169330) at ../ext/openh264/gstopenh264dec.cpp:396 openh264dec = <optimized out> map_info = {memory = 0x7efe04028b40 [GstMemory], flags = GST_MAP_READ, data = 0x7efe04704a00 "", size = 48637, maxsize = 48637, user_data = {0x7efe046f6000, 0x7effb43fa940 <_gst_debug_min>, 0xc2ca7764d3988600, 0x7efe0406e580}, _gst_reserved = {0x320e, 0x7efe040714b0, 0x7efd8c189aa8, 0x7efe0406e580}} state = 0x7efd8c0c8540 dst_buf_info = {iBufferStatus = 1, uiInBsTimeStamp = 598, uiOutYuvTimeStamp = 598, UsrData = {sSystemBuffer = {iWidth = 1280, iHeight = 720, iFormat = 23, iStride = {1344, 672}}}} ret = <optimized out> yuvdata = {0x7efd959e0840 <error: Cannot access memory at address 0x7efd959e0840>, 0x7efd95adf230 <error: Cannot access memory at address 0x7efd95adf230>, 0x7efd95b20c30 <error: Cannot access memory at address 0x7efd95b20c30>} flow_status = <optimized out> video_frame = {info = {finfo = 0x7effb41a8008 <formats+488>, interlace_mode = 0, flags = (unknown: 0), width = 1280, height = 720, size = 1382400, views = 1, chroma_site = 2, colorimetry = {<No data fields>}, par_n = 1, par_d = 1, fps_n = 30, fps_d = 1, offset = {0, 921600, 1152000, 0}, stride = {1280, 640, 640, 0}, ABI = {abi = {multiview_mode = 0, multiview_flags = (unknown: 0), field_order = (unknown: 0)}, _gst_reserved = {0x0, 0x0, 0x0, 0x0}}}, flags = GST_VIDEO_FRAME_FLAG_NONE, buffer = 0x7efe040b35a0 [GstBuffer], meta = 0x55614d894c20, id = 0, data = {0x7efd9c1d3320, 0x7efd9c2ec740, 0x7efd9c35cf60, 0x55614d48a920}, map = {{memory = 0x7efe04650f20 [GstMemory], flags = GST_MAP_WRITE, data = 0x7efd9c1d3320 "\020\020\022\024\024\026\026\027\026\026\033\037#&)++++,,----.//", '0' <repeats 68 times>, '1' <repeats 16 times>, "2222222233333333", '4' <repeats 11 times>, '5' <repeats 18 times>, '6' <repeats 12 times>, '7' <repeats 15 times>, '6' <repeats 16 times>..., size = 921600, maxsize = 921600, user_data = {0x7efd9c3b2280, 0x7efe0f7fca98, 0x5561000000bc, 0x7effb42f2e18 <gst_object_dispatch_properties_changed+312>}, _gst_reserved = {0x7effb43b2da2, 0x100000001, 0x7efe0f7fca90, 0xc2ca7764d3988600}}, {memory = 0x7efe04651d30 [GstMemory], flags = GST_MAP_WRITE, data = 0x7efd9c2ec740 "\177\177\177\177", '\200' <repeats 36 times>, '\177' <repeats 56 times>, "\200", '\177' <repeats 15 times>, "\200", '\177' <repeats 35 times>, '\200' <repeats 27 times>, '\177' <repeats 23 times>, "\200\201"..., size = 230400, maxsize = 230400, user_data = {0x7efd9c3b2210, 0x7efe0f7fcae0, 0x7efd8c189840, 0x3}, _gst_reserved = {0x7efe0404def0, 0x1, 0xc2ca7764d3988600, 0x7efe0f7fcae0}}, {memory = 0x7efe04651f60 [GstMemory], flags = GST_MAP_WRITE, data = 0x7efd9c35cf60 "\203\203\204\204\206\207\210\210\211\212\213\214\214\214\215\215\215\215\215\215\216\216\216\216", '\217' <repeats 24 times>, "\216\216\216\216\217\217", '\216' <repeats 52 times>, '\215' <repeats 42 times>, "\214\214\214\214\214\214\214\214\214\213\213\212\213\212\211\211\212\212\212\212\212\212\212\212\211", '\212' <repeats 15 times>, "\213\213\213\213\214\213\213\213\213\213\213\213"..., size = 230400, maxsize = 230400, user_data = {0x7efd9c3b21a0, 0x55614d57f530, 0x7effb43fa940 <_gst_debug_min>, 0x7efe0f7fcc68}, _gst_reserved = {0x55614be5db30, 0x7efe0f7fcc68, 0x55614d48a920, 0x7effb6513a23 <g_signal_emit+147>}}, {memory = 0x3000000018, flags = (GST_MAP_FLAG_LAST | unknown: 259968000), data = 0x7efe0f7fcb40 " \241\377KaU", size = 14036162463583995392, maxsize = 93876375232800, user_data = {0x84bf6d0c0, 0x0, 0x55614c000a80, 0x55614be62d30}, _gst_reserved = {0x7effb64288c1 <g_slice_alloc+33>, 0x7efe046f5f70, 0x7effb63f935d <g_str_equal+13>, 0x7efe046f5f70}}}, _gst_reserved = {0x7efe0406e3e0, 0x7efe0406e580, 0x55614c000a80, 0x55614be62d30}} actual_width = <optimized out> actual_height = <optimized out> i = <optimized out> p = <optimized out> row_stride = 1280 component_width = 1280 component_height = 720 src_width = 1344 row = 0 __FUNCTION__ = "gst_openh264dec_handle_frame" #3 0x00007effb413437b in gst_video_decoder_decode_frame (decoder=decoder@entry=0x7efe0406e580 [GstOpenh264Dec], frame=0x55614be62d30) at ../gst-libs/gst/video/gstvideodecoder.c:3402 priv = 0x7efe0406e3e0 decoder_class = 0x7efd8c00c170 ret = GST_FLOW_OK __func__ = "gst_video_decoder_decode_frame" #4 0x00007effb41394f8 in gst_video_decoder_chain_forward (decoder=decoder@entry=0x7efe0406e580 [GstOpenh264Dec], buf=buf@entry=0x7efdb0107ea0 [GstBuffer], at_eos=at_eos@entry=0) at ../gst-libs/gst/video/gstvideodecoder.c:2123 was_keyframe = <optimized out> priv = 0x7efe0406e3e0 klass = <optimized out> ret = GST_FLOW_OK __func__ = "gst_video_decoder_chain_forward" #5 0x00007effb4139c09 in gst_video_decoder_chain (pad=<optimized out>, parent=<optimized out>, buf=0x7efdb0107ea0 [GstBuffer]) at ../gst-libs/gst/video/gstvideodecoder.c:2438 decoder = 0x7efe0406e580 [GstOpenh264Dec] ret = GST_FLOW_OK __func__ = "gst_video_decoder_chain" #6 0x00007effb433a2ff in gst_pad_chain_data_unchecked (pad=pad@entry=0x7efd8c189a90 [GstPad], type=type@entry=4112, data=data@entry=0x7efdb0107ea0) at ../gst/gstpad.c:4327 chainfunc = 0x7effb41398d0 <gst_video_decoder_chain> ret = <optimized out> parent = 0x7efe0406e580 [GstOpenh264Dec] handled = 0 __func__ = "gst_pad_chain_data_unchecked" #7 0x00007effb433c431 in gst_pad_push_data (pad=pad@entry=0x7efd8c189840 [GstPad], type=type@entry=4112, data=data@entry=0x7efdb0107ea0) at ../gst/gstpad.c:4583 peer = 0x7efd8c189a90 [GstPad] ret = GST_FLOW_OK handled = 0 __func__ = "gst_pad_push_data" #8 0x00007effb43432e3 in gst_pad_push (pad=0x7efd8c189840 [GstPad], buffer=0x7efdb0107ea0 [GstBuffer]) at ../gst/gstpad.c:4702 res = <optimized out> __func__ = "gst_pad_push" #9 0x00007effb44443c0 in gst_base_transform_chain (pad=<optimized out>, parent=0x7efd98015000 [GstCapsFilter], buffer=<optimized out>) at ../libs/gst/base/gstbasetransform.c:2330 position_out = <optimized out> trans = 0x7efd98015000 [GstCapsFilter] klass = 0x7efd9800fb70 priv = 0x7efd98014f30 ret = <optimized out> position = 20099999999 [0:00:20.099999999] timestamp = <optimized out> duration = <optimized out> outbuf = 0x7efdb0107ea0 [GstBuffer] __func__ = "gst_base_transform_chain" #10 0x00007effb433a2ff in gst_pad_chain_data_unchecked (pad=pad@entry=0x55614d57f530 [GstPad], type=type@entry=4112, data=data@entry=0x7efdb0107ea0) at ../gst/gstpad.c:4327 chainfunc = 0x7effb44441f0 <gst_base_transform_chain> ret = <optimized out> parent = 0x7efd98015000 [GstCapsFilter] handled = 0 __func__ = "gst_pad_chain_data_unchecked" #11 0x00007effb433c431 in gst_pad_push_data (pad=pad@entry=0x55614d57f2e0 [GstPad], type=type@entry=4112, data=data@entry=0x7efdb0107ea0) at ../gst/gstpad.c:4583 peer = 0x55614d57f530 [GstPad] ret = GST_FLOW_OK handled = 0 __func__ = "gst_pad_push_data" #12 0x00007effb43432e3 in gst_pad_push (pad=0x55614d57f2e0 [GstPad], buffer=buffer@entry=0x7efdb0107ea0 [GstBuffer]) at ../gst/gstpad.c:4702 res = <optimized out> __func__ = "gst_pad_push" #13 0x00007effb4427c37 in gst_base_parse_push_frame (parse=parse@entry=0x7efe0406a260 [GstH264Parse], frame=frame@entry=0x7efe046f5d90) at ../libs/gst/base/gstbaseparse.c:2580 ret = <optimized out> last_start = <optimized out> last_stop = 20099999999 [0:00:20.099999999] klass = <optimized out> buffer = 0x7efdb0107ea0 [GstBuffer] size = 48637 __func__ = "gst_base_parse_push_frame" #14 0x00007effb442aa3b in gst_base_parse_handle_and_push_frame (frame=0x7efe046f5d90, parse=0x7efe0406a260 [GstH264Parse]) at ../libs/gst/base/gstbaseparse.c:2394 offset = <optimized out> buffer = 0x7efe04655120 [None] __func__ = "gst_base_parse_handle_and_push_frame" ret = GST_FLOW_OK __func__ = "gst_base_parse_finish_frame" #15 0x00007effb442aa3b in gst_base_parse_finish_frame (parse=parse@entry=0x7efe0406a260 [GstH264Parse], frame=frame@entry=0x7efe046f5d90, size=<optimized out>) at ../libs/gst/base/gstbaseparse.c:2738 ret = GST_FLOW_OK __func__ = "gst_base_parse_finish_frame" #16 0x00007efe0c7d03df in gst_h264_parse_handle_frame_packetized (frame=0x7efe046f5d90, parse=0x7efe0406a260 [GstH264Parse]) at ../gst/videoparsers/gsth264parse.c:1147 h264parse = 0x7efe0406a260 [GstH264Parse] buffer = 0x7efdb0107ea0 [GstBuffer] ret = <optimized out> nalu = {ref_idc = 0, type = 0, idr_pic_flag = 0 '\000', size = 0, offset = 0, sc_offset = 0, valid = 0, data = 0x0, header_bytes = 0 '\000', extension_type = 0 '\000', extension = {mvc = {non_idr_flag = 0 '\000', priority_id = 0 '\000', view_id = 0, temporal_id = 0 '\000', anchor_pic_flag = 0 '\000', inter_view_flag = 0 '\000'}}} nl = <optimized out> parse_res = GST_H264_PARSER_ERROR map = {memory = 0x7efd80e94000 [GstMemory], flags = GST_MAP_READ, data = 0x7efd80e94078 "", size = 48586, maxsize = 48586, user_data = {0x0, 0x7efdb0107ea0, 0x7effb43009f7 <gst_buffer_copy_into+967>, 0x7efe0f7fd430}, _gst_reserved = {0x7efe0f7fd3a8, 0x7efdb0107ea0, 0x48, 0x7efe0f7fd3a8}} left = 48586 __func__ = "gst_h264_parse_handle_frame_packetized" h264parse = 0x7efe0406a260 [GstH264Parse] buffer = <optimized out> map = {memory = 0x7efd80e94000 [GstMemory], flags = GST_MAP_READ, data = 0x7efd80e94078 "", size = 48586, maxsize = 48586, user_data = {0x0, 0x7efdb0107ea0, 0x7effb43009f7 <gst_buffer_copy_into+967>, 0x7efe0f7fd430}, _gst_reserved = {0x7efe0f7fd3a8, 0x7efdb0107ea0, 0x48, 0x7efe0f7fd3a8}} data = <optimized out> size = <optimized out> current_off = 0 drain = <optimized out> nonext = <optimized out> nalparser = <optimized out> nalu = {ref_idc = 64641, type = 46138, idr_pic_flag = 255 '\377', size = 0, offset = 0, sc_offset = 260035144, valid = 32510, data = 0x7effb64fbb3d <g_object_unref+61> "\215K\377\211\302\211\330\360A\017\261\f$u\340\203\373\002u\005\203\342\001uj[]A\\A]A^Ð\213\065\332&\004", header_bytes = 96 '`', extension_type = 42 '*', extension = {mvc = {non_idr_flag = 137 '\211', priority_id = 77 'M', view_id = 21857, temporal_id = 0 '\000', anchor_pic_flag = 0 '\000', inter_view_flag = 32 ' '}}} pres = <optimized out> framesize = <optimized out> ret = <optimized out> au_complete = <optimized out> __func__ = "gst_h264_parse_handle_frame" #17 0x00007efe0c7d03df in gst_h264_parse_handle_frame (parse=0x7efe0406a260 [GstH264Parse], frame=0x7efe046f5d90, skipsize=<optimized out>) at ../gst/videoparsers/gsth264parse.c:1193 h264parse = 0x7efe0406a260 [GstH264Parse] buffer = <optimized out> map = {memory = 0x7efd80e94000 [GstMemory], flags = GST_MAP_READ, data = 0x7efd80e94078 "", size = 48586, maxsize = 48586, user_data = {0x0, 0x7efdb0107ea0, 0x7effb43009f7 <gst_buffer_copy_into+967>, 0x7efe0f7fd430}, _gst_reserved = {0x7efe0f7fd3a8, 0x7efdb0107ea0, 0x48, 0x7efe0f7fd3a8}} data = <optimized out> size = <optimized out> current_off = 0 drain = <optimized out> nonext = <optimized out> nalparser = <optimized out> nalu = {ref_idc = 64641, type = 46138, idr_pic_flag = 255 '\377', size = 0, offset = 0, sc_offset = 260035144, valid = 32510, data = 0x7effb64fbb3d <g_object_unref+61> "\215K\377\211\302\211\330\360A\017\261\f$u\340\203\373\002u\005\203\342\001uj[]A\\A]A^Ð\213\065\332&\004", header_bytes = 96 '`', extension_type = 42 '*', extension = {mvc = {non_idr_flag = 137 '\211', priority_id = 77 'M', view_id = 21857, temporal_id = 0 '\000', anchor_pic_flag = 0 '\000', inter_view_flag = 32 ' '}}} pres = <optimized out> framesize = <optimized out> ret = <optimized out> au_complete = <optimized out> __func__ = "gst_h264_parse_handle_frame" #18 0x00007effb4422766 in gst_base_parse_handle_buffer (parse=parse@entry=0x7efe0406a260 [GstH264Parse], buffer=<optimized out>, skip=skip@entry=0x7efe0f7fd3a8, flushed=flushed@entry=0x7efe0f7fd3ac) at ../libs/gst/base/gstbaseparse.c:2202 klass = 0x7efdb8008e40 frame = 0x7efe046f5d90 ret = <optimized out> __func__ = "gst_base_parse_handle_buffer" #19 0x00007effb44288be in gst_base_parse_chain (pad=<optimized out>, parent=<optimized out>, buffer=<optimized out>) at ../libs/gst/base/gstbaseparse.c:3287 flush = 0 updated_prev_pts = <optimized out> bclass = <optimized out> parse = 0x7efe0406a260 [GstH264Parse] ret = GST_FLOW_OK old_ret = <optimized out> tmpbuf = <optimized out> skip = 0 min_size = <optimized out> av = 48586 pts = 20066666666 [0:00:20.066666666] dts = <optimized out> __func__ = "gst_base_parse_chain" #20 0x00007effb433a2ff in gst_pad_chain_data_unchecked (pad=pad@entry=0x55614d57f090 [GstPad], type=type@entry=4112, data=data@entry=0x7efdd8051ea0) at ../gst/gstpad.c:4327 chainfunc = 0x7effb4428080 <gst_base_parse_chain> ret = <optimized out> parent = 0x7efe0406a260 [GstH264Parse] handled = 0 __func__ = "gst_pad_chain_data_unchecked" #21 0x00007effb433c431 in gst_pad_push_data (pad=pad@entry=0x55614d8960e0 [GstPad], type=type@entry=4112, data=data@entry=0x7efdd8051ea0) at ../gst/gstpad.c:4583 peer = 0x55614d57f090 [GstPad] ret = GST_FLOW_OK handled = 0 __func__ = "gst_pad_push_data" #22 0x00007effb43432e3 in gst_pad_push (pad=0x55614d8960e0 [GstPad], buffer=0x7efdd8051ea0 [GstBuffer]) at ../gst/gstpad.c:4702 res = <optimized out> __func__ = "gst_pad_push" #23 0x00007effb433a2ff in gst_pad_chain_data_unchecked (pad=pad@entry=0x55614d88fcd0 [GstPad], type=type@entry=4112, data=data@entry=0x7efdd8051ea0) at ../gst/gstpad.c:4327 chainfunc = 0x7eff3c562210 <gst_type_find_element_chain> ret = <optimized out> parent = 0x55614d582440 [GstTypeFindElement] handled = 0 __func__ = "gst_pad_chain_data_unchecked" #24 0x00007effb433c431 in gst_pad_push_data (pad=pad@entry=0x55614d8871b0 [GstProxyPad], type=type@entry=4112, data=data@entry=0x7efdd8051ea0) at ../gst/gstpad.c:4583 peer = 0x55614d88fcd0 [GstPad] ret = GST_FLOW_OK handled = 0 __func__ = "gst_pad_push_data" #25 0x00007effb43432e3 in gst_pad_push (pad=pad@entry=0x55614d8871b0 [GstProxyPad], buffer=buffer@entry=0x7efdd8051ea0 [GstBuffer]) at ../gst/gstpad.c:4702 res = <optimized out> __func__ = "gst_pad_push" #26 0x00007effb432759b in gst_proxy_pad_chain_default (pad=<optimized out>, parent=<optimized out>, buffer=0x7efdd8051ea0 [GstBuffer]) at ../gst/gstghostpad.c:127 res = <optimized out> internal = 0x55614d8871b0 [GstProxyPad] __func__ = "gst_proxy_pad_chain_default" #27 0x00007effb433a2ff in gst_pad_chain_data_unchecked (pad=pad@entry=0x55614d892a60 [GstGhostPad], type=type@entry=4112, data=data@entry=0x7efdd8051ea0) at ../gst/gstpad.c:4327 chainfunc = 0x7effb43274d0 <gst_proxy_pad_chain_default> ret = <optimized out> parent = 0x7efe0402a060 [GstDecodeBin] handled = 0 __func__ = "gst_pad_chain_data_unchecked" #28 0x00007effb433c431 in gst_pad_push_data (pad=pad@entry=0x55614d8927e0 [GstGhostPad], type=type@entry=4112, data=data@entry=0x7efdd8051ea0) at ../gst/gstpad.c:4583 peer = 0x55614d892a60 [GstGhostPad] ret = GST_FLOW_OK handled = 0 __func__ = "gst_pad_push_data" #29 0x00007effb43432e3 in gst_pad_push (pad=pad@entry=0x55614d8927e0 [GstGhostPad], buffer=buffer@entry=0x7efdd8051ea0 [GstBuffer]) at ../gst/gstpad.c:4702 res = <optimized out> __func__ = "gst_pad_push" #30 0x00007effb432759b in gst_proxy_pad_chain_default (pad=pad@entry=0x55614d886f50 [GstProxyPad], parent=<optimized out>, buffer=buffer@entry=0x7efdd8051ea0 [GstBuffer]) at ../gst/gstghostpad.c:127 res = <optimized out> internal = 0x55614d8927e0 [GstGhostPad] __func__ = "gst_proxy_pad_chain_default" #31 0x00007effb82090ed in webkitMediaSrcChain(GstPad*, GstObject*, GstBuffer*) (pad=0x55614d886f50 [GstProxyPad], parent=0x55614d8927e0 [GstGhostPad], buffer=0x7efdd8051ea0 [GstBuffer]) at ../Source/WebCore/platform/graphics/gstreamer/mse/WebKitMediaSourceGStreamer.cpp:250 self = {m_ptr = 0x55614d85c0d0 [WebKitMediaSrc]} #32 0x00007effb433a2ff in gst_pad_chain_data_unchecked (pad=pad@entry=0x55614d886f50 [GstProxyPad], type=type@entry=4112, data=data@entry=0x7efdd8051ea0) at ../gst/gstpad.c:4327 chainfunc = 0x7effb8209080 <webkitMediaSrcChain(GstPad*, GstObject*, GstBuffer*)> ret = <optimized out> parent = 0x55614d8927e0 [GstGhostPad] handled = 0 __func__ = "gst_pad_chain_data_unchecked" #33 0x00007effb433c431 in gst_pad_push_data (pad=pad@entry=0x55614d4a8e50 [GstPad], type=type@entry=4112, data=data@entry=0x7efdd8051ea0) at ../gst/gstpad.c:4583 peer = 0x55614d886f50 [GstProxyPad] ret = GST_FLOW_OK handled = 0 __func__ = "gst_pad_push_data" #34 0x00007effb43432e3 in gst_pad_push (pad=pad@entry=0x55614d4a8e50 [GstPad], buffer=0x7efdd8051ea0 [GstBuffer]) at ../gst/gstpad.c:4702 res = <optimized out> __func__ = "gst_pad_push" #35 0x00007effb443f825 in gst_base_src_loop (pad=0x55614d4a8e50 [GstPad]) at ../libs/gst/base/gstbasesrc.c:2974 src = 0x55614d863940 [GstAppSrc] buf = 0x7efdd8051ea0 [GstBuffer] ret = <optimized out> position = <optimized out> eos = 0 blocksize = <optimized out> pending_events = <optimized out> tmp = <optimized out> __func__ = "gst_base_src_loop" #36 0x00007effb43719f7 in gst_task_func (task=0x55614d379050 [GstTask]) at ../gst/gsttask.c:328 lock = 0x55614d4a8ec0 tself = 0x55614d2a5990 priv = 0x55614d379000 __func__ = "gst_task_func" #37 0x00007effb6434694 in g_thread_pool_thread_proxy (data=<optimized out>) at ../glib/gthreadpool.c:308 task = 0x55614d372e90 pool = <optimized out> #38 0x00007effb6433f41 in g_thread_proxy (data=0x55614d2a5990) at ../glib/gthread.c:805 thread = 0x55614d2a5990 __func__ = "g_thread_proxy" #39 0x00007effb3f3d5e2 in start_thread (arg=<optimized out>) at pthread_create.c:479 ret = <optimized out> pd = <optimized out> unwind_buf = {cancel_jmp_buf = {{jmp_buf = {139629646833408, 1806756859576380293, 140729806886478, 140729806886479, 139629646830912, 139629646833408, -1950343183664878715, -1950757734184981627}, mask_was_saved = 0}}, priv = {pad = {0x0, 0x0, 0x0, 0x0}, data = {prev = 0x0, cleanup = 0x0, canceltype = 0}}} not_first_call = 0 #40 0x00007effb7433413 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95
Attachments
Add attachment
proposed patch, testcase, etc.
Philippe Normand
Comment 1
2019-11-06 04:09:40 PST
I haven't yet tried with openh264 because it's not in the Runtime I use currently. Even gst-libav chokes on that h264 video... I think this would be worth investigation with gst-play-1.0 first.
Michael Catanzaro
Comment 2
2019-11-06 10:25:41 PST
I'm not sure why you'd want to use a different runtime with different codecs and different bugs, but we wound up settling on OpenH264 for the official runtime. So unless you don't want to support Tech Preview anymore, I would recommend adjusting what you're using to match.
Philippe Normand
Comment 3
2019-11-06 13:54:07 PST
Do we currently use openh264 in jhbuild? No. The WIP flatpak SDK I'm using replicates what we have in jhbuild currently, for convenience, and possible easy migration path out of jhbuild... I don't disagree about the validity of the issue reported here, I'm only stating this video potentially presents multiple issues across different video decoders. There's no need to remind me about the decisions you took for the GNOME runtime.
Michael Catanzaro
Comment 4
2019-11-07 10:31:07 PST
FWIW: just hit this crash again on youtube.com
Michael Catanzaro
Comment 5
2019-11-30 17:24:57 PST
I think this is one of the biggest web process crashers right now.
Philippe Normand
Comment 6
2019-12-01 07:02:45 PST
This is happening only with openh264 2.0.0, not with current master (4b2a2f02ba320a76163b0452086e542453b8ee49). I can't do a bisect because they use merge commits all over the place. So if you feel brave, update your Flatpak SDK accordingly and ask an upstream release. In any case this isn't a WebKit issue, so closing.
Michael Catanzaro
Comment 7
2019-12-01 07:51:53 PST
Thanks for investigating!
Michael Catanzaro
Comment 8
2019-12-01 08:04:43 PST
Moved to
https://gitlab.com/freedesktop-sdk/freedesktop-sdk/issues/922
Michael Catanzaro
Comment 9
2019-12-09 08:41:19 PST
(In reply to Philippe Normand from
comment #6
)
> This is happening only with openh264 2.0.0, not with current master > (4b2a2f02ba320a76163b0452086e542453b8ee49). I can't do a bisect because they > use merge commits all over the place.
Rob has created
https://github.com/cisco/openh264/issues/3218
to request an update.
Michael Catanzaro
Comment 10
2020-04-06 13:47:28 PDT
GStreamer issue:
https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/issues/1192
Note
You need to
log in
before you can comment on or make changes to this bug.
Top of Page
Format For Printing
XML
Clone This Bug