Bug 203465
| Summary: | [GStreamer] Frequent, reproducible crashes in gst_openh264dec_handle_frame() | ||
|---|---|---|---|
| Product: | WebKit | Reporter: | Michael Catanzaro <mcatanzaro> |
| Component: | Media | Assignee: | Nobody <webkit-unassigned> |
| Status: | RESOLVED MOVED | ||
| Severity: | Normal | CC: | mcatanzaro, pnormand |
| Priority: | P2 | ||
| Version: | WebKit Nightly Build | ||
| Hardware: | PC | ||
| OS: | Linux | ||
Michael Catanzaro
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
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
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
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
FWIW: just hit this crash again on youtube.com
Michael Catanzaro
I think this is one of the biggest web process crashers right now.
Philippe Normand
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
Thanks for investigating!
Michael Catanzaro
Moved to https://gitlab.com/freedesktop-sdk/freedesktop-sdk/issues/922
Michael Catanzaro
(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
GStreamer issue: https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/issues/1192